这篇文章是对英文原文的翻译,原文地址:https://wanger-sjtu.github.io/2026-05-11-sft-rl-opd-distillation/
原文关于灾难性遗忘、泛化以及 RL 与离线蒸馏之间联系的分析非常有洞见,作者提出了一个非常有用的心智模型:将后训练方法视为对模型分布的重塑。
我一直从分布的角度思考后训练方法。语言模型是序列上的一个分布。当我们对其进行后训练并试图教它一个任务时,我们实际上是在重塑这个分布。不同的后训练方法在如何重塑分布、什么是目标分布、以及如何定义目标分布上有所不同。
这既不是一个非常精确的陈述,也不是说它要完全严格。我只是发现这是一个非常有用的心智模型,但我认为它能解释 SFT、RL 和离线蒸馏之间的大部分定性差异。这正是我想在这篇文章中探索的直觉。
分布视角下的后训练
在这个视角下,最重要的问题是:我们优化的目标分布是什么?
SFT:固定的外部目标分布
SFT 是最简单的情况。你有一个标注好的数据集。也许是人类写的。也许是由更强的模型生成的。无论哪种方式,数据集在训练之前就存在。然后你对初始模型进行交叉熵训练。
用分布的话来说,当前模型是一个分布,数据集定义了另一个分布。SFT 将模型拉向数据集分布。
由于负对数似然的性质,初始模型所在的分布实际上并不重要。这就是为什么我认为 SFT 有一种非常自然的灾难性遗忘失败模式。如果数据集分布与模型的原始分布相差很远,模型就没有内置的理由来偏好一个附近的解,而只是被拉向展示的 token。
这并不意味着 SFT 不好。SFT 非常有用。但在几何意义上,它是对外部目标的直接拉动,很少考虑初始策略。这使得它非常适合”冷启动”类型的任务,在这些任务中,期望的输出格式需要大幅改变。

SFT 在整个模型分布上均匀地施加梯度压力,不仅在新任务相关的区域。箭头代表参数更新的方向;它们来自峰值(高概率的现有能力)、山谷和初始分布的所有其他区域。青色箭头表示将模型移向目标行为的更新;橙色箭头显示可能侵蚀先前能力的附带压力。
灾难性遗忘的产生是因为交叉熵损失没有内置机制来区分关键任务 token 和数据集中的偶然 artifacts。
RL:最大期望奖励方向
在线强化学习(RL)看起来不同。模型从自身生成样本;这些样本由某个奖励函数评分;然后模型通过策略梯度更新以增加其获得的期望奖励。
在这里,”目标分布”的概念更难定义。我将在后面的章节中重新讨论这个问题,但从高层次来看,并没有一个任意的外部分布将模型拉向。

RL 仅通过从当前策略采样的行为来施加梯度压力。绿点代表 on-policy rollouts,而橙色圆环点表示主导更新的高奖励样本。虚线轮廓显示更新后的策略,概率质量向奖励轨迹移动。
与 SFT 在外部数据集上施加 token 级压力不同,RL 主要重塑模型已经访问的高概率区域。这种局部性有助于解释为什么 RL 可以在不对不相关能力施加同样广泛压力的情况下提高任务性能。
当然,这只有在奖励有意义的情况下才有效。在可验证的 RL(RLVR)中,奖励方向通常是质量��良好代理,因此沿奖励方向移动应该能得到更好的模型。在人类反馈的 RL(RLHF)中,奖励模型是不完美的,情况更混乱。我们稍后会回到这个问题。
离线蒸馏:伪 RL
离线蒸馏(OPD)介于 SFT 和 RL 之间。和 SFT 一样,它有一个教师信号。学生被训练来匹配另一个分布,但和 RL 一样,数据来自学生。在每一步,算法执行 on-policy 采样,但梯度通过反向 KL 散度将模型拉向匹配教师的分布。
粗略地想,OPD 可以被认为与 RL 本质相似,只是它不是按 advantage 加权 completions,而是使用学生和教师之间的 log ratio 加权。

