Por qué es difícil escalar la longitud del contexto
Una ventana de contexto más larga suena como un mando simple de girar. Por debajo lucha contra un coste que crece más rápido que el texto, y una atención que se reparte.
La ventana de contexto es cuánto texto puede asimilar de una vez un modelo de lenguaje: el prompt, los documentos, la conversación hasta ese momento. Más grande es obviamente mejor: más espacio significa que puedes darle a un modelo un informe entero, una base de código larga o un historial de conversación completo sin dejar nada fuera. Entonces, ¿por qué no hacer enorme la ventana de cada modelo? Porque por dentro, la longitud no es un parámetro gratuito. Lucha contra el mecanismo mismo que hace funcionar a estos modelos, y el coste crece más rápido que el texto. Este artículo trata sobre por qué escalar el contexto es genuinamente difícil, no una mera cuestión de asignar más memoria.
En realidad hay dos problemas apilados uno sobre otro: un problema de coste y un problema de calidad. Ambos hay que resolverlos, y tiran en direcciones distintas.
El mecanismo que hace cara la longitud
La mayoría de los modelos de lenguaje modernos se construyen sobre la atención, el mecanismo que permite a cada token mirar a otros tokens para averiguar qué es relevante. La atención es lo que da a estos modelos su poder: cada pieza de la entrada puede, en principio, relacionarse con cualquier otra.
Esa frase —cada pieza con cualquier otra— es también el origen del problema. En la forma estándar de la atención, la cantidad de trabajo escala con el número de pares de tokens. Duplica la longitud de la entrada y no duplicas el trabajo; lo cuadruplicas aproximadamente, porque el número de pares crece con el cuadrado de la longitud. Este es el famoso coste cuadrático de la atención, y es la razón central por la que el contexto largo es caro.
La intuición es simple: si tienes N cosas y cada una debe considerar a todas las demás, tienes del orden de N por N relaciones que computar. Haz N diez veces mayor y las relaciones crecen cien veces. Una ventana diez veces más larga puede costar muchísimo más que diez veces más procesar. La longitud, en la atención, no es un gasto lineal.
El problema de memoria encima del problema de cómputo
El coste no tiene que ver solo con el cálculo; también con la memoria. Para procesar y especialmente para generar texto de forma eficiente, un modelo retiene representaciones intermedias de los tokens que ya ha visto, un almacén en marcha a menudo llamado caché clave-valor (key-value cache). Esta caché permite al modelo evitar recalcularlo todo desde cero para cada token nuevo.
El inconveniente es que este almacén crece con la longitud del contexto. Cuanto más larga la ventana, más de ella debe mantener el modelo en memoria rápida a la vez. Para contextos muy largos, esta huella de memoria puede convertirse en la restricción limitante: te quedas sin espacio para sostener el contexto antes de quedarte sin paciencia para el cómputo. Así que el contexto largo fuerza dos recursos escasos a la vez: el cómputo para relacionarlo todo y la memoria para sostenerlo todo. Diseñar sistemas de contexto largo es en gran medida una batalla en ambos frentes.
El problema más silencioso: la atención se reparte
Supón que pagas el coste y haces enorme la ventana. Aparece un segundo problema, más sutil, y tiene que ver con la calidad y no con el gasto. La atención funciona repartiendo el foco a lo largo de la entrada. Cuando hay solo unas pocas cosas a las que atender, el foco está concentrado. Cuando hay muchísimas, ese foco tiene que repartirse entre todas ellas, y las piezas verdaderamente relevantes pueden diluirse en un mar de irrelevantes.
Por tanto, un contexto largo puede hacer más difícil que un modelo encuentre y use el único detalle que importa, aunque el detalle esté técnicamente presente. La información está en la ventana, pero compite por la atención con todo lo demás de la ventana. Un pajar más grande no te ayuda a encontrar la aguja; puede enterrarla.
Por eso un modelo con una ventana muy larga no usa automáticamente bien esa ventana. Hay una diferencia real entre poder encajar una entrada larga y poder razonar sobre ella de forma efectiva. Lo primero tiene que ver con la capacidad; lo segundo, con si la atención todavía puede destacar lo que cuenta cuando hay tantísimo que considerar.
Perdido en el medio
Una versión particularmente conocida de este problema de calidad es la tendencia de los modelos a usar la información de forma desigual según dónde se sitúe en un contexto largo. El material cercano al principio y al final de una entrada larga suele usarse de forma más fiable que el material enterrado en el medio. Pon el dato crucial en el centro de un documento largo y el modelo puede pasarlo por alto en la práctica, aunque lo haya leído.
Este patrón —a veces descrito como que un modelo es más débil en el medio de su contexto— es un recordatorio de que una ventana larga no es una memoria uniforme y perfecta. Es un tramo de atención con su propia geografía de fortalezas y puntos débiles. Saber esto cambia cómo usas el contexto largo: colocar el material más importante donde el modelo atiende mejor, en lugar de suponer que toda posición es igual, es una palanca práctica que se deriva directamente del comportamiento subyacente.
Por qué no puedes simplemente entrenar con texto más largo
Podrías pensar que la solución es sencillamente entrenar el modelo con ejemplos muy largos hasta que aprenda a manejarlos. Ayuda, pero no sale gratis. Entrenar con secuencias largas hereda el mismo coste cuadrático, así que es caro exactamente del modo en que usar contexto largo es caro. Y un modelo entrenado mayormente con texto más corto puede no generalizar con elegancia cuando de repente se le muestra una entrada mucho más larga que cualquier cosa que viera en el entrenamiento: su sentido de la posición y la relevancia puede degradarse pasadas las longitudes familiares. Extender el contexto no es, por tanto, un interruptor que accionar; es una propiedad que hay que construir y pagar deliberadamente, tanto en el entrenamiento como en el servicio.
Cómo el campo empuja los límites
Como los obstáculos son reales, gran parte del trabajo sobre contexto largo consiste en cambiar las reglas en lugar de forzarlas a la fuerza. Las direcciones son intuitivas incluso sin las matemáticas.
- Atención más barata. Un gran esfuerzo de investigación busca aproximar la atención para que su coste crezca de forma más cercana a lineal con la longitud en lugar de cuadrática, evitando el cómputo completo de todos los pares. Cambiar un poco de exactitud por mucha escalabilidad es el tema recurrente.
- Reducir la huella de memoria. Las técnicas para comprimir o economizar la caché clave-valor permiten que contextos más largos quepan en la misma memoria, atacando el lado de memoria del problema.
- Recuperar en lugar de sostenerlo todo. En vez de embutir un corpus entero en la ventana, obtén solo las piezas relevantes e introdúcelas. Esto sortea el problema de la longitud manteniendo pequeño el contexto real: la estrategia tras los enfoques de recuperación aumentada.
Cada camino hace una concesión. La atención más barata cede algo de precisión; la compresión cede algo de fidelidad; la recuperación cede la garantía de que todo está presente a la vez. No hay almuerzo gratis, solo distintos tratos.
En resumen
La longitud del contexto es difícil de escalar porque el mecanismo dominante tras estos modelos, la atención, cuesta un trabajo que crece con el cuadrado de la entrada, mientras que la caché clave-valor necesaria para funcionar de forma eficiente también crece con la longitud, de modo que las ventanas más largas fuerzan tanto el cómputo como la memoria más rápido de lo que crece el texto. E incluso cuando pagas ese precio, un contexto más largo reparte más la atención y usa su medio de forma menos fiable, así que encajar más texto no es lo mismo que razonar bien sobre él. La frontera avanza cambiando el trato —atención más barata, memoria más esbelta o recuperar solo lo que importa—, cada uno cediendo algo a cambio de alcance. Una ventana más grande nunca es solo un número más grande; es una lucha contra un coste que se acumula.
