← Panoramica e percorso
03

L'ordine conta: positional encoding

«Il cane morde l'uomo» e «l'uomo morde il cane» hanno gli stessi token, ma significati opposti. Il transformer guarda tutti i token insieme, quindi serve un modo per dirgli dove si trova ciascuno. Si aggiunge ad ogni embedding un segnale che dipende dalla posizione.

Ogni riga è una posizione nella frase, ogni colonna una dimensione del vettore. Il pattern di onde sinusoidali è unico per ogni posizione: il modello impara a leggerlo come una «firma» della posizione. È la ricetta del Transformer originale (2017).

Nei modelli di oggi: RoPE, la posizione come rotazione

Llama, Qwen, Mistral, DeepSeek e molti altri usano il Rotary Position Embedding: invece di sommare un segnale, ruotano i vettori Query e Key di un angolo proporzionale alla posizione. Sposta le due posizioni e guarda il punteggio di attention.

Distanza3
Punteggio Q·K0.00

Premi Sposta entrambe: i due vettori ruotano, ma l'angolo tra loro, e quindi il punteggio, non cambia. Con RoPE l'attention «sente» solo la distanza relativa tra i token, non la loro posizione assoluta. È una delle ragioni per cui si riesce ad allungare la finestra di contesto dopo l'addestramento. (Qui un solo piano di rotazione; nei modelli veri le coppie di dimensioni ruotano a velocità diverse.)

Mettiti alla prova

Hai capito questa pillola?

2 domande veloci: scegli una risposta per ciascuna.

  1. Perché serve il positional encoding?

  2. Cosa fa RoPE, usato da molti modelli di oggi?