Puntata 203
Puntata 203 — Encoder, decoder, encoder-decoder
Livello: 🧙 Maestro Yoda · Capitolo 19 · Architetture
Tre famiglie, una sola operazione di attention. La scelta di cosa mascherare ha deciso chi sarebbe diventato BERT, chi GPT, chi T5.
La biforcazione del 2018
Il paper del 2017 è encoder-decoder. Nei 18 mesi successivi due laboratori scelgono percorsi opposti:
- OpenAI (giugno 2018) rilascia GPT — solo decoder, addestrato a predire il token successivo.
- Google (ottobre 2018) rilascia BERT — solo encoder, addestrato a riempire token mascherati.
Entrambi vincono benchmark, entrambi diventano standard. Ma fanno cose diverse.
Nel 2019 Google rilancia: T5 ritorna all’encoder-decoder, ma lo allena su “text-to-text” universalmente. Tre famiglie, tre filosofie.
Encoder-only (BERT family)
Schema: stack di blocchi encoder, self-attention bidirezionale (ogni token vede tutti gli altri, futuro incluso).
Obiettivo di training: Masked Language Modeling — mascheri ~15% dei token e chiedi al modello di indovinarli, usando contesto sinistro e destro.
Forte in: comprensione. Classificazione del testo, NER, similarità semantica, retrieval, embedding di qualità. Tutto quello che è “input → etichetta o vettore”.
Debole in: generation. Non è addestrato per produrre testo libero token per token.
Figli notevoli:
- BERT-base (110M) / BERT-large (340M) — 2018
- RoBERTa — stesso schema, training più aggressivo
- DeBERTa v3 — disentangled attention, ottime performance su GLUE
- ModernBERT (2024) — rinnovamento con RoPE, flash-attention, context 8k
- I modelli embedding moderni (E5, BGE, mxbai, Nomic) discendono concettualmente da qui
Nel 2026 BERT-style è ancora dominante per embeddings, retrieval (RAG), reranking, e tutti i task “scoring”.
Decoder-only (GPT family)
Schema: stack di blocchi decoder, self-attention causale (ogni token vede solo il passato).
Obiettivo di training: Next-Token Prediction — data una sequenza, predici il prossimo token. Auto-regressione pura.
Forte in: tutto. Sembra incredibile, ma negli anni si è scoperto che con scaling sufficiente questo schema minimo fa anche comprensione, in-context learning, ragionamento, codice, multimodale.
Debole in: retrieval/embedding “puri”, dove un encoder bidirezionale resta più efficiente in compute.
Figli notevoli:
- GPT-2 (2019, 1.5B) — il primo “spaventoso”
- GPT-3 (2020, 175B) — la rivelazione del few-shot in-context learning
- GPT-3.5/4/5 — gli LLM commerciali che hanno aperto il mercato
- Claude (Anthropic), Llama (Meta), Mistral, Gemini (Google) — tutti decoder-only nel core
- DeepSeek, Qwen, Kimi — la frontiera open
Il decoder-only domina perché: (a) training objective semplice e scalabile, (b) basta uno stack, niente cross-attention da gestire, (c) in inferenza generi token a token senza ri-encoding.
Encoder-decoder (T5 family)
Schema: stack encoder (bidirezionale) + stack decoder (causale) + cross-attention dal decoder verso l’encoder.
Obiettivo di training T5: “text-to-text” — qualunque task è espresso come input testo → output testo, anche classificazione. Pretraining su span corruption (mascheri blocchi di token e chiedi di rigenerarli).
Forte in: task con input lungo e strutturato → output diverso: traduzione, sommarizzazione condizionata, transcoding (HTML→Markdown, SQL→testo). L’encoder può fare il lavoro pesante una volta, il decoder genera.
Debole in: chat open-ended e ragionamento “puro” — il decoder-only è arrivato e ha mangiato la torta.
Figli notevoli:
- T5 (2019, fino a 11B) — il riferimento
- mT5, ByT5 — multilingua e byte-level
- FLAN-T5 — fine-tunato su istruzioni
- UL2 — mix di obiettivi (denoising + causal)
- BART (Meta), originariamente parallelo
- Whisper (OpenAI) — encoder-decoder per audio → testo
- I modelli di traduzione di nuova generazione sono ancora spesso encoder-decoder
Nel 2026 l’encoder-decoder vive bene in nicchie con I/O fortemente asimmetrico (audio→testo, immagine→testo strutturato, traduzione).
Tabella di confronto
| Famiglia | Attention | Pretraining | Inferenza | Forte in | Esempi |
|---|---|---|---|---|---|
| Encoder-only | Bidirezionale | MLM (mask) | Embed/score | Classificazione, retrieval, NER, embeddings | BERT, RoBERTa, DeBERTa, ModernBERT |
| Decoder-only | Causale | Next-token | Auto-regressivo | Generation, chat, reasoning, generico | GPT-5, Claude, Llama, Gemini, Mistral |
| Encoder-decoder | Bidir + causal + cross | Span corruption / seq2seq | Encode-once, decode | Traduzione, sommarizzazione, ASR | T5, BART, Whisper, NLLB |
Perché ha vinto il decoder-only?
Tre ragioni di ingegneria, una di fortuna.
Ingegneria:
- Una sola loss, una sola pipeline. Pretraining e fine-tuning collassano nello stesso schema (next-token prediction).
- Niente “decision point” — un modello, un task, un prompt. Tutto è generation.
- In-context learning emerge naturalmente con scaling. Few-shot via prompt funziona meglio nei decoder-only (osservato in GPT-3 paper, 2020).
Fortuna: il mercato ha premiato la chat, che è nativa per i decoder-only. Se avesse premiato la search, oggi staremmo qui a parlare di encoder.
Vie ibride attuali (2026)
La distinzione si è sfumata:
- Prefix-LM — decoder con attention bidirezionale sul prefisso (input) e causale sull’output. Mix tra T5 e GPT.
- Modelli “encoder-style” per retrieval costruiti su top di decoder-only (LLM2Vec, GritLM): prendono un GPT, lo riallenano per produrre embedding.
- VLM con encoder visivo + decoder testuale (LLaVA, Qwen-VL, Claude Vision) — encoder ViT + decoder LLM via cross-attention o concatenazione di token visivi.
- Multimodali nativi (GPT-4o, Gemini 2, Veo) — decoder-only che ingoia anche token audio/visivi nel suo stream.
Quando ti interessa scegliere?
Se devi fare retrieval / classification / scoring su grossa scala: usa un encoder. Sono 100× più piccoli ed economici per query rispetto a un LLM di pari accuracy. Cerca DeBERTa-v3, ModernBERT, BGE per embedding.
Se devi fare un’app conversazionale, agente, RAG, copilot: decoder-only. Tutto l’ecosistema (function calling, MCP, streaming, tool use) è disegnato qui.
Se hai un task seq2seq con input/output fortemente asimmetrici: prova prima un FLAN-T5-XL o un mBART. Se non basta, scala a decoder-only con un buon prompt.
Glossario lampo
- MLM — Masked Language Modeling. Obiettivo BERT.
- CLM — Causal Language Modeling. Obiettivo GPT.
- Span corruption — masking di sequenze contigue, non singoli token. Obiettivo T5.
- Prefix-LM — variante che bidirezionalizza l’attention sul prefisso.
TEST hands-on
- Su HuggingFace, scarica tre modelli piccoli:
bert-base-uncased,gpt2,t5-small. Stesso prompt: “Traduci in francese: The cat sits on the mat.” - Per ognuno, capisci cosa ti aspetti: BERT non genererà testo (è un encoder); GPT-2 continuerà la stringa in modo prevedibilmente caotico; T5 produrrà la traduzione, perché ha visto questo formato in pretraining.
- Confronta i risultati. Documenta perché ognuno si è comportato così.
- Bonus: prendi un BERT e adattalo a embedding (mean pooling sull’ultimo layer). Confronta la similarità coseno fra “banca del fiume” e “riva del fiume” vs “banca del fiume” e “banca dati”. Verifica che il primo paio sia più vicino.
Glossario lampo aggiuntivo
- Cross-attention — i Q vengono da una sequenza, K/V da un’altra. Specifico dell’encoder-decoder.
- VLM — Vision-Language Model. Spesso encoder visivo + decoder testuale.
Take-away
BERT, GPT e T5 non sono tre tecnologie diverse: sono tre maschere diverse applicate allo stesso meccanismo di attention. La differenza visibile (capisce / genera / traduce) è una conseguenza della maschera, non dell’architettura.
➡️ Prossima puntata: Mixture of Experts — quando “più grande” non significa “tutto attivo”.