OPD 的一个新变体是On-Policy Self Distillation(OPSD)。教师和学生是同一个模型,但在计算”教师”的 log 概率时,教师得到了一个参考解决方案作为前缀。这个想法是教师有权访问的特权信息将提供一个学习信号。
问题在于,由于学生和教师是同一个模型,它们对大多数 token 的输出最终非常相似。作者进行了 per-token KL 分析,发现样式或 pivot tokens(如”wait”或”alright”)的 KL 可能比数学 tokens(如”power”、”exponent”或”logarithm”)更高。因此,如果我们对这些不重要的 tokens 更新过猛,模型可能会崩溃。解决方案是引入 per-token clipping 机制来防止过度更新。
在所有 thinking 配置中,样式 tokens 的 per-token KL 散度明显更高,而数学 tokens 的 KL 散度最低。
这就是为什么 OPSD 感觉比 RLHF 更像 RLVR。在 RLHF 中,来自奖励模型的信号有更高的偏差,所以我们使用 KL 惩罚和信任域风格的 clipping 来避免过度优化错误的东西。在 OPSD 中,教师信号也与任务重要性不是完美相关的,因为一些高 KL tokens 可能是样式。在可验证奖励的情况下,奖励函数的偏差更低。这就是为什么(除其他原因外)人们通常更放心地移除显式的 KL 惩罚或放宽信任域约束(在 RLVR 中使用 GRPO 而不是 PPO)。
不同教师的离线蒸馏
这个实验的设置使用了作者的 Minimal Code Editing 任务。简单总结一下,模型得到了一个 buggy 的损坏函数,并被要求修复 bug 而不修改其他任何东西。我们检查模型的解决方案是否有效,以及函数的任何其他部分是否相对于原始未损坏函数被重写了。
作者喜欢这个环境,因为它有助于测试两件事:
泛化:作者可以在一组 corruption types 上训练模型,然后在另一组不同的 corruptions 上评估。这让作者可以问模型是否学习了最小编辑的一般行为,或者是否只学会了反转特定的 corruptions。
灾难性遗忘:与标准代码生成任务不同,最小编辑是一种小众的编码行为。因此,作者可以评估微调后的模型在 LiveCodeBench 上,以检查代码生成能力的任何退化。
在这个实验中,作者首先用 SFT 和 RL 分别训练了两个教师模型。两个教师的性能都复制了作者之前帖子中的结果。两者都学会了最小编辑行为,但 RL 泛化得更好,没有显示出有意义的遗忘,而 SFT 在一般代码生成上显示出退化。
在执行 OPD 之前,作者预期从 RL 教师蒸馏出来的学生会表现更好。
结果汇总
| Model | Norm | Levenshtein | Added CC | LiveCodeBench v6 | |
|---|---|---|---|---|---|
| Teachers | |||||
| SFT | 0.775 | 0.450 | 0.450 | 0.286 | |
| RL | 0.792 | 0.063 | 0.206 | 0.320 | |
| Students (OPD) | |||||
| OPD (SFT teacher) | 0.800 | 0.059 | 0.206 | 0.297 | |
| OPD (RL teacher) | 0.787 | 0.055 | 0.228 | 0.314 |
Teachers vs. on-policy distillation students on the minimal editing task (out-of-domain corruptions) and LiveCodeBench v6.
这不是发生了什么。
�� SFT 教师蒸馏的学生和从 RL 教师蒸馏的学生最终看起来极为相似。更令人惊讶的是,两者都略微超过了 RL 教师,并显著超过了 SFT 教师。这是真的,即使 RL 教师在自身的训练运行中有更高的最终奖励。
此外,尽管 SFT 教师在一般代码生成上显示出退化,而 RL 教师没有,但从两个教师蒸馏的学生只显示出轻微的遗忘。OPD 学生遗忘得比 SFT 教师少,即使教师本身是退化的 SFT 模型。
这真的很令人惊讶,因为如果教师分布是主要因素,那么从 SFT 教师训练的学生应该继承更多 SFT 教师的遗忘。但它没有。
这表明数据的来源(即通过 on-policy 采样)非常重要,而教师的作用可能比预期的要小。这是一个令人希望的结果,因为这意味着我们可以”过度训练”一个专门模型——也许甚至通过暴力 SFT——然后做 OPD 来学习这种能力,同时保留我们关心的许多其他能力。
为什么 RL 遗忘更少?
有一些常见的解释,虽然作者认为它们都包含一些真理,但作者发现大多数都不完全令人满意。
SFT 是前向 KL,RL 是反向 KL
第一个解释通常与两种算法优化的 KL 散度方向有关。
通过固定数据集上的交叉熵进行 SFT 相当于最小化前向 KL 散度(到常数):
前向 KL 的 mode-covering 行为可能导致牺牲先前的 modes(代表现有能力)来学习新任务。Chen et al.(2025)表明 RL 可以被认为是反向 KL 最小化。
在玩具多模态设置中,作者表明反向 KL 比前向 KL 遗忘更少。
作者发现这样的论点有用但不完整。问题是论点严重依赖于对参考模型的显式 KL 正则化。但根据经验,RL 仍然可以抵抗遗忘,即使这个 KL 惩罚被移除或大幅减少。在 RLVR 中,人们通常训练的 KL 约束比 RLHF 风格的设置弱得多,而抗遗忘行为通常仍然存在。
SFT 有均匀、激进的 Token 级梯度
数据依赖的正则化。
首先,SFT 在每个 token 上提供密集、均匀的监督。在 SFT 中,每个展示的 token 都被视为模型应该增加概率的东西。token 可能是任务关键的,如数学运算符,也可能是样式 token,如”therefore”或”we can see that”。损失不知道区别,只是推动展示 token 的概率上升,产生广泛的更新。
Diao et al. 发现 SFT 包含许多低概率、低熵的 tokens。这意味着模型对其预测高度自信,但被迫拟合一个会影响现有表示的不同的 ground-truth label。
相比之下,RL 具有某种形式的数据依赖正则化(Lai et al., 2025)。例如,在组内奖励归一化期间进行 advantage 估计时,具有更高多样性和奖励方差的组比低方差的组接收更小的更新。这意味着当模型不确定时,更新幅度自然减少。相反,对于模型持续产生高奖励响应的样本,更新更为激进。
RL 有更稀疏的参数更新
因此,Mukherjee et al. 发现 RL 只更新模型的一个小子网络,通过稀疏但满秩的更新,而 SFT 诱导密集更新。同样,Yuan et al. 发现 SFT 在参数更新中有更多冗余。当他们剪掉 SFT 和 RL 更新的参数数量时,他们发现 RL 的性能下降得快得多,确认 SFT 更新更冗余,而 RL 更新对最终任务性能更重要。
虽然这两部分的论点在 SFT vs RL 比较时都是经验可靠的,但作者稍微质疑它们是否足以应用于算法分析,或者结果是否只是作者测试领域的特定结果。此外,OPD 如何融入这个图景?
我偏好的解释:On-Policy Data
作者最认同的解释来自 Shenfeld et al.(2024)。作者鼓励感兴趣的读者阅读原���,���直觉最容易用非常简单的 RL 版本看到。
假设我们使用 REINFORCE 和二元 0/1 奖励。那么,如果奖励是 1,它贡献正训练信号。如果奖励是 0,它不贡献。在这种情况下,奖励就像一个过滤器,看起来非常像拒绝采样。
如果我们回到目标分布的初始想法,RL 现在有了一个。我们可以将最优策略定义为在该策略下所有 completions 都有奖励为 1 的策略。当然,有多个最优策略,但由于我们是在当前策略生成的 on-policy 样本上训练,这个最优分布在所有最优策略中与我们的当前策略最接近。
当我们执行策略梯度更新步骤时,我们试图将当前策略拟合到这个新的最优策略,该策略隐式地与我们的当前策略有低 KL。因此,RL 学习最近的任务解决策略。
这给了我们一个非常不同的几何视角来思考遗忘。On-policy 数据在每一步都将训练过程约束到接近初始策略的分布。相比之下,SFT 的目标分布可能任意远离。
这就是为什么作者认为 OPD 继承了 RL 的一些抗遗忘行为,以及为什么从 SFT 教师蒸馏的 OPD 学生比 SFT 教师本身遗忘更少。教师在外部数据上训练,而学生在自己的数据上训练。尽管教师提供信号,状态分布仍然是学生的。
这也回答��为什么离线蒸馏可能对遗忘行为更稳健。诚然,来自离线蒸馏的信号可能有更高的方差,因为 logit 分布不完美,但由于 on-policy 性质,它在设置中内置了隐式 KL 正则化。

