2 · Tokens y la ventana de contexto
Los modelos no ven palabras ni caracteres — ven tokens, y solo un número fijo a la vez. Contar tokens es cómo razonas sobre costo, truncamiento y qué cabe.
El texto se divide en tokens (trozos subword), y un modelo solo puede atender a una ventana de contexto de tamaño fijo. El conteo de tokens determina costo, latencia y si tu prompt + historial + documentos recuperados siquiera caben.
Sin esto:
Ignora los tokens y truncarás en silencio la pregunta del usuario, reventarás tu presupuesto con un prompt descontrolado, o te preguntarás por qué el modelo 'olvidó' el inicio de una conversación larga.
Un modelo nunca ve tu string crudo. Primero un tokenizador lo divide en tokens — trozos subword como "token", "ización", " el" (conociste Byte-Pair Encoding en el track de Deep Learning). Cada token mapea a un ID entero, y eso es lo que lee el modelo.
Dos números gobiernan todo:
-
El conteo de tokens de tu entrada. Las APIs cobran por token (entrada + salida) y la latencia crece con él. Regla aproximada para inglés: ~1 token ≈ 4 caracteres ≈ ¾ de palabra. Así que 1.000 palabras ≈ ~1.300 tokens.
-
La ventana de contexto. Un modelo solo puede mirar un número fijo de tokens a la vez — su ventana de contexto (p. ej. 8k, 128k, 1M). Todo debe caber: system prompt + historial de conversación + documentos recuperados + el espacio reservado para la respuesta. Cuando lo excedes, algo hay que descartar o la llamada falla.
La ingeniería de LLM es, en gran medida, un problema de presupuesto de tokens: tienes N tokens de contexto y debes gastarlos sabiamente entre instrucciones, historial y conocimiento recuperado.
Python (in browser)
Presupuesto de tokens: cuenta las partes, compara con la ventana, descarta los tokens de menor prioridad hasta que quepa. El bucle central de toda app de chat.
Python runs entirely in your browser via Pyodide (~6 MB on first Run, cached after).
En producción, cuenta tokens con el tokenizador real del modelo (tiktoken / la API del proveedor) — nunca adivines pasando la ventana.
La instrucción de sistema + el historial + los documentos recuperados de tu prompt suman más tokens que la ventana de contexto. ¿Qué pasa?
- Los modelos leen tokens (trozos subword), no palabras; ~1 token ≈ 4 caracteres ≈ ¾ palabra en inglés.
- La ventana de contexto limita entrada + salida juntas; todo (sistema + historial + recuperado + espacio de respuesta) debe caber.
- El conteo de tokens determina costo y latencia — presupuéstalos y trunca los de menor prioridad cuando te pasas.
Toda app de chat recorta el historial para mantenerse en la ventana; todo sistema RAG decide cuántos chunks recuperados caben en el presupuesto; los tableros de precios se denominan en tokens.
Si lo quitas: Sin conciencia de tokens despliegas apps que cortan entradas en silencio, exceden presupuestos y fallan de forma impredecible con entradas largas.