Tokens y ventana de contexto: la memoria finita de la IA
Muchas veces, al interactuar con una inteligencia artificial, obtenemos resultados inconsistentes: un día la respuesta es brillante, otro día es confusa o incompleta. Esto no es cuestión de suerte, sino de entender cómo la IA procesa la información. Si tus prompts no consideran las limitaciones fundamentales de cómo un modelo "lee" y "recuerda" el texto, estás dejando tus resultados al azar. Esta lección te dará las bases para diseñar prompts que respeten la arquitectura interna de los modelos, asegurando que tu IA siempre tenga la información que necesita para darte la respuesta que esperas.
Más allá de las palabras: ¿Qué es un token?
Cuando le das un texto a un modelo de lenguaje grande (LLM, por sus siglas en inglés), como "quiero un resumen", el modelo no lo procesa palabra por palabra como lo haríamos nosotros. En cambio, lo descompone en unidades más pequeñas llamadas
tokens. Un token es la unidad fundamental de procesamiento para un LLM.
Piensa en los tokens como los "ladrillos" con los que se construye todo el lenguaje para la IA. No son necesariamente palabras completas. Pueden ser:
- Partes de palabras (sub-palabras).
- Palabras completas.
- Signos de puntuación.
- Espacios en blanco.
Por ejemplo, la palabra "tokenización" podría dividirse en "token", "iza" y "ción". La palabra "inteligencia" podría ser "inteli" y "gencia". Este proceso se llama
tokenización. Los modelos utilizan algoritmos complejos, como el Byte Pair Encoding (BPE), para encontrar la forma más eficiente de dividir el texto en estas unidades, equilibrando entre tener tokens comunes y no tener un vocabulario excesivamente grande.
¿Por qué es importante esto? Porque la IA "piensa" y "calcula" con estos tokens, no con palabras. Esto tiene implicaciones directas en:
- El costo: La mayoría de las APIs de modelos de lenguaje cobran por la cantidad de tokens que envías (input) y recibes (output).
- El rendimiento: La capacidad del modelo para procesar información está directamente ligada a la cantidad de tokens que puede manejar a la vez.
- La eficiencia: Algunas palabras o frases, especialmente en idiomas con morfología rica como el español o el alemán, pueden consumir más tokens que en inglés.
En promedio, un token en inglés equivale a unas 4 letras, mientras que en español puede ser un poco más denso, necesitando a veces 1.5 a 2 tokens por palabra dependiendo de la complejidad.
La ventana de contexto: la memoria a corto plazo de tu IA
Ahora que entiendes qué es un token, podemos hablar de la
ventana de contexto. Imagina que la IA tiene una pizarra mágica donde puede escribir y leer. Pero esta pizarra no es infinita; tiene un tamaño limitado. Esa pizarra es la ventana de contexto.
La ventana de contexto es la cantidad máxima de tokens (input + output) que un modelo de lenguaje puede procesar y "recordar" en un momento dado. Es su memoria a corto plazo. Todo el texto que le das (el prompt) y toda la respuesta que genera (el completion) deben caber dentro de esta ventana.
Cuando interactúas con un LLM, cada mensaje, cada instrucción, cada ejemplo que le das, y la respuesta que te devuelve, se convierten en tokens y se colocan en esta ventana. El modelo solo puede "ver" y operar con la información que está dentro de ella.
¿Qué sucede si un texto excede la ventana de contexto? El modelo simplemente no podrá procesar la totalidad del texto. Es como si le dieras un libro enorme para que lo lea, pero solo puede mantener abiertas unas pocas páginas a la vez. Cuando pasa a las páginas siguientes, las primeras se cierran y "olvida" lo que había en ellas.
Esto es crucial para profesionales como tú, porque afecta directamente:
- La coherencia de la respuesta: Si el modelo olvida el inicio de tu documento, la respuesta puede ser incompleta o incorrecta.
- La capacidad de procesar documentos largos: No puedes simplemente pegar un informe de 100 páginas y esperar que lo resuma con precisión si excede la ventana.
- El costo de tus interacciones: Cuantos más tokens uses, más caro será el uso de la API.
Los tamaños de las ventanas de contexto varían enormemente entre modelos, desde unos pocos miles de tokens (por ejemplo, 4.000 o 8.000 tokens en modelos más antiguos o pequeños) hasta cientos de miles (128.000 o incluso más en modelos de última generación). Conocer el límite de la ventana de contexto del modelo que estás usando es fundamental para diseñar prompts efectivos y económicos.
El impacto de la ventana de contexto en tus prompts
Entender la ventana de contexto no es solo una curiosidad técnica; es una necesidad práctica para obtener resultados consistentes. Si tu prompt, junto con el texto que quieres que la IA procese y la respuesta esperada, excede este límite, el modelo no podrá cumplir su tarea de forma adecuada.
Las consecuencias de exceder la ventana de contexto pueden ser:
- Truncamiento de la información: El modelo simplemente cortará el texto que no cabe, y por lo tanto, no lo procesará.
- Respuestas incompletas o erróneas: Si la información clave está al principio de un texto largo y el modelo la "olvida" al llegar al final, su respuesta carecerá de esa información crucial.
- Alucinaciones: Al carecer de la información completa, el modelo podría intentar "adivinar" o inventar datos para llenar los vacíos.
- Errores de API: Algunas APIs simplemente devolverán un error si el número de tokens excede el límite.
Para los profesionales que buscan consistencia, ignorar la ventana de contexto es una receta para la frustración. La buena noticia es que, una vez que comprendes esta limitación, puedes diseñar estrategias para trabajar con ella, como dividir textos largos en fragmentos más pequeños, resumir secciones incrementalmente o utilizar modelos con ventanas de contexto más grandes si la tarea lo amerita. Estas estrategias las exploraremos en profundidad más adelante en el curso. Por ahora, lo importante es que sepas que esta "memoria finita" es una de las principales razones por las que tus prompts pueden fallar o dar resultados inconsistentes.
Ejemplo: Resumiendo un contrato legal de 50 páginas
Imagina que eres un abogado o un analista de negocios y necesitas resumir un contrato legal de 50 páginas para identificar las cláusulas clave sobre responsabilidad y plazos de entrega. Decides usar un LLM para acelerar el proceso.
1. **Tu prompt:** "Eres un analista legal experto. Resume este contrato legal de 50 páginas. Enfócate en las cláusulas de responsabilidad, plazos de entrega y penalizaciones por incumplimiento."
2. **El contrato:** Un documento de 50 páginas, que, al ser tokenizado, fácilmente podría superar los 30.000 o 40.000 tokens (considerando que una página típica puede tener 500-800 palabras, y cada palabra puede ser 1.5 tokens).
3. **El modelo:** Estás usando un modelo con una ventana de contexto de 8.000 tokens (un tamaño común en muchos modelos accesibles).
**¿Qué sucede internamente?**
* El modelo comienza a procesar tu prompt y el inicio del contrato.
* A medida que "lee" las primeras páginas del contrato, los tokens se van acumulando en su ventana de contexto.
* Cuando el modelo llega, digamos, a la página 10 o 15, su ventana de contexto ya está casi llena.
* A medida que el modelo continúa procesando las páginas 16, 17, 18 y así sucesivamente, los tokens más antiguos (correspondientes a las páginas 1, 2, 3...) son "expulsados" de la ventana de contexto para dar espacio a los nuevos. Es decir, el modelo "olvida" lo que leyó al principio.
* Para cuando el modelo está procesando las páginas 40-50, donde quizás se detallan las penalizaciones por incumplimiento, ya ha olvidado por completo los detalles de las partes del contrato, las definiciones iniciales o incluso algunas cláusulas de responsabilidad que se encontraban en las primeras páginas.
**El resultado:**
El resumen que te entregará el modelo será, en el mejor de los casos, incompleto y, en el peor, engañoso. Podría enfocarse casi exclusivamente en las últimas secciones del contrato, dando una visión sesgada o perdiendo información crítica. Por ejemplo, podría describir las penalizaciones, pero sin mencionar quién es responsable de qué, o citar plazos de entrega que dependen de una condición definida en la página 5, la cual el modelo ya "olvidó".
Esto no es un fallo del modelo en sí, sino una limitación inherente a su arquitectura y a la forma en que lo usamos. Al exceder su ventana de contexto, le pedimos que haga algo para lo que no está diseñado directamente en una sola interacción.
Errores comunes
Entender los tokens y la ventana de contexto es fundamental, pero muchos profesionales cometen errores al principio. Aquí te presento los más comunes y cómo evitarlos:
- Asumir que la IA "lee" como un humano:
- Error: Pensar que el modelo tiene una comprensión holística de un documento completo, sin importar su longitud, como lo haría una persona que lee de principio a fin y retiene toda la información.
- Cómo evitarlo: Recuerda que la IA procesa por tokens dentro de una ventana limitada. Si el texto es largo, el modelo "olvida" las partes iniciales a medida que avanza.
- Ignorar el límite de tokens del modelo:
- Error: Enviar textos muy largos a un modelo sin verificar si superan su ventana de contexto, esperando un resumen o análisis completo.
- Cómo evitarlo: Conoce el límite de tokens del modelo que utilizas. Si trabajas con documentos extensos, asume que necesitarás estrategias de manejo de contexto (como la fragmentación o el resumen iterativo, que veremos más adelante).
- Olvidar que el output también consume tokens:
- Error: Calcular solo los tokens del prompt de entrada y no considerar que la respuesta generada por el modelo también cuenta para la ventana de contexto total.
- Cómo evitarlo: Planifica el tamaño de tu respuesta esperada. Si pides un resumen detallado de un texto que ya ocupa gran parte de la ventana, es posible que el modelo no tenga espacio suficiente para generar una respuesta completa.
- Pagar de más por desconocimiento:
- Error: Enviar prompts excesivamente largos o redundantes, o usar modelos con ventanas de contexto enormes para tareas simples, incurriendo en costos innecesarios.
- Cómo evitarlo: Optimiza tus prompts para ser concisos y directos. Utiliza el modelo y la ventana de contexto adecuados para la complejidad de la tarea. No siempre el modelo más grande es el mejor o el más económico.
Tu tarea
Para que empieces a familiarizarte con el concepto de tokenización de forma práctica, te propongo el siguiente ejercicio:
- Encuentra un visualizador de tokens: Busca en línea "OpenAI Tokenizer" o "Anthropic Tokenizer" o simplemente "token counter online". Hay varias herramientas gratuitas disponibles que te permiten pegar texto y ver cómo se tokeniza.
- Prepara un texto: Copia un párrafo de un correo electrónico que hayas escrito recientemente, un fragmento de un informe, o cualquier texto de unas 5 a 10 líneas que sea tuyo.
- Pega el texto en el visualizador: Observa cómo la herramienta divide tu texto en tokens. Nota que las palabras no siempre son un solo token, y que los signos de puntuación o espacios pueden ser tokens separados.
- Cuenta los tokens: La herramienta te dará un recuento total. Anota cuántos tokens tiene tu párrafo.
- Reflexiona: Piensa en cómo este pequeño fragmento escalaría si fuera un documento de varias páginas. Si tu párrafo de 5-10 líneas ya tiene 50-100 tokens, ¿cuántos tokens tendría un informe de 10 páginas? ¿Y un contrato de 50? Empieza a intuir el consumo de tokens de tus prompts y la relevancia de la ventana de contexto para tus tareas diarias.