预训练会突然跳回鹦鹉模式:40B token内81%变0%

Generalization Dynamics of LM Pre-training

Jiaxin Wen, Zhengxuan Wu, Dawn Song, Lijie Chen

UC Berkeley / Stanford University, Google DeepMind

cs.CL

2026-09-27

用廉价玩具评测跟踪OLMo3预训练,发现泛化会突然跳回鹦鹉:32B在40B token内准确率从81%掉到0%,4.5T中间点后训练GPQA 36.3%,高于4.9T的29.8%。

这篇在解决什么

业界默认预训练是一条平滑曲线:loss 往下走,标准 benchmark 往上走,模型从抄浅层模式的鹦鹉,慢慢长成会抽任务函数的智能。这个图景几乎全靠预训练 loss 和下游分数撑着,两者看起来都稳。

Berkeley 和 Stanford 专门做了一套会诱捷径的玩具评测,跟踪 OLMo3 和 Apertus 的全部中间 checkpoint。loss 稳着的时候,模型仍会反复、突然地在鹦鹉式计算和可泛化计算之间跳换。他们把这叫做 mode-hopping。窗口可以短到几百亿 token,方向可以来回翻。

方法

模型是两套公开数据和中间点的密集模型:OLMo3 的 7B、32B,Apertus 的 8B、70B。训练量已经到 Chinchilla 最优预算的 9 倍到 90 倍,跳换不能用欠训解释。分析只保留通用预训练阶段,砍掉 mid-training 和长上下文,排除数据采样混杂。

评测故意做小,零样本或少样本就能跑。上下文里放一个很诱人的浅层模式,测试题把这个模式打断。比较正确与错误答案跨度上的概率,不拿采样文本打分,用来挡住「不会抽答案」这类指令跟随噪声。每个点对 4 个随机种子取平均。

六项提示评测分别卡一种捷径:

微调侧再加两项。out-of-context reasoning 用匿名 Python 函数或城市的输入输出微调,看模型能不能说出函数或城市名。emergent misalignment 在不安全代码上微调后,测更广用户问题上错位选项的概率。

结果

一条清楚的曲线在 Successive Answer 的 answer+1 任务上。OLMo3-32B 在 2.17T token 准确率 81%,2.19T 掉到 0%,2.21T 回到 81.7%。窗口约 400 亿 token。

同类跳换贯穿整套评测。翻转标签、重复答案、听起来像真的、System 1、多跳人格、微调后的语境外推理,全都在跳。涌现错位的 ΔP(错位选项) 还会反复过零:同一套不安全代码微调,有的中间点更危险,有的略安全。OLMo3-32B 从 2T token 起把 Hitler 人格的名字稳定答在约 90%,相邻 checkpoint 上多跳题却在 20% 到 95% 之间甩。7B 更容易锁死,字母计数整段预训练都贴着 0%。Apertus 8B 和 70B 走出同一类曲线。放大参数让模型更常泛化,大模型改去更难任务上继续跳。

对照把几条常见解释拆掉了。同一批 checkpoint 在 10 个常规数据集上分数是平的,覆盖情感、主题、应用题和知识 QA。软概率 P(correct) - P(incorrect) 同样跳,横轴换成预训练 FLOPs 也跳。单步继续预训练几乎不动这些概率,学习率拉到 1e-2、小 batch 也一样,对不上 edge of stability 那种优化振荡。把振荡曲线上连续 5 个 checkpoint 做权重平均,只能减弱,消不掉。

跨数据集并不齐跳。Flipped Answer 里 SST-2 和 IMDB 相关只有 0.43,情感和主题分类接近 0。同一数据集的改写版本相关很强。更大模型平均相关更高。激活和梯度上的 RankMe、participation ratio、Fisher 迹、尖锐度、梯度余弦,按最佳层筛选后平均相关 0.35 到 0.56,随机基线已经被抬到 0.4。同一层上,泛化好的点可以高秩也可以低秩。

设置指标4.5T 点4.9T 点
数学 SFT 后测 GPQA准确率36.3%29.8%
通用后训练 + prefilling 攻击对齐鲁棒53%21%

4.5T 点在玩具套件上持续更会泛化,后训练也强过 4.9T,并且强过最终预训练点和 mid-training 点。继续预训练或 mid-training 提高的是分布内分数。小规模续训里,按原始 run 里哪些数据把模型推向抄模式或真泛化来筛子集,可以把后续动态钉在选定方向;随机数据则继续大幅跳。

为什么重要

最终 checkpoint 不必是泛化先验最强的点。这套玩具评测跑起来很便宜。筛出来的 4.5T 中间点,数学 SFT 迁到 GPQA 多 6.5 个百分点,对齐抗 prefilling 从 21% 拉到 53%。

更贴近的解释是容量分配。容量有限时,早期学到的浅层电路会和后来的可泛化电路抢位置,每个预训练窗口里的数据可能决定谁赢。再多训一会儿不会自动稳住。同等 FLOPs 下大模型也没有泛化优势。

对有公开中间点的团队,这是现在就能用的选点工具。对没有中间点的人,至少不该默认最后一个点最好。作者点名的后续方向是数据配比、优化器和架构,让可泛化电路在预训练里更稳地盖过浅层电路。

局限与存疑

评测是故意做小的。Persona QA 每个身份只有 5 道测试题,每题采样 200 次;历史人物多跳题能不能代表「人格表征」,范围本身就窄。跨数据集相关偏低,一两个玩具任务当不成通用泛化仪表盘。

数据筛选实验写明是小规模预实验,没有从零重训 32B。权重平均只试了 K=5。复杂度指标用了「每层里挑相关最高的」策略,0.35 到 0.56 的相关几乎不能当预测信号。

只覆盖 OLMo3 和 Apertus 两条开放轨迹。闭源模型有没有同样跳换,没有证据。微调侧 ΔP 反复过零,机制仍是猜想:支撑微调泛化的表征会在不同步数突然坏掉或恢复。理想图像是容量有限的模型持续把电路改写成更可泛化的版本;现在小模型逃不出浅层电路,大模型还经常掉回去。

术语

原文与代码

社区讨论

相关论文

全部论文解读