Ultralytics YOLO27: Únete a la lista de espera.
Licencia YOLO
Volver al glosario de Ultralytics

Rotary Position Embedding (RoPE)

La incrustación posicional rotatoria (RoPE) rota los vectores de consulta y clave según la posición del token para que las puntuaciones de atención dependan de la distancia relativa. Se utiliza en la mayoría de los LLM abiertos.

La incrustación rotatoria de posición (RoPE) proporciona a un transformador información sobre el orden de los tokens al rotar cada vector de consulta y clave un ángulo proporcional a la posición del token. La autoatención por sí sola no puede distinguir el orden de las palabras, así que los modelos deben incorporar la posición de algún modo; con RoPE, la puntuación de atención entre una consulta en la posición m y una clave en la posición n depende únicamente de su desplazamiento m − n. Presentada en 2021 con el modelo RoFormer y popularizada por GPT-J y GPT-NeoX de EleutherAI, RoPE es ahora la codificación posicional estándar de los modelos de lenguaje grandes (LLM) abiertos, como Llama, Mistral, Qwen, Gemma y DeepSeek.

Cómo funciona RoPE#

RoPE divide cada vector de consulta y clave de dimensión d en d/2 pares de características y trata cada par como un punto de un plano. En la posición m, el par i gira un ángulo m·θᵢ, donde θᵢ = base^(−2i/d) y la base es 10 000 en el artículo original. Los primeros pares giran rápidamente y resuelven el orden local con precisión, mientras que los últimos giran despacio y siguen diferenciando tokens separados por miles de posiciones. Al rotar una consulta mθ y una clave nθ, su producto escalar depende únicamente de la diferencia (m − n)θ, y la rotación nunca cambia la longitud del vector. La rotación se aplica dentro de cada capa de atención, después de las proyecciones de consulta y clave; los vectores de valor no se rotan y no se añade nada a las incrustaciones de los tokens de entrada:

El fragmento siguiente implementa la rotación con números complejos, como hace el código de referencia de Llama de Meta, y comprueba la propiedad de posición relativa:

import torch

torch.manual_seed(0)
dim = 64
freqs = 10000 ** (-torch.arange(0, dim, 2) / dim)  # one rotation frequency per pair of features


def rope(x, pos):
    """Rotate each consecutive feature pair of x by the angle pos * frequency."""
    pairs = torch.view_as_complex(x.reshape(-1, 2))
    return torch.view_as_real(pairs * torch.polar(torch.ones_like(freqs), pos * freqs)).flatten()


q, k = torch.randn(2, dim)
# The same query and key, three tokens apart, at two different places in the sequence
print(f"positions 5 and 2:     {rope(q, 5) @ rope(k, 2):.4f}")
print(f"positions 105 and 102: {rope(q, 105) @ rope(k, 102):.4f}")
print(f"positions 5 and 4:     {rope(q, 5) @ rope(k, 4):.4f}")  # one token apart
print(f"Vector length kept: {rope(q, 5).norm():.4f} vs {q.norm():.4f}")

Imprime -8.2811 para ambos pares separados por tres tokens, tanto si ocupan las posiciones 5 y 2 como si ocupan las posiciones 105 y 102, e imprime -11.4563 cuando los mismos vectores están separados por un token. La consulta rotada conserva su longitud de 8.3705.

RoPE frente a otras codificaciones posicionales#

  • Codificación absoluta sinusoidal: El transformador original añade vectores fijos de seno y coseno a las incrustaciones de entrada una sola vez, antes de la primera capa. La distancia relativa debe inferirse a partir de la señal combinada.
  • Incrustaciones absolutas aprendidas: BERT y GPT-2 aprenden un vector por posición, hasta las posiciones 512 y 1024, respectivamente, y no tienen incrustaciones para posiciones posteriores a esos límites.
  • Sesgos de posición relativa: T5 y ALiBi añaden a las puntuaciones de atención un sesgo aprendido o fijo basado en la distancia. RoPE codifica la distancia relativa mediante la propia rotación y no añade parámetros.

Ampliación de la ventana de contexto#

