从 52 个开源模型反推预训练配方:代码配数学是红利,数学配书是内耗

Domain-Aware Scaling Laws Uncover Data Synergy

Kimia Hamidieh, Lester Mackey, David Alvarez-Melis

cs.LG, cs.CL

2026-07-13

用 52 个开源模型反推预训练数据协同,把代码×数学判为最强正向配对之一,并在 30M/150M 实测中正确预测最优配方的排名。

这篇在解决什么

训练大模型的常识是「加参数、加数据」。Kaplan 和 Chinchilla 这两代 scaling law(描述损失随参数量、数据量按幂律下降的关系)把数据抽象成一个总 token 数,默认每个 token 价值相等。但真实预训练语料是 web、书籍、代码、数学这些 domain 的混合,而经验上它们彼此并不等价:加代码能涨数学推理,数学加代码常常比单用更强,有些组合反而互相干扰、拖低成绩。

学界缺一个把这些「数据协同」(data synergy)形式化、还能和「单纯多加数据的好处」拆开计量的框架。这篇论文(MIT 与微软研究院合作)就补这个空:它定义了两类协同,改写 scaling law 来估计它们,再用小规模训练验证估计是不是真的可操作。

方法

协同被拆成两层。第一类是 domain→benchmark 协同:某个预训练 domain 改变某个评测上「数据降低损失的速率」。具体做法是在 Chinchilla 的数据项指数 β 上加一个按 domain、按 benchmark 变化的修正 γ。γ 为正说明这个 domain 比基准速率更快压低该 benchmark 的损失(协同),为负就是干扰。第二类是 domain-domain 二阶协同:两个 domain 必须同时出现才生效的「红利 token」,被较稀缺的那个 domain 卡住(用 softmin 实现,任一 domain 缺席红利就归零)。

估计这套参数不需要自己从头训一大批模型。作者直接利用现成开源权重的「自然变异」:52 个模型、70M 到 20B 参数、横跨 GPT-Neo/Pythia/DataDecide/OLMo 等 6 个系列,把每个模型的预训练来源映射到 8 个 domain(books、code、math、science、web 等),在 11 个 benchmark 上评测。其中 30 个 DataDecide 模型带受控消融(去代码、去数学代码、去 FLAN、去 reddit),对估计协同格外有用。

拟合上做得很克制:用 Huber 损失抗噪,L1/L2 正则让 γ 稀疏可解释,5 折交叉验证加 50 次 bootstrap 算 90% 置信区间,只承认区间不含零的协同条目。

结果

一阶协同最强的全在代码和数学 benchmark 上。HumanEval 上 γcode=+0.47、γmath=+1.34,MBPP 上 γcode=+0.59、γmath=+1.44;最稳的干扰来自 books 和 encyclopedia 拖累代码 benchmark。把代码从 dolma1.7 配方里拿掉,HumanEval 的数据指数 β 从 0.45 掉到 0.18。

预测精度方面,一阶模型跨 benchmark 的中位交叉验证 R² 是 0.906;而只看总 token 数的 Chinchilla 基线在 HumanEval 上只有 R²=0.41、MBPP 上 0.20,一阶模型分别到 0.92 和 0.88。

模型HumanEval R²MBPP R²
Chinchilla 基线0.410.20
一阶协同模型0.920.88

二阶协同最强的两对是 code×science(+2.55)和 code×math(+2.40),最清晰的负向是 math×books,两者结构重合少,一起出现只会稀释彼此。二阶模型中位 R²=0.912,在一阶已有强 domain 效应的 GSM8K、IFEval、TriviaQA 上还小幅领先。

最能说明可操作性的,是第 4.3 节的受控验证。作者用估计出的协同去预测 HumanEval、GSM8K、IFEval 三个目标任务的「最优」与「反最优」配方,再真的训 30M 和 150M 两组模型。预测全部命中最优优于反最优的排名。150M 上 HumanEval 最优配方比反最优低 0.337 BPB(bits-per-byte,越低越好),GSM8K 的优势还随规模从 2.1% 涨到 14.7%。

任务(150M,5B token)最优 BPB反最优 BPB差距
HumanEval0.721(−16.9%)1.058(+21.9%)0.337
GSM8K1.402(−14.7%)1.591(−3.2%)0.189

为什么重要

对做预训练的人来说,价值在于不用训一堆受控模型就能拿到可解释的配方可视化:哪些 domain 互相成就、哪些互相消耗,一目了然。代码配数学、配科学的正反馈是反复被印证的结论,这次有了量化尺度;math 配 books 这类负向则直接可操作,冲某个 benchmark 时别同时把 token 花在会干扰它的 domain 上。

也要诚实:这是增量工作,不颠覆 scaling law,而是给 Chinchilla 的数据项加了 composition 与协同修正。它的输出目前更适合做数据筛选和配方设计的参考线,而不是替代真实训练实验。

局限与存疑

作者自己把局限说得清楚。整套估计是观测性的(observational),γ 在统计上只代表关联、代表不了因果:它依赖各模型公开的配方元数据,而这些元数据本身可能噪声大或不完整。观测到的配方向量有效维度很低,所以 γ 更应理解为「沿已观测配方方向的成分敏感度」,而非完整的因果协同。第 4.3 节的受控实验只跑到 30M/150M,更大规模是否成立还没验证。

另有存疑:协同是否在 SFT 或 RL 阶段同样成立,论文留作开放问题,预训练阶段的最优配方未必直接迁移到后训练。8 个 domain 的划分粒度也偏粗,把 code 当一整块,没有再细分。

术语

原文与代码

社区讨论

相关论文

全部论文解读