Self-Attention

[self attènscion]

Meccanismo dove ogni parola di una frase guarda tutte le altre per capire il contesto. È il cuore del Transformer e quindi di tutta l'IA generativa moderna.

Il self-attention è il trucco matematico che ha cambiato tutto. Senza di lui niente ChatGPT, niente Claude, niente Gemini. Niente di niente.

L'idea: quando il modello legge una frase, ogni parola "guarda" tutte le altre e si chiede "quanto sei rilevante per me?". Nella frase "il gatto che ho visto ieri al parco era bianco", la parola "bianco" deve sapere che si riferisce a "gatto", non a "parco". Self-attention calcola questi pesi di rilevanza in parallelo, per tutte le parole insieme.

Prima dei Transformer, le reti neurali leggevano i testi una parola alla volta (RNN, LSTM). Lente, dimentiche, impossibile parallelizzare. Self-attention guarda tutto in una botta sola, sfrutta le GPU al massimo, mantiene contesto lungo.

Come funziona in pratica:

  • Ogni token diventa tre vettori: Query, Key, Value.
  • Si moltiplica Query di un token per Key di tutti gli altri: ottieni i pesi di attenzione.
  • Si combinano i Value pesati: il token "vede" il contesto.

Costo: il calcolo cresce in modo quadratico con la lunghezza del testo. Una context window doppia costa quattro volte. Per questo i modelli con contesto lungo (1M token) usano varianti ottimizzate come Flash Attention.

Nel paper "Attention Is All You Need" (Google, 2017) c'è scritto tutto. Da lì in poi è cambiata la storia.