9 Información de posición y RoPE
Dónde estamos. Ya tenemos la maquinaria completa: atención, multi-cabeza, FFN y el andamiaje. Pero le falta un sentido básico —el orden—. Tal cual, a la atención le da igual en qué posición esté cada palabra. Este capítulo explica cómo se le mete el orden, y en particular RoPE, el método que usan casi todos los modelos actuales. Es además la bisagra del libro: la geometría de RoPE es de donde sale, en la Parte II, nuestra ley de decaimiento de la atención.
9.1 La idea en una frase
Como la atención no distingue el orden de las palabras, se le añade información de posición; el método moderno (RoPE) lo hace rotando los vectores según su posición, de forma que la atención percibe la distancia relativa entre tokens.
9.2 Conceptos clave y su papel en el transformer
Antes de entrar en detalle, definimos los términos de este capítulo y para qué sirve cada uno dentro de un transformer:
- Invariancia a permutaciones. Definición: como la atención solo calcula un promedio ponderado, si barajas las palabras el resultado es el mismo. En el transformer: es el punto ciego que obliga a inyectar posición; sin ella, el modelo vería el texto como una bolsa de palabras, no como una secuencia.
- Codificación posicional. Definición: la información de orden que se añade para que la atención distinga la posición de cada token. En el transformer: le da el sentido del orden que por sí sola no tiene.
- Posición absoluta (sinusoidal / aprendida). Definición: asignar a cada posición una “huella” —fija de senos/cosenos, o un vector aprendido— que se suma al embedding. En el transformer: la primera solución; la aprendida fija una longitud máxima y no extrapola.
- Posición relativa. Definición: codificar la distancia entre tokens (i−j) en vez de su posición absoluta (Shaw et al. 2018). En el transformer: refleja que casi siempre importa “cómo de lejos están”, no “estar en la posición 5”.
- RoPE (Rotary Position Embedding). Definición: en vez de sumar posición, rota cada consulta y clave un ángulo proporcional a su posición (Su et al. 2021). En el transformer: el estándar actual; mete la posición relativa directamente en el score de atención sin tocar los embeddings.
- Base θ (theta). Definición: el parámetro (por defecto 10000) que fija las frecuencias de giro \(\omega_i = \theta^{-2i/d}\). En el transformer: controla el rango de velocidades —pares de índice bajo giran rápido (alcance corto), altos lento (alcance largo)—; reescalarlo (NTK-aware, YaRN) extiende el contexto.
- Posición relativa en el score. Definición: el producto escalar de dos vectores rotados depende solo de la posición relativa (m − n); las absolutas se cancelan. En el transformer: es la propiedad que hace de RoPE algo elegante y “gratis”.
- ALiBi. Definición: alternativa que no rota, sino que resta al score una penalización proporcional a la distancia (Press et al. 2022). En el transformer: sesga hacia lo reciente y extrapola muy bien a secuencias más largas.
- Decaimiento de la atención (
A(d) ∝ d^−γ). Definición: la idea —en disputa— de que la atención decae con la distancia entre tokens. En el transformer: es la bisagra hacia la Parte II, donde lo medimos y predecimos como ley de potencia desde la geometría de RoPE.
Con esto en mente, veamos por qué la atención necesita que le inyecten el orden.
9.3 Para qué sirve (su papel en el transformer)
La atención del Cap. 4 tiene un punto ciego sorprendente: es invariante a permutaciones. Como solo calcula un promedio ponderado, si barajas las palabras, el resultado es el mismo. Para la atención pura, “el perro muerde al hombre” y “el hombre muerde al perro” son indistinguibles.
Función de la codificación posicional: inyectar el orden que la atención no ve. Sin ella, el modelo entendería un texto como una bolsa de palabras, no como una secuencia.
9.4 Las formas de dar posición (una pequeña evolución)
- Sinusoidal absoluta (Transformer original): a cada posición se le asigna una “huella” fija de ondas seno/coseno de distintas frecuencias, que se suma al embedding. No se aprende.
- Aprendida absoluta (GPT-2, BERT): un vector aprendido por cada posición. Simple, pero fija una longitud máxima y no extrapola más allá.
- Relativa (Shaw et al. 2018): codifica la distancia entre tokens (i−j) en vez de la posición absoluta —porque casi siempre importa “cómo de lejos están”, no “estar en la posición 5”—.
- RoPE (Su et al. 2021): la idea que se impuso. La vemos en detalle.
9.5 RoPE: codificar la posición rotando
RoPE (Rotary Position Embedding) hace algo elegante: en vez de sumar posición, rota cada vector consulta y clave un ángulo proporcional a su posición.
🧩 Analogía — las manecillas de un reloj. Imagina que cada palabra lleva una manecilla, y su posición la hace girar un cierto ángulo. Cuando dos palabras se comparan, lo que importa es el ángulo entre sus manecillas —y ese ángulo depende solo de cuántas posiciones las separan, no de dónde estén en absoluto—. (Y no hay una manecilla, sino muchas girando a distintas velocidades.)
Esa imagen es literal. Por cómo funcionan las rotaciones, el producto escalar de dos vectores rotados depende solo de la posición relativa (m − n): las posiciones absolutas se cancelan. Así RoPE consigue algo muy útil gratis: mete la posición relativa directamente dentro del score de atención, sin añadir nada a los embeddings.
Los detalles que conviene retener:
- Se rotan las dimensiones por pares, cada par a una velocidad distinta.
- La velocidad la fija la base θ (theta, por defecto 10000), mediante las frecuencias \(\omega_i = \theta^{-2i/d}\), donde i numera el par de dimensiones (0, 1, 2…) y d es la dimensión de la cabeza.
- Qué hace θ: controla el rango de velocidades. Los pares de índice bajo rotan rápido (capturan distancias cortas); los de índice alto rotan lento (capturan distancias largas).
- RoPE solo toca las consultas y las claves (q, k), nunca los valores.
import torch
d, base = 64, 10000
i = torch.arange(0, d, 2)
inv_freq = 1.0 / (base ** (i / d)) # ω_i: velocidad de giro de cada par
# en la posición m, cada par se rota el ángulo m * inv_freqRoPE es hoy el estándar: LLaMA, GPT-NeoX, Qwen, Gemma… lo usan.
9.6 Un contraste: ALiBi
No todos rotan. ALiBi (Press et al. 2022) toma otro camino: no añade posición a los vectores, sino que resta al score una penalización proporcional a la distancia (cada cabeza con su pendiente). Resultado: sesgo hacia lo reciente y muy buena extrapolación a secuencias más largas que las de entrenamiento. Es una alternativa elegante que conviene conocer.
9.7 El puente a la Parte II: el decaimiento (y una disputa honesta)
Su et al. (2021) afirmaron que RoPE hace que la atención decaiga al aumentar la distancia —algo deseable, en principio—. Pero esto está en disputa: trabajos como HoPE (Chen et al. 2024) argumentan que ese decaimiento a largo plazo ni está garantizado ni es deseable a gran escala (los LLM necesitan recuperar información lejana; en la práctica muestran patrones en U, no un decaimiento monótono).
Este es exactamente el hueco que aborda nuestra Parte II. En vez de afirmar “RoPE decae” o “no decae”, lo medimos y lo predecimos: el decaimiento sigue una ley de potencia A(d) ∝ d^−γ —donde A(d) es la atención media entre tokens a distancia d (aquí d es distancia entre tokens, no la dimensión de la cabeza de antes)—, y el exponente γ se puede calcular desde la geometría de RoPE (la base θ, las frecuencias, el aliasing). De ahí saldrán herramientas concretas —comprimir la memoria del modelo, extender su contexto—. RoPE es, por tanto, la bisagra entre los fundamentos y lo que solo encontrarás aquí.
Un apunte relacionado: como RoPE depende de θ, reescalar θ (NTK-aware, YaRN) permite que un modelo funcione más allá de su longitud de entrenamiento. Lo veremos en la Parte II.
9.8 Resumen
- La atención es ciega al orden (invariante a permutaciones); la codificación posicional inyecta el orden.
- Evolución: sinusoidal → aprendida → relativa → RoPE.
- RoPE rota q/k un ángulo ∝ posición; el producto escalar depende solo de la posición relativa (los ángulos absolutos se cancelan). Base θ=10000; pares de índice bajo rotan rápido (corto alcance), altos lento (largo alcance). No toca los valores.
- ALiBi es la alternativa (penalización por distancia, buena extrapolación).
- El decaimiento de RoPE está en disputa — y es justo lo que nuestra Parte II mide y predice como ley de potencia
A(d)∝d^−γ.
Siguiente (Capítulo 9): ya tenemos todas las piezas y el sentido del orden. Toca montar el bloque transformer completo y ver qué pasa al apilarlo en profundidad.
9.9 Ejercicios
- Ceguera al orden. Explica por qué, sin posición, la atención da el mismo resultado para “el perro muerde al hombre” y “el hombre muerde al perro”.
- Relativa gratis. ¿Por qué el producto escalar de dos vectores rotados por RoPE depende solo de la diferencia de posiciones y no de las posiciones absolutas? (Pista: piensa en el ángulo entre dos manecillas.)
- θ y el alcance. Si subes la base θ, ¿qué les pasa a las velocidades de giro y, por tanto, al alcance de distancias que el modelo distingue bien?
- q, k, ¿y v? ¿A qué vectores aplica RoPE su rotación y a cuáles no? ¿Por qué tiene sentido?