Portátiles SLIMBOOK
Entradas Mensuales
Síguenos en:
Canal Oficial Telegram de elhacker.NET Grupo Facebook elhacker.NET Twitter elhacker.NET Canal Youtube elhacker.NET Comunidad Steam: Grupo elhacker.NET Mastodon

Entradas populares

PostHeaderIcon ¿Qué es una ventana de contexto en un LLM?


La ventana de contexto (o "longitud de contexto") de un modelos de lenguaje de gran tamaño (LLM) es la cantidad de texto, en token, que el modelo puede considerar o "recordar" en cualquier momento. De forma sencilla podemos definir la ventana de contexto de un Gran Modelo de Lenguaje como la cantidad de tokens que el modelo puede procesar al momento de interpretar una secuencia de texto.





¿Qué es una ventana de contexto?


La ventana de contexto (o «longitud de contexto») de un gran modelo lingüístico (LLM) es la cantidad de texto, en tokens, que el modelo puede considerar o «recordar» en un momento dado. Una ventana de contexto mayor permite a un modelo de IA procesar entradas más largas e incorporar una mayor cantidad de información en cada salida.

La ventana de contexto de un LLM puede considerarse el equivalente de su memoria de trabajo. Determina la duración de una conversación que puede mantener sin olvidar detalles anteriores. También determina el tamaño máximo de los documentos o muestras de código que puede procesar a la vez. Cuando un mensaje, una conversación, un documento o una base de código superan la ventana de contexto de un modelo de inteligencia artificial, deben truncarse o resumirse para que el modelo pueda continuar. 

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 más coherentes del modelo, conversaciones más largas y una mayor capacidad para analizar secuencias de datos más largas. Sin embargo, el aumento de la longitud del contexto no está exento de inconvenientes: a menudo conlleva un aumento de los requisitos de potencia computacional -y, por tanto, de los costes- y un aumento potencial de la vulnerabilidad a los ataques de adversarios.





Ventanas de contexto y tokenización


En el mundo real, la longitud de contexto de un modelo lingüístico no se mide en palabras, sino en tokens. Para entender 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 distinta de la forma en que lo hacen los humanos. Mientras que la unidad de información más pequeña que utilizamos para representar el lenguaje es un solo carácter -como una letra, un número o un signo de puntuación-, la unidad de lenguaje más pequeña que utilizan los modelos de IA es un token. Para entrenar un modelo que comprenda el lenguaje, se asigna a cada token un número de identificación; estos números de identificación, en lugar de las palabras o incluso los propios tokens, se utilizan para entrenar el modelo. Esta tokenización del lenguaje reduce significativamente la potencia de cálculo necesaria para procesar y aprender del texto.

La cantidad de texto que puede representar un token es muy variada: un token puede representar un solo carácter, una parte de una palabra (como un sufijo o prefijo), una palabra entera o incluso una frase corta de varias palabras. Considere los distintos papeles que desempeña la letra «a » en los siguientes ejemplos:


«Jeff conducía un coche». 


Aquí, la «un» es una palabra entera. En esta situación, estaría representada por un token distinto.


«Jeff es un amoral».


Aquí, «un» no es una palabra, pero su adición a moral cambia significativamente el significado de la palabra. Por lo tanto, amoral se representaría con dos fichas distintas: una ficha para a y otra para moral.


«Jeff ama a su gato».


Aquí, a es simplemente una letra de la palabra «gato». No tiene significado semántico en sí misma y, por tanto, no necesita ser representada por un token distinto.

Por ejemplo, en la frase “El perro está jugando mientras que el gato acaba de comer y ahora duerme plácidamente” para determinar a qué sujeto se refiere la palabra “duerme” la Red Transformer debe analizar la totalidad del texto y la relaciones entre palabras a diferentes niveles para determinar en últimas que el sujeto es el gato y no el perro.

Así que en últimas el contexto es la relación que existe entre las diferentes palabras y que permite interpretar y codificar adecuadamente la información del texto analizado por el modelo.

Teniendo claro este sencillo concepto, ahora sí podemos ver qué son las ventanas de contexto.

