Capitolo 05 · Architettura · 14 min

Il Transformer completo

Assemblare i pezzi: attenzione multi-testa, feed-forward, normalizzazione, connessioni residuali.

Tutto questo per arrivare qui

Ora abbiamo tutti i pezzi del puzzle:

  • Il testo diventa token (capitolo 02).
  • I token diventano vettori in uno spazio di significato (capitolo 03).
  • L'attenzione permette a ogni vettore di guardare gli altri e riconfigurarsi (capitolo 04).

Resta da capire come assemblare questi pezzi per ottenere un modello completo. La risposta, elegantemente minimalista: li impiliamo.

Il blocco di base

Un Transformer moderno e lo stesso piccolo blocco, ripetuto N volte. Questo blocco contiene due sotto-moduli:

  1. Un layer di multi-head attention, che permette ai token di comunicare tra loro.
  2. Un feed-forward network (FFN) — due trasformazioni lineari separate da una non-linearita — che trasforma ogni token indipendentemente.

Attorno a questi due sotto-moduli, due strutture fisse:

  • LayerNorm prima di ogni sotto-modulo: normalizza i vettori per stabilizzare l'apprendimento.
  • Connessioni residuali attorno a ogni sotto-modulo: l'uscita del blocco e l'ingresso piu la trasformazione, mai la trasformazione da sola.

Passa il mouse su un sotto-blocco per vederne il ruolo: l'attention diffonde l'informazione tra i token, il feed-forward la trasforma localmente, normalizzazione e residual stabilizzano il tutto. Impilati 32 o 96 volte, danno un GPT-4 o un Claude.

Perche le residuali cambiano tutto

E probabilmente il trucco architetturale piu importante del decennio. Senza connessione residuale, impilare 96 blocchi successivi equivale a far passare un segnale attraverso 96 trasformazioni in cascata. Il gradiente (il segnale di apprendimento) si diluisce a ogni passaggio. Dopo pochi layer, non resta quasi nulla da imparare.

Con una connessione residuale, il blocco impara una modifica invece di una trasformazione totale: uscita = ingresso + f(ingresso). Il segnale iniziale attraversa sempre intatto tutta la rete, e ogni blocco lo arricchisce un po'.

Senza residuale, un Transformer profondo non puo addestrarsi. Con le residuali, puo impilare 100+ layer senza crollare.

Il FFN, la meta dimenticata

Si parla molto di attenzione. Si parla meno del FFN, che pero contiene il doppio dei parametri.

A ogni layer, dopo l'attenzione, ogni token attraversa un MLP:

FFN(x) = Linear_2(GELU(Linear_1(x)))

Linear_1 proietta il vettore in una dimensione intermedia 4× piu larga (tipicamente 4 × 768 = 3072 per GPT-2 small). Linear_2 lo riporta alla dimensione originale. Questa espansione-poi-contrazione e il luogo in cui il modello conserva la maggior parte delle sue conoscenze fattuali: nomi propri, associazioni apprese, motivi ricorrenti.

Quando parliamo di "75 miliardi di parametri" in un modello, la grande maggioranza vive nei FFN.

Posizione e causalita

Due dettagli che non abbiamo ancora discusso:

Encoding di posizione. L'attenzione e invariante per permutazione: se mescoli i token di una frase, l'attenzione restituisce lo stesso risultato (solo mescolato). Non e cio che vogliamo. Perche un LLM sappia che "Il gatto mangia il pesce" e diverso da "Il pesce mangia il gatto", si inietta una informazione di posizione in ogni vettore di embedding (positional encoding, RoPE, ALiBi…). Oggi RoPE (rotary position embedding) e la convenzione.

Maschera causale. Come abbiamo visto nel capitolo 4, in un modello generativo ogni token puo guardare solo i suoi predecessori. La maschera causale si applica alla matrice di attenzione: le posizioni future vengono fissate a −∞ prima del softmax. Questo forza il modello a predire, non a copiare.

Quanti blocchi?

L'architettura e la stessa da GPT-2 a GPT-4. Cio che cambia e la scala:

ModelloBlocchiDimensioneHeadsParametri
GPT-2 small1276812117M
GPT-2 XL481600251.5B
GPT-3961228896175B
Llama 3 70B8081926470B

Piu blocchi = piu ragionamento composizionale possibile (ogni layer puo appoggiarsi alle astrazioni del precedente). Piu dimensioni = piu capacita per token. Piu heads = piu "domande" simultanee.

L'uscita: dal vettore alla distribuzione

A questo punto, l'ultimo blocco ci da, per ogni posizione, un vettore di qualche migliaio di dimensioni. Come torniamo a una distribuzione sul vocabolario?

Un solo passo. Moltiplichiamo questo vettore per una matrice W_out di dimensioni (d_model × |vocab|), poi applichiamo un softmax. Il risultato: per ogni posizione, una probabilita sui ~50.000 token del vocabolario. Questa e l'uscita di un LLM — una distribuzione.

Dettaglio elegante: nella maggior parte dei modelli, W_out condivide i suoi pesi con la matrice di embedding di ingresso (weight tying). La stessa trasformazione che mappa il token 5234 verso un vettore, in senso inverso, mappa un vettore verso la probabilita del token 5234. Risparmio di parametri, e migliore generalizzazione.

Mixture of Experts: non tutti i parametri si attivano

Una variante architetturale e diventata dominante nei modelli recenti: Mixture of Experts (MoE). Mixtral, DeepSeek, Llama 4, GPT-4, Gemini — tutti la usano.

L'idea: invece di un solo FFN per blocco, se ne mettono diversi in parallelo (tipicamente da 8 a 128 expert). Per ogni token, una piccola rete di routing (router) ne seleziona due o quattro — i piu rilevanti per quel token. Solo questi expert si attivano.

Conseguenza: un modello puo avere 400 miliardi di parametri "totali" ma attivarne solo 50 miliardi per token. Capacita di un grande modello, costo di calcolo di uno piccolo. E cio che rende Mixtral 8×7B (47 miliardi di parametri) competitivo con modelli densi molto piu grandi all'inferenza.

Il compromesso: la VRAM deve contenere tutti gli expert (altrimenti bisogna fare swap), e il routing introduce un livello di instabilita all'addestramento. E un'area di ricerca ancora molto attiva.

Il miracolo della semplicita

Tutto l'edificio sta su un solo motivo, ripetuto, normalizzato, sommato a se stesso. Niente strutture specifiche per la grammatica. Niente moduli separati per la semantica. Niente regole linguistiche codificate.

Un Transformer non sa nulla della lingua. Sa solo mescolare vettori guardando chi assomiglia a chi.

Tutta la complessita emerge dall'addestramento: il tema del prossimo capitolo.

Aggiornato il

Il Transformer, dall'inizio alla fine · Step by Token