On-policy 训练隐式地选择最近的任务解决策略到当前模型。不是将模型拉向任意的外部目标,从当前策略采样约束更新到模型已经访问的区域。在最优策略 P 的集合中,因此训练程序倾向于走向可达到的最优 π,帮助解释 on-policy 方法如何在保留更多原始策略的同时提高任务性能。
为什么学生可以超过教师?
这是实验的另一个令人惊讶的部分,但它并不新。实际上,在 Agarwal et al. 的原始工作中,他们表明蒸馏的学生在 GSM8K 上超过了教师的性能。作者没有具体的解释,但认为有几个合理的假设。
与传统蒸馏不同,OPD 的监督可能更有针对性,因为它使用学生生成的状态。这很重要,因为学生的错误不一定是教师的错误。如果我们只在教师生成的轨迹上训练,学生可能收到它很少访问的分布部分的监督。但在 OPD 中,教师在学生自己的前缀上给出建议。
其次,KL 匹配与奖励最大化不同。在文章开始时,作者将 OPD 描述为类似于 RL 的 token 级教师监督,但这个类比是不完美的。最小化 KL 的训练信号比标准 RLVR 奖励有更高的偏差。教师分布可能包含关于样式、不确定性、替代 completions 和推理结构的信息。匹配它可以重塑学生分布的方式,提高采样行为,而不确切地重现教师的贪婪行为。
因此,即使教师的自身采样输出不好,学生也能改进。如果只在 individual tokens 的角度来思考,这很难推理。如果从分布塑形的角度来思考,就更有意义了。
关于分布塑形的说明
将训练视为改变模型分布的形状的视角可能不太直观。Zhang et al.(2023)的这个工作是一个例子。作者报告说,当在由每个 prompt 的一个模型生成 completion 组成的数据集上训练(没有正确性过滤)时,代码有所改进。更令人惊讶的是,当他们使用高温度进行自蒸馏——产生 gibberish 训练数据——在这种低质量数据上训练仍然提高了性能。
作者试图通过比较某些 tokens 的概率输出来解释结果,但要点是,一个人很难围绕这些高维东西建立直觉。
作者在这里最好的解释是模型在新能力周围经历 mode collapse。在 OPD 和 RL 期间查看熵统计,作者发现 OPD 的熵 collapse 明显更drastic。这是可以预期的,因为在反向 KL 训练的模式寻求行为中,mode collapse可能导致多样性减少(Gu et al., 2023)。
作者不想过度声明这一节,因为它是投机性的,但确实认为分布视角是正确的地方开始。