No existe un «tipo de cambio» fijo entre palabra y token, y distintos modelos o tokenizadores -un subconjunto modular de un modelo más amplio responsable de la tokenización- pueden tokenizar el mismo pasaje de escritura de forma diferente. Una tokenización eficaz puede ayudar a aumentar la cantidad real de texto que cabe dentro de los límites de una ventana contextual. Pero para fines generales, una estimación decente sería aproximadamente 1,5 tokens por palabra. El Tokenizer Playground en Hugging Face es una manera fácil de ver y experimentar con cómo los diferentes modelos tokenizan las entradas de texto.

No existe un «tipo de cambio» fijo entre palabra y token, y distintos modelos o tokenizadores -un subconjunto modular de un modelo más amplio responsable de la tokenización- pueden tokenizar el mismo pasaje de escritura de forma diferente. Una tokenización eficaz puede ayudar a aumentar la cantidad real de texto que cabe dentro de los límites de una ventana contextual. Pero para fines generales, una estimación decente sería aproximadamente 1,5 tokens por palabra. El Tokenizer Playground de Hugging Face es una forma sencilla de ver y experimentar cómo los distintos modelos tokenizan las entradas de texto.

Las variaciones en la estructura lingüística y la representación en los datos de entrenamiento pueden dar lugar a que algunos idiomas se tokenicen más eficientemente que otros. Por ejemplo, un estudio de octubre de 2024 exploró un ejemplo de la misma frase tokenizada tanto en inglés como en telugu. A pesar de que la traducción al telugu tenía muchos menos caracteres que su equivalente en inglés, el número de tokens en contexto era 7 veces mayor.


¿Por qué los modelos tienen una longitud de contexto máxima?


Aunque las ventanas de contexto suelen asociarse a los LLM utilizados para resumir, generar texto y otras tareas de procesamiento del lenguaje natural (PLN), la longitud de 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 aprendizaje automático que utilice la arquitectura de transformador, que comprende la mayoría de los modelos de IA generativa modernos, incluidos casi todos los LLM.

Los modelos de transformador utilizan un mecanismo de autoatención para calcular las relaciones y dependencias entre las distintas partes de una entrada (como las palabras al principio y al final de un párrafo). En términos matemáticos, un mecanismo de autoatención calcula vectores de pesos para cada token en una secuencia de texto, en la que cada peso representa la relevancia de ese token con respecto a otros en la secuencia. Un LLM autorregresivo consulta iterativamente esas ponderaciones cada vez que genera la siguiente palabra de su salida. 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 un momento dado.

Cabe señalar que el texto de la entrada real del usuario no suele ser lo único que ocupa espacio en la ventana contextual de un modelo. En muchos casos, como en los chatbots, los modelos también reciben una «indicació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 de recuperación (RAG) 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 lingüísticos no son las únicas redes neuronales que utilizan 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 píxeles de una imagen. En un modelo de este tipo, la longitud del contexto se aplicaría al número de píxeles cuyas relaciones debe comprender el modelo. Su ventana de contexto podría verse superada por una imagen de alta resolución que contuviera demasiados píxeles para procesarlos a la vez.

Ventanas contextuales y recursos informáticos


Equipar un modelo con una ventana de contexto grande tiene un coste, tanto figurado como literal. Los requisitos de cálculo aumentan cuadráticamente con la longitud de la secuencia: por ejemplo, si el número de fichas de entrada se duplica, el modelo necesita 4 veces más potencia de procesamiento para manejarlo.

Del mismo modo, el aumento de la longitud del contexto también puede ralentizar los resultados. Cada vez que el modelo predice autorregresivamente 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 es problemático para los casos de uso que requieren una inferencia casi instantánea en tiempo real.

Los recientes avances en la longitud media de los contextos de los modelos lingüísticos han sido posibles en parte gracias a nuevas técnicas que aumentan la velocidad y la eficacia de la inferencia lo suficiente como para compensar estas desventajas inherentes. Estas técnicas de optimización han permitido que incluso pequeños LLM modernos de código abierto ofrezcan ventanas de contexto exponencialmente mayores que las del modelo GPT-3.5 original que lanzó el ChatGPT de OpenAI a finales de 2022.

¿Y si el texto es demasiado extenso?

