想象你只有一百小时备考。有人建议,先拿二十小时做逻辑游戏,练好思维,再读课本;另一种办法是把一百小时全用来读课本,哪怕重复几遍。哪种更划算?这正是 Alexander Stern、Tim Rocktäschel、Acyr Locatelli 和 Laura Ruis 在《Rethinking Pre-pretraining》中追问的问题。
这里的“逻辑游戏”是合成数据——不是从真实世界收集,而是按规则、程序或模型生成的材料。“预预训练”(pre-pretraining,PPT)则是在常规自然语言预训练之前,先让模型学习这些材料,期待它提前掌握某种通用能力。论文的核心结果很直接:在相同计算预算下,把一部分算力分给受测的 PPT 课程,从未优于把算力全部用于自然语言训练。
这是单篇论文给出的负结果,适用范围是作者测试的课程、训练设置和评价方法,不能外推为“所有合成数据都没用”。但它击中了一个昂贵的问题:如果合成训练只是多花算力后才显得有效,它就不一定是更好的资源配置。
四套“课前训练”,都没赢过多读课文
“课程”(curriculum)指训练材料的安排:先学什么、后学什么,各占多少。作者测试了四类 PPT 材料:k-Dyck、neural cellular automata(NCA)、declarative reference corpora(DeclRef)和 code。
k-Dyck 是一种形式语言,任务类似处理多种成对括号,要求模型追踪层级关系。NCA 是神经元胞自动机:网格中的每个格子按同一套局部规则不断变化,模型需要从序列里捕捉隐藏的转移规律和远距离依赖。DeclRef 针对从上下文中检索信息。code 则是代码语料,作者把它与三种合成课程一起纳入 PPT 对照。
关键在“等算力对照”(compute-matched comparison):每种方案拿到相同的计算预算,像两位选手拥有同样长的训练时间。PPT 方案先花一部分预算学习上述材料,余下预算学习自然语言;基线则从头到尾只学自然语言。
结果覆盖三种场景。第一种是自然语言数据受限:只有 100M,也就是一亿个自然语言 token。token 可以粗略理解为模型读取文本时切出的基本片段。第二种是自然语言充足、主要受算力约束。第三种刻意采用很高的 token 与参数比例:一个 881M 参数模型训练 50B tokens。
在三种场景中,受测 PPT 方案都没有在自然语言验证损失上击败纯自然语言训练。验证损失衡量模型对未见文本的预测表现,通常越低越好。尤其值得注意的是数据稀缺场景:即使只有一亿个自然语言 token,把同一批文本多训练几个 epoch——也就是完整重复学习多轮——仍优于所有受测合成课程。
下游任务也没有给 PPT 一个稳定的翻盘。作者在 DCLM CORE 和 BLiMP 等评测上看到,个别小任务会改善,另一些则退步;聚合成绩大多与基线相当。在最低算力预算下,DeclRef 和 code 出现过提升,但作者明确表示,其显著性仍不清楚。因此,更准确的结论不是“PPT 对任何任务都无效”,而是它没有带来一致的下游准确率优势。
先前的增益,可能混进了初始化红利
论文还解释了为什么已有研究看起来更乐观。模型训练前,要先给内部权重设定初始值,这叫权重初始化。它像给所有旋钮设定起点:起点不同,后续训练难度也可能不同。
作者复现 NCA 实验时,沿用原始初始化方案,确实得到 PPT 带来的 5.4% perplexity 改善。perplexity(困惑度)衡量模型预测下一个 token 时有多“拿不准”,越低越好。这个数字说明旧结果可以复现,但只属于这一特定设置,并非 PPT 的通用提升。
接着,作者只改变词元嵌入的初始化尺度。新的初始化让不使用 PPT 的基线改善了 9.0%,超过此前 PPT 本身的增益;同样调整 NCA 方案后,两者变得难以区分。换句话说,一部分看似来自合成课程的优势,可能其实暴露了基线初始化不够强。论文也谨慎指出:这项复现没有在新初始化下重新寻找最佳 PPT token 数量,因此它证明的是结果对初始化敏感,而不是穷尽了 NCA 的最佳配置。
多给算力时有效,不等于值得占用预算
这里必须分清两本账。如果 PPT 获得额外算力,不挤占自然语言训练预算,它在自然语言极少时仍可能有帮助。作者使用 336M 参数模型测试后发现,在 50M 和 100M 自然语言 token 的预算下,k-Dyck 和 NCA 都能优于最佳 no-PPT 基线;但到 1B tokens 时,优势落入基线不同随机种子结果的波动范围。
所以论文否定的不是“合成预训练始终无效”。它否定的是更有实际压力的主张:当总算力固定、PPT 必须与自然语言争预算时,这四种课程没有证明自己更划算。额外补课能提高成绩,与从有限课时中划出一部分去补课,是两回事。
模型可能在换课时把前课忘了
作者进一步追踪模型对 PPT 数据的掌握程度。模型在合成阶段确实学会了 NCA、k-Dyck 和 code 中的模式;一旦切换到自然语言,这些分布上的表现便开始变差。论文据此提出一种可能机制:PPT 与自然语言之间的突然切换,会让先前学到的能力被逐步覆盖。
把相同合成数据均匀穿插到整个训练过程,可以防止这种遗忘。两种安排用于合成数据的总算力相同,区别只是一次学完,还是持续混合。不过,穿插训练并未显著改善自然语言验证表现。它解决了“记不住”,尚未证明合成数据比自然语言更值得算力。
这也是这项负结果最有价值的地方。它没有把问题停在“合成数据行不行”,而是把焦点转向更具体的资源决策:合成材料是否该被集中放在正式训练之前?至少在这些实验里,答案偏向否定。真正需要重想的,可能不是要不要用合成数据,而是何时用、怎么混,以及它必须替代什么。
局限与未知
- 作者没有在较大规模上完成全面的超参数搜索;部分实验只搜索峰值学习率,PPT 的算力占比也主要固定为 1% 和 5%,其他比例仍未测试。
- 最大模型为 881M 参数,虽然训练了 50B tokens,结论仍不能直接推广到更大的模型、其他数据模态或所有合成课程。
- 自然语言验证损失的结论最清楚;个别下游子任务会因 PPT 改善或退步,但目前没有稳定规律,也没有证据表明穿插方案已找到最佳用法。