🧙 Maestro Yoda Cap. 20 · Training, fine-tuning, allineamento

Puntata 213

Puntata 213 — Pretraining

Livello: 🧙 Maestro Yoda · Capitolo 20 · Training, fine-tuning, allineamento

“Leggere internet” — detto così suona facile. In pratica sono milioni di GPU-ora, miliardi di dollari, e la matematica più costosa mai fatta dalla nostra specie.

rendering di un datacenter (file infinite di rack), accanto un ragazzo davanti al portatile che scarica un file zip “common-crawl.warc.gz” da 850 GB. Tag: “stesso obiettivo, diverso budget”

Cos’è il pretraining

Il pretraining è il primo (e più costoso) stadio dell’addestramento di un LLM. Obiettivo: addestrare un modello a predire il prossimo token su un enorme corpus di testo grezzo, senza supervisione esplicita.

Loss usata: cross-entropy sul next-token prediction:

L = -Σ_t log P(x_t | x_<t)

Niente labels umani. Niente RLHF. Niente fine-tuning. Solo: leggi una sequenza, indovina il prossimo token, sbaglia, aggiorna i pesi via backprop. Ripeti per trilioni di token.

È così semplice che pare incredibile che funzioni. Eppure è da qui che nasce quasi tutta la capacità linguistica e di ragionamento degli LLM moderni.


I numeri (2026)

ModelloParametriToken trainingCompute (FLOPs)Stima costo
GPT-2 (2019)1.5B40B~10²¹~$50k
GPT-3 (2020)175B300B~3·10²³~$4M
GPT-4 (2023, rumored)~1.7T (MoE)~13T~2·10²⁵~$100M
Llama-3 405B (2024)405B15T~4·10²⁵~$60M (HW)
DeepSeek V3 (2024)671B MoE14.8T~3·10²⁴~$5.5M (claimed)
GPT-5 (2025)??~10²⁶???

Da notare:

  • 3 ordini di grandezza in FLOPs fra GPT-2 e i modelli frontiera del 2024.
  • Costi: i numeri pubblici sono spesso conservativi. Includendo R&D, fallimenti, infrastruttura, salari, il “vero” costo è 3-5× quello del solo training run.
  • DeepSeek V3 ha shockato il mercato dichiarando $5.5M per un 671B MoE, dimostrando che efficienza > scala bruta.

Chinchilla scaling laws

Hoffmann et al. (DeepMind, 2022, arXiv:2203.15556) hanno scoperto che la scelta ottimale di N (parametri) e D (token di training) per un budget di compute C fisso è:

N ≈ D (in scala approssimativa: ~20 token per parametro).

Prima di Chinchilla, l’industria scalava troppo i parametri e poco i dati. Il paper ha rivoluzionato la pratica: modelli più piccoli, training più lungo.

Esempi:

  • GPT-3 (175B / 300B token) — sotto-trainato rispetto a Chinchilla.
  • Chinchilla (70B / 1.4T token) — battezza il punto ottimale del 2022.
  • Llama-2 7B / 2T token — molto oltre Chinchilla, ma intenzionale: per ottimizzare il costo di inferenza (più dati al training, più piccolo il modello).
  • Llama-3 8B / 15T token — sì, 15T su un 8B. È quasi 2000 token/parametro. Quasi tutta l’industria oggi sovra-allena rispetto a Chinchilla, per ottimizzare l’inferenza (che è il costo dominante nel lungo periodo).

Nuova regola pratica (2026): allena finché la loss non ha raggiunto il plateau sui dati di qualità che hai. Più dati ottimi → più training. Quando i dati di qualità finiscono, smetti.


La sequenza di un training run

1. Data preparation (durata: settimane, percentuale del lavoro: 60-70%)

Il vero collo di bottiglia non è il training: è il dato.

  • Crawl + deduplication
  • Quality filtering (modelli classifier su qualità)
  • Decontamination (rimuovere benchmark dal training set)
  • Language identification + balancing
  • Tokenization
  • Shuffling, packing in sequenze di lunghezza fissa

Vedi puntata 214 per il dettaglio.

2. Initialization

I pesi del modello vengono inizializzati con distribuzioni specifiche (Xavier/He/Kaiming, custom). Inizializzazione cattiva = training instabile o non convergente.

3. Optimizer setup

AdamW è il default. Parametri tipici (Llama-3 style):

  • β1 = 0.9, β2 = 0.95, eps = 1e-8
  • weight_decay = 0.1
  • Learning rate scheduler: warmup linear (2000 step) + cosine decay
  • max_lr ≈ 3e-4 per modelli medi, 1e-4 per modelli grandi
  • Batch size: 4M token a step (tipicamente)

Alternative moderne: Lion (più memory-efficient), Shampoo (second-order, costoso), Muon (recente, 2024-25, ottime resa empiriche).

4. Distributed training

Nessun modello da 100B+ entra in una singola GPU. Servono parallelismi:

  • Data parallel (DDP) — stesso modello, batch diversi su GPU diverse.
  • Tensor parallel (TP) — un layer spezzato fra GPU.
  • Pipeline parallel (PP) — layer diversi su GPU diverse, microbatching.
  • Sequence parallel — parti diverse di una sequenza su GPU diverse (per context lunghi).
  • Expert parallel — esperti MoE distribuiti.
  • ZeRO-1/2/3 (DeepSpeed) — partition di optimizer state, gradients, parameters.

