在实践中,随机梯度下降以随机小批量处理训练数据。每个批量给出真实梯度的估计——更大的批量给出更好的估计(更少的噪声),但每步消耗更多内存和算力。典型的批量大小从32(小模型,单GPU)到数百万token(跨数千GPU的LLM预训练)不等。
LLM预训练使用巨大的有效批量大小(每次更新数百万token),分布在多个GPU上。在这种规模下,学习率必须仔细调整——线性缩放规则(批量大小翻倍,学习率翻倍)在某个点之前有效,之后就失效了。梯度累积允许你在较小的硬件上通过在多次前向传播中累积梯度然后再更新来模拟大批量。
现代LLM预训练通常在完整数据集上运行不到一个轮次——数据量如此之大,模型永远不会全部看完。这与经典ML中通常10至100个轮次的做法截然不同。研究表明,重复数据(多个轮次)实际上可能因记忆效应而损害LLM性能,但这取决于数据质量。相比之下,微调通常在小得多的数据集上运行1至5个轮次。