预训练、中期训练、监督微调、强化学习——今天几乎所有基础模型的训练流水线都长这样:先灌语料,再补领域数据,再对齐,最后上强化学习。卡内基梅隆大学与约翰霍普金斯大学的一篇新论文说,这套分段的算法切分可能并不是必须的:把强化学习改写成对模型自己生成分布的最大似然拟合之后,几个阶段可以共用同一个加权似然损失、同一个训练器。

论文没有停在公式上。它在两个规模上做了完整对照:一个 124M 参数模型(20B token 预训练语料、510M token 中期训练语料),一个 0.76B 参数模型(240M token、24 个来源的混合语料,数学强化学习用 Math12K,过滤后剩 11977 条提示)。结论比"统一之后更强"要微妙得多——真正的差别不在当前这一轮的分数,而在留出的账和下一轮的起点。

分阶段训练欠下的遗忘账

先看最扎眼的一组数。在强化学习开始之前,预训练留出损失(ClimbMix 与 Dolmino 按 75/25 加权)在完全不做中期训练时是 2.537,通用基准均值 42.37。分阶段做法把中期训练放在强化学习之前,峰值学习率取 2×10⁻⁴,跑 1 个 epoch,留出损失飙到 12.150,基准均值掉到 35.00;跑到 4 个 epoch 是 15.104 和 35.61。把峰值学习率压到 5×10⁻⁵、同样跑 1 个 epoch,留出损失也仍有 4.135,基准均值 38.49。

也就是说,在论文自测的保留性对照里,分阶段中期训练把预训练语料的拟合水平打掉了好几倍,基准分数同时被拖低。而统一训练把同一批中期训练数据混进预训练的最后 8147 步(总 38147 步、每步 256 条 2048 token 序列、共 20000014336 token)之后,留出损失稳在 2.537 到 2.540 之间,基准均值 41.85 到 42.42,几乎贴着"什么都不做"的基线。

真正的分水岭在下一轮训练

如果只看数学任务,两种做法几乎打平。12000 步数学强化学习之后,中期训练混合比例从 0% 加到 5%,MATH pass@1 在 16.11 到 16.91 之间小幅波动,GSM pass@1 从 32.68 降到 30.80;同一张表里基座模型是 6.54 和 17.84,分阶段基线是 16.98 和 31.35,分阶段反而略高一点。留出损失这一侧倒是单调:0% 混合是 +0.0737(比基座更差),0.1% 就变成 −0.0154,5% 是 −0.1474,而分阶段基线是 +0.0472。也就是说,哪怕只混千分之一,遗忘都比两条基线都轻。

代码能力的账要等到下一轮才结清。数学强化学习结束时,论文自己的对照里分阶段模型在 HumanEval+ 和 MBPP+ 上是 15.51 和 25.74,混了 5% 的统一模型是 10.90 和 20.97——看起来分阶段赢了将近五个点。接着给这批模型接上同一套代码强化学习:20000 道 KodCode-V1 的 Python 题,4000 步,评测覆盖 164 道 HumanEval+ 和 378 道 MBPP+。四个统一模型在两个基准的 pass@1 上全部反超,5% 那一档是 24.96 对 22.94、32.69 对 29.81。

论文随后按总算力重做对比,估算覆盖预训练、中期训练与 RL 三段的模型 FLOPs:预算越大,统一训练在准确率和覆盖度上的优势越明显,在训练分布之外的题上优势最稳定。不过论文自己也提醒,这条前沿只刻画了测过的配置,既不是全局最优,也不构成有预测力的扩展律。

三处需要泼冷水

第一,这些数字全部来自论文自己的实验,目前没有第三方复现。论文划的边界也很清楚:算力对照并没有建立有预测力的 scaling law,优化超参如何随数据调度变化没有深入研究,多数实验一次只优化一个强化学习任务,论文还明确承认自己"并未消除阶段这个概念"——下游适配新任务终究还是要单独一轮训练。

第二,那个吞吐差要打折看。生产日志记录统一训练 0% 混合时每步约 3.7 秒、分阶段强化学习每步约 28.8 秒,但两套系统分别用 24 张和 16 张 GPU,日志不含启动与重启开销,而且异步训练器可以复用已有响应,所以它量的是优化吞吐、不是生成新 rollout 的速率。

第三,靠"往基座拉"能不能替代混数据?论文做了 KL 正则的对照:加大惩罚确实能压住留出损失的恶化,但最强的惩罚会明显砍掉数学准确率与覆盖度。论文的结论是,在他们测的范围内,没有一种惩罚能同时复现统一训练在数学表现、语料损失、SciQ 和 MMLU 上拿到的组合。

工程入口是开放的:仓库 yudasong/unified-training 放了训练器、生成器、实验脚本和第三方 NeMo-RL 集成,README 给出了三套环境的安装路径,要求 NVIDIA 驱动 580 及以上。论文的计算资源来自 ASCR Leadership Computing Challenge 项目 ERCAP0034861 与橡树岭、阿尔贡国家实验室设施。

所以呢

判断一份训练配方好不好,最容易被跑分带偏:这个配方在你今天测的那件事上分数最高。但这篇论文更值得记住的读数,是 2.537 与 12.150 之间那道裂缝,以及 HumanEval+ 上 15.51 变成 10.90、又在 4000 步之后变成 24.96 的那条曲线。前者是当下看不见的遗忘成本,后者是当下看错的起点。论文自己的说法放在这里挺合适——一个数据源的价值,取决于它在什么时候被引入,以及它怎么和后续学习相互作用。统一训练没有取消阶段,它只是把"分阶段"从一道架构决定,变成了一个你可以随时改的调度参数。

论文全文:Training Foundation Models with a Single Algorithm · 项目页 · 代码仓库