Atto 3 · Pagina 9

Come ritrova le cose: l'attention

Mentre elabora la frase, il modello decide a quali parole prestare attenzione. È così che "capisce" il contesto: pesando relazioni, non seguendo regole scritte.

📖 Livello di lettura
🔦 Come un riflettore in un teatro buio: la frase è un palco affollato; per ogni parola, il riflettore illumina le altre parole che contano per capirla.

Sotto ogni parola della demo trovi quattro numeri: sono la sua carta d'identità, e dicono quanto quella parola è un essere vivo, un'azione, una cosa, oppure una parolina che rimanda a un'altra (gli articoli, i pronomi, le congiunzioni). Quando clicchi una parola, il programma trasforma la sua carta d'identità in una domanda — «sto cercando esseri viventi», per esempio — e confronta quella domanda con la carta d'identità di tutte le altre parole. Più le due combaciano, più alto è il punteggio; poi i punteggi diventano percentuali che sommano a cento, e le percentuali disegnano le barre. Il conto lo fa davvero, adesso, nel tuo browser: puoi controllarlo riga per riga nella tabella dei passaggi.

Mini-attention da tavolo calcolo vero · vettori a mano

Clicca una parola: sotto trovi il suo vettorino, e più giù il calcolo che produce le barre.

I passaggi, uno per uno

Colonna 1: il punteggio grezzo, cioè il prodotto scalare fra la query della parola scelta e la key di ognuna delle altre. Colonna 2: quel punteggio diviso per la radice del numero di dimensioni (√4 = 2) e poi messo all'esponente. Colonna 3: ogni esponenziale diviso per la somma di tutti. Questa terza colonna è la softmax: prende numeri qualunque e ne fa percentuali che sommano a uno. La parola scelta è esclusa dal conto per leggibilità; in un transformer vero la diagonale c'è, e spesso è il peso più alto.

Le regole del giocattolo — la matrice Wq
la query…vivoazionecosarimando
cerca vivo0101
cerca azione1010,5
cerca cosa0101
cerca rimando0000

Si legge per righe: la prima dice «quanto cerco esseri viventi», e la cerco se sono un'azione o una parola di rimando. Detto in italiano: un verbo cerca esseri e cose (i suoi argomenti); un nome cerca azioni (il suo verbo); una parola-ponte cerca soprattutto esseri e cose, e un po' le azioni. La key di una parola è invece il vettorino stesso, senza trasformazioni: l'etichetta che la parola espone. Questa matrice l'ho scritta io in dieci minuti; un modello vero impara le sue leggendo miliardi di frasi, e ne ha una coppia diversa per ogni testa di ogni strato.

🗂️ E gli indici? Per ritrovare in fretta i vettori giusti tra milioni (memoria, ricerca, RAG) il sistema usa un indice, come lo schedario di una biblioteca. L'attention invece lavora dentro la frase. Due meccanismi diversi, stesso scopo: trovare ciò che conta.

Il riflettore ha una meccanica precisa, e vale la pena smontarla. Ogni token, arrivato a uno strato di attenzione, produce tre vettori diversi a partire dal proprio: una query, una key e un value. Il modo più onesto di leggerli è come in una biblioteca: la query è la domanda che quel token sta facendo («sto cercando un soggetto maschile singolare»), la key è l'etichetta che ogni altro token espone sul dorso («io sono un soggetto maschile singolare»), il value è il contenuto che passa a chi lo interroga. Il modello confronta la query di una parola con le key di tutte le altre tramite un prodotto scalare, normalizza i punteggi con una softmax in modo che sommino a uno, e con quei pesi mescola i value. La barra che vedi in questa pagina è, in miniatura, quella distribuzione.

Le teste di attenzione sono più d'una per strato, ed è il punto in cui la metafora del riflettore diventa insufficiente: non c'è un solo fascio di luce, ce ne sono decine in parallelo su ciascuno strato, e ognuno impara a inseguire un tipo di relazione diverso — l'accordo fra soggetto e verbo, il legame fra un pronome e il suo antecedente, la parola che chiude una citazione aperta. L'idea nasce nel 2015 con Dzmitry Bahdanau, Kyunghyun Cho e Yoshua Bengio, che la introducono per la traduzione automatica come rimedio al collo di bottiglia delle reti ricorrenti; diventa l'intera architettura nel 2017, quando il gruppo di Ashish Vaswani pubblica «Attention Is All You Need», elimina la ricorrenza e rende il calcolo parallelizzabile. È da lì che discende tutto ciò che usi oggi: la sigla GPT sta per Generative Pre-trained Transformer.

Un esempio concreto di che cosa sappia fare questo meccanismo sono le induction head, descritte da Catherine Olsson e colleghi (2022): coppie di teste che, avendo già incontrato la sequenza «A B» più indietro nel testo, quando rivedono «A» spingono il modello a predire «B». È un circuito di copiatura, e sembra poca cosa, ma è il candidato principale a spiegare l'apprendimento in contesto, cioè la capacità di imparare uno schema dagli esempi che gli metti nel prompt senza che nessun peso venga modificato. Nei grafici di addestramento la sua comparsa coincide con un gradino netto nelle prestazioni: una struttura che si forma da sola e cambia ciò che il modello sa fare.

