Ventanas de contexto en LLMs
El Horizonte en Expansión: Un Análisis Exhaustivo de las Ventanas de Contexto en los Modelos Lingüísticos Grandes (LLMs)
Parte I: Conceptos Fundamentales: La Arquitectura de la Memoria de los LLM
Esta sección establece los principios fundamentales que rigen la ventana de contexto, pasando de una analogía de alto nivel a los mecanismos técnicos específicos que definen su función y limitaciones.
1.1. Definiendo la Ventana de Contexto: La Memoria de Trabajo de un LLM
El concepto central que subyace al funcionamiento de los Modelos Lingüísticos Grandes (LLM, por sus siglas en inglés) es la "ventana de contexto". Este término, también conocido como "longitud de contexto", se refiere a la cantidad máxima de texto que un modelo puede considerar en un único momento. De manera análoga a la memoria a corto plazo o de trabajo de un ser humano, la ventana de contexto determina la cantidad de información que el modelo puede "recordar" para procesar una entrada y generar una respuesta coherente. Su tamaño es un factor crítico que define la capacidad del modelo para mantener conversaciones extensas sin olvidar detalles previos, así como el volumen máximo de documentos o código que puede analizar de una sola vez.
Desde una perspectiva arquitectónica, la ventana de contexto está intrínsecamente ligada a la arquitectura Transformer, que es la base de la mayoría de los LLM modernos. Dentro de esta arquitectura, la ventana de contexto define la longitud máxima de la secuencia sobre la cual puede operar el mecanismo de autoatención. Este mecanismo es fundamental, ya que calcula las relaciones y dependencias entre todos los tokens (unidades de texto) dentro de la ventana, permitiendo al modelo comprender el contexto global de una consulta. El tamaño de la ventana, por lo tanto, dicta el número máximo de tokens a los que el modelo puede "prestar atención" simultáneamente.
Es crucial entender que la ventana de contexto no se limita a albergar únicamente la consulta inmediata del usuario. Es un lienzo computacional dinámico que contiene una composición de varios elementos, cada uno consumiendo una porción de su capacidad finita:
- Entrada/Prompt del Usuario: El texto explícito proporcionado por el usuario para una tarea específica.
- Historial de la Conversación: En aplicaciones de chatbot, para mantener la coherencia del diálogo, el historial completo de la conversación (o una versión truncada) se reintroduce en la ventana de contexto con cada nueva interacción.
- Prompt del Sistema: Instrucciones a menudo ocultas para el usuario que gobiernan el comportamiento del modelo, su personalidad, tono y reglas operativas.
- Datos Recuperados (RAG): En los sistemas de Generación Aumentada por Recuperación (RAG), la información obtenida de bases de conocimiento externas se inserta en el contexto para fundamentar la respuesta del modelo en datos fácticos y actualizados.
- Formato y Caracteres Especiales: Elementos como saltos de línea, tokens especiales de control y otros caracteres de formato también ocupan espacio dentro de la ventana.
Esta composición revela que la ventana de contexto no es un simple búfer de memoria estático, sino un espacio de recursos limitado donde compiten diferentes tipos de información. La inclusión de cada elemento, ya sea el historial de la conversación o los datos de RAG, no solo ocupa espacio, sino que también incrementa la carga computacional. Esto transforma la "ingeniería de prompts" en una disciplina más compleja de "ingeniería de contexto": la asignación estratégica de recursos bajo restricciones para optimizar el rendimiento y el costo.
1.2. El Lenguaje de las Máquinas: Comprendiendo la Tokenización
Los LLM no operan directamente sobre el texto en bruto, sino sobre representaciones numéricas de "tokens". La tokenización es el proceso fundamental de descomponer el texto en estas unidades más pequeñas, que pueden ser palabras completas, sub-palabras, caracteres individuales o signos de puntuación. Cada token único en el vocabulario del modelo se mapea a un identificador numérico, transformando así el lenguaje humano en un formato que la máquina puede procesar.
Para el idioma inglés, una regla general comúnmente citada es que 1 token equivale aproximadamente a 0.75 palabras o 4 caracteres. Sin embargo, esta estimación es altamente dependiente del idioma. Lenguas con una morfología más compleja, como el alemán, o aquellas con diferentes conjuntos de caracteres, como el español, a menudo requieren más tokens para representar la misma cantidad de información. Por ejemplo, la frase en español "¿Cómo estás?" contiene 5 tokens para 10 caracteres. Esta discrepancia crea un "impuesto lingüístico" que puede hacer que el uso de la API sea más costoso para textos que no están en inglés.
Además, los diferentes proveedores de LLM emplean algoritmos de tokenización y vocabularios distintos, como el Byte Pair Encoding (BPE), WordPiece o SentencePiece. Esto significa que un mismo texto puede ser dividido en un número diferente de tokens por modelos de OpenAI, Google o Cohere, lo que tiene un impacto directo tanto en el rendimiento como en el costo de las aplicaciones. Para los desarrolladores que construyen soluciones multiplataforma, esta variabilidad es una consideración técnica crítica que debe ser gestionada cuidadosamente.
Ver investigación completa: