La ventana de contexto (o "longitud de contexto") de un modelo de lenguaje grande (LLM) es la cantidad de texto, en tokens, que el modelo puede considerar o "recordar" en cualquier momento. Una ventana de contexto más grande permite que un modelo de IA procese entradas más largas e incorpore una mayor cantidad de información en cada salida.
La ventana de contexto de un LLM se puede considerar como el equivalente de su memoria de trabajo. Determina la duración de una conversación que puede llevar a cabo sin olvidar los detalles de anteriores en el intercambio. También determina el tamaño máximo de documentos o muestras de código que puede procesar a la vez. Cuando una instrucción, una conversación, un documento o una base de código supera la ventana de contexto de un modelo de inteligencia artificial, se debe truncar o resumir para que el modelo continúe.
En términos generales, aumentar el tamaño de la ventana de contexto de un LLM se traduce en una mayor precisión, menos alucinaciones, respuestas de modelos más coherentes, conversaciones más largas y una capacidad mejorada para analizar secuencias de datos más largas. Sin embargo, el aumento de la longitud del contexto no está exento de compensaciones: a menudo, implica mayores requerimientos de potencia computacional y, por lo tanto, mayores costos, y un posible aumento de la vulnerabilidad a los ataques adversarios.
En términos del mundo real, la longitud del contexto de un modelo de lenguaje no se mide en palabras, sino en tokens. Para comprender cómo funcionan las ventanas de contexto en la práctica, es importante comprender cómo funcionan estos tokens.
La forma en que los LLM procesan el lenguaje es fundamentalmente diferente de la forma en que lo hacen los humanos. Mientras que la unidad de información más pequeña que empleamos para representar el lenguaje es un solo carácter,como una letra, un número o un signo de puntaje, la unidad de lenguaje más pequeña que usan los modelos de IA es un token. Para entrenar un modelo para que comprenda el lenguaje, a cada token se le asigna un número de identificación; estos números de identificación, en lugar de las palabras o incluso los tokens en sí, se usan para entrenar el modelo. Esta tokenización del lenguaje reduce significativamente la potencia computacional necesaria para procesar y aprender del texto.
Existe una amplia variación en la cantidad de texto que puede representar un token: un token puede representar un solo carácter, una parte de una palabra (como un sufijo o prefijo), una palabra completa o incluso una frase corta de varias palabras. Considere las diferentes funciones que cumple la letra “a ” en los siguientes ejemplos:
“Jeff manejaba un automóvil”.Aquí,a es una palabra completa. En esta situación, estaría representada por un token distinto.
“Jeff es amoral”.Aquí,a no es una palabra, pero cuando se agrega amoral, cambia drásticamente el significado de la palabra.Amoral. Por lo tanto, estaría representada por dos tokens distintos: un token paraa y otro paramoral .
“Jeff ama a su gato”.Aquí,a es simplemente una letra de la palabragato . No tiene ningún significado semántico en sí mismo y, por lo tanto, no necesitaría estar representada por un token distinto.
No existe un "tipo de cambio" fijo de palabra a token, y diferentes modelos o tokenizadores (un subconjunto modular de un modelo más grande responsable de la tokenización) podrían tokenizar el mismo pasaje de escritura de manera diferente. La tokenización eficiente puede ayudar a aumentar la cantidad real de texto que cabe dentro de los límites de una ventana de contexto. Pero, para fines generales, una estimación decente sería de aproximadamente 1.5 tokens por palabra. Tokenizer Playgroundde Hugging Face es una manera fácil de ver y experimentar cómo los diferentes modelos tokenizan las entradas de texto.
Las variaciones en la estructura lingüística y la representación en los datos de entrenamiento pueden hacer que algunos idiomas se tokenicen de manera más eficiente que otros. Por ejemplo, un estudio de octubre de 2024 exploró un ejemplo de la misma oración tokenizada tanto en inglés como en telugu. A pesar de que la traducción al telugu tiene significativamente menos caracteres que su equivalente en inglés, resultó en más de 7 veces la cantidad de tokens en contexto.
Aunque las ventanas de contexto suelen asociarse a los LLM utilizados para resumir, generar texto y otras tareas de procesamiento de lenguaje natural, la longitud del contexto como consideración técnica no es exclusiva de los modelos lingüísticos. La noción de ventana de contexto es relevante para cualquier modelo de machine learning que use la arquitectura transformadora, que comprende la mayoría de los modelos modernos de IA generativa, incluidos casi todos los LLM.
Los modelos transformadores emplean un mecanismo de autoatención para calcular las relaciones y dependencias entre diferentes partes de una entrada (como palabras al principio y al final de un párrafo). Matemáticamente hablando, un mecanismo de autoatención calcula vectores de pesos para cada token en una secuencia de texto, en la que cada peso representa cuán relevante es ese token para otros en la secuencia. Un LLM autorregresivo consulta iterativamente esos pesos cada vez que genera la siguiente palabra de su resultados. El tamaño de la ventana de contexto determina el número máximo de tokens a los que el modelo puede "prestar atención" en cualquier momento.
Cabe señalar que el texto de la entrada real del usuario no suele ser lo único que ocupa espacio en la ventana de contexto de un modelo. En muchos casos, como en los chatbots, los modelos también reciben una “instrucción del sistema", a menudo oculta para el usuario, que condiciona su comportamiento y rige otros aspectos de la conversación. La información complementaria extraída de fuentes de datos externas para la generación aumentada por recuperación también se almacena en la ventana de contexto durante la inferencia. Los caracteres especiales, los saltos de línea y otras medidas de formato también consumen parte del contexto disponible.
También cabe señalar que los modelos de lenguaje no son las únicas redes neuronales que usan transformadores. Por ejemplo, algunos modelos de difusión utilizados para la generación de imágenes incorporan la autoatención en su arquitectura. En su caso, el contexto al que se presta atención no es entre tokens que representan palabras (o partes de palabras) en un contenido escrito, sino entre pixeles de una imagen. En un modelo de este tipo, la longitud del contexto se aplicaría al número de pixeles cuyas relaciones debe comprender el modelo. Su ventana de contexto podría verse superada por una imagen de alta resolución que contuviera demasiados pixeles para procesarlos a la vez.
Equipar un modelo con una gran ventana de contexto tiene un costo, tanto en sentido figurado como literal. Los requerimientos informáticos escalan cuadráticamente con la longitud de una secuencia: por ejemplo, si el número de tokens de entrada se duplica, el modelo necesita 4 veces más potencia para manejarlo
Del mismo modo, el aumento de la longitud del contexto también puede ralentizar los resultados. Cada vez que el modelo predice de manera autorregresiva el siguiente token de una secuencia, calcula las relaciones entre ese token y cada uno de los tokens precedentes de la secuencia. La inferencia puede ser relativamente rápida al principio de una secuencia o de una conversación, pero volverse progresivamente más lenta a medida que aumenta la longitud del contexto. Esto resulta problemático para los casos de uso que requieren una inferencia casi instantánea en tiempo real.
Los avances recientes en la longitud promedio del contexto para los modelos de lenguaje fueron parcialmente habilitados por nuevas técnicas para aumentar la velocidad de inferencia y la eficiencia como para compensar suficientemente estas compensaciones inherentes. Estas técnicas de optimización permitieron que incluso los LLM modernos pequeños y de código abierto ofrecieran ventanas de contexto exponencialmente más grandes que las del modelo GPT-3.5 original que lanzó ChatGPT de OpenAI a finales de 2022.
Incluso cuando se toman las medidas adecuadas para compensar los requisitos de cálculo y la velocidad de procesamiento, extender el límite de longitud del contexto de un modelo introduce desafíos y complicaciones adicionales.
Al igual que las personas, los LLM pueden verse saturados por una gran cantidad de detalles adicionales. También pueden volverse perezosos y tomar atajos cognitivos. Un documento de 2023 encontró que los LLM no "hacen un uso eficiente de la información en contextos de entrada largos". Específicamente, los autores observaron que los modelos funcionan mejor cuando la información relevante está hacia el principio o el final del contexto de entrada. Además, observaron que el rendimiento se degrada cuando el modelo debe considerar cuidadosamente la información en medio de contextos largos.1
Los métodos novedosos para mejorar la eficacia del propio mecanismo de autoatención del transformador, como la incrustación de posición rotativa (RoPE), tienen como objetivo modificar la codificación posicional de tokens en vectores de atención. La adopción generalizada de métodos basados en RoPE ha mejorado el rendimiento y la velocidad en tareas que involucran tokens a gran distancia entre sí.
La investigación en curso produjo una serie de puntos de referencia diseñados para medir la capacidad de un LLM para encontrar y emplear eficazmente información relevante con grandes pasajes, como needle-in-a-haystack (NIAH), RULER y LongBench.
Una ventana de contexto más larga también podría tener el efecto no deseado de presentar una superficie de ataque más larga para las instrucciones adversarias. Las investigaciones recientes de Anthropic demostraron que aumentar la longitud del contexto de un modelo también aumenta su vulnerabilidad al “jailbreaking” y (posteriormente) de provocación para producir respuestas dañinas.2
La ventana de contexto promedio de un modelo de lenguaje grande creció exponencialmente desde que se lanzaron los transformadores generativos preentrenados (GPT) originales. Hasta la fecha, cada generación sucesiva de LLM generalmente implicó longitudes de contexto significativamente más largas. En la actualidad, la ventana de contexto más grande que ofrece un modelo comercial destacado es de más de 1 millón de tokens. Queda por ver si las ventanas de contexto continuarán expandiéndose o si ya nos estamos acercando al límite superior de la necesidad práctica.
Como referencia, estas son las longitudes de contexto actuales que ofrecen algunos modelos y familias de modelos comúnmente citados a octubre de 2024.
La nueva familia de modelos o1 también ofrece una ventana de contexto de 128 000 tokens, aunque una mayor longitud de resultados.
Los modelos Llama originales tenían una longitud máxima de contexto de 2048 tokens, que se duplicó a 4096 tokens para Llama 2. Durante su lanzamiento en abril de 2024, los modelos Llama 3 ofrecieron una ventana de contexto de aproximadamente 8000 tokens.
La longitud del contexto de Llama se incrementó significativamente con el lanzamiento de los modelos de Llama 3.1, que ofrecían ventanas de contexto de 128 000 tokens. Los modelos de Llama 3.2 también tienen una longitud de contexto máxima de 128 000 tokens.
Mistral Large 2, el modelo insignia ofrecido por Mistral AI, tiene una ventana de contexto de 128 000 tokens.
La serie de modelos Gemini de Google ofrece lo que actualmente es la ventana de contexto más grande entre los modelos de lenguaje comercial. Gemini 1.5 Pro, el modelo insignia de Google, ofrece una longitud de contexto de hasta 2 millones de tokens. Otros modelos de Gemini 1.5, como Gemini 1.5 Flash, tienen una ventana de contexto de 1 millón de tokens.
Los modelos Claude de Anthropic más recientes, como Claude 3.5 Sonnet, ofrecen una ventana de contexto estándar de alrededor de 200 000 tokens. A principios de septiembre de 2024, Anthropic anunció que los modelos a los que se accede a través de su nuevo plan "Claude Enterprise" ofrecerían una ventana de contexto ampliada de 500 000 tokens.
1. "Lost in the Middle: How Language Models Use Long Contexts", arXiv, 6 de julio de 2023
2 "Many-shot jailbreaking," Anthropic, 2 de abril de 2024
Diseñe asistentes y agentes de IA escalables con facilidad, automatice tareas repetitivas y simplifique procesos complejos con IBM watsonx Orchestrate.
Acelere el valor de negocio de la inteligencia artificial con una cartera potente y flexible de bibliotecas, servicios y aplicaciones.
Reinvente los flujos de trabajo y las operaciones críticas añadiendo IA para maximizar las experiencias, la toma de decisiones en tiempo real y el valor empresarial.