Meccanica Sotto il cofano

La demo qui sopra esegue, senza abbreviazioni, la formula del §3.2.1 di «Attention Is All You Need»: Attention(Q, K, V) = softmax(QKᵀ / √dk) V, amputata dell'ultimo pezzo — i value, che qui non servono perché non c'è nessuno strato successivo a cui passare il risultato. Il termine QKᵀ è la matrice di tutti i prodotti scalari fra le query e le key; i suoi elementi si chiamano logit, cioè punteggi grezzi non ancora normalizzati. La dk è la dimensione dei vettori: qui vale 4, nel transformer originale vale 64, perché dmodel = 512 viene diviso fra 8 teste. La divisione per √dk non è un vezzo estetico: se le componenti dei due vettori sono indipendenti a media nulla e varianza uno, il loro prodotto scalare ha varianza dk, quindi cresce con la dimensione; logit troppo grandi mandano la softmax in saturazione — un peso quasi uguale a 1 e tutti gli altri schiacciati contro lo zero — e in quella regione il gradiente, cioè la derivata che dice come correggere i pesi, diventa minuscolo e l'addestramento si inchioda. Dividere per √dk riporta i logit in un intervallo in cui la softmax resta sensibile. È lo stesso identico parametro che nella pagina sulla risposta compare come temperatura: dividere prima di esponenziare significa decidere quanto la distribuzione sarà appuntita.

La maschera causale che puoi accendere nella demo è, in un modello vero, esattamente questo: prima della softmax si somma −∞ a tutti i logit delle posizioni future, così il loro esponenziale vale zero e il peso pure. È la differenza fra un encoder — che vede la frase intera, come BERT — e un decoder-only come GPT, che genera da sinistra a destra e non può sbirciare la parola che deve ancora scrivere. Prova a metterla sulla prima parola della frase: non le resta nessuno da guardare, e in un modello vero il peso finirebbe tutto su sé stessa. Prova poi sulla seconda: le resta un solo candidato, e la softmax di un insieme con un elemento solo vale 1 per costruzione — il 100% che leggi lì non è una preferenza del modello, è aritmetica.

Dove il mio giocattolo smette di valere, e conviene sapere dove. Primo: i vettorini sono statici — «gatto» ha sempre gli stessi quattro numeri — mentre in un transformer vero il vettore che entra nello strato n è già contestuale, si porta dentro il residuo di tutti gli strati precedenti, e il «gatto» di questa frase è numericamente diverso dal «gatto» di un'altra. Secondo: qui Wk è la matrice identità, mentre in un modello vero query e key nascono da due matrici distinte, entrambe imparate. Terzo: una testa sola e uno strato solo, mentre GPT-2 small — quello che gira dentro Transformer Explainer — ha 12 strati per 12 teste, cioè 144 pattern di attenzione diversi sulla stessa frase. Quarto: il costo. I punteggi sono n² per testa, con n il numero di token: su un contesto da mille token fanno un milione di prodotti scalari per testa, e su centomila token fanno dieci miliardi. È da questa parabola che nasce metà della ricerca sull'efficienza degli ultimi anni — attenzione sparsa, GQA, MLA — che Sebastian Raschka ha riassunto in una guida visuale alle varianti.

Il mito: «i pesi di attenzione dicono che cosa il modello ha guardato per rispondere». È la lettura più naturale e la comunità di ricerca la discute da anni. Sarthak Jain e Byron Wallace hanno mostrato («Attention is not Explanation», 2019) che si possono costruire distribuzioni di attenzione molto diverse fra loro lasciando la previsione identica: se due spiegazioni contraddittorie producono lo stesso risultato, nessuna delle due è la spiegazione. La replica di Sarah Wiegreffe e Yuval Pinter («Attention is not not Explanation», 2019) ha precisato che dipende da che cosa si chiede a una spiegazione, e che i pesi restano informativi se testati con il metro giusto. Morale utile anche fuori dall'informatica: un numero che sembra dirti «dove guarda il modello» va trattato come un indizio, non come una confessione.
Fuori di qui Una testa vera

Il calcolo della demo è autentico, i vettori no. Se vuoi vedere l'attenzione di un modello vero, questi quattro posti la mostrano davvero. Sono tutti in inglese e i primi tre danno il meglio da computer; nessuno è incorporato qui dentro, perché preferisco mandarti alla fonte che rifarne una copia.

HeadVis Neuronpedia

Una singola testa di attenzione di un modello di frontiera, aperta e ispezionabile: strato 15, testa 22 di Qwen3.6-27B. Nel riquadro di testo puoi incollare una frase tua e guardare dove quella testa manda i pesi, token per token, con l'entropia dell'attenzione e la quota di auto-attenzione calcolate accanto. L'indirizzo segue uno schema regolare — neuronpedia.org/modello/head/strato/indice — e cambiando i due numeri esplori le oltre 36.000 teste catalogate su 37 modelli. È il posto giusto per verificare di persona che le teste non fanno tutte la stessa cosa.

Transformer Explainer Georgia Tech

