「先微调」是一个谬误:领域数据应该在预训练阶段就进来

一篇新论文用三个领域的实验证明:把微调数据放进预训练比留到微调阶段效果更好——1B 参数的 SPT 模型在领域任务上可以超过 3B 的标准预训练模型。这挑战了几乎所有从业者的默认工作流。

数据工程 预训练 微调 Specialized Pretraining 领域适配 数据工程 Scaling Laws

大多数从事模型落地的工程师有一个默认流程:找一个通用基座模型,再用领域数据微调。这个流程的逻辑是清晰的——预训练贵,微调便宜,领域数据量通常有限,用来微调刚好合适。

最近来自 MIT CSAIL 和 CMU 的一篇论文 The Finetuner’s Fallacy(arXiv, 2026 年 3 月)把这个默认流程叫做「微调者的谬误」,并用实验数据证明:这个谬误的代价可能是你用了 3 倍的参数,却只拿到了更差的结果。


实验是怎么做的

研究者定义了一个叫 Specialized Pretraining(SPT) 的策略:把通常留作微调用的领域数据集,在预训练阶段就以一定比例混入训练 token,而不是在预训练结束后再做 finetune。

领域数据集会被重复多次(repeat),在整个预训练 token 预算里占据一个小比例(fraction)。具体比例通过他们推导出的 overfitting scaling laws 来决定:这套 scaling law 告诉你,在给定的预训练计算预算下,领域数据最多可以被重复多少次而不过拟合。

三个测试领域:

  • ChemPile(化学)
  • MusicPile(音乐)
  • ProofPile(数学证明)

这三个领域都是典型的「在网页爬取数据里欠表示」的场景,也是领域适配效果最难做好的地方。


结果有多极端

“On domains far from web text, a 1B SPT model outperforms a 3B standard pretrained model.” — The Finetuner’s Fallacy: When to Pretrain with Your Finetuning Data

这句话值得停下来想一想:参数量相差 3 倍,但 SPT 的 1B 在领域任务上赢了。

不只是领域性能,通用性能也更好:和「标准预训练 + finetune」的流程相比,SPT 版本在 finetune 之后的通用能力遗忘更少。

数字层面:SPT 把达到某个领域性能所需的预训练 token 缩减了最多 1.75 倍。换句话说,你用更少的总算力,拿到了更好的结果。


为什么会这样

直觉上很难理解:微调难道不是专门为了领域适配设计的吗?

原因在于过拟合和遗忘的不对称性:

当领域数据量很小时,微调阶段对它的反复利用会导致对这些数据的高度记忆(overfitting to the training distribution),而不是对领域知识的泛化。模型学会了「这些句子」,而不是「这个领域的逻辑」。

相比之下,在预训练阶段混入同样的领域数据,模型会在更大的通用语料背景下消化它——领域数据的模式会被「稀释」地学习,形成更泛化的表示。每次接触领域数据,周围都有大量通用文本提供锚点,过拟合的空间被大幅压缩。

此外,微调阶段会对预训练阶段学到的通用知识产生「遗忘」(catastrophic forgetting)。SPT 把领域学习前置,避免了这种在预训练结束后才发生的能力损耗。

论文的结论用一句话说是:领域数据越早进入训练,越能被均匀消化;越晚进入,越容易被死记硬背。


谁应该重新考虑自己的工作流

这个结论最直接影响的,是以下几类从业者:

专业领域 AI 产品团队:如果你在做医疗、法律、金融、科学类的垂直模型,且手头有一批高质量的领域文本,这篇论文是一个强烈的信号:不要把这些数据留到 finetune,考虑联系上游用它参与预训练。

持续预训练(Continued Pretraining)工作流:很多团队采用「通用基座 → 领域继续预训练 → 指令微调」的三阶段流程。这篇论文的结论支持这个方向——领域数据的位置应该尽量靠前。

数据价值评估:如果领域数据在预训练阶段的价值比在微调阶段高,那意味着获取高质量领域文本(而不只是标注的问答对)的优先级需要被重新排序。


当然,这个结论有边界条件:

  1. 数据量假设:论文的场景是领域数据量相对有限(可以被 repeat 的量级),如果领域数据量已经足够大,SPT 和标准预训练的差距会缩小。
  2. 基座模型未知:如果你用的是一个已经对领域有强先验的模型(比如 Code LLM + 代码领域数据),提升空间可能有限。
  3. 多任务场景:论文测试的是单一领域适配,多领域同时强化时的动态尚未被系统研究。

「先预训练,再微调」是一个工作流,不是一条定律。「微调者的谬误」提醒我们,这个工作流的合理性一直依赖于一个未被质疑的假设:预训练和微调的数据应该分开。这个假设是值得重新检验的。