Quando nel 2017 è uscito il paper Attention Is All You Need, il titolo prometteva una cosa semplice: l’attenzione basta, il resto avanza. Dentro quel meccanismo però c’era un dettaglio che all’inizio è passato quasi inosservato, ed è quello che oggi fa funzionare praticamente tutti i modelli linguistici.
Il dettaglio si chiama multi-head attention. In italiano suona come “attenzione a più teste” e l’immagine rende bene: più teste che guardano la stessa frase, ognuna con una domanda diversa in testa.
Qui vediamo perché una testa sola non basta, cosa fa esattamente ognuna, come si mettono insieme i risultati e quanto costa tutto questo in memoria e calcolo.
Di cosa parleremo..
Il limite di una testa sola
Partiamo da una frase ambigua, di quelle che capitano nei testi veri.
Il gatto non è salito sul tavolo perché era troppo stanco.
Qui “era” si riferisce al gatto. Cambio una parola: Il gatto non è salito sul tavolo perché era troppo alto. Adesso “era” si riferisce al tavolo. La frase è identica, cambia solo l’aggettivo finale, eppure il soggetto nascosto dietro quel verbo si sposta.
Un meccanismo di attenzione deve decidere, per ogni parola, a quali altre parole guardare. Con una sola testa produce una sola distribuzione di pesi: se la spende per collegare “era” al gatto, non ne ha più per collegarlo al tavolo.
E i pesi di una softmax devono sommare a uno, quindi non può nemmeno fare cinquanta e cinquanta senza perdere precisione su entrambi. Tradotto: una testa sola è costretta a mediare e la media è spesso la risposta peggiore, perché non sceglie nessuna delle due letture.
Cos’è una testa di attenzione, in pratica
Una testa non è un’unità misteriosa. È un blocco di attenzione con proprie matrici di proiezione, che non condivide con le altre: impara da zero come trasformare la stessa parola in query, chiave e valore.
head_i = Attention(Q · W_i^Q, K · W_i^K, V · W_i^V)
Le tre matrici W_i^Q, W_i^K e W_i^V sono i parametri che quella testa impara durante l’addestramento. La funzione Attention è sempre la stessa: prodotto scalare tra query e chiavi, normalizzazione con softmax, somma pesata dei valori.
Cambia solo il punto di partenza: ogni testa guarda la frase attraverso una lente diversa, perché la proiezione iniziale è diversa. Se ti serve un ripasso su come una rete impara i suoi pesi, ne ho parlato nella lezione su cos’è una rete neurale.
Come si mettono insieme: concatenazione e proiezione
Le teste lavorano in parallelo, ognuna per conto suo, senza guardare cosa fanno le altre. Alla fine i risultati vengono concatenati e riportati alla dimensione originale da una matrice di uscita, W^O.
Un esempio con i numeri veri di BERT-base. La dimensione del modello è 768, le teste sono 12, quindi ogni testa lavora su 64 dimensioni. Le dodici uscite da 64, incollate una dopo l’altra, tornano esattamente a 768. A quel punto W^O mescola le informazioni delle varie teste in un unico vettore, pronto per il livello successivo.
Il punto interessante è che la divisione non fa perdere niente: dodici teste da 64 dimensioni coprono le 768 totali. Non è un riassunto, è una spartizione dello spazio e ogni parte viene riempita con una lettura diversa della stessa frase.
Questa spartizione è anche il motivo per cui il costo non esplode. La somma delle teste costa quanto una testa singola con la stessa dimensione totale: non è un moltiplicatore di calcolo, è un modo diverso di organizzarlo.
Ogni testa impara un punto di vista diverso
Nessuno dice a una testa cosa guardare. I ruoli emergono dall’addestramento e sono spesso sorprendentemente ordinati.
Uno studio del 2019 sulla traduzione automatica (Voita e colleghi) ha catalogato i comportamenti ricorrenti: alcune teste seguivano i rapporti sintattici tra verbo e soggetto, altre si occupavano della posizione delle parole, altre puntavano sulle parole rare, quelle che il modello vede poche volte e di cui ha bisogno di più contesto.
Su modelli come BERT si osservano teste che collegano un pronome al nome che sostituisce, teste che riconoscono dove finisce una frase, teste che si agganciano alla punteggiatura per capire la struttura del periodo.
Il risultato è un lavoro diviso: una testa non deve spiegare tutta la frase, le basta un pezzo. È lo stesso principio per cui i layer di un modello distribuiscono il lavoro su più livelli invece di concentrarlo in un punto solo.
Un esempio concreto, parola per parola
Prendi questa frase: Il tecnico ha detto al cliente che il suo server era spento.
In una rete con otto teste, i ruoli si distribuiscono più o meno così.
- Una testa collega “suo” a “cliente”, perché è il cliente ad avere un server.
- Una seconda collega “era” a “server”, che è il soggetto di quel verbo.
- Una terza collega “che” a “detto”, per segnare l’inizio della subordinata.
- Una quarta resta sulle parole vicine, tipo “server” e “spento”, per non perdere l’ordine locale.
Alla fine le informazioni vengono fuse e il modello, per la parola “era”, ha un vettore che contiene soggetto, proprietario e struttura della frase. Nessuna delle teste da sola saprebbe ricostruire tutto. Insieme sì.

