Self-attention: il cuore del transformer
Questo è il meccanismo che ha cambiato tutto. Ogni token «guarda» gli altri token nel contesto e decide a quali prestare attenzione per costruire il proprio significato. La parola «sponda» significa cose diverse vicino a «fiume» o a «banca».
Clicca un token (la query) per vedere a quali altri presta attenzione. Lo spessore e la luce degli archi indicano quanto «peso» riceve ciascuno.
Query, Key, Value
Da ogni embedding si ricavano tre vettori:
- Q Query, «cosa sto cercando?»
- K Key, «cosa offro io?»
- V Value, «l'informazione che porto»
Si confronta la Query di un token con le Key di tutti gli altri (prodotto scalare): più sono allineate, più alto è il punteggio. I punteggi passano per una softmax che li trasforma in pesi che sommano a 1. Il risultato è una media pesata dei Value.
Attention(Q,K,V) = softmax( Q·Kᵀ / √d ) · V
Matrice di attention
Riga = query, colonna = key. Più una cella è chiara, più quella query presta attenzione a quella key. La metà in alto a destra è vuota perché i modelli come GPT sono causali: ogni token vede solo sé stesso e i precedenti, mai quelli futuri. Passa il mouse o tocca una cella per i dettagli.