Ultralytics YOLO27: Iscriviti alla lista d'attesa.
Licenza YOLO
Torna al glossario di Ultralytics

Rotary Position Embedding (RoPE)

L'incorporamento posizionale rotatorio (RoPE) ruota i vettori query e key in base alla posizione dei token, facendo dipendere i punteggi di attenzione dalla distanza relativa. È usato nella maggior parte degli LLM open source.

Il Rotary Position Embedding (RoPE) fornisce a un Transformer informazioni sull'ordine dei token ruotando ogni vettore query e key di un angolo proporzionale alla posizione del token. L'autoattenzione da sola non distingue un ordine delle parole da un altro, quindi i modelli devono in qualche modo integrare le informazioni posizionali; con RoPE, il punteggio di attenzione tra una query alla posizione m e una key alla posizione n dipende solo dal loro scarto m − n. Introdotto nel 2021 con il modello RoFormer e reso popolare da GPT-J e GPT-NeoX di EleutherAI, RoPE è oggi la codifica posizionale standard dei modelli linguistici di grandi dimensioni (LLM) open source, tra cui Llama, Mistral, Qwen, Gemma e DeepSeek.

Come funziona RoPE#

RoPE divide ciascun vettore query e key di dimensione d in d/2 coppie di feature e tratta ogni coppia come un punto su un piano. Alla posizione m, la coppia i viene ruotata dell'angolo m·θᵢ, con θᵢ = base^(−2i/d) e una base di 10,000 nel documento originale. Le prime coppie ruotano rapidamente e distinguono l'ordine locale più fine, mentre le ultime ruotano lentamente e continuano a distinguere token separati da migliaia di posizioni. Ruotare una query di mθ e una key di nθ fa sì che il loro prodotto scalare dipenda solo dalla differenza (m − n)θ; inoltre, la rotazione non cambia mai la lunghezza di un vettore. La rotazione viene applicata all'interno di ogni livello di attenzione, dopo le proiezioni query e key; i vettori value non vengono ruotati e agli embedding dei token in input non viene aggiunto nulla:

Il frammento qui sotto implementa la rotazione con numeri complessi, come nel codice di riferimento Llama di Meta, e verifica la proprietà della posizione 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}")

Stampa -8.2811 per entrambe le coppie distanti tre token, sia che si trovino alle posizioni 5 e 2 sia alle posizioni 105 e 102; stampa invece -11.4563 quando gli stessi vettori sono distanti un token. La query ruotata mantiene la sua lunghezza di 8.3705.

RoPE a confronto con altre codifiche posizionali#

  • Codifica assoluta sinusoidale: il Transformer originale aggiunge vettori fissi di seno e coseno agli embedding di input una sola volta, prima del primo livello. La distanza relativa deve essere dedotta dal segnale incorporato.
  • Embedding assoluti appresi: BERT e GPT-2 apprendono un vettore per ogni posizione, fino a 512 e 1,024 posizioni, e non dispongono di embedding per le posizioni oltre tali limiti.
  • Bias relativi di posizione: T5 e ALiBi aggiungono ai punteggi di attenzione un bias appreso o fisso basato sulla distanza. RoPE codifica la distanza relativa tramite la rotazione stessa e non aggiunge parametri.

Estendere la finestra di contesto#

Un modello addestrato con RoPE su sequenze di lunghezza L non ha mai visto gli angoli di rotazione delle posizioni oltre L e il meccanismo di attenzione perde efficacia quando li incontra. I metodi di estensione del contesto ridimensionano gli angoli invece di riaddestrare il modello da zero. Interpolazione delle posizioni comprime le nuove posizioni nell'intervallo usato per l'addestramento e ha esteso i modelli Llama a una finestra di contesto di 32.768 token entro 1.000 passaggi di affinamento. Il ridimensionamento che tiene conto di NTK e il metodo YaRN dilatano le coppie lente e a bassa frequenza più di quelle veloci, e YaRN ha esteso Llama 2 a 128K token con un numero di token di addestramento 10 volte inferiore rispetto ai metodi precedenti. Llama 3 ha aumentato il valore di base da 10.000 a 500.000 durante il preaddestramento, così le coppie più lente ruotano meno per token e le posizioni distanti restano distinguibili.

RoPE nei modelli di visione#

