Qué es
La ventana de contexto es la memoria de trabajo del modelo para una única solicitud: el número máximo de tokens que puede tener en cuenta a la vez. Se comparte entre todo — el prompt del sistema, cada turno anterior de la conversación, cualquier documento colocado en el prompt, el nuevo mensaje y la respuesta que el modelo está escribiendo. Cualquier cosa que no quepa, simplemente no se ve.
Las ventanas han crecido rápidamente, desde un par de miles de tokens en los primeros modelos hasta cientos de miles, y alrededor de un millón en algunos modelos actuales. El tamaño está determinado por cómo se construyó y entrenó el modelo; el ajuste fino no lo cambia.
Cómo funciona
Un transformer lee su entrada en paralelo y, en cada capa, permite que cada token mire hacia atrás a todos los tokens anteriores mediante un mecanismo llamado atención. Eso es lo que permite que una respuesta dependa de un detalle muy anterior en la conversación. También es la razón por la que los contextos largos son costosos: en la atención estándar, el cálculo crece con el cuadrado de la longitud, y la memoria utilizada para mantener la conversación a la vista mientras se genera crece con cada token.
La respuesta también cuenta. Si un modelo tiene una ventana de 128 000 tokens y la entrada tiene una longitud de 126 000 tokens, solo quedan 2000 tokens para la respuesta. La mayoría de las API también limitan la longitud de la salida por separado.
Más grande no equivale a mejor
Un modelo puede aceptar una entrada larga sin hacer un buen uso de toda ella. Los estudios sobre contextos largos revelan que los modelos utilizan la información al principio y al final de la entrada de forma más fiable que la información oculta en el medio, y que muchos modelos que anuncian ventanas muy largas pierden precisión mucho antes de su límite declarado. Tanto para el entrenamiento como para el uso, un contexto corto y relevante suele funcionar mejor que uno largo y de relleno.
El límite de entrenamiento por ejemplo
El entrenamiento añade un segundo límite: el límite de tokens por ejemplo, el registro individual más largo con el que un proveedor entrenará. A menudo es menor que la ventana de contexto del modelo, porque entrenar con un registro largo requiere mucha más memoria que responder a uno. Un registro que supere el límite debe acortarse o excluirse.
- Un registro tiene un prompt del sistema de 300 tokens, 14 intercambios anteriores de unos 600 tokens cada uno, y una pregunta final más una respuesta objetivo de 400 tokens: 300 + 8400 + 400 = 9100 tokens.
- El límite por ejemplo del proveedor para este modelo es de 8192 tokens, por lo que el registro tiene 908 tokens de más.
- El recorte elimina primero los intercambios más antiguos. Al descartar dos de ellos (unos 1200 tokens), el registro se reduce a aproximadamente 7900 tokens.
- El prompt del sistema, los doce intercambios más recientes y la respuesta objetivo se conservan, de modo que el modelo sigue aprendiendo la respuesta en la situación que la produjo.
Errores comunes
- Asumir que un modelo con una ventana de contexto grande se entrenará con registros igual de largos.
- Olvidar que la respuesta debe caber en la ventana junto con la entrada.
- Llenar el prompt con todos los documentos disponibles bajo la teoría de que más contexto siempre es mejor.
- Descartar conversaciones largas por completo cuando recortar los turnos más antiguos habría conservado un objetivo útil.
Referencias y lecturas adicionales
Las fuentes externas se abren en una pestaña nueva.
- 01Lost in the Middle: How Language Models Use Long ContextsLiu et al., 2023 · arXiv · arxiv.orgMuestra que la información en el medio de una entrada larga se utiliza de forma menos fiable.
- 02RULER: What's the Real Context Size of Your Long-Context Language Models?Hsieh et al., 2024 · arXiv · arxiv.orgMide hasta qué punto por debajo de sus ventanas anunciadas los modelos siguen siendo fiables.
- 03Attention Is All You NeedVaswani et al., 2017 · arXiv · arxiv.orgEl artículo sobre transformers, de donde proviene la atención sobre todo el contexto.
- 04Context windowsClaude Platform Docs · platform.claude.comLa explicación de un proveedor sobre cómo la entrada y la salida comparten la ventana.