Entrenar una red no es mirar todos los datos de una vez y corregir. El descenso por gradiente estocástico de minilotes toma un grupo chico de ejemplos, calcula cuánto se equivoca el modelo en promedio sobre ellos, ajusta los pesos un poquito en la dirección que reduce ese error y pasa al grupo siguiente (Chollet (2021), sec. 2.4.3). Ese grupo es el lote (batch). Cada pasada completa por el conjunto de entrenamiento es una época (epoch); lo habitual es barajar los datos entre época y época (Witten et al., 2017, p. 433).
El ejemplo de Chollet (2021) hace las cuentas: 60.000 imágenes de dígitos manuscritos (MNIST), lotes de 128 y 5 épocas. Son 469 actualizaciones por época y 2.345 en total (2021, sec. 2.5). En los extremos, un lote del tamaño de todo el conjunto es el descenso por gradiente clásico, y un lote de un solo ejemplo es el estocástico puro; los minilotes suelen tener entre dos y varios cientos de ejemplos (Witten et al., 2017, p. 433).
Los modelos de lenguaje estiran ambas nociones. Sus lotes se miden en tokens: para los modelos más grandes de Kaplan et al. (2020), el lote óptimo rondaba entre uno y dos millones de tokens (2020, sec. 1.1). Y las épocas casi desaparecen: el corpus es tan grande que muchas partes se ven una sola vez o menos. En GPT-3, Common Crawl se muestreó menos de una vez durante todo el entrenamiento, mientras que conjuntos considerados de mejor calidad se vieron 2 o 3 veces (Brown et al., 2020, sec. 2.2).
Pocas épocas, bien; demasiadas, sobreajuste: si la pérdida en validación empieza a subir mientras la de entrenamiento sigue bajando, el modelo está memorizando y conviene parar (early stopping) (Chollet, 2021, secs. 4.1.4, 5.4.3). La analogía con el estudio humano es tentadora (releer el mismo libro cinco veces), pero engaña: la red no «recuerda» haber visto un ejemplo, solo quedó levemente distinta después de cada lote.