Qui si vede anche il legame con gli embedding: la testa non lavora su parole intere, lavora su vettori e il contesto modifica quel vettore parola per parola.
Perché non una testa sola più grande
Obiezione ragionevole: se il problema è la dimensione, perché non una testa da 768 dimensioni invece di dodici da 64?
Perché una testa grande ha comunque una sola distribuzione di attenzione. Può permettersi pesi più precisi, ma resta un unico modo di guardare la frase e la softmax la spinge a concentrarsi su poche posizioni. Con più teste hai più distribuzioni indipendenti: è un piccolo ensemble interno e la diversità aiuta.
Attenzione però a non trasformarlo in una legge. Nel 2019 Michel e colleghi hanno mostrato che molte teste si possono potare dopo l’addestramento senza perdere quasi nulla, a volte senza perdere niente. Vuol dire che una parte delle teste è ridondante.
Ma se le togli durante il training il modello non impara bene: servono come percorsi alternativi, poi alcuni restano inutilizzati. Quindi “più teste uguale più intelligenza” è falso. La formula giusta è: più teste danno più modi di organizzare il contesto e il training decide quanti ne servono davvero.
Tip. Immagina otto revisori che leggono la stessa pagina con compiti diversi: uno cerca i pronomi, uno i verbi, uno le date, uno i nomi propri. Nessuno riscrive la pagina, ognuno prende appunti sul suo foglio. Alla fine qualcuno incolla tutti i fogli in un unico riassunto. La multi-head attention fa esattamente questo, con vettori al posto dei fogli.
Quante teste ci sono nei modelli veri
I numeri aiutano più delle metafore. Ecco alcune configurazioni note.
| Modello | Teste | Dimensioni per testa |
|---|---|---|
| BERT-base | 12 | 64 |
| BERT-large | 16 | 64 |
| GPT-3 | 96 | 128 |
| Llama 2 7B | 32 | 128 |
| Llama 3 8B | 32 | 128 |
La colonna che conta davvero è l’ultima. Le dimensioni per testa restano piccole, quasi sempre 64 o 128, anche nei modelli enormi. Quello che cresce è il numero di teste, non la loro ampiezza.
C’è una ragione pratica: teste piccole sono più facili da addestrare e da parallelizzare e la fusione finale ricompone tutto. Il modello non ha bisogno di teste profonde, ha bisogno di molte lenti sottili.
Multi-query e grouped-query: le varianti che contano oggi
Durante la generazione, il modello conserva chiavi e valori di tutti i token già visti, in una struttura che si chiama KV cache. Con molte teste e contesti lunghi, quella cache diventa il vero collo di bottiglia della memoria.
Da qui nascono due varianti. La multi-query attention (Shazeer, 2019) usa un solo insieme di chiavi e valori condiviso da tutte le teste: cache molto più piccola, generazione più veloce, lieve perdita di qualità.
La grouped-query attention (Ainslie e colleghi, 2023) sta nel mezzo: gruppi di teste condividono chiavi e valori, con un compromesso tra velocità e precisione.
È la variante usata da Llama 3 e da Mistral. Quando leggi nella scheda tecnica “32 teste, 8 teste KV”, quella è la firma di GQA: trentadue teste per le query, otto insiemi di chiavi e valori condivisi da gruppi di quattro.
Dove la ritrovi fuori dal testo
Nei modelli che traducono, la cross-attention usa la stessa struttura: le query vengono dal decoder, chiavi e valori dall’encoder. Nei vision transformer le teste lavorano sulle patch dell’immagine e qualcuna finisce per seguire relazioni spaziali tra zone distanti.
Nei modelli multimodali il gioco si ripete tra testo e immagine, con teste che collegano una parola a una porzione di fotografia. Il meccanismo è sempre lo stesso: più prospettive in parallelo, una fusione finale.
Per questo la multi-head attention è una delle poche idee del deep learning che ha attraversato ambiti diversi senza cambiare forma. È nata per la traduzione, oggi sta nei modelli che descrivono immagini, scrivono codice e trascrivono audio. Se vuoi capire come questi blocchi si incastrano dentro un modello completo, il punto di partenza resta il neurone artificiale.
Come leggere la scheda tecnica di un modello
Quando un modello annuncia la sua architettura, cerca tre numeri: numero di teste, dimensioni per testa e teste KV. Il prodotto dei primi due deve dare la dimensione nascosta del modello. Se non torna, c’è un errore o una semplificazione nel comunicato.
Poi guarda il rapporto tra teste e teste KV. Se coincidono, è multi-head classica. Se le seconde sono una frazione delle prime, c’è GQA e il modello è pensato per risparmiare memoria in inferenza.
Infine, non leggere il numero di teste come un indicatore di qualità. È una scelta di architettura, come il numero di cilindri di un motore: conta come è stato addestrato il modello, non quante teste ha. Un modello con dodici teste ben addestrate batte uno con novantasei teste messe lì per fare scena.
Tip. L’attenzione non è comprensione. Una mappa di attenzione ti dice dove il modello ha guardato, non perché. Due teste diverse possono produrre lo stesso pattern per ragioni opposte e una testa può sembrare “intelligente” solo perché copia un segnale posizionale. Guarda le mappe, ma non prenderle per una spiegazione.
Domande frequenti sulla multi-head attention
Multi-head attention e self-attention sono la stessa cosa?
No, anche se vengono spesso confuse. La self-attention è il meccanismo di base, quello in cui query, chiavi e valori vengono dalla stessa sequenza. La multi-head attention è un modo di organizzarla: più teste in parallelo, ognuna con le proprie proiezioni, i cui risultati vengono concatenati. Puoi avere self-attention con una testa sola, ed è esattamente il caso da cui siamo partiti.
Ogni testa ha un compito assegnato?
No, nessuno assegna niente. I ruoli emergono dall’addestramento e non sono garantiti: la stessa architettura addestrata su dati diversi sviluppa teste con comportamenti diversi. Le categorie che si osservano negli studi, come teste sintattiche o posizionali, sono descrizioni a posteriori, non progetti.
Quante teste servono davvero?
Dipende dal modello e dal compito. Le configurazioni più diffuse stanno tra 8 e 32 teste, con 64 o 128 dimensioni ciascuna. Gli studi sul pruning mostrano che una parte consistente può essere eliminata dopo il training senza danni evidenti, ma questo non significa che si potessero eliminare in partenza.
Perché dividere le dimensioni tra le teste invece di usarle tutte?
Per avere più distribuzioni di attenzione indipendenti a parità di costo. Se una testa sola usasse tutte le 768 dimensioni, avrebbe comunque una sola softmax, quindi un solo modo di pesare le parole. Dividendole, il costo totale resta identico ma le letture della frase diventano dodici.
Che differenza c’è tra multi-head e multi-query attention?
La multi-head classica dà a ogni testa le proprie chiavi e i propri valori. La multi-query li condivide tutti, la grouped-query li condivide a gruppi. Il risultato pratico è una KV cache più piccola, quindi meno memoria occupata e generazione più rapida, con una piccola perdita di qualità che nel caso di GQA è spesso trascurabile.
Si può vedere cosa guarda una testa?
Sì, si estraggono le mappe di attenzione, cioè i pesi assegnati a ogni parola. È un esercizio utile per farsi un’idea, ma va preso con cautela: l’attenzione è una parte del calcolo, non il calcolo intero e modelli diversi possono arrivare alla stessa risposta passando da percorsi diversi. Le mappe sono indizi, non prove.