Bien, ya tenemos claro qué es la ventana de contexto. Pero entonces, ¿qué sucedería si en una cierta aplicación que estemos desarrollando introducimos un texto que supere el tamaño de la ventana de contexto del modelo de lenguaje?

Pues simplemente el modelo no logrará ni siquiera procesar este texto, y mucho menos generar una respuesta.

Por ejemplo, supongamos que queremos usar ChatGPT para que nos genere el resumen del texto completo de “Don Quijote de la Mancha”. Entonces copiamos y pegamos el texto completo y le pedimos que haga el resumen.

Y al hacer la solicitud a ChatGPT vemos que nos genera un mensaje de error indicando que el texto introducido es demasiado extenso. Es decir que ni siquiera nos genera una respuesta.

Lo que ocurre en este caso es que el texto completo de “Don Quijote” contiene más de 2 millones de caracteres, es decir más de 226.000 tokens. Y como la ventana de contexto de GPT-3.5, el modelo usado por ChatGPT, es de 4.096 tokens pues simplemente no resulta posible procesar este texto.

En otras ocasiones lo que puede ocurrir es que si el texto excede el límite de la ventana de contexto, el modelo simplemente lo trunca a la entrada para asegurar que exista espacio para generar la respuesta. Sin embargo, es muy probable que la respuesta del modelo no sea la esperada pues el texto de entrada estará incompleto.

¿Cómo procesar textos muy extensos?

Acabamos de ver que es clave que el texto a procesar o generar sea acorde con el tamaño de la ventana de contexto.

Pero en ocasiones tendremos un texto relativamente extenso y queremos que sea procesado por uno de estos modelos. Así que siempre el primer paso es asegurarnos de que el modelo tenga una ventana de contexto adecuada para la longitud del texto a procesar.

Por ejemplo, modelos como GPT-3.5 y 4.0 tienen ventanas de contexto que van de los 4.096 a los 32.768 tokens, pero recientemente modelos como Claude, de la empresa Anthropic, tienen ventanas de contexto de hasta 100.000 tokens. Así que en principio existen diferentes alternativas y tamaños de ventanas de contexto que se ajustan a nuestras necesidades.

Sin embargo, en ocasiones el texto a procesar puede incluso superar estos límites de los modelos existentes, así que en estos casos existen algunas alternativas para lograr hacer el procesamiento.

La primera de ellas es simplemente dividir el texto en pequeños fragmentos (lo que se conoce como chunking) donde cada fragmento que no supera el de la ventana de contexto del modelo a usar.

Otra alternativa es combinar el chunking con la generación de resúmenes: por cada fragmento de texto se genera un breve resumen y luego todos los resúmenes se concatenan en un nuevo texto, de menor extensión que el original y que puede caber en la ventana de contexto.

Y una tercera alternativa es el uso de bases de datos vectoriales. En un próximo artículo hablaré de este tipo de bases de datos pero la idea general es que lo que se hace es tomar el texto extenso y representarlo usando lo que se conoce como embeddings que son simplemente vectores o arreglos de números.

De estos embeddings también hablé en detalle anteriormente en un artículo, pero lo importante acá es que al usarlos logramos representar el texto de forma compacta a través de vectores.

Y generalmente con estas técnicas lograremos evitar las limitaciones impuestas por las ventanas de contexto.



Retos de las ventanas de contexto largas


Incluso cuando se toman las medidas adecuadas para compensar las compensaciones en cuanto a requisitos de cálculo y velocidad de procesamiento, ampliar el límite de longitud de contexto de un modelo introduce retos y complicaciones adicionales.
 

Problemas de rendimiento


Al igual que las personas, los LLM pueden sentirse abrumados por la abundancia de detalles adicionales. También pueden volverse perezosos y tomar atajos cognitivos. Un artículo de 2023 descubrió que los LLM no «hacen un uso robusto de la información en contextos de entrada largos». Más concretamente, los autores observaron que los modelos funcionan mejor cuando la información relevante se encuentra hacia el principio o el final del contexto de entrada. Además, observaron que el rendimiento disminuye cuando el modelo debe tener muy en cuenta la información en medio de contextos largos.1