Le immagini richiedono due coordinate, quindi i Vision Transformer usano RoPE 2D, o assiale: metà delle coppie di feature di ogni head ruota in base alla colonna di una patch e l'altra metà in base alla sua riga. Qwen2-VL aggiunge un terzo asse, quello temporale, per i video nel suo M-RoPE multimodale. Il SAM 2 di Meta, disponibile nel pacchetto Ultralytics, applica RoPE assiale nei quattro livelli della sua attenzione alla memoria, in cui le feature del frame video corrente prestano attenzione alle feature memorizzate dei frame precedenti. Le key di ogni frame memorizzato ricevono la stessa griglia di angoli delle query del frame corrente, quindi l'attenzione tra i due dipende dallo scarto spaziale tra le patch.

Explore solutions

La visione artificiale nello sport

La visione artificiale nello sport

Scopri come Ultralytics YOLO alimenta la computer vision nello sport con il tracciamento di giocatori e palloni, l'analisi delle prestazioni, gli approfondimenti per gli allenatori e la riabilitazione degli atleti.
Scopri di più
Computer vision per immagini aeree

Computer vision per immagini aeree

Trasforma immagini da droni e riprese aeree in informazioni utili in tempo reale per l'agricoltura, l'acquacoltura, il monitoraggio ambientale, la conservazione e l'analisi geospaziale con Ultralytics YOLO.
Scopri di più
Computer vision nel settore aerospaziale

Computer vision nel settore aerospaziale

Porta la vision AI nel monitoraggio aereo con i modelli Ultralytics YOLO. Potenzia droni, flussi di lavoro aerospaziali, conservazione ambientale e settori geospaziali con soluzioni di computer vision.
Scopri di più
Visione artificiale nella sicurezza

Visione artificiale nella sicurezza

Proteggi ogni sito con i modelli Ultralytics YOLO. L'IA visiva alimenta il monitoraggio perimetrale, il rilevamento delle minacce, il riconoscimento delle targhe e la sicurezza sul lavoro.
Scopri di più
Visione artificiale nella robotica

Visione artificiale nella robotica

Dai più potenza alle macchine intelligenti con i modelli Ultralytics YOLO. Nell'ambito della robotica, l'IA visiva alimenta la navigazione autonoma, la percezione, il tracciamento degli oggetti e il controllo in tempo reale.
Scopri di più
Visione artificiale nella logistica

Visione artificiale nella logistica

Semplifica la logistica con i modelli Ultralytics YOLO. L'IA per la visione consente l'ispezione dei pacchi, la selezione, il tracciamento dei veicoli e il monitoraggio della sicurezza nei magazzini in tempo reale.
Scopri di più
Visione artificiale nel commercio al dettaglio

Visione artificiale nel commercio al dettaglio

Ripensa il commercio al dettaglio con i modelli Ultralytics YOLO. L'IA per la visione consente di tracciare le scorte, monitorare gli scaffali, gestire le code e ottenere informazioni più approfondite sui clienti.
Scopri di più
Visione artificiale in ambito sanitario

Visione artificiale in ambito sanitario

Crea soluzioni sanitarie con i modelli Ultralytics YOLO. In ambito sanitario, l'IA per la visione consente di elaborare più rapidamente le immagini mediche, migliorare la diagnostica e monitorare i pazienti.
Scopri di più
Computer vision nella produzione

Computer vision nella produzione

Ottimizza la produzione con i modelli Ultralytics YOLO. La visione basata sull'IA migliora il controllo qualità, il rilevamento dei difetti, la conformità ai requisiti sui DPI e l'automazione delle linee di assemblaggio.
Scopri di più
Computer vision nel settore automobilistico

Computer vision nel settore automobilistico

Applica la computer vision al settore automobilistico con i modelli Ultralytics YOLO. La visione basata sull'IA migliora la sicurezza stradale, i sistemi di assistenza alla guida e l'automazione dei veicoli, per strade più intelligenti.
Scopri di più
Visione artificiale in agricoltura

Visione artificiale in agricoltura

Porta l'IA visiva nell'agricoltura intelligente con i modelli Ultralytics YOLO. Gestisci il monitoraggio delle colture, il tracciamento del bestiame e l'agricoltura di precisione per ottenere raccolti più abbondanti e intelligenti.
Scopri di più

Costruiamo insieme il futuro dell'IA!

Inizia il tuo percorso verso il futuro del machine learning