Un epoch è una passata completa del modello su tutti i dati di training. Se hai 1 milione di esempi e ne fai vedere 1 milione al modello, hai fatto 1 epoch.
Il training tipicamente fa più epoch: 3, 10, 50, dipende. A ogni epoch, gli stessi dati vengono rivisti (di solito mescolati) e il modello affina i suoi parametri.
Quanti epoch servono?
- Dataset piccolo, modello da zero: tanti epoch (50-200), perché il modello deve imparare tutto.
- Fine-tuning: pochi epoch (1-3). Stai sistemando un modello già bravo, non rifondandolo. Più di 3 epoch in fine-tuning rovini quasi sempre il modello.
- Pretraining LLM: spesso meno di 1 epoch. I dataset sono enormi (trilioni di token), il modello vede ogni esempio una volta sola.
Pericolo numero uno: overfitting. Troppi epoch e il modello memorizza i dati di training a memoria invece di generalizzare. Risultato: bravo sui dati visti, scarso su quelli nuovi. Vedi una loss di training che scende e una loss di validation che sale: stop, hai esagerato.
Tecniche difensive: early stopping (smetti quando la validation loss inizia a salire), dropout, regularization.
Confusione tipica: epoch ≠ batch, epoch ≠ step. Un epoch contiene tanti batch, ogni batch è uno step di gradient descent.