Combinazioni tipiche (Llama-3 405B): DP × TP × PP × Sequence × FSDP. ~16k GPU H100 simultanee, durata ~50 giorni.

5. Training loop

Per n step:

  • Carica batch
  • Forward pass
  • Compute loss
  • Backward pass (gradient computation)
  • Gradient sync fra GPU
  • Optimizer step
  • Update LR scheduler
  • Log metrics
  • Save checkpoint ogni X step

Tre cose monitorate ossessivamente:

  • Loss curve — deve scendere monotonicamente
  • Gradient norm — picchi indicano instabilità
  • Loss spikes — eventi anomali, gestiti spesso con “rollback al checkpoint precedente + skip batch problematico”

I trucchi pratici (i “model cards” non li dicono)

  1. Gradient clipping — clamp dei gradient (tipicamente a norma 1.0). Senza, un singolo outlier può far esplodere il training.
  2. Mixed precision (bfloat16) — i pesi/gradient/attivazioni in BF16, gli accumulator in FP32. Default 2026.
  3. Checkpoint frequenti — ogni 1000-10000 step. Se la loss esplode, rollback.
  4. Loss scaling per FP16 (storico, ora sostituito da BF16).
  5. Curriculum learning — alcuni paper trainerebbero prima su testo “facile” e poi su “duro”. In pratica, l’effetto è marginale e quasi nessuno lo fa più.
  6. Data mixing dinamico — variare le proporzioni dei dataset durante il training (più codice negli ultimi step, ecc.).

Emergent abilities — il fenomeno che cambia tutto

Wei et al. (2022) hanno notato che certe capacità (aritmetica multi-cifra, ragionamento, in-context learning) emergono bruscamente sopra una certa soglia di scaling. Sotto, il modello è incapace; sopra, all’improvviso ce la fa.

Esistono critiche metodologiche (Schaeffer et al., 2023, “Are Emergent Abilities a Mirage?”) che mostrano come l’effetto dipenda spesso dalla metrica scelta. Comunque, l’osservazione qualitativa è solida: scalare paga in modi non lineari.

Il pretraining è quindi non solo “più gradiente, più conoscenza”, ma anche “più capacità qualitativamente nuove”.


Stato 2026: il pretraining è in crisi?

Diversi segnali dell’ultimo anno:

  1. I dati di qualità si stanno esaurendo. Common Crawl è già stato spremuto. La frontiera ora include codice, scientific papers, dati sintetici. Vedi puntata 220.
  2. GPT-5 è “solo” marginalmente migliore di GPT-4o su molti benchmark. Suggerisce diminishing returns sullo scaling puro.
  3. La crescita di compute è diventata insostenibile: il prossimo modello richiederebbe data center da gigawatt. Vedi puntate 180-187.
  4. Il valore si è spostato al post-training (RL, reasoning) e al test-time (vedi 211).

Conclusione (cautamente): l’epoca dello scaling come unica leva è probabilmente terminata. Il pretraining resta indispensabile, ma non basta più da solo a generare miglioramenti rilevanti. L’attenzione si è spostata su SFT (215), RLHF (216), reasoning RL (211), e synthetic data (220).


Glossario lampo

  • Cross-entropy loss-log p su token vero. Misura la sorpresa del modello.
  • Token/parametri ratio — Chinchilla suggeriva 20:1, oggi siamo a 100:1 o oltre.
  • FLOPs — Floating Point Operations. Misura del compute totale.
  • Checkpoint — snapshot dei pesi (decine di GB) salvato durante il training.
  • Curriculum learning — ordinamento intenzionale degli esempi.

TEST hands-on

  1. Apri wandb.ai o tensorboard e cerca run pubbliche di pretraining (es. eleutherai/pythia). Studia la loss curve: ti aspetti monotona decrescente con picchi occasionali ricuperati.
  2. Calcola il FLOP budget per addestrare un 1B model con 20B token (Chinchilla optimal). Formula approssimativa: FLOPs ≈ 6 · N · D. Quanto fa? Confronta con i FLOPs di una H100 (~1e15 FLOP/s in BF16). Ti serve ~12 GPU-giorni.
  3. Scarica nanoGPT di Karpathy. Riesci a trainare un 100M model su Shakespeare in ~30 minuti su una RTX 4090? Misura la loss finale e confronta con perplexity.
  4. Bonus: leggi il “Llama-3 Herd of Models” tech report (arXiv:2407.21783). Cerca la sezione sul data mixing — è una lezione di metodologia.

Take-away

Il pretraining è “magia industriale”: un singolo paragrafo di obiettivo (next-token) condensato in mesi di GPU-time. Le scoperte chiave non sono nell’idea (vecchia di 70 anni), ma nell’ingegneria di scalarla. Il 90% del valore di un LLM moderno vive nei trilioni di token che ha visto in pretraining. Tutto il resto è verniciatura.


➡️ Prossima puntata: Dataset — Common Crawl, libri, codice, sintetici.