20 Extensión de contexto largo
Dónde estamos. Uno de los usos estrella de toda la teoría de RoPE: hacer que un modelo entrenado hasta longitud T funcione más allá de T —sin reentrenarlo desde cero—. Este capítulo explica cómo (Position Interpolation, NTK-aware, YaRN, LongRoPE…), conecta con nuestra γ, y —fiel al libro— es muy claro sobre lo que estos métodos no logran. Aviso de spoiler honesto: “extendido a 1M” es una afirmación a auditar.
20.1 La idea en una frase
Como más allá de su longitud de entrenamiento el modelo ve ángulos de RoPE que nunca vio (y colapsa), la solución no es extrapolar sino remapear las posiciones largas dentro del rango de ángulos ya conocido —casi siempre reescalando la base θ—.
20.2 Conceptos clave y su papel en el transformer
Antes de ver los métodos, definimos los términos de este capítulo y para qué sirve cada uno dentro de un transformer:
- Longitud de entrenamiento (T). Definición: la longitud máxima de secuencia que el modelo vio al entrenarse. En el transformer: fija el rango de ángulos de RoPE “conocidos”; más allá de T el modelo está en territorio no visto.
- Ángulos fuera de distribución (OOD). Definición: las rotaciones de RoPE que aparecen en posiciones > T y que el modelo nunca observó. En el transformer: causan que las puntuaciones de atención se disparen y el softmax se desestabilice → degeneración del texto.
- Extrapolar vs. remapear. Definición: extrapolar es dejar que el modelo afronte ángulos nuevos; remapear es comprimir las posiciones largas dentro de los ángulos ya vistos. En el transformer: casi toda solución que funciona remapea, no extrapola.
- Reescalado de la base θ. Definición: cambiar la constante que fija las frecuencias de RoPE. En el transformer: es el grado de libertad común a PI, NTK, YaRN y LongRoPE; mover θ desplaza qué posiciones caen en qué ángulos.
- NTK-aware / YaRN. Definición: reescalados no uniformes de θ que preservan las altas frecuencias (lo local) y estiran las bajas (lo lejano); YaRN añade una rampa por longitud de onda y temperatura. En el transformer: son el estándar práctico para extender contexto con poco o ningún finetuning.
- “Lost in the middle”. Definición: la tendencia del modelo a usar bien lo que está al principio y al final del contexto, pero perder lo del medio. En el transformer: por eso la longitud usable es menor que la nominal —un “128K” rara vez son 128K efectivos—.
- Auditoría por recuperación (passkey / needle). Definición: evaluar si el modelo recupera información concreta a longitud completa, no solo si baja la perplejidad. En el transformer: es la prueba honesta de un “contexto largo”; la perplejidad puede seguir baja mientras la recuperación ya colapsó.
- Regla α=0 (nuestra). Definición: elegir el θ que deja al modelo extendido en un γ objetivo a la nueva longitud. En el transformer: convierte la extensión en una decisión derivada de la geometría (γ depende de θ) en vez de un factor elegido a ojo.
Con esto claro, vamos al problema concreto y a los métodos.
20.3 El problema
Un modelo entrenado hasta T solo ha visto las posiciones 0…T, es decir, ciertos ángulos de RoPE. Más allá de T, esos ángulos caen en un régimen fuera de distribución: el modelo nunca los vio, las puntuaciones de atención se disparan y el softmax se desestabiliza → degeneración (texto incoherente, se pierde la “aguja”). La idea común a casi todas las soluciones: no inventar ángulos nuevos, sino comprimir las posiciones largas dentro de los ángulos ya vistos.
20.4 Los métodos
- Position Interpolation (PI) (Chen et al. 2023): comprime linealmente las posiciones (divide por L/T, donde L es la longitud nueva a la que quieres extender y T la longitud de entrenamiento) para que caigan en [0,T]. Trivial, pero pierde resolución local fina y necesita un poco de finetuning.
- NTK-aware (bloc97, 2023; formalizado en YaRN): reescala θ de forma no uniforme → preserva las altas frecuencias (lo local) y estira las bajas (lo lejano). A menudo funciona sin finetuning para factores pequeños (2–4×). Dynamic NTK recalcula el factor según la longitud actual (no penaliza contextos cortos).
- YaRN (Peng et al. 2023): refina NTK con una rampa por longitud de onda (no interpola las altas, sí las bajas, suaviza el medio) + temperatura de atención. El estándar práctico: pocos pasos de finetuning.
- LongRoPE (Ding et al. 2024): búsqueda evolutiva de reescalados por dimensión, por etapas, hasta ~2M tokens.
- Self-Extend (Jin et al. 2024): sin entrenar, atención agrupada + vecina; solo cambios en inferencia.
- LongRoPE2 (Shang et al. 2025): la corrección honesta de LongRoPE —reconoce que las bajas frecuencias quedaban infra-entrenadas— con búsqueda guiada por needle y entrenamiento mixto.
| Método | Idea | ¿Finetuning? | Alcance típico |
|---|---|---|---|
| PI | comprimir posiciones ÷(L/T) | Sí (~1k pasos) | ~8–32k |
| NTK-aware | reescalar θ no-uniforme | A menudo no (s pequeño) | ~2–4× |
| YaRN | rampa por longitud de onda + temp. | Pocos pasos | ~64–128k |
| LongRoPE | búsqueda evolutiva por-dim | Sí (etapas) | hasta ~2M |
| Self-Extend | atención agrupada + vecina | No | modesta |
| LongRoPE2 | needle-driven + mixto | Sí | ~128k casi sin pérdida |
20.5 La realidad honesta
Estos métodos ayudan, pero no son magia: 1. Cambian calidad de contexto corto por capacidad de contexto largo (por eso YaRN/LongRoPE2 añaden temperatura o entrenamiento mixto para mitigarlo). 2. La longitud usable es menor que la nominal. El fenómeno “lost in the middle” (Liu et al. 2023): el modelo usa bien lo que está al principio y al final, pero se le escapa lo del medio —incluso en modelos “de contexto largo”—. Un “128K” nominal rara vez es 128K efectivos. 3. Las extensiones grandes (≫4×) casi siempre necesitan algo de finetuning; solo las modestas funcionan de verdad sin entrenar. → Cómo auditar: ante un “extendido a 1M”, pregunta por evaluación de recuperación a longitud completa (passkey / needle-in-haystack), no solo perplejidad. La perplejidad puede seguir baja mientras la recuperación ya ha colapsado.
20.6 Nuestro ángulo: extender en términos de γ
Hay un hilo que une todo esto con la Parte II. Todos los métodos actúan sobre el mismo grado de libertad —la base θ— y, como nuestra γ depende de θ (γ_Padé, Cap. 15), reescalar θ desplaza γ de forma predecible. Eso permite plantear la extensión al revés: en vez de elegir un factor a ojo, elegir el θ que deja al modelo extendido en un γ objetivo (nuestra “regla α=0”: fijar θ_design para un γ deseado a la longitud nueva).
La geometría que sostiene esta regla es sólida (reescalar θ mueve γ de forma monótona y predecible). Pero nuestra validación empírica con passkey quedó incompleta: el experimento crasheó por falta de memoria (CUDA-OOM) antes de cubrir las longitudes que discriminaban entre condiciones; solo confirmamos que el modelo nativo recupera dentro de su longitud de entrenamiento (lo esperado). Así que presentamos la regla γ como derivada y geométricamente motivada, NO como validada. No afirmamos que supere a YaRN; lo dejamos como hipótesis pendiente de un experimento que reproduzca bien. Es justo el tipo de cosa que este libro se niega a vender como hecho.
tafagent tiene un planificador YaRN/RoPE de extensión: le das el modelo y la longitud objetivo L y te devuelve el bloque rope_scaling listo para pegar, el γ antes y después, el d_horizon a esa longitud, y un veredicto (SANO / USABLE-CON-CUIDADO / NECESITA-FINETUNE / DEGRADA). Es esta teoría hecha herramienta práctica.
20.7 Resumen
- Más allá de T, RoPE da ángulos OOD → colapso. La cura: remapear posiciones (reescalar θ), no extrapolar.
- PI (comprime, necesita finetuning), NTK-aware (no uniforme, a veces sin finetuning), YaRN (rampa + temperatura, estándar), LongRoPE (~2M, evolutiva), Self-Extend (sin entrenar), LongRoPE2 (2025, casi sin pérdida).
- Honesto: nominal ≠ usable (“lost in the middle”); las grandes extensiones piden finetuning; audita con passkey, no con perplejidad.
- Nuestro: como γ depende de θ, la extensión se puede fijar por γ objetivo (regla α=0). Geometría sólida; validación propia incompleta (OOM) → hipótesis, no hecho.
Siguiente (Capítulo 20): el otro uso práctico de γ, y el que cierra la Parte II — comprimir el KV-cache con una ventana derivada de γ, sin parámetros que ajustar—.
20.8 Ejercicios
- Por qué falla. ¿Por qué un modelo entrenado a 4k produce galimatías a 16k si no haces nada? (Piensa en ángulos de RoPE no vistos.)
- NTK vs PI. ¿Qué hace NTK-aware con las altas frecuencias que PI no respeta?
- Auditar. Un modelo dice “contexto 1M”. ¿Qué evaluación pides para creértelo, y por qué no basta la perplejidad?
- Honestidad. ¿Por qué presentamos nuestra regla γ como “no validada” en vez de afirmar que funciona?