Tamanho de Batch e Época
Por que isso importa
Em profundidade
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).
O Desafio do Treinamento com Batches Grandes
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.
Épocas na Era dos LLMs
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.