看 Llama 3 或 DeepSeek-V3 的技术报告,数据章节的曲线都有同一个特征:训练总步数的最后 5%–10%,学习率从峰值的几分之一平滑退到接近零,同时数据配比悄悄切换——高质量源(教科书、代码、数学)的占比被上调。这段"退火期"消耗的算力不到总量的十分之一,却常被归因于几个关键能力指标的最后一跳。这篇文章把退火的机制拆开,说明收益到底从哪来、末期数据的选择有什么讲究。
学习率退到零,参数轨迹在做什么
cosine 调度的末端,学习率 $\eta_t \to 0$,参数更新 $\theta_{t+1} = \theta_t - \eta_t \hat g_t$ 的步长缩到极小。把最后 $\tau$ 步的参数变化展开:
$$ \theta_{T} - \theta_{T-\tau} = -\sum_{t=T-\tau}^{T} \eta_t \, \hat g_t \;\approx\; -\bar\eta \, \tau \, \bar g, $$
末端参数等价于一段极小步长下的"平均漂移"。这解释了退火的第一个效应:最后的迭代占据终点附近 loss 景观的局部信息。前面大步长的阶段负责翻越损失面找到盆地,退火期的微步负责在盆地内精确定位。此时模型看到的任何数据,其梯度贡献都不会被后续大步长"冲掉"——末期数据的内容被以最高保真度写进参数。
与 Polyak 平均的联系让这幅图像更清楚:学习率趋于零的 SGD 轨迹,其末端参数本身就近似于整个轨迹的加权平均(权重偏向末段)。这等价于说退火隐式做了 model averaging——而 averaging 的效果是把参数拉到宽盆地的中心,宽盆地对应更好的泛化。所以退火的第一份收益是优化层面的:降低终点噪声、获得平均化带来的泛化提升,这份收益与末期换不换数据无关。
为什么配比切换要放在退火期
把高质量数据放在末期,是利用了上面"写入选定"的效应,但它有个隐含的代价要在设计时算清:末期占比上调意味着主体阶段这些数据的占比被下调了。如果总预算里高质量 token 的数量不变,退火只是改变了它们出现的时间分布。这个改变值得做,原因有二。
第一,末期的低学习率降低了分布切换的"震荡成本"。训练中后期突然换掉数据分布,梯度方向会系统性偏转,大学习率下这个偏转会把参数拉出已收敛的区域(loss 曲线能看到一个突起的尖,下一篇谈 loss spike 时会展开);退火期步长极小,同样的分布偏移只引起平滑的微调。第二,末期写入的内容对下游评测的"针对性"更强。评测集的问题分布与教科书、数学推导、高质量代码的结构更接近(过评测关当然要用与评测同构的数据收尾),而主体阶段需要的多样性(网页的长尾知识、多语言、噪声鲁棒性)在退火期的重要性下降——模型已经从中提取了统计结构,末期再喂边际收益很低。
Llama 3 的具体数字可以当参考:40T token 总训练量中最后几 T 的配比里,代码和数学的占比相对主体阶段提高约 50%,同时把低质网页源的权重压低。DeepSeek-V3 的做法更激进:末期引入额外的高质量推理数据(带详细过程标注的数学和代码题),占总步数约 10%。两者都在报告里承认:末期的配比设计与最终评测分数的相关性,强于主体阶段任何单一调整——这符合"写入选定"的机制预言。
末期数据的选择原则
退火期数据的筛选标准和主体阶段不同。主体阶段怕的是分布太窄(多样性不足会抬高 $E$),末期怕的是噪声(此时没有后续训练来纠正错误的写入)。具体可操作的几条:
用评测分布做校准,但别过头。 末期数据与目标评测同构是合理的工程选择,但直接把评测集的改写版喂进去就是污染(去污染那篇专门讨论过检测方法)。界限在于"是否来自同一真实来源分布"——教科书和竞赛题是合法的高质量源,GSM8K 的 paraphrase 不是。
保留一小部分主体分布。 全量切到高质量窄分布有两个风险:一是能力遗忘(微调篇会展开),退火期虽然短,但纯窄分布仍可能把长尾知识的输出概率压低;二是写入过拟合——末期数据被访问的 epoch 数比主体数据高得多(占比上调 + 低 LR 下有效记忆更强),小语料重复几十 epoch 会背下表面模式。Llama 3 的做法是末期仍保留约一半的原始混合分布,只调整比例而非全换。
长度与格式提前对齐。 如果末期引入的数据长度分布与主体差异很大(比如主体 4k、末期全是短数学题),位置编码和注意力分布在短序列上重新校准,可能轻微损伤长上下文能力。反过来如果末期目标是长上下文能力,应该在退火期把长度分布往目标推。末期的数据构成是最后的"行为定型"机会,格式信号(列表、代码块、推导结构)在这里定型后最难再改。
常见误用
两个团队常犯的错误。一是退火期当成补救期——主体阶段数据搞砸了(混入脏数据、配比失衡),指望最后 5% 的正确数据把模型拉回来。写入选定的效应是单向的:它能精化已有的结构,不能撤销已学到的错误模式(低 LR 下参数早已落入错误的盆地,末期那点梯度推不出去)。二是末期数据量算错账——退火期数据的 token 消耗速度远低于直觉(占比 × 总步数 × batch size,且 epoch 数飙升),有团队设计 1T token 的末期配比,实际预算只够跑 0.3T,被迫中途稀释。设计末期配比时先把"这部分数据会被访问几轮"算出来,超过 8–10 epoch 就该缩小末期占比或扩充末期语料。
小结
退火的收益分两层:学习率趋零带来的优化收益(微步精定位 + 隐式参数平均,与数据无关),以及末期数据的高保真写入(配比切换只在此时生效,因为低 LR 下写入不会被后续训练覆盖)。配比切换要放在退火期的理由是切换成本低、针对性强。末期数据应选低噪、与目标分布同构、保留部分主体分布、长度格式预对齐,且必须控制其 epoch 数。退火是定型的机会,不是补救的机会——主体阶段犯的数据错误,退火期救不回来。