OPD vs RL 的奖励和熵训练曲线。RL 逐渐增加奖励,而 OPD 的奖励增加更突然,与熵的急剧下降相对应。
为什么 RL 和 OPD 泛化更好?
解释这一点的内容大部分来自以上章节的分析。
首先,在 SFT 中,模型因不分配概率给特定答案而受到惩罚。另一方面,RL 由于监督附加在任务成功上而不是特定的 token 序列上,因此结构上更少模仿。
关键的是,我们可以借用 Ross et al.(2024)的工作。在 SFT 中,模型只看到教师访问的状态。在测试时间,由于自回归,学生的一个错误可能会将移动到教师永远不会访问的状态。当学生的前缀(或当前状态)与教师会做的不同,这种不匹配可能导致错误累积。因此,on-policy 数据聚合可以减少这种不匹配。
完整流程
大多数(开放)模型使用 Pretrain → SFT → RL → OPD 流程。SFT 在预训练后��必��的,既是为了格式遵循,也是为了建立基本的指令跟随能力,没有它就不可能有效地执行 RL(Chu et al., 2025)。
但之后会发生什么?
最近,GLM-5 和 DeepSeek v4 都使用 OPD 将专家能力合并到最终模型,最终检查点从不经过 RL。这就引出了一个问题:我们应该如何训练这些专家?一个有用的跨方法参考点是 MiMo-V2 Flash Technical Report。
| Domain | Best Teacher Approach |
|---|---|
| Math | RL |
| Code | RLVR |
| Creative Writing | Self-distillation |
| Knowledge | Distillation-style |
Math 和 Code 任务倾向于支持 RL。这并不奇怪,我们知道 RLVR 在这些领域有效。创意写作和一些知识密集型基准似乎更多受益于自蒸馏或蒸馏风格的方法。这也说得通,因为在这些领域,奖励嘈杂得多。如果我们依赖 LLM 判断,我们正在优化一个质量的有偏代理。
该表还将最终合并模型与每个教师的性能进行比较。只有在教师也是自蒸馏的领域以及 SFT 领域的 BrowseComp 中,学生实际上比教师差。在 RL 领域,最终合并模型几乎总是以不同程度的成功超过教师。
这还有待看看为什么会是这样,但作者认为鉴于大多数后训练流程的最终阶段趋向于某种形式的专家合并,值得指出这一点。
最佳算法
这篇文章的灵感来自 Brown(2026),它将每种后训练方法框架为在不同权衡下最大化能力与 KL 移动。文章结尾暗示存在一种比 RL 更计算最优的算法,仍然保留了能力与 KL 移动的帕累托前沿。
作者希望在这篇文章中说服读者的关键是,任何这样的算法都必须依赖 on-policy 数据。并不是 RL 是一个独特的算法,也不是显式的 KL 惩罚在做重活。让你在不突破 KL 预算的情况下推高能力的是 on-policy 训练。
这个洞察并不新(Lu et al., 2025),但作者没有找到一个综合研究文献的地方,大多数文献仍然将 RL 简单地视为”优越”。
On-Policy Distillation 的日益流行实际上使这更容易看到。将其放在 RL 和 SFT 旁边,OPD 和 RL 最终处于相似的地方,这使作者相信 on-policy data 是关键因素。另一个旋钮,作者认为这个假设算法必须做对的,是旧的信用分配问题。结果奖励太稀疏,这就是为什么 RL 如此昂贵。Lightman 风格的 Process Reward Models 在规模上训练效率不高。教师 logit 蒸馏提供更强的 per token 信号,但以偏差为代价,然后迫使你进入复杂的 clipping 方案。
所以问题的形状比解决方案更清晰:你想要的东西具有蒸馏的密度、RL 的无偏性,以及两者的 on-policy 特性。
这实际上作为一个具体算法是什么样子,作者不知道。