⏱️ Lectura: 10 min
Cambiá el orden de dos palabras en una oración y el significado puede invertirse por completo. «El zorro rojo salta sobre el zorro gris» y «el zorro gris salta sobre el zorro rojo» comparten las mismas palabras, pero cambian quién salta sobre quién. Para una red neuronal que convierte cada palabra en un vector, esa diferencia no es automática, hay que decirle al modelo, de forma explícita, en qué posición de la secuencia está cada token. Ese problema, representar la posición dentro de un modelo de lenguaje, se resuelve con lo que se conoce como embeddings posicionales, y el método que domina en los LLM abiertos de 2026 se llama RoPE, por Rotary Position Embedding, descripto originalmente en el paper RoFormer (Su et al.).
📑 En este artículo
Cómo entra la posición a un modelo de lenguaje
Un tokenizador convierte el texto en identificadores numéricos y una capa de embeddings transforma cada ID en un vector de características. Hasta ahí, el modelo no sabe nada del orden, la palabra «zorro» recibe el mismo vector sin importar si aparece primera o última. La posición se agrega después, y el momento exacto en que se agrega cambia según la arquitectura, según explica Sebastian Raschka en su repaso de los métodos posicionales usados en LLM modernos (Understanding Positional Embeddings in Modern LLMs).
GPT-2, un modelo clásico, suma un vector de posición a cada embedding de token antes de que la secuencia entre al primer bloque transformer. La posición se fija una sola vez, al principio. MiniMax-M3, un modelo abierto reciente, hace algo distinto: agrega la información posicional dentro de cada bloque transformer, usando RoPE directamente en el mecanismo de atención (fuente). La posición ya no es un dato fijo que viaja pegado al token, se recalcula en cada capa, en función de qué tan lejos está un token de otro.
Ese mismo artículo señala un detalle que pocos lectores notarían: de las 60 capas feedforward de MiniMax-M3, las primeras tres son densas y no mixture-of-experts, o MoE (fuente). Es un dato menor sobre la arquitectura, pero útil para quien compara modelos MoE, porque ni siquiera dentro de un mismo modelo todas las capas usan la misma estrategia.
Cómo rota RoPE los vectores de atención
La idea detrás de RoPE es geométrica. En el mecanismo de atención, cada token genera un vector de consulta (query) y un vector de clave (key); la similitud entre ambos decide cuánta atención presta un token a otro. RoPE toma esos vectores y los rota en pares de dimensiones, con un ángulo que depende de la posición del token en la secuencia. Un token en la posición 3 rota sus componentes un ángulo distinto al de un token en la posición 30.
La parte que hace útil a RoPE no es la rotación en sí, sino lo que pasa cuando se multiplican un query rotado y un key rotado. El resultado depende únicamente de la distancia entre las dos posiciones, no de dónde empieza o termina la secuencia. Dos tokens separados por cinco posiciones producen la misma relación geométrica estén en el principio o en el final de un documento de 50.000 tokens. Esa propiedad, posición relativa y no absoluta, es la que le permite a un modelo generalizar mejor a secuencias más largas que las vistas en entrenamiento, al menos hasta cierto punto.
Esto contrasta con los embeddings absolutos de GPT-2, donde cada posición tiene su propio vector aprendido y memorizado durante el entrenamiento. Si el modelo nunca vio la posición 10.000 durante el entrenamiento, ese vector simplemente no existe, y el modelo no tiene forma de representarla.
Qué significa esto para quien extiende el contexto de un modelo
Si fine-tuneás o adaptás un modelo open-weight (Llama, Qwen, Mistral) para que acepte un contexto más largo que el que trajo de entrenamiento, el método posicional que usa ese modelo decide qué herramienta de extensión te sirve. Un modelo con RoPE admite técnicas que escalan la frecuencia base de la rotación, como NTK-aware scaling o YaRN, para estirar el contexto sin reentrenar desde cero. Un modelo con ALiBi o sin codificación explícita no se beneficia de esas técnicas, porque no hay una frecuencia que escalar.
La recomendación práctica, antes de aplicar cualquier receta de extensión de contexto que encuentres en un repo o un paper, es confirmar primero qué mecanismo posicional usa el modelo que tenés enfrente. Aplicar un escalado pensado para RoPE sobre un modelo que no usa RoPE no produce un error visible de inmediato, pero degrada la calidad de las respuestas en contextos largos de forma difícil de diagnosticar.
En términos concretos, el primer lugar para confirmarlo es el archivo de configuración del modelo. En los modelos compatibles con la librería Transformers de Hugging Face, los campos rope_theta y max_position_embeddings indican si el modelo usa RoPE, cuál es su frecuencia base y cuál fue la ventana de entrenamiento original. Si esos campos no aparecen, es una señal de que el modelo usa otro mecanismo, y las recetas de escalado pensadas para RoPE no van a aplicar.
Si en cambio estás evaluando qué modelo abierto adoptar para un proyecto que necesita documentos largos (contratos, logs, el código completo de un repositorio), el método posicional es una señal indirecta de qué tan bien se va a comportar el modelo fuera de la ventana de contexto anunciada. Un modelo con RoPE bien ajustado tiende a degradar más gradualmente cuando se acerca al límite anunciado; un modelo con embeddings absolutos simplemente no tiene representación para posiciones que no entrenó.
RoPE frente a otras formas de embeddings posicionales
RoPE no es la única manera de resolver el problema. A lo largo de la historia reciente de los LLM convivieron al menos cuatro enfoques, cada uno con una forma distinta de inyectar la posición.
| Método | Cómo funciona | Dónde se aplica | Limitación principal |
|---|---|---|---|
| Embeddings absolutos aprendidos (GPT-2) | Un vector de posición entrenado para cada índice de la secuencia, sumado al embedding del token | Una sola vez, antes del primer bloque transformer | No generaliza más allá de la longitud máxima vista en entrenamiento |
| RoPE (rotary position embedding) | Rota los vectores de consulta y clave en el espacio de atención según la distancia relativa entre tokens | Dentro de cada capa de atención | Degrada en contextos mucho más largos que el entrenamiento si no se escala la frecuencia base |
| ALiBi (attention with linear biases) | Resta una penalización proporcional a la distancia directamente sobre los puntajes de atención, sin vectores de posición | Dentro de cada capa de atención | El sesgo lineal simplifica relaciones posicionales que a veces no son lineales |
| Sin codificación explícita (NoPE) | Ninguna señal de posición aparte; el modelo infiere el orden solo a partir de la máscara causal | No aplica dentro de la arquitectura | Depende de que el modelo aprenda el orden de forma implícita, algo que no todas las arquitecturas logran igual de bien |
Los embeddings absolutos tienen una ventaja, son simples de implementar y de entender. El modelo aprende directamente qué significa estar en la posición 5. El costo aparece cuando se quiere extender el contexto más allá de lo entrenado, porque no hay ninguna posición 50.000 que el modelo haya aprendido a representar. RoPE cambia el trato, en vez de aprender una posición absoluta, codifica la distancia relativa entre pares de tokens, y esa relación se puede, hasta cierto punto, extrapolar matemáticamente a distancias nuevas.
La elección no es solo académica. El propio artículo de Raschka contrasta GPT-2, que usa embeddings absolutos aprendidos, con MiniMax-M3, un modelo abierto reciente que eligió RoPE para cada capa de atención (fuente). ALiBi (Press et al.), en cambio, evita por completo los vectores de posición y resta una penalización proporcional a la distancia directamente sobre los puntajes de atención.
Dónde RoPE se queda corto
RoPE resuelve el problema de la posición relativa, pero no es gratis. Aplicar la rotación en cada capa de atención cuesta más cómputo que sumar un vector de posición una sola vez al principio, como hacía GPT-2. En modelos con decenas de capas, ese costo se repite en cada una.
El otro límite es la extrapolación. Un modelo entrenado con una ventana de contexto de, por ejemplo, 8.000 tokens no rota bien más allá de ese rango sin ayuda, porque la frecuencia base que funcionaba durante el entrenamiento deja de representar distancias que nunca vio. Por eso surgieron técnicas de reescalado como YaRN, que ajustan esa frecuencia para extender el contexto sin reentrenar el modelo completo. Y la elección de la frecuencia base en sí misma no es universal, cambia de familia de modelo a familia de modelo, así que no se puede copiar el valor de un modelo y aplicarlo a otro sin verificar primero.
Hay un tercer límite, más sutil. Las frecuencias de rotación de RoPE son periódicas. En teoría, dos posiciones muy alejadas pueden terminar con ángulos de rotación parecidos, lo que puede hacer que el modelo las confunda. Las técnicas de reescalado no solo estiran el contexto, también intentan evitar que esas repeticiones aparezcan dentro del rango que el modelo realmente va a usar.
La publicación de Raschka llegó a Hacker News, donde acumuló 71 puntos (discusión en Hacker News).
Preguntas frecuentes
¿RoPE reemplazó por completo a los embeddings absolutos?
No en todos los modelos, pero sí en gran parte de los lanzamientos recientes. El contraste entre GPT-2 (embeddings absolutos) y MiniMax-M3 (RoPE) que muestra Raschka refleja esa tendencia (fuente), aunque conviven arquitecturas con ALiBi o sin codificación explícita.
¿Puedo convertir un modelo ya entrenado con embeddings absolutos a RoPE sin reentrenar?
No de forma directa. El mecanismo posicional está entretejido en cada capa de atención durante el entrenamiento, así que cambiarlo implica reentrenar el modelo o aplicar un ajuste fino sustancial, no un simple parche en la arquitectura.
¿Por qué algunos modelos no usan ninguna codificación posicional explícita?
Porque en teoría, la máscara causal de la atención, que impide que un token vea los que vienen después, ya aporta algo de información sobre el orden, aunque de forma indirecta. Los modelos sin codificación posicional explícita (NoPE) apuestan a que esa señal, combinada con suficiente entrenamiento, alcanza para que el modelo infiera el orden por sí solo. Es un enfoque menos probado en producción que RoPE o los embeddings absolutos.
Referencias
- Understanding Positional Embeddings in Modern LLMs: artículo fuente que detalla los métodos posicionales usados en GPT-2, MiniMax-M3 y otras arquitecturas de 2026.
- RoFormer: Enhanced Transformer with Rotary Position Embedding: el paper original que introdujo RoPE.
- Train Short, Test Long: Attention with Linear Biases Enables Input Length Extrapolation: el paper que introdujo ALiBi, la alternativa sin vectores de posición mencionada en la comparativa.
- Hilo de Hacker News: el artículo de Raschka sobre embeddings posicionales llegó a la portada con 71 puntos.
Seguimos el tema en @programacion.
Imagen destacada: Foto de Chris Ried en Unsplash
Así preparamos cada artículo (fuentes, pruebas y criterio editorial): Cómo trabajamos.
¿Te sirvió? ¿Te dio otro error? Contalo abajo: las preguntas se responden y le sirven al siguiente que llegue.
Dejar un comentario
0 Comentarios