English · Español
02 — PE aprendida, sesgos T5, ALiBi: cuándo gana cada una y por qué ninguna basta¶
🇪🇸 Tres alternativas a sinusoidal: aprender la PE como una matriz (gana en interpolation, pierde en extrapolation); sesgar los scores de attention según la distancia (T5, ALiBi — barato y razonable); y RoPE, que combina lo mejor de varios mundos. Esta página justifica por qué Phase 17 elige RoPE y no las otras.
Este archivo es el archivo "cómo se comparan los esquemas de PE". Tres secciones: embeddings aprendidos, sesgos de attention (T5/ALiBi), y el modo de fallo que todos comparten y que RoPE arregla.
Sección 1 — Embeddings posicionales aprendidos¶
Asigna una matriz entrenable \(E_p \in \mathbb{R}^{T_\text{max} \times d}\). En la posición \(p\), la PE es \(E_p[p]\) — una consulta indexada, igual que el embedding del token. Suma al embedding del token:
Lo que aporta¶
- Máxima flexibilidad. El modelo puede aprender cualquier estructura posicional que ayude a la tarea. Sin suposición sinusoidal hardcodeada.
- Empíricamente algo mejor en secuencias dentro de distribución que sinusoidal (en la comparación original de Vaswani, las dos estaban dentro de 0.1 BLEU).
Lo que cuesta¶
- Longitud máxima fija. \(T_\text{max}\) queda horneado en la arquitectura. Generar una secuencia de longitud \(T > T_\text{max}\) requiere truncar o comportamiento indefinido.
- No extrapola por construcción. El modelo ha visto datos de entrenamiento solo hasta la longitud \(T_\text{max}\). Las posiciones \(T_\text{max}, T_\text{max} + 1, \ldots\) tienen embeddings sin inicializar. Lo que el modelo haga con ellas es incontrolado.
- Más parámetros. \(T_\text{max} \cdot d\) extra. Para \(T_\text{max} = 4096, d = 1024\), son 4M de parámetros extra. No enormes en términos absolutos, pero escala con la ventana de contexto (context window).
Dónde se usa¶
- BERT, GPT-2 usaron PE aprendida.
- Los LLMs modernos (LLaMA, GPT-4, Mistral) se han alejado de ella.
El patrón es: la PE aprendida está bien para modelos con longitud de contexto fija. Para modelos que necesitan extrapolar a contextos más largos que aquellos para los que fueron entrenados, falla.
🇪🇸 Cuándo elegir aprendida: si tu contexto máximo está fijo y conocido en arquitectura (BERT, modelos cortos). Cuándo no: siempre que quieras extender el contexto en inferencia.
Sección 2 — Sesgos de posición relativa estilo T5¶
El artículo de T5 (Raffel et al., 2020) reemplazó la PE por completo con un sesgo aprendido sobre los scores de attention:
donde \(b: \mathbb{N} \to \mathbb{R}\) es una función aprendida de la posición relativa. En la práctica, \(b\) es una función constante a trozos con unas pocas docenas de parámetros "bucket".
Lo que aporta¶
- La información de posición es puramente relativa: solo importa \(|i - j|\), no la posición absoluta.
- Sin modificación a Q, K, V. Barato de aplicar.
- El bucketing da un número pequeño de parámetros entrenables (~32 buckets).
Lo que cuesta¶
- El modelo no conoce la posición absoluta. Para tareas donde la posición absoluta importa (por ejemplo, "el primer token es [CLS]"), el modelo pierde esa señal.
- El bucketing es grueso. Las posiciones 100 y 101 caen en el mismo bucket; las posiciones 1 y 2 también. El modelo las trata como similares en el sesgo de attention.
Dónde se usa¶
- Familia T5.
- No se usa mucho en LLMs decoder puros después de ~2022.
Lo mencionamos y seguimos adelante. El bucketing es un tema de Fase 22 o nunca.
Sección 3 — ALiBi (Attention with Linear Biases)¶
Press et al. (2022) propusieron: deja caer la PE por completo. Añade una penalización lineal por distancia a los scores de attention:
donde \(m\) es una pendiente por cabezal (cada cabezal tiene la suya, fijada como \(m_h = 1 / 2^{8 h / H}\)).
Lo que aporta¶
- Propiedad de extrapolación. ALiBi extrapola a contextos arbitrariamente largos sin reentrenar. Entrena en \(T = 1024\), infiere en \(T = 8192\) — funciona.
- Sin matriz de PE que mantener.
- Cada cabezal puede especializarse en una "tasa de decaimiento" diferente — el cabezal 1 ve lo cercano, el cabezal 8 ve lo lejano.
Lo que cuesta¶
- El sesgo es fijo y monótono. Sin oscilación; solo un decaimiento lineal. Menos expresivo que la rotación de RoPE.
- Sin posición absoluta. Igual que los sesgos estilo T5.
- Empíricamente algo por detrás de RoPE en benchmarks donde los patrones de attention son complejos.
Dónde se usa¶
- BLOOM, MPT, algunos modelos abiertos más pequeños.
- No es la elección modal en LLMs de 2024+ (RoPE ganó).
Mencionamos ALiBi y no la implementamos. Si Borja siente curiosidad después de la Fase 16, son ~20 líneas de NumPy.
Sección 4 — El fallo común: extrapolación¶
Los tres esquemas cubiertos hasta ahora (sinusoidal, aprendida, T5/ALiBi) fallan en extrapolación de formas distintas:
- PE aprendida: fallo silencioso. Las posiciones más allá de \(T_\text{max}\) tienen embeddings indefinidos.
- PE sinusoidal: fallo suave. Los valores de PE están bien definidos para cualquier posición, pero el modelo solo ha visto contextos de longitud de entrenamiento durante el entrenamiento. Los patrones de attention en \(T = 2048\) cuando se entrenó en \(T = 512\) son inestables.
- Sesgos T5: fallo suave. El bucketing se extiende, pero el modelo no vio los buckets de mayor distancia durante el entrenamiento.
- ALiBi: no falla. El decaimiento lineal extrapola por construcción. ALiBi fue el primer esquema que genuinamente funcionó en \(T = 4096\) cuando se entrenó en \(T = 1024\).
RoPE tampoco falla en extrapolación en el mismo sentido de construido-por-diseño. Lo derivamos en theory/03-rope.md.
El consenso 2022–2024: para LLMs autorregresivos, las dos opciones viables son RoPE y ALiBi. RoPE tiene un rendimiento empírico ligeramente mejor y es el valor por defecto en LLaMA / Mistral / GPT-4 (inferido); ALiBi es más simple y todavía está en uso.
Por qué la Fase 17 elige RoPE¶
Tres razones:
- Extrapolación por diseño. Igual que ALiBi.
- Interacción multiplicativa (no sesgo aditivo). RoPE rota Q y K, modificando la geometría del score, no solo añadiendo una constante. Esto es empíricamente más expresivo.
- Es el valor por defecto moderno. Borja ve RoPE en todos los codebases de LLM modernos. Implementarlo en la Fase 16 es exactamente la preparación correcta.
La alternativa de respaldo si RoPE resulta demasiado complejo: sinusoidal (no aprendida). Sinusoidal es paramless, bien entendida, y ya la hemos derivado.
Tabla resumen¶
| Esquema | Información de posición | ¿Extrapola? | Parámetros | Uso moderno |
|---|---|---|---|---|
| Sinusoidal | Sumada pre-attn | Limitada | 0 | Algunos |
| Aprendida | Sumada pre-attn | No (fallo silencioso) | \(T_\text{max} \cdot d\) | Modelos antiguos |
| Sesgos T5 | Sumados a scores | Bucketed, limitado | ~32 / cabezal | Familia T5 |
| ALiBi | Sumado a scores | Sí (lineal) | \(H\) pendientes | BLOOM, MPT |
| RoPE | Rota Q, K | Sí (oscilante) | 0 | LLaMA, Mistral, modernos |
La Fase 17 elige RoPE. El lab de la Fase 16 compara sinusoidal vs RoPE explícitamente; la PE aprendida se implementa pero solo como baseline de referencia.
🇪🇸 Decisión: Phase 17 usa RoPE, con sinusoidal como fallback si la integración con multi-head attention resulta demasiado complicada. Learned PE solo como baseline en el lab; no llega al transformer.
Un matiz sobre la extrapolación¶
"Extrapola" es una afirmación vaga. Más preciso: RoPE y ALiBi mantienen un patrón de attention bien definido en posiciones más allá de la longitud de entrenamiento. Esto no significa que las predicciones del modelo sean buenas en esas posiciones — solo que el propio mecanismo de attention no se rompe.
Los modelos entrenados en \(T = 1024\) con RoPE generalmente sí degradan en calidad pasado \(T = 2048\) (sus representaciones internas no fueron afinadas para contextos muy largos). El rendimiento de contexto largo real requiere o bien: (a) entrenar en contextos largos; (b) adaptaciones post-hoc como interpolación de posición, escalado NTK-aware. La Fase 16 no es el lugar para esas; las mencionamos para que Borja conozca el término.
Siguiente: 03-rope.md.