Il nome "attention" nei transformer: quanta eredità è reale
Nel settembre 2014, in un articolo di Neural Machine Translation, Dzmitry Bahdanau, Kyunghyun Cho e Yoshua Bengio scelgono la parola “attention” per battezzare un meccanismo di pesatura dell’input. Tre anni dopo Vaswani e colleghi pubblicano “Attention Is All You Need” e quella parola diventa il termine tecnico più ricorrente del deep learning del decennio. Questo capitolo separa la coincidenza terminologica dalla filiazione: spiega cosa fa effettivamente il transformer attention come operazione algebrica, mostra induction heads e name mover heads, e marca le sei proprietà — controllo, embodiment, sostrato neurochimico, tempi, parallelismo, differenziabilità — su cui l’analogia con l’attenzione cognitiva si rompe. Stessa parola, oggetti diversi.
Settembre 2014, Université de Montréal. Un dottorando bielorusso di nome Dzmitry Bahdanau è in stage nel laboratorio di Yoshua Bengio. Sta lavorando con Kyunghyun Cho a un problema preciso: il modello sequence-to-sequence che Ilya Sutskever, Oriol Vinyals e Quoc Le hanno appena pubblicato (Sutskever-Vinyals-Le 2014, “Sequence to Sequence Learning with Neural Networks”, NeurIPS) traduce frasi corte molto bene e frasi lunghe molto male. Il motivo è strutturale. Una rete ricorrente — una LSTM, l’architettura inventata da Sepp Hochreiter e Jürgen Schmidhuber nel 1997 per superare il problema del vanishing gradient — legge la frase sorgente token per token, comprime tutto in un singolo vettore di stato finale di poche migliaia di dimensioni, e da quel vettore una seconda LSTM genera la traduzione. Per “Hello world” funziona. Per un periodo di sessanta parole con due subordinate, no: il vettore non basta a trattenere ciò che serve. È un collo di bottiglia.
L’idea di Bahdanau, Cho e Bengio è semplice nel principio: invece di costringere l’encoder a comprimere tutto in un vettore, lasciare il decoder accedere a tutti gli stati nascosti dell’encoder, decidendo a ogni passo quali siano rilevanti. Per ogni passo di decodifica si calcolano dei coefficienti di “compatibilità” fra lo stato corrente del decoder e ciascuno stato dell’encoder, si normalizzano con un softmax, e si produce un vettore di contesto come somma pesata. Quel vettore non è più un punto fisso: è ricalcolato a ogni token, su misura. Il bottleneck si dissolve.
Quando devono nominare il meccanismo, gli autori scelgono “attention”. La parola è efficace come metafora pedagogica: “il decoder presta attenzione alle parti rilevanti dell’input”. È memorabile, è interpretabile, è il tipo di nome che fa carriera in conferenze affollate. La bibliografia del paper (arXiv:1409.0473) cita Sutskever 2014, Cho 2014, Hochreiter-Schmidhuber 1997, Graves 2013, e una manciata di lavori di NMT e gradient-based learning. Non cita Donald Broadbent. Non cita Anne Treisman. Non cita Michael Posner, William James, Hermann von Helmholtz, Christof Koch. La parola “attention” entra nel lessico del deep learning per analogia comunicativa, non per importazione di idee dalla psicologia cognitiva. Questo punto, semplice e decisivo, è il filo conduttore del capitolo.
Perché questo ponte
Sezione intitolata “Perché questo ponte”Il capitolo precedente — attenzione-psicologia — ha ricostruito sessant’anni di scienza cognitiva sull’attenzione: i filtri di Broadbent, l’attenuatore di Treisman, lo spotlight di Posner, le tre reti di Posner-Petersen, il capacity model di Daniel Kahneman, l’inattentional blindness di Mack-Rock e Simons-Chabris. Ha chiuso con un avvertimento: l’attention dei transformer condivide con quella letteratura soltanto il nome. Questo capitolo paga il debito di quell’avvertimento. Ribadisce brevemente la coincidenza terminologica, poi va oltre: spiega cosa fa davvero il meccanismo transformer attention, come si calcola, perché è stato un cambio di paradigma in ingegneria delle reti neurali, e dove sta il confine — netto, non sfumato — con l’attenzione cognitiva.
Il sotto-registro è operativo. Diversamente dai capitoli storici, qui il riferimento al presente — Claude, GPT, Llama, induction heads, in-context learning — vive nel corpo principale, non in sidebar. Il bridge è esplicitato dal nome stesso del capitolo: ponte. Lo stile resta tecnico ma con la libertà di parlare di transformer come oggetto contemporaneo.
Tre ragioni per dedicare un capitolo intero a questo ponte. La prima è didattica: il termine “attention” è il più carico di confusione dell’intero vocabolario AI moderno, e ogni divulgazione semi-seria lo presenta con qualche variante della frase “come la mente umana, il transformer presta attenzione alle parti rilevanti”. La frase è un buon esca per il primo minuto, è un errore concettuale dal secondo. La seconda è storiografica: la genealogia del termine merita di essere ricostruita con precisione, perché chiarisce come funzionano i prestiti lessicali fra discipline. La terza è strutturale: capire cosa fa il transformer attention è prerequisito per leggere mechanistic interpretability, ragionamento test-time, e le critiche moderne (FlashAttention, Lost in the Middle, Mamba). Senza questa base, il resto della Parte IX e XII risulta stratificato male.
Disclaimer iniziale: coincidenza terminologica
Sezione intitolata “Disclaimer iniziale: coincidenza terminologica”Il punto va detto in chiaro e ribadito: fra il transformer attention e l’attenzione studiata da Cherry, Broadbent, Treisman, Posner, Petersen, Kahneman e Lavie esiste una coincidenza terminologica metaforica, non una filiazione documentata. La parola è la stessa; gli oggetti sono diversi.
Lo dimostrano due fatti bibliografici. Primo: il paper di Bahdanau-Cho-Bengio del 2014, dove il termine “attention” entra in NMT, non cita un singolo lavoro di psicologia cognitiva o neuroscienze dell’attenzione. Secondo: il paper di Vaswani et al. del 2017, “Attention Is All You Need”, che generalizza il meccanismo e lo rende centrale nel deep learning moderno, non cita un singolo lavoro di psicologia cognitiva o neuroscienze dell’attenzione. Le bibliografie sono consultabili: si tratta di lavori di NMT, seq2seq, recurrent networks, optimization. Niente Broadbent. Niente Posner.
L’unico filone con filiazione genuina dalla psicologia/neuroscienze al machine learning è quello dei saliency model di Laurent Itti e Christof Koch fra il 1998 e il 2001, che importa idee da Treisman e da Koch-Ullman 1985. Quel filone ha alimentato la computer vision pre-deep-learning. Non ha alimentato il transformer. Per i dettagli si rimanda al capitolo attenzione-psicologia, sezione “Eredità oggi”.
Tenere a mente questa premessa rende il resto del capitolo più leggibile. Quando di seguito si parla di “attention”, si parla di un’operazione algebrica specifica, con proprietà ingegneristiche ben definite e analizzabili. Non si parla di una facoltà cognitiva.
La storia tecnica del meccanismo
Sezione intitolata “La storia tecnica del meccanismo”Tre tappe canoniche fra il 2014 e il 2017, con una pre-storia che sta nel seq2seq.
Pre-storia: il bottleneck di seq2seq
Sezione intitolata “Pre-storia: il bottleneck di seq2seq”Sutskever, Vinyals e Le pubblicano “Sequence to Sequence Learning with Neural Networks” alla NeurIPS del 2014. Ilya Sutskever (allora alla University of Toronto, poi co-fondatore di OpenAI), Oriol Vinyals (Google Brain), Quoc Le (Google Brain) propongono un’architettura encoder-decoder ricorrente. La frase sorgente “How are you” entra token per token in un’LSTM (l’encoder); l’ultimo stato nascosto h_T della LSTM è il “riassunto” della frase. Una seconda LSTM (il decoder) parte da h_T e produce token per token la traduzione “Come stai”.
L’architettura funziona su frasi corte e medie. Su frasi lunghe degrada vistosamente: la qualità misurata in BLEU (Bilingual Evaluation Understudy, una metrica di overlap n-gram per traduzione automatica introdotta da Papineni nel 2002) cala con la lunghezza dell’input. La diagnosi è ovvia retrospettivamente: comprimere una frase di sessanta parole in un vettore di 1000 o 4000 dimensioni significa perdere informazione. Il bottleneck è il limite del modello.
Bahdanau 2014: l’origine
Sezione intitolata “Bahdanau 2014: l’origine”Bahdanau, Cho e Bengio reagiscono al bottleneck con “Neural Machine Translation by Jointly Learning to Align and Translate” (arXiv:1409.0473, settembre 2014; pubblicato a ICLR 2015). Dzmitry Bahdanau (informatico bielorusso, allora dottorando alla Jacobs University di Brema in stage a Montréal), Kyunghyun Cho (informatico coreano-canadese, allora post-doc a Montréal, oggi professore alla New York University), Yoshua Bengio (informatico canadese alla Université de Montréal, Turing Award 2018 con LeCun e Hinton). Il contributo tecnico in tre punti.
Primo: il decoder, a ogni passo t, calcola un vettore di pesi di allineamento alpha_{t,i} — uno per ogni posizione i dell’encoder — sommando ad uno con un softmax. I pesi misurano quanto la posizione i sia “rilevante” per produrre il token target al passo t.
Secondo: la rilevanza è prodotta da un piccolo MLP (additive form): score(s_{t-1}, h_i) = v · tanh(W_a [s_{t-1}; h_i]), dove s_{t-1} è lo stato del decoder al passo precedente e h_i è lo stato dell’encoder alla posizione i. Il vettore v e la matrice W_a sono parametri appresi.
Terzo: il vettore di contesto c_t è la somma pesata c_t = sum_i alpha_{t,i} h_i. Il decoder usa c_t (oltre a s_{t-1} e al token precedente) per produrre il token target al passo t.
Risultato empirico: BLEU che non degrada più con la lunghezza, anzi si stabilizza. Sui dataset WMT del 2014 le frasi sopra le 30 parole tornano a essere traducibili in modo accettabile.
Il termine “attention” è scelto in una nota a piè di pagina della sezione 3.1 del paper: “intuitively, this implements a mechanism of attention in the decoder”. È una metafora comunicativa. Funziona perché tutti capiscono cosa significa “prestare attenzione”. Non c’è alcuna importazione di teoria cognitiva. La filiazione tecnica è interna all’ML: deriva dai lavori di alignment in NMT statistica (IBM models di Brown 1993) e dal trattamento differenziabile dell’allineamento in reti neurali.
Una nota sull’alignment come idea pre-esistente. La traduzione automatica statistica degli anni novanta e duemila aveva già il concetto di allineamento: data una coppia di frasi parallele in lingue diverse, quale parola sorgente corrisponde a quale parola target? Brown e colleghi a IBM (IBM Models 1-5, anni novanta) avevano formalizzato l’allineamento come variabile latente in modelli generativi probabilistici. L’innovazione di Bahdanau-Cho-Bengio è rendere l’allineamento una funzione differenziabile dello stato della rete, calcolata on-the-fly per ogni passo di decodifica, addestrata end-to-end con backprop. È una traslazione tecnica precisa: dall’alignment categoriale e probabilistico della SMT all’alignment continuo e differenziabile dell’NMT. La parola “attention” è il nome che in seguito si è dato a questa operazione; storicamente sarebbe stato altrettanto giustificato chiamarla “differentiable soft alignment”. Sarebbe stato meno suggestivo e meno trasferibile, e probabilmente non avrebbe fatto la fortuna del meccanismo nel discorso pubblico.
Luong 2015: variazioni
Sezione intitolata “Luong 2015: variazioni”Minh-Thang Luong (allora dottorando a Stanford), Hieu Pham (Stanford), Christopher Manning (informatico americano alla Stanford, autore di testi di riferimento in NLP) pubblicano “Effective Approaches to Attention-based Neural Machine Translation” a EMNLP 2015. Tre contributi.
Primo: forme multiplicative dell’attention. Invece dell’MLP additive di Bahdanau, score = s_t · h_i (dot-product) o s_t · W_a · h_i (general). Più semplici, più veloci, prestazioni comparabili.
Secondo: distinzione fra global attention (decoder attende a tutta la sequenza encoder) e local attention (finestra ristretta intorno a una posizione allineata predetta). La local riduce il costo computazionale su frasi molto lunghe.
Terzo: input-feeding architecture, in cui il vettore di contesto del passo precedente viene “feedato” come parte dell’input al passo successivo, migliorando la coerenza.
I contributi di Luong sono incrementali ma fissano una pratica: la forma multiplicative è quella che entrerà nel transformer, perché beneficia direttamente del matmul GPU.
Vaswani 2017: l’esplosione
Sezione intitolata “Vaswani 2017: l’esplosione”“Attention Is All You Need” (NeurIPS 2017, arXiv:1706.03762). Otto autori: Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Łukasz Kaiser, Illia Polosukhin, da Google Brain e Google Research. Il paper rompe con due tradizioni in un colpo solo.
Prima rottura: niente ricorrenza. La LSTM, che era stata il default per sequence modeling per vent’anni, viene eliminata. Tutto il modello è una sequenza di blocchi di attention + feed-forward.
Seconda rottura: niente convoluzione. Le architetture tipo ConvS2S di Dauphin e colleghi (2017), che proponevano CNN come alternativa alle RNN per sequence modeling, non bastano. Il transformer non ha né RNN né CNN: solo attention, feed-forward, layer normalization, residual connections, positional encoding.
Le innovazioni tecniche, che esamineremo in dettaglio a breve, sono cinque: scaled dot-product attention, multi-head attention, self-attention (Q, K, V dalla stessa sequenza), masked self-attention nel decoder, sinusoidal positional encoding. Il titolo del paper, provocatorio, è una claim ingegneristica ristretta: per fare NMT bene non servono RNN né CNN, basta attention. Otto anni dopo, la stessa frase circola come slogan filosofico ed è quasi sempre fuori contesto. Tornerò su questo nella sezione “Dove si rompe”.
La bibliografia di Vaswani 2017 è esauribile in mezz’ora di lettura. Cita Bahdanau 2014, Sutskever 2014, Cho 2014, Luong 2015, Wu 2016 (Google’s NMT system), Gehring 2017 (ConvS2S), Hochreiter-Schmidhuber 1997, Ba-Kiros-Hinton 2016 (layer normalization), He 2016 (ResNet), una manciata di altri. Nessun riferimento alla letteratura cognitivo-neurale dell’attenzione. Punto.
La meccanica: scaled dot-product attention
Sezione intitolata “La meccanica: scaled dot-product attention”Apriamo la formula. Sia X una matrice di dimensione (n, d_model), dove n è il numero di token nella sequenza e d_model è la dimensione dell’embedding (tipicamente 512, 768, 4096, o più nei modelli contemporanei). Tre proiezioni lineari apprese trasformano X in tre matrici:
- Q = X · W_Q, dove W_Q ha dimensione (d_model, d_k). Q è (n, d_k).
- K = X · W_K, dimensione (n, d_k).
- V = X · W_V, dimensione (n, d_v).
Q sta per “queries”, K per “keys”, V per “values”. La metafora informale è quella di un dizionario soft: ogni token emette una query (cosa cerco), una chiave (con cosa mi posso identificare), un valore (cosa porto). Il prodotto query-chiave misura la “compatibilità”, il softmax la converte in distribuzione di probabilità, il prodotto con V recupera una media pesata dei valori.
La formula:
Attention(Q, K, V) = softmax(Q · K^T / sqrt(d_k)) · V
Quattro passi, riga per riga.
Passo 1: scoring. Q · K^T è una matrice (n, n). L’elemento (i, j) è il prodotto scalare q_i · k_j, ovvero quanto la query del token i “matcha” la chiave del token j. Più alto, più affini.
Passo 2: scaling. Si divide per sqrt(d_k). Il motivo è statistico. Se le componenti di q e k sono indipendenti con varianza unitaria, il prodotto scalare q · k ha varianza d_k. Per d_k = 64 il prodotto è dell’ordine di sqrt(64) = 8, per d_k = 512 dell’ordine di sqrt(512) ≈ 22. Senza scaling, con d_k grande la distribuzione del softmax si concentra su un singolo elemento (saturazione); il gradiente attraverso il softmax si avvicina a zero per gli altri elementi (vanishing). Dividere per sqrt(d_k) riporta il prodotto scalare a varianza unitaria, mantiene il softmax in regime “morbido”, e preserva il flusso di gradiente. È un dettaglio piccolo, ed è uno dei contributi di ingegneria di Vaswani 2017: senza quella divisione, il transformer non addestra bene.
Passo 3: softmax row-wise. Su ogni riga i della matrice (n, n), si applica un softmax: A_{i,j} = exp(score_{i,j}) / sum_k exp(score_{i,k}). Risultato: ogni riga somma a 1, è una distribuzione di probabilità sulle posizioni. A_{i,j} è il “peso di attention” che il token i mette sul token j.
Passo 4: pooling. A · V è una matrice (n, d_v). Riga i = sum_j A_{i,j} · v_j: per ogni token i, somma pesata dei valori v_j di tutti i token, con pesi A_{i,j}.
Output finale: tensore (n, d_v) — un nuovo embedding per ogni token, in cui ogni token ha “raccolto” informazione dagli altri token in proporzione ai pesi che ha imparato a dare loro.
Esempio numerico minimale
Sezione intitolata “Esempio numerico minimale”Per concretizzare, prendiamo tre token con embedding di dimensione 4. Per chiarezza usiamo W_Q = W_K = W_V = matrice identità: Q = K = V = X.
x_1 = [1, 0, 1, 0] x_2 = [0, 1, 0, 1] x_3 = [1, 1, 0, 0]
Calcoliamo Q · K^T (matrice 3 × 3):
- (1,1) = 1·1 + 0·0 + 1·1 + 0·0 = 2
- (1,2) = 1·0 + 0·1 + 1·0 + 0·1 = 0
- (1,3) = 1·1 + 0·1 + 1·0 + 0·0 = 1
- (2,1) = 0
- (2,2) = 0 + 1 + 0 + 1 = 2
- (2,3) = 1
- (3,1) = 1, (3,2) = 1, (3,3) = 1 + 1 + 0 + 0 = 2
Scaling per sqrt(4) = 2. Riga 1: [1.0, 0.0, 0.5]. Riga 2: [0.0, 1.0, 0.5]. Riga 3: [0.5, 0.5, 1.0].
Softmax riga 1: numeratori e^1 = 2.718, e^0 = 1.000, e^0.5 = 1.649. Somma 5.367. Pesi: [0.506, 0.186, 0.307].
Output riga 1 = 0.506 · [1, 0, 1, 0] + 0.186 · [0, 1, 0, 1] + 0.307 · [1, 1, 0, 0] = [0.506 + 0 + 0.307, 0 + 0.186 + 0.307, 0.506 + 0 + 0, 0 + 0.186 + 0] = [0.813, 0.493, 0.506, 0.186].
Lettura: il token 1 ha “preso” soprattutto da sé stesso (peso 0.506, perché il prodotto scalare con sé è massimo), un terzo abbondante dal token 3 (con cui condivide la prima componente), e poco dal token 2 (componente disgiunta). Questo è tutto. Niente magia, niente cognizione: è un’operazione algebrica.
Multi-head, self vs cross, masking
Sezione intitolata “Multi-head, self vs cross, masking”Multi-head attention
Sezione intitolata “Multi-head attention”Vaswani 2017 osserva che un singolo strato di attention con d_model dimensioni “vede” un solo subspazio rappresentazionale. Per arricchire la capacità del modello senza farlo crescere di troppo, splittiamo: invece di un’unica attention, h teste parallele, ognuna con d_k = d_v = d_model / h dimensioni.
MultiHead(Q, K, V) = Concat(head_1, …, head_h) · W_O
dove head_i = Attention(Q · W_Q^i, K · W_K^i, V · W_V^i), con proiezioni W_Q^i, W_K^i, W_V^i indipendenti per ogni testa, e W_O matrice di proiezione finale dell’output concatenato.
Costo computazionale comparabile a una singola attention con d_model dimensioni; capacità rappresentazionale superiore. Empiricamente, teste diverse imparano cose diverse: alcune diventano “syntactic heads” (catturano dipendenze testa-modificatore), altre “positional heads” (sempre attendono al token precedente o successivo), altre “rare token heads” (focalizzano su token poco frequenti). Lo vedremo quando parleremo di interpretabilità.
Una nota sul perché funzioni meglio di una singola testa larga, anche a parità di parametri totali. Una testa singola con d_model dimensioni produce un’unica distribuzione di attention per token-coppia, miscelando potenzialmente segnali distinti (sintattici, semantici, posizionali) in un singolo pattern. Più teste con d_model/h dimensioni ciascuna producono h distribuzioni separate, ciascuna libera di concentrarsi su un segnale. Il pooling concatenato e la proiezione W_O ricompongono. È una forma di decomposizione strutturale del problema, simile in spirito alla pluralità di filtri nei layer convoluzionali. Non è necessario per ragioni di capacità (i parametri sono gli stessi); è utile per ragioni di separazione delle funzioni.
Varianti pratiche riducono il costo memoria delle teste senza perdere troppo in qualità. Multi-Query Attention (Shazeer 2019): h query heads ma una sola coppia K, V condivisa fra tutte. Risparmio di memoria nella KV cache durante inference, leggera perdita di qualità. Grouped-Query Attention (Ainslie 2023, usata in Llama 2/3, Mistral, Qwen): un compromesso, g gruppi di query heads condividono ciascuno una coppia K, V. Per dettagli vedi mqa-gqa (in preparazione).
flowchart LR
IN["Q, K, V<br/>(n × d_model)"]
IN --> SP["Linear projections × h<br/>(ogni head: d_model / h)"]
SP --> H1["head_1<br/>scaled dot-product"]
SP --> H2["head_2<br/>scaled dot-product"]
SP --> HD["..."]
SP --> Hh["head_h<br/>scaled dot-product"]
H1 --> CC["Concat<br/>(n × d_model)"]
H2 --> CC
HD --> CC
Hh --> CC
CC --> WO["W_O<br/>(proiezione lineare finale)"]
WO --> OUT["output<br/>(n × d_model)"]
Figura 2 — Multi-head attention diagram: input Q K V each n by d_model, split into h linear projections of size d_model over h, h parallel scaled dot-product attention blocks labeled head_1 to head_h, concat, final linear projection W_O, output n by d_model
Self-attention vs cross-attention
Sezione intitolata “Self-attention vs cross-attention”Self-attention: Q, K, V derivano dalla stessa sequenza X. Ogni token interroga tutti i token della stessa sequenza, sé incluso. È il caso degli encoder layer del transformer originale, ed è l’unico caso nei decoder-only come GPT, Llama, Claude. Il prefisso “self” significa “stessa sequenza”, non “auto-coscienza”, non “riflessione metacognitiva”. Lo dico perché in articoli divulgativi questa confusione compare spesso.
Cross-attention: Q derivano da una sequenza, K e V da un’altra. È il caso del decoder dell’encoder-decoder transformer di Vaswani 2017, dove il decoder usa Q dal proprio stato e K, V dall’output dell’encoder. Oggi cross-attention si trova anche nei vision-language model (Q dal testo, K-V da feature visive), in alcune varianti di RAG-architecture, nei modelli speech-to-text.
Masking
Sezione intitolata “Masking”Nel decoder di un modello autoregressivo (GPT-style) il token al passo t deve poter predire il token t+1, ma non deve “vedere” i token futuri durante il training. Soluzione: causal mask. Nella matrice Q · K^T, tutti gli elementi (i, j) con j > i vengono settati a -infinito prima del softmax. Conseguenza: softmax = 0 su quelle posizioni. Il token i può attendere solo a 1, 2, …, i (sé incluso). Niente leakage dal futuro.
C’è anche il padding mask, banale: posizioni di padding (riempimento per allineare batch di lunghezze diverse) vengono mascherate per non contaminare i pesi di attention.
Positional encoding
Sezione intitolata “Positional encoding”Il transformer ha un problema strutturale: senza ricorrenza né convoluzione, il modello è permutation-equivariant. Se permuti l’ordine dei token in input, l’output si permuta nello stesso modo, ma il modello non distingue “il cane morde l’uomo” da “l’uomo morde il cane”. Inaccettabile. Soluzione: aggiungere informazione di posizione esplicita.
Sinusoidal positional encoding (Vaswani 2017). Per ogni posizione pos e ogni dimensione i del modello, si aggiunge all’embedding:
PE(pos, 2i) = sin(pos / 10000^{2i / d_model}) PE(pos, 2i+1) = cos(pos / 10000^{2i / d_model})
L’idea: una posizione viene codificata come pattern di seni e coseni a frequenze diverse. Una proprietà utile è che PE(pos + k) si può scrivere come trasformazione lineare di PE(pos), il che dovrebbe aiutare il modello a imparare relazioni relative. In pratica l’estrapolazione a lunghezze maggiori del training è limitata.
Learned positional embedding. Una semplice matrice [max_len, d_model] appresa con backprop. Usato in BERT, GPT-2. Vantaggio: semplicità. Svantaggio: zero estrapolazione oltre max_len.
RoPE (Rotary Position Embedding). Jianlin Su, ricercatore cinese, e collaboratori, in “RoFormer: Enhanced Transformer with Rotary Position Embedding” (arXiv:2104.09864, 2021). L’idea elegante: invece di sommare la posizione all’embedding, ruotare Q e K nel piano 2D in funzione della posizione. Il prodotto scalare q_i · k_j allora diventa funzione solo della distanza relativa (i - j), non delle posizioni assolute. Ottima estrapolazione, default in Llama, Mistral, Qwen, e molti altri modelli del 2024-2026.
ALiBi (Attention with Linear Biases). Ofir Press, Noah A. Smith, Mike Lewis, in “Train Short, Test Long” (ICLR 2022). Niente embedding posizionale: si aggiunge un bias lineare al prodotto Q · K^T prima del softmax: -m · |i - j|, con m fisso per testa (decrescente esponenzialmente sulle teste). Effetto: si penalizzano coppie distanti. Estrapola robustamente a lunghezze enormemente superiori al training. Adottato in MPT, e influente.
Per dettagli vedi rope (in preparazione) e alibi-yarn (in preparazione).
Cosa fa funzionalmente attention
Sezione intitolata “Cosa fa funzionalmente attention”Sintetizziamo la natura computazionale del meccanismo in quattro proprietà, senza ricorrere ad analogie cognitive.
Proprietà 1: routing dinamico di informazione. Per ogni posizione i di output, il modello calcola pesi A_{i,j} su tutte le posizioni j di input. Decisione soft (probabilità che sommano a 1), dipendente dall’input (i pesi cambiano con i contenuti, a differenza di una convoluzione con kernel fissi), differenziabile (gradient flow attraverso softmax e matmul). È il cuore meccanico del transformer.
Proprietà 2: assenza di bottleneck a lunghezza variabile. A differenza del seq2seq classico, dove l’intera frase sorgente passa per un singolo vettore di stato, ogni token target accede direttamente a tutti i token source (o, in self-attention, a tutti i token della propria sequenza). La capacità di “trasferimento di informazione” non è limitata da un collo di bottiglia fisso.
Proprietà 3: parallelismo computazionale. Diversamente da una RNN, in cui ogni passo dipende dal precedente (sequenziale), in attention tutti i pesi e i pooling possono essere calcolati in parallelo via matmul su GPU. Il costo computazionale è O(n^2) in lunghezza (la matrice Q · K^T è quadratica), ma è parallelizzabile. Il training scala con la potenza dell’hardware.
Proprietà 4: gradient flow corto. Il path di gradient da un output a un input lontano nella sequenza attraversa O(1) layer di attention. In una RNN, lo stesso path attraversa O(n) passi ricorrenti, con il problema famigerato del vanishing/exploding gradient. Hochreiter e Schmidhuber hanno parzialmente risolto con LSTM nel 1997, ma il problema è strutturale. Il transformer lo elimina per costruzione.
Queste quattro proprietà sono ingegneristiche. Sono la ragione per cui il transformer ha vinto. Nessuna richiede un’analogia con l’attenzione cognitiva per essere giustificata. Quando si insegna il transformer, si dovrebbe partire da qui, non dalla metafora della “selezione attentiva”.
Inference, autoregressivo, KV cache
Sezione intitolata “Inference, autoregressivo, KV cache”Una conseguenza pratica del design importante per chi costruisce sistemi: durante l’inference autoregressiva di un modello decoder-only (GPT, Claude, Llama), si genera un token alla volta. Al passo n, per produrre il token n+1, si calcola attention dell’ultimo token su tutti i token precedenti 1, …, n. Senza ottimizzazione, questo richiederebbe ricalcolare K e V per tutti i token precedenti ad ogni passo: spreco enorme.
Soluzione: la KV cache. K e V dei token già generati vengono conservati in memoria GPU; al passo n+1 si calcola Q, K, V solo per il nuovo token, si appende K e V alla cache, e si fa attention del nuovo Q sull’intera cache. Costo per token: O(n) anziché O(n^2). Lo spazio richiesto cresce linearmente con la lunghezza della sequenza (e con il numero di layer e di teste). Sui modelli moderni la KV cache occupa una frazione significativa della memoria GPU disponibile, ed è uno dei fattori principali del costo di inference. Vedi kv-cache (in preparazione) e prompt-caching (in preparazione).
Multi-Query e Grouped-Query Attention nascono in larga parte per ridurre la KV cache: condividere K, V fra teste significa h volte meno memoria da conservare, con beneficio diretto su throughput e latency.
Sintesi tabellare: psychological vs transformer attention
Sezione intitolata “Sintesi tabellare: psychological vs transformer attention”Per chi voglia portarsi via una mappa unica, ecco le sei dimensioni di confronto messe a tavola.
| Dimensione | Psychological attention | Transformer attention |
|---|---|---|
| Forma matematica | Nessun modello formale unificato; molti modelli competing (filter, attenuator, load, capacity, three-network) | softmax(Q · K^T / sqrt(d_k)) · V |
| Sostrato | Neuroni, neurotrasmettitori (norepinefrina, acetilcolina, dopamina) | Matrici di pesi, matmul su GPU/TPU |
| Controllo | Sistema esecutivo (ACC, dlPFC) che arbitra in tempo reale | Cristallizzato nei pesi appresi; nessun arbitro separato |
| Tempo | Decine-centinaia di ms per orienting, secondi per alerting | Microsecondi per forward pass parallelo |
| Embodiment | Loop saccade-postura-azione, premotor coupling | Operazione su tensori; nessun corpo |
| Differenziabilità | Non si addestra con gradient descent | Addestrato end-to-end via backprop |
| Parallelismo | Limitato, capacity-constrained, prevalentemente serial | Pieno parallelismo durante training; sequenziale autoregressivo durante generation |
| Capacità | Limitata (4–7 elementi nella WM, single focus dello spotlight) | n token nel context window, distribuzione softmax su tutti |
| Sviluppo | 20+ anni di maturazione (alerting → orienting → executive) | Giorni-settimane di pre-training su miliardi di token |
Nessuna riga della tabella mostra equivalenza. Le righe si allineano per funzione superficiale (“selezionare informazione rilevante”) e divergono per meccanismo, sostrato, scala, tempo. È il tipo di tabella che chiarisce immediatamente perché il termine “attention” produca tante confusioni.
Interpretability: cosa imparano le attention head
Sezione intitolata “Interpretability: cosa imparano le attention head”Una volta addestrato un transformer, possiamo guardare dentro le sue teste e cercare di capire cosa stiano facendo. È il programma di mechanistic interpretability (vedi mech-interp-intro in preparazione), che negli ultimi anni ha prodotto risultati significativi.
BERT: pattern superficiali
Sezione intitolata “BERT: pattern superficiali”Kevin Clark, Urvashi Khandelwal, Omer Levy, Christopher Manning, in “What Does BERT Look At?” (BlackboxNLP 2019), analizzano le 144 attention head di BERT-base (12 layer × 12 head). Trovano teste che attendono al token successivo, al precedente, al token [SEP] di separazione, al token [CLS] di classificazione. Trovano teste con pattern sintattici: dipendenze soggetto-verbo, head di noun phrase, oggetti diretti. Trovano teste opache, di funzione non chiara.
Il messaggio: già in BERT, un encoder relativamente piccolo, le teste si specializzano. Ma “specializzazione” non è “attenzione cognitiva”: è semplicemente che, nel corso del training, gradient descent ha distribuito funzioni diverse fra teste diverse, perché era un buon punto di ottimo.
Pruning di teste
Sezione intitolata “Pruning di teste”Elena Voita, Daniel Talbot, Fedor Moiseev, Rico Sennrich, Ivan Titov, in “Analyzing Multi-Head Self-Attention” (ACL 2019), conducono pruning iterativo di teste in transformer addestrati per NMT. Risultato: si può rimuovere il 70-80% delle teste senza degradazione significativa. Le teste essenziali sono poche e specifiche: positional, syntactic, rare-token-attending. La maggioranza è ridondante.
Implicazione per la nostra discussione: la “specializzazione” delle teste è reale ma sovradimensionata dal training. Non è un piano cognitivo che il modello ha sviluppato; è un effetto collaterale della ridondanza richiesta dall’ottimizzazione.
Induction heads (Olsson 2022)
Sezione intitolata “Induction heads (Olsson 2022)”Catherine Olsson, Nelson Elhage, Neel Nanda e collaboratori di Anthropic, in “In-context Learning and Induction Heads” (arXiv:2209.11895, 2022), identificano un meccanismo che merita attenzione speciale (gioco di parole intenzionale): le induction heads.
Una induction head è una composizione di due teste in layer consecutivi che implementa un pattern di prefix matching. Dato un contesto del tipo ”… A B … A”, l’induction head predice “B” come token successivo. Nel concreto:
- Nel layer più basso, una previous-token head copia l’informazione del token precedente nel residual stream della posizione corrente. Cioè: alla posizione t, dopo la testa, c’è informazione su (token_t, token_{t-1}).
- Nel layer più alto, una induction head vera e propria: alla posizione corrente t (token A), la query Q cerca occorrenze precedenti di A nel passato. Trova la posizione k dove c’è A, attende fortemente lì. La V di quella posizione k contiene informazione su (token_k, token_{k-1}) — ma serve il next token. Riformulazione: il pattern in realtà è “alla posizione k+1 (= B) la previous-token head ha copiato info su A; nel contesto attuale il token corrente è A; cerca posizioni dove A è il token-precedente, recupera il token corrente di quella posizione, che è B”.
L’esposizione esatta richiede un capitolo a sé (vedi attention-heads-circuits in preparazione e l’analisi originale di Elhage 2021, “A Mathematical Framework for Transformer Circuits”). Il punto qui è funzionale: le induction heads sono il meccanismo che spiega l’in-context learning, ovvero la capacità del modello di seguire pattern visti nel prompt e replicarli nel completamento. Senza induction heads, niente few-shot learning.
Olsson e colleghi mostrano che l’emergenza delle induction heads durante il training coincide con un “phase change” in cui il modello acquisisce in-context learning. Si vede come una piccola gobba nella loss curve. Prima della gobba: il modello non sa generalizzare pattern; dopo la gobba: sa.
![Induction head pattern: top row token sequence “The [cat] [sat] … [The] [?]”, below two-layer attention diagram with previous-token head at lower layer copying token info, induction head at upper layer querying earlier positions, finding prior occurrence of [The], reading next-token info “cat” placed by lower layer, output prediction “cat”; arrows label QK circuit “where to attend” and OV circuit “what to write”]
Name mover heads (Wang 2023)
Sezione intitolata “Name mover heads (Wang 2023)”Kevin Wang, Alexandre Variengien, Arthur Conmy, Buck Shlegeris, Jacob Steinhardt, in “Interpretability in the Wild” (ICLR 2023), analizzano il task IOI (Indirect Object Identification): “When Mary and John went to the store, John gave a drink to ___”. Risposta corretta: “Mary”.
Identificano in GPT-2 small un circuito completo composto da: name mover heads (che spostano i nomi candidati), S-inhibition heads (che sopprimono il nome del soggetto, “John”), duplicate token heads (che identificano nomi ripetuti). La composizione fra queste teste implementa la deduzione “il nome non-soggetto va all’oggetto indiretto”. Riproducibile per altre formulazioni del task.
Attention is not explanation
Sezione intitolata “Attention is not explanation”Sarthak Jain e Byron Wallace, in “Attention is not Explanation” (NAACL 2019), mostrano un risultato che vale ribadire: leggere i pesi di attention come “spiegazione” del comportamento del modello è spesso fallace. Distribuzioni di attention molto diverse possono produrre output identico (le contro-distribuzioni esistono e si trovano per ottimizzazione). I pesi non correlano sempre con misure di feature importance basate su gradient. La risposta di Sarah Wiegreffe e Yuval Pinter (2019) raffina: dipende dal task, dal setup, dall’architettura. Conclusione operativa: i pattern di attention sono utili come euristica, non sono prove. Il caveat va sempre tenuto presente.
Pattern non è “attention” cognitiva
Sezione intitolata “Pattern non è “attention” cognitiva”Anche quando una testa fa qualcosa di interpretabile — induction, name moving, syntactic dependency tracking — questo non è “attenzione” nel senso di Posner-Petersen. È un circuito computazionale appreso da gradient descent, codificato in matrici di pesi W_Q, W_K, W_V, W_O. Non c’è alerting tonico, non c’è orienting con saccadi, non c’è executive control con conflict monitoring. È una funzione di routing differenziabile che fa, durante un singolo forward pass, una cosa specifica per cui è stata ottimizzata.
Limiti e alternative
Sezione intitolata “Limiti e alternative”Quadraticità
Sezione intitolata “Quadraticità”Self-attention è O(n^2) in tempo e memoria sulla lunghezza n della sequenza: la matrice Q · K^T è (n, n). Per n = 1k token è gestibile; per n = 100k diventa proibitivo per la memoria GPU. Diverse risposte.
FlashAttention (Tri Dao, Daniel Fu, Stefano Ermon, Atri Rudra, Christopher Ré, “FlashAttention: Fast and Memory-Efficient Exact Attention”, NeurIPS 2022). Non un’approssimazione: una riorganizzazione I/O-aware del calcolo. Invece di materializzare la matrice Q · K^T per intero in HBM (high-bandwidth memory della GPU), FlashAttention divide la matrice in tile, calcola softmax incrementale in SRAM (memoria veloce on-chip), e ricompone l’output. Speedup 2-4x, memoria O(n) invece di O(n^2) per gli intermedi. Cambia la pratica, non la teoria. Vedi flash-attention (in preparazione).
Linear attention / Performer. Approssima softmax con feature map kernel. Complessità O(n) ma quality drop tipico.
Sparse attention. Pattern di attention fissi (locale + globale + random). Sparse Transformer (OpenAI), Longformer, BigBird. Compromesso costo/qualità.
Sliding window + attention sinks. Streaming inference su contesti molto lunghi mantenendo qualche posizione “sink” (in genere i primi pochi token) sempre attiva. Vedi attention-sinks (in preparazione).
Lost in the Middle
Sezione intitolata “Lost in the Middle”Nelson F. Liu e collaboratori a Stanford, in “Lost in the Middle: How Language Models Use Long Contexts” (arXiv:2307.03172, 2023), documentano una degradazione sistematica: anche modelli con context window di 100k+ token tendono a “vedere” meglio l’inizio e la fine del contesto, e a perdere informazione collocata nel mezzo. Bias di posizione, parzialmente correlato ad attention sinks e alla distribuzione di lunghezza dei dati di training. Vedi lost-in-the-middle (in preparazione).
State Space Models
Sezione intitolata “State Space Models”Albert Gu e Tri Dao, in “Mamba: Linear-Time Sequence Modeling with Selective State Spaces” (arXiv:2312.00752, 2023), propongono un’architettura non basata su attention. Selective state space model: una ricorrenza con parametri dipendenti dall’input (gating selettivo). Complessità O(n) in lunghezza, parallelizzabile in training via parallel scan. Performance comparabile al transformer su molti benchmark, vantaggio crescente con lunghezza.
Stato 2026: Mamba, Jamba (ibrido attention + SSM), e successori sono ricerche attive. Il transformer rimane l’architettura dominante per la maggior parte dei foundation model commerciali, ma la pressione competitiva degli SSM è reale. Vedi ssm-mamba (in preparazione) e architetture-ibride (in preparazione).
Cosa NON è transformer attention
Sezione intitolata “Cosa NON è transformer attention”Sintesi delle differenze rispetto all’attenzione cognitiva. Sei punti.
Punto 1 — Non è attenzione cognitiva. Il termine è una scelta lessicale-pedagogica di Bahdanau 2014, ribadita in Vaswani 2017. Coincidenza terminologica metaforica, non filiazione tecnica. Le bibliografie dei due paper fondatori non citano un singolo lavoro di psicologia cognitiva o neuroscienze dell’attenzione. Punto.
Punto 2 — Non è “selezione attenzionale” in senso psicologico. Non c’è filtro early/late. Non c’è executive control esterno. Non c’è budget di risorse limitate (il softmax è sempre normalizzato a 1, indipendentemente dal “carico”). I modelli di Broadbent, Treisman, Lavie non hanno equivalente meccanico nel transformer.
Punto 3 — Non ha controllo top-down esplicito. Il “controllo” è cristallizzato nei parametri appresi W_Q, W_K, W_V durante il training. Niente sistema di controllo separato che, in tempo di inference, arbitra in base a goal e contingenze. La distribuzione dei pesi dipende dall’input (proprietà di routing dinamico), ma il come dipendere è fissato dai pesi.
Punto 4 — Non ha embodiment. Nessun loop sensorimotorio, nessuna saccade oculare, nessun gating attentivo legato a postura o azione. Il transformer attention vive su tensori, viene calcolato in microsecondi su GPU, non ha corpo. La premotor theory of attention di Giacomo Rizzolatti (1987), che lega attention covert all’attivazione preparatoria del sistema oculomotore, non ha controparte.
Punto 5 — Non ha analogo neurale documentato. Il design di scaled dot-product, multi-head, residual stream, layer normalization, positional encoding è motivato da considerazioni di gradient flow, parallelismo, stabilità di ottimizzazione. Non c’è un modello biologico di riferimento. Convergenze suggestive che ogni tanto vengono proposte (attention come “thalamic gating”; multi-head come “specializzazione corticale”; induction heads come “predictive coding”) sono analogie deboli, utili come euristiche di design, non filiazioni. Mancano i lineage paper-citante-paper-citato, mancano gli esperimenti che mostrano corrispondenza meccanica.
Punto 6 — Self-attention non è auto-coscienza. Lo ribadisco perché è il fraintendimento più frequente in articoli divulgativi. “Self” in self-attention significa “Q, K, V derivano dalla stessa sequenza di input”. Nient’altro. Non c’è meta-rappresentazione, non c’è soggetto che monitora, non c’è coscienza riflessiva. È un dettaglio tecnico di flusso dei tensori.
Esempi concreti
Sezione intitolata “Esempi concreti”Tre esempi eterogenei, oltre all’esempio numerico già svolto sopra.
Esempio 1: induction head al lavoro
Sezione intitolata “Esempio 1: induction head al lavoro”Contesto in input a un modello GPT-style di taglia media: “When Alice arrived, Bob smiled. When Charlie arrived, Bob smiled. When Alice arrived again, Bob ___”.
Cosa accade nel modello, ad alto livello, durante il forward pass.
Layer 1-3 codificano embedding lessicali e relazioni di superficie (token vicini). La previous-token head in qualche layer basso copia, per ogni posizione t, l’embedding di t-1 nel residual stream di t.
Layer 4-6 (zona dove tipicamente emergono le induction heads). Alla posizione finale, dove il prossimo token è da predire, il token corrente è “Bob”. La query Q di una induction head misura compatibilità con K di posizioni passate. Trova due “Bob” precedenti. Per ognuno, la V contiene informazione del token corrente e del successivo (grazie alla previous-token head di Layer 1-3). Una di queste informazioni, opportunamente miscelata, suggerisce “smiled” come continuazione plausibile.
Layer più alti raffinano, integrano altre teste (semantic, positional), risolvono ambiguità. Output: il logit di “smiled” è massimo. Il modello predice “smiled”.
Lettura del fenomeno: il modello non ha “ragionato” sull’analogia. Ha trovato un pattern A B nel passato (Alice arrived, Bob smiled), e quando il prefisso A si ripresenta (Alice arrived again), un circuito induction head copia il B atteso. È prefix matching differenziabile. È enormemente utile, è alla base di molto few-shot learning, è interpretabile retrospettivamente. Non è attenzione cognitiva. Nessun executive sistema sta arbitrando. La selezione del pattern emerge dalla composizione QK-OV delle teste, fissata dai pesi appresi.
Esempio 2: transformer vs RNN su sequenza lunga
Sezione intitolata “Esempio 2: transformer vs RNN su sequenza lunga”Confronto pratico su un singolo forward pass attraverso una sequenza di n = 4096 token.
RNN (LSTM). Stato nascosto h_t aggiornato sequenzialmente: h_t = LSTM_cell(x_t, h_{t-1}). Per produrre h_4096 servono 4096 passi sequenziali. Su GPU, ognuno è una matmul piccola; il throughput è limitato dal serial dependency. Gradient da output a token 1 attraversa 4096 cell, soggetto a vanishing / exploding nonostante i gating LSTM.
Transformer con self-attention (decoder-only). Tutti i 4096 token in parallelo, una matmul grande Q · K^T di dimensione (4096, 4096), poi softmax, poi · V. Sulla GPU questa operazione è altamente parallelizzata; il throughput è limitato dalla bandwidth memory e dal compute, non dalla dipendenza sequenziale. Gradient da output a token 1 attraversa un layer di attention (più gli altri layer di feed-forward); il path è O(1) profondo in termini di “salti attraverso il tempo”.
Risultato pratico: il transformer addestra 10-50 volte più velocemente di una LSTM equivalente per parametri, e tratta dipendenze di lungo raggio in modo molto più stabile. Tradeoff: O(n^2) memoria invece di O(n). FlashAttention e gli SSM cercano di aggirarlo, ognuno a modo suo.
Esempio 3: il name mover circuit in IOI
Sezione intitolata “Esempio 3: il name mover circuit in IOI”Prompt: “When Mary and John went to the store, John gave a drink to ___”.
In GPT-2 small (~125M parametri), Wang 2023 traccia il circuito che produce “Mary” come prediction. Componenti.
- Duplicate token heads (layer bassi): identificano che “John” appare due volte. Marcano nel residual stream “John = soggetto duplicato”.
- S-inhibition heads (layer medi): leggono il marker e sopprimono il logit di “John” come prossimo token. “Non rispondere John”.
- Name mover heads (layer alti): cercano nomi candidati nel contesto, escludendo quelli soppressi. Trovano “Mary”, spostano la sua informazione nella posizione finale del residual stream, da cui il logit di “Mary” emerge alto.
Il circuito è composto, modulare, riproducibile su variazioni del prompt. È uno dei casi più studiati di mechanistic interpretability su un task semantico non triviale. Ed è un esempio concreto di cosa significhi “le attention head implementano funzioni computazionali specifiche”: specifico è il termine giusto. Niente di vago, niente di cognitivo.
Dove si rompe
Sezione intitolata “Dove si rompe”Diverse trappole concettuali e pratiche meritano attenzione esplicita.
“Attention Is All You Need” come slogan filosofico. Il titolo del paper di Vaswani 2017 è ingegneria di NMT: “per fare bene NMT non servono RNN né CNN, basta attention”. È una claim ristretta sull’architettura, è una boutade interna alla comunità ML. Estenderlo a tesi sulla mente umana (“la mente è solo attention”), sulla coscienza (“l’attention è il substrato della consapevolezza”), o sull’AGI (“scaling l’attention basta”) è un caso da manuale di slippage di classe di affermazione: titolo di paper → tesi tecnica → tesi cognitiva → tesi metafisica. Ogni passaggio richiede argomenti che il paper non fornisce. Quando vedi questa scivolata in un articolo di divulgazione, sai che stai leggendo retorica, non scienza.
“Transformer attention = attenzione umana”. Falso lungo sei dimensioni indipendenti (controllo, embodiment, sostrato, tempo, parallelismo, differenziabilità — sintesi nella sezione precedente). La somiglianza superficiale (“entrambi selezionano informazione rilevante”) si rompe non appena si scende di un livello. Il rimedio è disciplina sui referenti: chiedere sempre, quando si legge “attention”, di quale dei due si stia parlando. Spesso la chiarezza arriva immediatamente.
Attention weights come spiegazione. Jain-Wallace 2019 lo hanno mostrato: i pesi di attention non sono prove. Sono indizi. Possono essere fuorvianti. La pratica di mostrare heatmap di attention come “ecco perché il modello ha risposto X” è seducente ma fragile. Mechanistic interpretability moderna usa attention come strumento di scoperta di circuiti, ma poi li valida con interventi causali (ablation, patching, activation steering), non solo con visualizzazioni.
Antropomorfismo bidirezionale. Quando attribuisci “vera attention” a un transformer, stai antropomorfizzando il modello. Quando descrivi l’attenzione umana come “softmax mentale”, stai meccanizzando ingenuamente l’umano. Entrambi i movimenti producono cattiva teoria. Il caso “attention” è il banco di prova più chiaro di questo errore (vedi antropomorfismo-rischi).
Pattern interpretabili non sono cognizione. Anche le induction heads, che spiegano in-context learning in modo bello e meccanico, non sono cognizione. Sono circuiti. Il fatto che possano essere interpretati ex-post in linguaggio quasi-cognitivo (“la testa cerca pattern simili”) è una proprietà del nostro linguaggio descrittivo, non del meccanismo. Confondere descrizione e meccanismo è un errore filosofico antico (vedi cosa-significa-pensare e funzionalismo).
Self-attention non è auto-coscienza. Lo ridico una terza volta perché la confusione è persistente. “Self” significa “stessa sequenza”. È un dettaglio tecnico di flusso dei tensori, non una dichiarazione cognitiva.
La “scaling attention is all” come ideologia. Nel periodo 2020-2023 si è diffusa l’idea che bastasse far crescere transformer per ottenere intelligenza generale. È stata una stagione di fede entusiasta, in parte ridimensionata dalla scoperta che alcune capacità non emergono solo da scale (richiedono RLHF, instruction tuning, reasoning training; vedi test-time-scaling e reasoning-rl in preparazione), e dalla pressione delle alternative architetturali (Mamba, ibridi). Lo stato 2026 è più sfumato: il transformer è ancora il default, ma la frase “attention is all you need” ha smesso di essere considerata letterale.
Mind-wandering negli agent loop. A volte si vede un agente che persiste su un sotto-task irrilevante, torna su idee fallite, produce reflection failures. Si è tentati di chiamarlo “mind-wandering”. Ma il mind-wandering studiato da Smallwood e Schooler (2006, 2015) è un fenomeno di drift cosciente in soggetti umani con default mode network attivo. L’agent loop drift è una failure mode di pianificazione, gestione del contesto, prompt engineering. È un problema di harness (vedi harness-definizione in preparazione, compaction in preparazione, subagenti in preparazione), non di cognizione. Vestirlo del lessico cognitivo confonde la diagnosi e ritarda la cura.
Il “long context” come surrogato di “memoria a lungo termine”. Estendere il context window a 100k, 200k, 1M token è un’innovazione utile. Non è equivalente alla memoria a lungo termine in senso cognitivo (vedi memoria-lungo-termine). Differenze: la LTM umana è strutturata (episodica, semantica, procedurale), distribuita anatomicamente (ippocampo + corteccia), persistente fra sessioni, riorganizzata da consolidamento durante il sonno; il context window è una sequenza piatta, viene scartato al termine della sessione, soggetto a Lost-in-the-Middle. Long context risolve un problema diverso, non lo stesso. Vedi ponte-memoria-agenti.
Collegamenti
Sezione intitolata “Collegamenti”- attenzione-psicologia — il capitolo che fissa il riferimento cognitivo. Da rileggere in coppia con questo per vedere la totale separazione tecnica fra i due “attention”.
- attention-bahdanau-2014 — il paper d’origine dell’attention in deep learning, descritto nella sua dimensione storica e in dettaglio tecnico.
- seq2seq-2014 — il bottleneck che attention risolve. Lettura propedeutica.
- transformer-2017 — la generalizzazione di Vaswani: il capitolo storico complementare a questo, con focus sull’evento e sull’architettura completa.
- antropomorfismo-rischi — il caso “attention” come esempio paradigmatico di antropomorfismo bidirezionale.
- cosa-significa-pensare — la cornice filosofica per non confondere descrizione e meccanismo.
- funzionalismo — perché “stessa funzione, sostrato diverso” è una tesi forte ma che va argomentata.
- memoria-working — il bottleneck cognitivo a 4 elementi vs. il bottleneck di seq2seq: analogia debole, da non sovra-interpretare.
- memoria-lungo-termine — perché il long context non è LTM.
- ponte-memoria-agenti — discussione complementare sul ponte memoria umana / memoria agentica.
attention-intuizione,qkv-da-zero,multi-head(in preparazione) — meccanica completa dell’attention, in dettaglio passo per passo.transformer-block(in preparazione) — il blocco completo del transformer (attention + FFN + norm + residual).rope,alibi-yarn(in preparazione) — positional encoding moderni in dettaglio.flash-attention(in preparazione) — la riorganizzazione I/O di Dao 2022.attention-heads-circuits,mech-interp-intro(in preparazione) — il programma di mechanistic interpretability nel dettaglio.ssm-mamba,architetture-ibride(in preparazione) — le alternative architetturali al transformer.lost-in-the-middle,attention-sinks,long-context-tecniche(in preparazione) — limiti pratici del long context.mqa-gqa(in preparazione) — varianti di multi-head per inference efficiente.multimodal-vision(in preparazione) — cross-attention nei vision-language model.
Per andare oltre
Sezione intitolata “Per andare oltre”- Bahdanau, D., Cho, K., & Bengio, Y. (2015). “Neural Machine Translation by Jointly Learning to Align and Translate”. ICLR (arXiv:1409.0473). — Il paper d’origine. Da leggere con questo capitolo aperto: l’osservazione decisiva è la bibliografia, che non cita psicologia cognitiva.
- Vaswani, A., et al. (2017). “Attention Is All You Need”. NeurIPS (arXiv:1706.03762). — Il paper transformer. Lettura tecnica, breve (15 pagine), molto chiaro nelle sezioni 3.2 (scaled dot-product) e 3.5 (positional encoding).
- Elhage, N., et al. (2021). “A Mathematical Framework for Transformer Circuits”. Anthropic. — La cornice teorica per leggere attention head come circuiti QK e OV. Non banale ma fondamentale per capire interpretability.
- Olsson, C., et al. (2022). “In-context Learning and Induction Heads”. Anthropic (arXiv:2209.11895). — Il meccanismo che spiega in-context learning, con esposizione accessibile e analisi rigorose.
- Dao, T., et al. (2022). “FlashAttention: Fast and Memory-Efficient Exact Attention”. NeurIPS (arXiv:2205.14135). — Esempio paradigmatico di come una riorganizzazione I/O-aware cambi la pratica senza cambiare la teoria.
- Gu, A., & Dao, T. (2023). “Mamba: Linear-Time Sequence Modeling with Selective State Spaces”. arXiv:2312.00752. — L’alternativa più seria al transformer al momento di scrittura. Per capire dove va l’architettura post-attention.