Na prática, gradient descent estocástico processa os dados de treinamento em mini-batches aleatórios. Cada batch dá uma estimativa do gradiente verdadeiro — batches maiores dão estimativas melhores (menos ruído) mas custam mais memória e computação por passo. Tamanhos de batch típicos vão de 32 (modelos pequenos, GPU única) a milhões de tokens (pré-treinamento de LLMs em milhares de GPUs).
Pré-treinamento de LLMs usa tamanhos de batch efetivos enormes (milhões de tokens por atualização) distribuídos entre muitas GPUs. Nessa escala, a learning rate precisa ser ajustada cuidadosamente — a regra de escalonamento linear (dobre o batch size, dobre a learning rate) funciona até certo ponto, depois quebra. Acumulação de gradiente permite simular batches grandes em hardware menor, acumulando gradientes ao longo de múltiplas passagens forward antes de atualizar.
Pré-treinamento de LLMs modernos tipicamente roda por menos de uma época no dataset completo — os dados são tão grandes que o modelo nunca vê todos. Isso é uma mudança em relação ao ML clássico onde 10–100 épocas era normal. Pesquisas sugerem que repetir dados (múltiplas épocas) pode na verdade prejudicar o desempenho de LLMs devido a efeitos de memorização, embora isso dependa da qualidade dos dados. Fine-tuning, por outro lado, tipicamente roda por 1–5 épocas em um dataset muito menor.