Un GPT-2 small vero, con i suoi 12 strati e le sue 12 teste, che gira dentro il browser: scrivi una frase, scegli lo strato e la testa, e vedi la matrice di attenzione colorarsi mentre il modello sceglie il token successivo. È la versione autentica di ciò che la mia demo imita in miniatura. poloclub.github.io

Il plastico 3D una visita guidata

Brendan Bycroft ha costruito la visualizzazione tridimensionale dell'inferenza di un nano-GPT da 85.000 parametri: ogni tensore è un solido, e la telecamera vola lungo la pipeline. Non ha ancore negli indirizzi, quindi ti scrivo i passi.

  1. Apri bbycroft.net/llm.
  2. Chiudi il popup di benvenuto.
  3. Nella colonna a destra clicca Self Attention.
  4. Premi la barra spaziatrice per avanzare di un passo alla volta.

Avvertenze oneste: è in inglese, serve un computer con WebGL2 (su telefono degrada), e il modellino non genera linguaggio — ordina tre lettere, A, B e C. Quello che si vede benissimo, invece, è la forma del calcolo, e in coda il confronto di scala con GPT-2 e GPT-3.

Le varianti moderne Sebastian Raschka

Se la multi-head attention classica ti è chiara e vuoi sapere che cosa usano davvero i modelli di oggi — multi-query, grouped-query, multi-head latent attention, finestre scorrevoli — la guida visuale di Raschka le mette in fila con gli schemi, ed è gratuita. È il gradino successivo naturale dopo questa pagina.

💡 La sorpresa: nella seconda frase clicca «lui». Il riflettore si divide in parti uguali fra «cane» e «gatto», perché nel mio giocattolo i due hanno lo stesso identico vettorino: sono esseri viventi, e basta. Un modello vero invece sceglie — non perché applichi una regola di grammatica, ma perché nei suoi vettori sono finiti anche la posizione, il ruolo nella frase e tutto il discorso precedente. È lì che nasce, e ogni tanto sbaglia, la comprensione del contesto.

Come funziona questa demo, detto senza trucchi: i quattro numeri sotto ogni parola li ho scelti io, e sono un giocattolo — un modello vero ne usa centinaia per parola e se li costruisce da solo leggendo miliardi di frasi. Il calcolo, invece, è quello vero: prodotto scalare, divisione per la radice della dimensione, softmax, e i numeri della tabella sono quelli che il tuo browser sta usando in questo momento. L'attenzione autentica si può vedere, e non serve fidarsi di me: Transformer Explainer fa girare un GPT-2 dentro la pagina, e Neuronpedia apre una testa alla volta di modelli grandi. Una cautela in più, che vale anche là: i ricercatori discutono da anni se questi pesi dicano davvero dove il modello ha guardato per rispondere (Jain e Wallace, 2019). Trattali come un indizio, non come una confessione.

Fonti Per approfondire

Complessità della fonte: divulgativa approfondimento tecnica o accademica

  • Paper D. Bahdanau, K. Cho, Y. Bengio, «Neural Machine Translation by Jointly Learning to Align and Translate», ICLR 2015 — la prima attenzione, nata per la traduzione. arxiv.org
  • Paper A. Vaswani et al., «Attention Is All You Need», NeurIPS 2017 — il transformer: via la ricorrenza, resta l’attenzione. Il §3.2.1 contiene la formula che la demo esegue, √dk compreso. arxiv.org
  • Paper C. Olsson et al., «In-context Learning and Induction Heads», 2022 — il circuito di copiatura che spiega buona parte dell’apprendimento in contesto. transformer-circuits.pub
  • Paper N. Elhage et al., «A Mathematical Framework for Transformer Circuits», Anthropic, 2021 — l’attenzione riscritta come circuito: da qui vengono le QK-circuit e OV-circuit di cui la demo è la caricatura. transformer-circuits.pub
  • Paper S. Jain, B. Wallace, «Attention is not Explanation» (2019) e la replica di S. Wiegreffe, Y. Pinter, «Attention is not not Explanation» — il dibattito su che cosa dimostrino davvero i pesi di attenzione. arxiv.org · la replica
  • Saggio S. Raschka, «A Visual Guide to Attention Variants in Modern LLMs», Ahead of AI, 2026 — MHA, MQA, GQA, MLA e finestre scorrevoli messe in fila con gli schemi; gratuito. magazine.sebastianraschka.com
  • Gioco Transformer Explainer (Georgia Tech) — un GPT-2 vero che gira nel browser: si vedono le teste di attenzione accendersi token per token. poloclub.github.io
  • Fonte Neuronpedia, HeadVis (Decode Research) — oltre 36.000 teste di attenzione catalogate su 37 modelli, con il pattern di ogni testa su una frase a scelta. neuronpedia.org
  • Gioco B. Bycroft, «LLM Visualization» — il plastico 3D dell’inferenza di un nano-GPT, con la sezione Self Attention percorribile passo per passo. In inglese, da computer. bbycroft.net
  • Lezione 3Blue1Brown, «Transformers, the tech behind LLMs» — l’attenzione spiegata visivamente, in inglese con sottotitoli. youtube.com