An epoch is one complete pass through the training dataset, during which the model has seen every sample exactly once. It serves as the natural unit of training length and divides into steps – as many as there are batches in the dataset. After each epoch the error on the validation set is usually evaluated, so epochs are precisely the points at which early stopping is decided. The trajectory of both curves across epochs is the main diagnostic tool: if the training error keeps falling but the validation error has stalled or is rising, overfitting has set in and further epochs only do harm. In classical supervised learning on smaller data one commonly trains for tens to hundreds of epochs, shuffling the data randomly between them so the model does not latch on to sample order. With pre-training of large language models the situation is the opposite: the corpus is so vast that it is traversed once, or even only partially, so people speak of the number of tokens consumed rather than of epochs.
An epoch is one complete reading of a textbook from the first page to the last. When you are revising from a thin set of notes, you read them five times and notice something new each time – that is five epochs. But when your job is to “read the internet”, nobody cares how many times you got through all of it; what matters is how many pages you managed at all. And human experience applies here too: beyond a certain number of repetitions you are no longer learning the subject but the particular questions from the particular book – and you come unstuck when the exam phrases things differently.