🧙 Maestro Yoda Cap. 19 · Architetture

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.

tre alberi genealogici fianco a fianco — BERT con i suoi figli (RoBERTa, DeBERTa, ModernBERT), GPT con la sua dinastia (2, 3, 4, 5, Claude, Llama, Mistral), T5 con i discendenti (FLAN-T5, mT5, UL2). Tag: “lo stesso transformer, tre destini diversi”

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

FamigliaAttentionPretrainingInferenzaForte inEsempi
Encoder-onlyBidirezionaleMLM (mask)Embed/scoreClassificazione, retrieval, NER, embeddingsBERT, RoBERTa, DeBERTa, ModernBERT
Decoder-onlyCausaleNext-tokenAuto-regressivoGeneration, chat, reasoning, genericoGPT-5, Claude, Llama, Gemini, Mistral
Encoder-decoderBidir + causal + crossSpan corruption / seq2seqEncode-once, decodeTraduzione, sommarizzazione, ASRT5, BART, Whisper, NLLB

Perché ha vinto il decoder-only?

Tre ragioni di ingegneria, una di fortuna.

Ingegneria:

  1. Una sola loss, una sola pipeline. Pretraining e fine-tuning collassano nello stesso schema (next-token prediction).
  2. Niente “decision point” — un modello, un task, un prompt. Tutto è generation.
  3. 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

  1. Su HuggingFace, scarica tre modelli piccoli: bert-base-uncased, gpt2, t5-small. Stesso prompt: “Traduci in francese: The cat sits on the mat.”
  2. 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.
  3. Confronta i risultati. Documenta perché ognuno si è comportato così.
  4. 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”.