大模型预训练为何普遍单轮遍历?------从 Scaling Laws、数据重复到灾难性遗忘的技术解析
一、引子:一个反直觉的现象
在传统深度学习里,几百个 epoch 是家常便饭:ResNet 在 ImageNet 上训几十上百轮,MLP 在小数据集上甚至训到 loss 不再下降为止。数据量小、模型相对小,反复遍历是唯一合理的选择。
但到了大语言模型(LLM)预训练,行业默认做法却几乎是一句话:
数据只过一遍(1 epoch),不重复。
GPT-3 用约 3000 亿 token,只训练 1 轮;T5 的实验也表明,预训练超过 1 轮对下游任务提升不显著 。这背后并非"拍脑袋",而是数据规模、计算预算与泛化目标共同作用的结果。
本文将回答三个问题:
- 为什么 1 epoch 成为预训练的"经验默认值"?
- 重复训练究竟会带来什么------过拟合、记忆,还是知识遗忘?
- 1 epoch 是不是铁律? 什么情况下可以多跑?
二、核心结论速览
| 结论 | 说明 |
|---|---|
| 预训练默认 1 epoch | 是规避过拟合、在算力约束下追求泛化的经验选择 |
| 本质是数据量够大 | 万亿级 token 一遍足以学习语言规律与世界知识 |
| 重复有边际收益递减 | 第二个 epoch 带来的 perplexity 提升极小,成本却翻倍 |
| 多 epoch 可能退化 | 过拟合、记忆化、double descent 现象均有论文支撑 |
| 1 epoch 不是定理 | SFT 常用 2--3 epoch;高质量数据受限时可适度重复 |
| 判断依据是验证曲线 | 看验证集 loss,出现拐点即早停,比"盲跑轮数"更可靠 |
一句话概括:1 epoch 是经验最优的起点,不是硬性上限;真正决定"该跑几遍"的,是数据质量、数据规模、模型大小与验证曲线。
三、为什么预训练普遍只跑 1 个 epoch?
3.1 原因一:数据量已经足够大
这是最根本的原因。预训练语料动辄万亿级 token,模型一遍遍历下来,已经能充分学习语言规律、语法结构、世界知识 。
可以用一个直观的计算说明量级感 :
以 The Pile(约 300B tokens)为例:
batch_size = 4M tokens
steps / epoch = 300B / 4M = 75,000 步
按 每秒 150 samples 估算 ≈ 500 小时 ≈ 21 天
也就是说,1 个 epoch 本身就是一次耗时数周、数十万步的"漫长训练" ,绝非传统意义上的"看一眼就走"。在这个量级下,重复遍历的边际收益急剧下降------该学的通用规律第一遍已经学到了,再看一遍主要是"复习"而不是"学习"。
理论支撑:Scaling Laws 与 Chinchilla
这一点可以从 Scaling Laws 的角度理解得更严谨:
- Kaplan 等 (2020, OpenAI):主张"模型优先",算力增量约 73% 分给参数量、27% 分给 token,GPT-3(175B)是典型产物 。
- Chinchilla (2022, DeepMind) :通过 400+ 次实验修正了这一结论------参数量与训练 token 应近似等比增长 ,最优比例约
20 token / 参数。700 亿参数的 Chinchilla 用 1.4T token 训练,在各项评测上击败了 4 倍大的 Gopher(280B, 300B token)。
Chinchilla 的核心启示是:在固定算力预算下,扩大数据量(unique tokens)比增加训练轮数更有效 。这从原则上解释了"为什么不重复"------同样的计算预算,用来"看更多新数据"比"反复看旧数据"回报更高。
⚠️ 客观提示:2024 年后的工程实践里,token/参数比常常高于 20:1,并非 Chinchilla "失效",而是优化目标扩展到了推理成本、MoE 激活参数、测试时算力等维度 。Scaling Law 是预算分配的指导,不是唯一答案。
3.2 原因二:多 epoch 会导致过拟合与记忆化
重复训练最直接的风险是过拟合(Overfitting) :训练 loss 持续下降,但验证集 loss 出现拐点后回升,泛化能力反而下降 。
大模型极强的记忆能力让这个问题更突出 :
- 当相同片段重复超过约 5 次,模型几乎能完美背诵 ;
- 低熵数据(代码片段、数学公式、模板文本)尤其容易被记住 ;
- 后果是:生成时倾向于复读训练数据,输出多样性下降,few-shot 表现异常 。
关键论文:Double Descent 现象
Anthropic(Hernandez et al., 2022)的《Scaling Laws and Interpretability of Learning from Repeated Data》给出了更深刻的机制解释 :
他们训练了一系列模型,其中绝大部分数据唯一 ,只有极小一部分被重复很多次 。结果发现了明显的 double descent(双下降) 现象------重复数据会导致测试 loss 在训练中途先升后降 ;某些"恰好可记忆"的重复频率区间,性能退化出奇地严重。
一个令人警醒的例子 :
对 800M 参数的模型,仅重复 0.1% 的数据 100 次 ,即可将其性能退化到相当于 400M(小一半) 的模型------尽管其余 90% 的 token 仍是唯一的。
作者将其与机制可解释性 工作联系起来:重复数据会不成比例地破坏与泛化相关的结构和能力(如 induction heads),并推测存在一个"中间区间"------数据恰好能被记住、同时又消耗大量模型容量------这正是退化最严重的区域 。
NeurIPS 2023:数据危机下的多 epoch 退化
《To Repeat or Not to Repeat: Insights from Scaling LLM under Token-Crisis》(NeurIPS 2023) 系统研究了"高质量数据不够、被迫重复"的场景 :
- 重复预训练数据会导致过拟合,产生 multi-epoch degradation;
- 关键影响因素:数据集大小、模型参数、训练目标;数据集质量与模型 FLOPs 反而不是主因 ;
- 常用正则化手段大多效果有限,Dropout 效果显著但需谨慎调参,且随模型放大变得棘手 ;
- MoE 架构可在可比的可训练参数量下,为密集 LLM 提供一种更经济的超参调优路径 。
3.3 原因三:多 epoch 与知识遗忘
多 epoch 训练的梯度更新方向,可能与"保留已有知识"的方向冲突 ,导致灾难性遗忘(Catastrophic Forgetting) 。
从理论上看,这对应神经科学中的稳定性---可塑性困境(Stability-Plasticity Dilemma) :
- 神经网络用同一套共享参数存储所有知识 ;
- 新数据的反向传播会无情地改变参数,而被改变的参数可能对旧任务至关重要 ;
- 大语言模型的知识以分布式方式编码在数十亿参数中,微调/重复会重塑相关连接 。
在多 epoch 场景下,这种"反复朝某个特定方向推参数"的过程,可能覆盖掉之前学到的通用规律 。这也是为什么持续训练(continual training)和多 epoch 训练都容易遭遇知识遗忘 。
更广义地看,"模型崩溃(Model Collapse)" 研究指出:若训练数据被前代模型的生成内容"污染",低频模式会在迭代中被层层放大、逐渐消失,最终模型失去对真实分布的建模能力;保留约 10% 真实数据可显著缓解 。这提醒我们:"重复"的危害不仅来自过拟合,也来自数据分布的漂移。
四、1 epoch 不是铁律:什么时候可以多跑?
到这里,"只跑 1 轮"的逻辑已经清楚,但必须强调:这是经验默认值,不是定理 。近年研究给出了更细致的"可以为之"的条件。
4.1 SFT 阶段:2--3 epoch 是常态
监督微调(SFT) 数据量通常很小(数千到数万条),需要多过几遍才能让模型学会"指令---回答"的格式与风格 :
| 阶段 | 典型学习率 | 数据量 | Epoch | 直觉 |
|---|---|---|---|---|
| 预训练 | 1e-4 ~ 6e-4 | 数 T tokens | ~1 | 从零开始,大步走 |
| SFT | 1e-5 ~ 5e-5 | 数万条 | 1--3 | 轻推方向,别破坏基础 |
| RLHF/DPO | 1e-6 ~ 5e-6 | 数万偏好对 | ~1 | 只改"品味" |
学习率每阶段约降一个数量级,因为模型越"好",改动的风险越大 。
工程实践上,Llama 2 的 SFT 训了 2 个 epoch ,许多团队报告 1 个 epoch 即最优、超过 3 个 epoch 几乎必然退化 。但 SFT 数据过多样板化也可能引发模式坍缩(mode collapse)------对所有问题给出模板化回答 。
4.2 数据受限时代:重复并非完全无用
JMLR 2025《Scaling Data-Constrained Language Models》系统回答了"高质量数据不够、能不能多训几遍" :
重复数据不是完全没用,少量重复几乎不伤性能 ;真正危险的是把重复数据当成无限新数据来用。
它区分了两个问题 :
- Return:唯一数据固定时,多训几轮的边际收益;
- Allocation:数据受限时,新增算力该"堆参数"还是"让小模型多看几遍"。
这与"数据墙"背景紧密相关:高质量文本数据预计在 2026--2028 年趋近枯竭,而重复数据的有效价值呈指数衰减 。
4.3 最新发现:最优重复次数可能随模型增大而略增
清华大学与字节跳动 Seed 团队的《Scaling Domain Data Repetition in LLM Pretraining》给出了一个反直觉的结论 :
在固定 TPP(token-per-parameter)下,最优的数据重复次数,会随模型规模增大而轻微增加。
直觉在于:现实扩展遵循 Scaling Law,模型变大时数据预算也同步变大 ,更多数据让模型能更充分学习,从而推迟过拟合的到来 。
不同领域的"耐受力"差异显著 :
| 领域 | 最优重复次数(大致) |
|---|---|
| 数学(Math) | 5--6 次(最耐受) |
| 代码(Code) | 4--5 次 |
| 维基 / 医疗 | 2--3 次(较敏感) |
该研究还发现:最优重复次数与领域的"最终验证 loss"强负相关(相关系数约 -0.94),而与唯一数据量几乎无关 。这意味着------判断该重复几遍,最靠谱的信号就是验证曲线本身。
4.4 一个有价值的视角:问题在"间隔"而非"次数"
有研究提出:真正限制重复效果的不是"轮数",而是"两次看到同一数据的时间间隔" :
- 全局随机打乱下,样本重逢间隔不可控,重复超过约 4 轮会出现明显收益递减 ;
- 若间隔足够长,让模型先在其它数据上"遗忘",重复训练的边际收益可与喂全新数据接近 。
这为工程上"如何安全地重复"提供了一个可操作的思路,而非简单地把 epoch 设成硬上限。
五、工程实践:如何确定该跑几个 epoch?
综合以上,可归纳为一套可落地的决策流程:
5.1 经验起点
- 预训练 :默认 1 epoch,规避过拟合 ;
- SFT 微调 :常用 2--3 epoch,视数据量反比例调整 ;
- 垂域/数据受限:可在小规模 proxy 模型上先测"最优重复次数",再外推到大模型 。
5.2 核心判据:验证集 loss 曲线 + 早停
比盲跑轮数更重要的,是看验证集 :
- 监控验证 loss :一旦停止下降并开始回升(出现拐点),立即早停 ;
- 同时关注下游指标:泛化能力、多样性、事实性,而非仅看训练 loss ;
- 警惕"隐性退化":模型可能对错误答案仍保持高置信度 。
5.3 数据质量 >> 重复次数
这是贯穿全文的底层原则 :
高质量数据过一遍,胜过 低质量数据过十遍。
实操建议:
- 严格去重:MinHash LSH 等方案可做百亿级文档高效查重,避免模型反复"咀嚼"相同知识 ;
- 控制重复频率:避免单一样本/片段被过度重复(>5 次即易记忆);
- 混合回放:微调时混入 5%--20% 通用/原始数据,缓解灾难性遗忘 ;
- 优先 PEFT:LoRA / Adapter 等参数高效微调可冻结原权重,从根本上降低遗忘风险 。
5.4 一个参考性的代价对比
| Epoch | 验证困惑度 | 训练耗时 | 备注 |
|---|---|---|---|
| 1 | 3.21 | 21 天 | 基线 |
| 2 | 3.18 | 42 天 | 仅 -0.03,成本翻倍 |
| 3 | 3.17 | 63 天 | 收益几乎消失 |
(示意数据,反映边际收益递减趋势 )
六、客观评价:争议与边界
为保持客观,必须指出"1 epoch 铁律"论点的适用边界:
- 它是经验值,不是定理:Chinchilla 等 Scaling Law 描述的是算力最优分配,并不推导"必须 1 epoch" ;
- 规模在变:当唯一数据受限、或 TPP 固定扩展时,适度重复反而是算力最优解 ;
- 领域差异大:数学/代码比百科/医疗更耐重复,不能用一个固定数字覆盖所有数据 ;
- "次数"可能不是本质变量:重复间隔、数据质量、模型大小、训练目标都可能是更根本的因素 ;
- 评测口径需统一 :比较"重复 vs 不重复"时,必须固定 total trained tokens,否则结论不可比 。
因此,严谨的表述应是:
在数据充足、追求泛化的预训练场景下,1 epoch 是计算最优且安全的经验默认;在高质量数据受限或垂域适配时,应以验证曲线为准、通过小模型实验确定最优重复策略,而非机械套用"1 epoch"。
七、30 秒带走(TL;DR)
- 传统模型 训几百 epoch;LLM 预训练默认 1 epoch 。
- 三大原因:数据量够大、多 epoch 会过拟合/记忆化、可能引发知识遗忘 。
- 1 epoch 不是铁律:SFT 常用 2--3 epoch;数据受限时重复并非无效,甚至有研究发现超 4 epoch 仍有效 。
- 关键看验证集 loss 曲线 + 早停,比盲跑轮数更重要 。
- 数据质量 >> 重复次数:去重、控频、混合回放、优先 PEFT 。
参考资料
核心论文
- Chinchilla: Training Compute-Optimal Large Language Models (DeepMind, 2022) --- Scaling Law 与 20:1 法则
- Scaling Laws for Neural Language Models (Kaplan et al., OpenAI, 2020) --- 早期"模型优先"结论
- Scaling Laws and Interpretability of Learning from Repeated Data (Hernandez, Brown, Kaplan et al., 2022) --- 重复数据的 double descent
- To Repeat or Not to Repeat: Insights from Scaling LLM under Token-Crisis (Xue et al., NeurIPS 2023) --- 数据危机下的多 epoch 退化
- Scaling Data-Constrained Language Models (Hugging Face / Harvard / Cornell, JMLR 2025) --- 数据受限时代的 Scaling Law
- Scaling Domain Data Repetition in LLM Pretraining (清华 & 字节 Seed) --- 最优重复次数随模型增大略增
- The Curse of Recursion / Model Collapse (Nature, 2024) --- 模型崩溃
技术实践
- 灾难性遗忘与稳定性---可塑性困境
- SFT epoch 经验与模式坍缩
- 预训练去重方案(MinHash LSH)
- 重复间隔视角