Transformer e Attention
L'architettura su cui si basano tutti i LLM moderni. Il salto: invece di leggere una parola alla volta, guardare l'intera frase e decidere a cosa prestare attenzione.
Il video parte solo se lo chiedi: nessuna richiesta a YouTube prima del click.
Tutti i modelli di cui si parla oggi — GPT, Llama, Qwen, Claude — poggiano sulla stessa architettura, presentata nel 2017 in un paper dal titolo diretto: Attention Is All You Need. Capire cosa cambiò allora spiega perché questi modelli funzionano.
Il problema che c’era prima
Fino al 2017 i modelli linguistici usavano le reti ricorrenti, le RNN. Leggono il testo una parola alla volta, in sequenza, come leggiamo noi.
"Il gatto che il mio amico mi ha regalato ieri è molto carino"
Il → gatto → che → il → mio → amico → mi → ha → regalato → ieri → è → molto → carino
^
qui bisogna ricordare
che si parla del gatto,
ma sono passate dieci parole
Da qui tre guai. Le dipendenze lontane si perdono: arrivato a “carino”, il modello ha ormai sbiadito il soggetto. La lentezza è strutturale: un token alla volta, in ordine, senza possibilità di parallelizzare — e i dati di addestramento sono miliardi di token. E in fase di apprendimento il segnale di errore si dissolve tornando indietro lungo la sequenza, rendendo difficile imparare relazioni distanti.
L’idea: guardare tutto insieme
La mossa del Transformer è semplice da dire: invece di leggere parola per parola, guarda l’intera frase in un colpo solo e decide cosa conta.
Pensa a un tavolo con dieci persone. Le RNN sono il telefono senza fili: il messaggio passa di bocca in bocca e si deforma. L’attention è una conversazione in cui ognuno può rivolgersi direttamente a chiunque altro, subito.
Per ogni parola il modello si chiede: a quali altre parole devo prestare attenzione per capire questa?
"Il gatto si è seduto sul tappeto perché era stanco"
Per capire "era":
gatto → attenzione ALTA (chi era stanco? il gatto)
tappeto → attenzione BASSA (il tappeto non è stanco)
stanco → attenzione MEDIA (ne descrive lo stato)
Query, Key, Value
Il meccanismo usa tre viste di ogni token, e l’analogia della biblioteca le rende immediate:
- Query — la domanda che il token pone: “cerco libri sulla fotosintesi”
- Key — l’etichetta che ogni token espone: “Biologia”, “Chimica”, “Cucina”
- Value — il contenuto effettivo del libro
Il punteggio nasce dall’incontro fra Query e Key: quanto quel libro è rilevante per quella domanda. Poi si prende il Value, pesato per quel punteggio. Ripetuto per ogni parola rispetto a tutte le altre, questo è il cuore della self-attention.
Perché “multi-head”
Una sola attenzione coglie un tipo di relazione per volta. I Transformer ne usano diverse in parallelo — le teste — e ciascuna impara a guardare qualcosa di diverso: una segue i legami grammaticali fra soggetto e verbo, un’altra i riferimenti dei pronomi, un’altra ancora le relazioni di significato. I risultati vengono poi rimessi insieme.
È la differenza fra rileggere una frase con un solo criterio e rileggerla con più criteri contemporaneamente.
Il prezzo da pagare
L’attention confronta ogni token con ogni altro token. Con una sequenza di lunghezza n il costo cresce con n²: raddoppiare il testo in ingresso quadruplica il lavoro.
È il motivo per cui le finestre di contesto molto ampie costano care in memoria e in tempo, ed è il problema su cui si concentra buona parte della ricerca recente.
Perché il primo token è lento e gli altri no
Chiunque usi un modello in locale nota due tempi diversi: un’attesa iniziale, poi un flusso regolare di parole. La spiegazione sta in una struttura di cui si parla poco, la cache delle chiavi e dei valori.
Durante la generazione, per ogni nuovo token il modello dovrebbe ricalcolare Key e Value di tutti i token precedenti. Sarebbe uno spreco enorme, perché quei valori non cambiano mai. Quindi si conservano.
PRIMO TOKEN
elabora tutto il prompt → lento, e cresce con la lunghezza
salva Key e Value di ogni token
TOKEN SUCCESSIVI
calcola solo quelli del token nuovo → veloce e costante
riusa tutto il resto dalla cache
Tre conseguenze che si toccano con mano. Il tempo prima della prima parola dipende da quanto è lungo il prompt; quello fra le parole successive no. La cache occupa memoria e cresce con il contesto, ed è il motivo per cui una conversazione lunga può esaurire la memoria anche se il modello, da solo, ci stava comodo. E cambiare l’inizio del prompt invalida tutto: conviene tenere in testa le parti fisse — istruzioni di sistema, documenti — e in coda quelle variabili, perché diversi sistemi riusano il prefisso già elaborato.
Un ordine di grandezza per capirsi: su contesti lunghi questa cache arriva a occupare diversi gigabyte, a volte più del modello stesso.
Come si riduce quella memoria
Se la cache è il problema, la mossa ovvia è farla più piccola. Nella versione classica ogni testa dell’attention ha le proprie Key e i propri Value, quindi la memoria si moltiplica per il numero di teste.
| Variante | Come funziona | Effetto |
|---|---|---|
| Classica | Ogni testa ha Key e Value propri | Memoria massima, qualità massima |
| A query multiple | Tutte le teste condividono un solo insieme | Memoria minima, qualche perdita |
| A gruppi (GQA) | Le teste sono divise in gruppi, uno per gruppo | Quasi la qualità della classica, molta meno memoria |
La terza è ormai lo standard: Llama, Qwen e Mistral la usano tutte. È una di quelle scelte invisibili all’utente e decisive nei fatti, perché è ciò che rende praticabili le finestre di contesto ampie su hardware normale.
Il costo quadratico, aggirato
La complessità che cresce col quadrato della lunghezza è teorica e non si elimina. Si può però eliminare il collo di bottiglia vero, che non è il calcolo ma il traffico verso la memoria.
L’implementazione ingenua costruisce l’intera matrice di attenzione e la scrive in memoria. Con sequenze lunghe quella matrice è enorme, e spostarla avanti e indietro costa più dei calcoli stessi. La tecnica nota come flash attention la elabora invece a blocchi, tenendo i pezzi nella memoria veloce vicina al processore, senza mai materializzarla per intero.
Ingenua: calcola tutta la matrice → scrivi in memoria → rileggi
A blocchi: lavora un pezzo per volta nella memoria veloce → scrivi solo il risultato
Il numero di operazioni resta identico, il tempo cala parecchio. Non è un dettaglio da specialisti: è uno dei motivi per cui i contesti da decine di migliaia di token sono diventati usabili, ed è attiva quasi ovunque senza che l’utente lo sappia.
Cosa è cambiato dal 2017
L’architettura originale è ancora riconoscibile, ma diversi pezzi interni sono stati sostituiti. I nomi ricorrono nelle schede dei modelli, quindi vale la pena riconoscerli.
| Nel paper originale | Oggi | Perché |
|---|---|---|
| Normalizzazione dopo il blocco | RMSNorm, prima del blocco | Più economica, addestramento più stabile |
| Attivazione ReLU | SwiGLU | Qualità migliore a parità di parametri |
| Posizione codificata in modo assoluto | RoPE | Regge meglio le sequenze lunghe |
| Attention densa | GQA | Meno memoria per la cache |
Nessuna di queste tocca l’idea di fondo: sono ottimizzazioni accumulate in otto anni sullo stesso impianto. Che l’impianto abbia retto senza sostituzioni radicali, in un campo che si muove così in fretta, è di per sé notevole.
In sintesi
| Concetto | In una riga |
|---|---|
| RNN | Legge in sequenza, perde le relazioni lontane, non parallelizza |
| Self-attention | Ogni token guarda tutti gli altri e pesa quanto contano |
| Query / Key / Value | Domanda, etichetta e contenuto: da qui nasce il punteggio |
| Multi-head | Più attenzioni in parallelo, ognuna su un tipo di relazione |
| Costo n² | Il conto cresce col quadrato della lunghezza del testo |
| Cache di Key e Value | Rende veloci i token dopo il primo, ma occupa memoria |
| GQA | Teste raggruppate: molta meno memoria, qualità quasi intatta |
| Flash attention | Elabora l’attenzione a blocchi: stesso calcolo, molto meno traffico |
- Transformer
- Attention
- Architettura
Lezioni collegate
- Cosa sono i Large Language Model
Un LLM predice la parola successiva, un token alla volta. Da qui nasce tutto: cosa sanno fare davvero, perché ogni tanto inventano, e cosa vogliono dire sigle come 7B, Instruct o MoE.
- La tokenizzazione
Il modello non legge lettere né parole: legge token. Capire come il testo viene spezzato spiega i costi, i limiti di contesto e certi errori che sembrano assurdi.