Un modelo entrenado con RoPE en secuencias de longitud L nunca ha visto los ángulos de rotación de posiciones posteriores a L, y la atención se degrada cuando se encuentra con ellas. Los métodos de ampliación del contexto reescalan los ángulos en lugar de volver a entrenar desde cero. Position Interpolation comprime las nuevas posiciones dentro del intervalo de entrenamiento y amplió los modelos Llama a una ventana de contexto de 32 768 tokens en 1000 pasos de ajuste fino. El escalado adaptado al NTK y YaRN estiran los pares lentos y de baja frecuencia más que los rápidos; YaRN amplió Llama 2 a 128 000 tokens con 10 veces menos tokens de entrenamiento que los métodos anteriores. Llama 3 aumentó la base de 10 000 a 500 000 durante el preentrenamiento, de modo que los pares más lentos giran menos por token y las posiciones distantes siguen siendo distinguibles.

RoPE en modelos de visión#

Las imágenes necesitan dos coordenadas, por lo que los transformadores de visión usan RoPE 2D, o axial: la mitad de los pares de características de cada cabeza gira según la columna del parche y la otra mitad, según la fila. Qwen2-VL añade un tercer eje temporal para el vídeo en su M-RoPE multimodal. El SAM 2 de Meta, que funciona en el paquete Ultralytics, aplica RoPE axial en las cuatro capas de su atención de memoria, donde las características del fotograma de vídeo actual atienden a las características almacenadas de fotogramas anteriores. Las claves de cada fotograma almacenado reciben la misma cuadrícula de ángulos que las consultas del fotograma actual, por lo que la atención entre ambos depende del desplazamiento espacial entre los parches.

Explore solutions

Visión artificial en el deporte

Visión artificial en el deporte

Descubre cómo Ultralytics YOLO impulsa la visión artificial en el deporte con el seguimiento de jugadores y balones, analíticas de rendimiento, información útil para entrenadores y rehabilitación de deportistas.
Más información
Visión artificial para imágenes aéreas

Visión artificial para imágenes aéreas

Convierte las imágenes de drones y las imágenes aéreas en información práctica en tiempo real para la agricultura, la acuicultura, la vigilancia medioambiental, la conservación y el análisis geoespacial con Ultralytics YOLO.
Más información
Visión artificial en el sector aeroespacial

Visión artificial en el sector aeroespacial

Lleva la IA de visión a la supervisión aérea con los modelos Ultralytics YOLO. Impulsa drones, flujos de trabajo aeroespaciales, conservación medioambiental y sectores geoespaciales con soluciones de visión artificial.
Más información
Visión artificial en seguridad

Visión artificial en seguridad

Protege todas tus instalaciones con los modelos Ultralytics YOLO. La IA visual permite supervisar perímetros, detectar amenazas, reconocer matrículas y mejorar la seguridad laboral.
Más información
Visión artificial en robótica

Visión artificial en robótica

Potencia máquinas más inteligentes con los modelos Ultralytics YOLO. La IA visual en robótica impulsa la navegación autónoma, la percepción, el seguimiento de objetos y el control en tiempo real.
Más información
Visión artificial en logística

Visión artificial en logística

Agiliza la logística con modelos Ultralytics YOLO. La IA visual permite inspeccionar paquetes, clasificarlos, realizar el seguimiento de vehículos y supervisar la seguridad del almacén en tiempo real.
Más información
Visión artificial en el comercio minorista

Visión artificial en el comercio minorista

Reinventa el comercio minorista con modelos Ultralytics YOLO. La IA visual permite realizar el seguimiento del inventario, supervisar estanterías, gestionar colas y obtener información más útil sobre los clientes.
Más información
Visión artificial en el sector sanitario

Visión artificial en el sector sanitario

Desarrolla soluciones sanitarias con modelos Ultralytics YOLO. La IA visual en el sector sanitario permite acelerar el diagnóstico por imagen, mejorar los diagnósticos y supervisar a los pacientes.
Más información
Visión artificial en la fabricación

Visión artificial en la fabricación

Optimiza la fabricación con modelos Ultralytics YOLO. La IA visual mejora el control de calidad, la detección de defectos, el cumplimiento de las normas de uso de EPI y la automatización de las líneas de montaje.
Más información
Visión artificial en la automoción

Visión artificial en la automoción

Aplica la visión artificial al sector de la automoción con modelos Ultralytics YOLO. La IA visual mejora la seguridad vial, la asistencia al conductor y la automatización de vehículos para lograr carreteras más inteligentes.
Más información
Visión artificial en la agricultura

Visión artificial en la agricultura

Incorpora la IA de visión a la agricultura inteligente con modelos Ultralytics YOLO. Impulsa la monitorización de cultivos, el seguimiento del ganado y la agricultura de precisión para obtener cosechas más abundantes e inteligentes.
Más información

¡Construyamos juntos el futuro de la IA!

Inicia tu recorrido hacia el futuro del aprendizaje automático