大模型预训练为何普遍单轮遍历?——从 Scaling Laws、数据重复到灾难性遗忘的技术解析

大模型预训练为何普遍单轮遍历?------从 Scaling Laws、数据重复到灾难性遗忘的技术解析


一、引子:一个反直觉的现象

在传统深度学习里,几百个 epoch 是家常便饭:ResNet 在 ImageNet 上训几十上百轮,MLP 在小数据集上甚至训到 loss 不再下降为止。数据量小、模型相对小,反复遍历是唯一合理的选择。

但到了大语言模型(LLM)预训练,行业默认做法却几乎是一句话:

数据只过一遍(1 epoch),不重复。

GPT-3 用约 3000 亿 token,只训练 1 轮;T5 的实验也表明,预训练超过 1 轮对下游任务提升不显著 。这背后并非"拍脑袋",而是数据规模、计算预算与泛化目标共同作用的结果。

本文将回答三个问题:

  1. 为什么 1 epoch 成为预训练的"经验默认值"?
  2. 重复训练究竟会带来什么------过拟合、记忆,还是知识遗忘?
  3. 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 曲线 + 早停

比盲跑轮数更重要的,是看验证集

  1. 监控验证 loss :一旦停止下降并开始回升(出现拐点),立即早停 ;
  2. 同时关注下游指标:泛化能力、多样性、事实性,而非仅看训练 loss ;
  3. 警惕"隐性退化":模型可能对错误答案仍保持高置信度 。

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 铁律"论点的适用边界

  1. 它是经验值,不是定理:Chinchilla 等 Scaling Law 描述的是算力最优分配,并不推导"必须 1 epoch" ;
  2. 规模在变:当唯一数据受限、或 TPP 固定扩展时,适度重复反而是算力最优解 ;
  3. 领域差异大:数学/代码比百科/医疗更耐重复,不能用一个固定数字覆盖所有数据 ;
  4. "次数"可能不是本质变量:重复间隔、数据质量、模型大小、训练目标都可能是更根本的因素 ;
  5. 评测口径需统一 :比较"重复 vs 不重复"时,必须固定 total trained tokens,否则结论不可比 。

因此,严谨的表述应是:

在数据充足、追求泛化的预训练场景下,1 epoch 是计算最优且安全的经验默认;在高质量数据受限或垂域适配时,应以验证曲线为准、通过小模型实验确定最优重复策略,而非机械套用"1 epoch"。


七、30 秒带走(TL;DR)

  1. 传统模型 训几百 epoch;LLM 预训练默认 1 epoch 。
  2. 三大原因:数据量够大、多 epoch 会过拟合/记忆化、可能引发知识遗忘
  3. 1 epoch 不是铁律:SFT 常用 2--3 epoch;数据受限时重复并非无效,甚至有研究发现超 4 epoch 仍有效 。
  4. 关键看验证集 loss 曲线 + 早停,比盲跑轮数更重要 。
  5. 数据质量 >> 重复次数:去重、控频、混合回放、优先 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)
  • 重复间隔视角
相关推荐
深海鱼肝油ya1 小时前
向量数据库Elasticsearch(四)搜索文档——各种方式
人工智能·elasticsearch·向量数据库·es搜索文档·只能体·非结构化数据库
小小程序猴11 小时前
用工程化思维做企业AI培训机构对比:六维评估模型的量化实现
人工智能
高工智能汽车1 小时前
L4自动驾驶重卡,迎来关键一战?
人工智能·汽车
LaughingZhu1 小时前
Product Hunt 每日热榜 | 2026-09-20
人工智能·深度学习·神经网络·搜索引擎·百度
知几蜗牛1 小时前
Agent容器越大冷启动越慢?AWS把“加载一次”变成了快照恢复
人工智能
知几蜗牛1 小时前
AI写代码成功率升到约九成,为什么还不能叫“自动改进自己”
人工智能
55873 生态系统1 小时前
技术第2篇,五引擎微内核架构全解:调度 / 安全 / 研判 / 评测 / 存证,55873 生态系统底层技术拆解
人工智能·55873全域文明生态体系·抢救濒危文脉·55873操作系统·全域文明生态系统
老鱼说AI1 小时前
从点积到希尔伯特空间:向量内积的几何本质与大模型相似度度量
人工智能·深度学习·线性代数·算法·机器学习·数学建模
wshzd1 小时前
LLM之Agent(九十)|DeepSeek-Harness(一)安装与环境准备
人工智能