Los nuevos métodos para mejorar la eficacia del propio mecanismo de autoatención del transformador, como la incrustación de posición rotatoria (RoPE), pretenden modificar la codificación posicional de los tokens en los vectores de atención. La adopción generalizada de métodos basados en RoPE ha permitido mejorar el rendimiento y la velocidad en tareas que implican fichas situadas a gran distancia unas de otras.

Las investigaciones en curso han dado lugar a una serie de pruebas de referencia diseñadas para medir la capacidad de un LLM para encontrar y utilizar eficazmente información relevante con grandes pasajes, como needle-in-a-haystack (NIAH), RULER y LongBench.

Retos de seguridad y ciberseguridad

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 provocaciones adversarias. Una investigación reciente de Anthropic ha demostrado que aumentar la duración del contexto de un modelo también aumenta su vulnerabilidad al «jailbreaking» y (posteriormente) a ser provocado para producir respuestas dañinas


Tamaños de ventana de contexto de LLM destacados


La ventana de contexto media de un gran modelo lingüístico ha crecido exponencialmente desde que se lanzaron los transformadores generativos preentrenados (GPT) originales. Hasta la fecha, cada generación sucesiva de LLM ha implicado normalmente longitudes de contexto significativamente mayores. En la actualidad, la mayor ventana de contexto ofrecida por un modelo comercial destacado supera el millón de tokens. Queda por ver si las ventanas de contexto seguirán ampliándose o si ya nos estamos acercando al límite superior de la necesidad práctica.  

Como referencia, aquí están las longitudes de contexto actuales ofrecidas por algunos modelos y familias de modelos comúnmente citados a partir de octubre de 2024.
Serie GPT de OpenAI:

  •  El modelo GPT-3.5 que impulsó el lanzamiento de ChatGPT tenía una longitud máxima de contexto de 4.096 tokens, ampliada posteriormente a 8.192 tokens con GPT-3.5-Turbo.
  •  En su lanzamiento, GPT-4 tenía la misma longitud de contexto de 8.192 tokens. Aunque la ventana de contexto de GPT-4 y GPT-4-Turbo se ha ampliado desde entonces a 128.000 tokens, su máximo de tokens de salida sigue estando limitado a 4.096 tokens.
  • Tanto GPT-4o como GPT-4o mini tienen una ventana de contexto de 128.000 tokens, con un límite de salida de 16.384 tokens.

La nueva familia de modelos o1 también ofrece una ventana de contexto de 128.000 tokens, aunque la longitud del contexto de salida es mayor.

Modelos Meta Llama



Los modelos Llama originales tenían una longitud máxima de contexto de 2.048 fichas, que se duplicó a 4.096 fichas para Llama 2. Durante su lanzamiento en abril de 2024, los modelos Llama 3 ofrecían una ventana de contexto de aproximadamente 8.000 tokens.

La longitud del contexto de Llama aumentó significativamente con el lanzamiento de los modelos Llama 3.1, que ofrecían ventanas de contexto de 128.000 tokens de longitud. Los modelos Llama 3.2 también tienen una longitud de contexto máxima de 128.000 tokens.

Mistral Large 2


Mistral Large 2, el modelo estrella ofrecido por Mistral AI, tiene una ventana de contexto de 128.000 tokens.

Modelos Gemini de Google


La serie de modelos Gemini de Google ofrece la mayor ventana de contexto entre los modelos lingüísticos comerciales. Gemini 1.5 Pro, el modelo estrella de Google, ofrece una longitud de contexto de hasta 2 millones de tokens. Otros modelos Gemini 1.5, como Gemini 1.5 Flash, tienen una ventana de contexto de 1 millón de tokens.

Los modelos Claude de Anthropic


Los últimos modelos Claude de Anthropic, como el Claude 3.5 Sonnet, ofrecen una ventana de contexto estándar de unos 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.

Fuentes:

0 comentarios :

Publicar un comentario

Los comentarios pueden ser revisados en cualquier momento por los moderadores.

Serán publicados aquellos que cumplan las siguientes condiciones:
- Comentario acorde al contenido del post.
- Prohibido mensajes de tipo SPAM.
- Evite incluir links innecesarios en su comentario.
- Contenidos ofensivos, amenazas e insultos no serán permitidos.

Debe saber que los comentarios de los lectores no reflejan necesariamente la opinión del STAFF.