← 返回 2026-01-29

通过自我蒸馏实现强化学习:SDPO算法 Reinforcement Learning via Self-Distillation

Jonas Hübotter, Frederike Lübeck, Lejs Behric, Anton Baumann, Marco Bagatella, Daniel Marta, Ido Hakimi, Idan Shenfeld, Thomas Kleine Buening, Carlos Guestrin, Andreas Krause 📅 2026-01-28 👍 51 2026-07-13 08:35
信用分配 后训练 大语言模型 强化学习 自我蒸馏

SDPO用模型自身反馈做自蒸馏,突破RL信用分配瓶颈

前置知识

强化学习与可验证奖励 (RLVR)

RLVR是当前LLM后训练的主流范式,模型针对一个问题生成回答,环境返回一个标量奖励(如代码生成中的单元测试通过/失败)。典型方法如GRPO通过对同一问题采样多个回答,用蒙特卡洛方式估计优势函数。RLVR的核心局限在于:标量奖励构成严重的信息瓶颈——当一个rollout组内所有样本获得相同奖励(通常为零)时,GRPO优势坍缩为零,学习停滞。

本文正是针对RLVR的信息瓶颈问题提出解决方案,理解RLVR的工作机制和局限是理解SDPO动机的关键前提。

知识蒸馏 (Knowledge Distillation)

知识蒸馏是一种模型压缩和能力迁移技术,由Hinton等人在2015年提出。核心思想是让一个较小的学生模型学习模仿一个较大的教师模型的输出分布(logits),而非仅学习硬标签。通过最小化学生和教师输出分布之间的KL散度,学生可以获取教师的暗知识(dark knowledge),即类别间的相对关系信息。传统蒸馏需要一个比学生更强的外部教师模型。

SDPO的核心创新在于将蒸馏范式中的外部教师替换为模型自身在接收反馈后的自我教师,理解传统蒸馏机制才能体会这一转换的精妙之处。

上下文学习 (In-Context Learning, ICL)

上下文学习是大语言模型的一种涌现能力,指模型无需更新参数,仅通过在输入上下文中提供少量示例或反馈信息,就能调整其行为和输出分布。这种能力随模型规模增大而增强(Brown et al., 2020)。当模型接收到运行时错误、失败测试用例等反馈时,它可以回顾性地识别自身错误并提出修正方案,这正是SDPO自我教师机制的理论基础。

SDPO的关键洞察是利用模型的上下文学习能力实现回顾性信用分配——同一模型在接收反馈后能更准确地评估自身先前行为的质量,这一能力是整个算法成立的根基。

策略梯度方法 (Policy Gradient Methods)

策略梯度是强化学习中直接优化策略参数的一类方法。标准策略梯度的梯度估计涉及优势函数,衡量在某一状态采取某动作相对于平均水平的好坏。GRPO使用蒙特卡洛回报估计优势,SDPO则用自我教师的log概率比来估计密集的token级优势。SDPO的梯度本质上是一个策略梯度,这使得它可以无缝替换GRPO中的优势函数。

理解策略梯度框架是理解SDPO如何作为标准RLVR管道的即插即用替代方案的关键。

KL散度与Jensen-Shannon散度

KL散度衡量两个概率分布之间的差异,是非对称的。Jensen-Shannon散度是KL散度的对称且有界版本。SDPO使用对称的JSD替代标准KL散度作为蒸馏损失,以提升训练稳定性,这借鉴了Agarwal等人在2024年关于on-policy蒸馏的研究发现。

SDPO的具体损失函数设计直接影响训练稳定性和最终性能,理解这些散度度量有助于深入理解论文的技术细节和设计选择。

研究动机

当前大语言模型后训练中的强化学习方法面临严重的信用分配瓶颈。主流的RLVR方法如GRPO仅从每次尝试的标量结果奖励中学习,这在许多场景下构成信息瓶颈。以代码生成为例,当模型生成一段代码并通过单元测试验证时,仅得到一个二值的通过/失败信号。具体数据表明,当一个rollout组内的所有样本获得相同奖励(通常为零)时,GRPO的优势估计坍缩为零,学习完全停滞。这种稀疏奖励问题在数学推理、工具调用等任务中普遍存在。虽然从强教师模型蒸馏可以提供密集的token级监督,但强教师往往不可用——在线学习的目标恰恰是超越现有模型的能力上限。一个被忽视的关键事实是:许多可验证环境实际上提供了丰富的文本反馈,如运行时错误(如ZeroDivisionError)、失败的单元测试、LLM裁判的评估等,这些反馈不仅揭示了回答是否错误,还解释了错误的具体原因。然而,现有RL方法完全没有利用这些丰富反馈信号。

本文的目标是本文的具体目标是解决以下核心问题:如何将丰富的环境反馈转化为有效的信用分配,而无需依赖外部强教师的监督?作者希望设计一种算法,能够:(1)利用可验证环境天然提供的丰富token化反馈(如运行时错误、失败测试用例)来替代或补充标量奖励;(2)通过模型自身的上下文学习能力实现回顾性错误识别,将同一模型既用作初始尝试的学生,又用作接收反馈后的教师;(3)在不引入额外采样开销的前提下,提供密集的token级信用分配信号;(4)作为标准RLVR管道的即插即用替代方案,仅需替换优势函数即可实现。最终目标是在科学推理、工具调用和竞赛编程等多个领域提升样本效率和最终准确率。

与已有工作不同的是,本文的独特切入角度在于将蒸馏范式与在线强化学习相融合,创造了一种全新的自我蒸馏机制。与现有方法的本质区别体现在三个维度:首先,与标准蒸馏不同,SDPO不依赖外部固定教师模型,而是利用当前策略在接收反馈后的自身能力作为教师——这解决了在线学习中不存在更强外部教师的根本困境;其次,与RLVR方法不同,SDPO将信息载体从标量奖励扩展到任意token序列的丰富反馈,将信息瓶颈从1-bit扩展到无限制;第三,与过程奖励模型(PRM)不同,SDPO不需要训练单独的奖励模型来估计中间步骤的价值,而是通过上下文学习直接利用模型的回顾能力。这种设计使得SDPO兼具蒸馏的密集监督优势和在线RL的探索优势,同时避免了两者的典型缺陷——蒸馏的分布偏移问题和RLVR的信息稀疏问题。

核心方法

SDPO的整体思路可以用一个直觉性比喻来理解:想象一个学生在做题,第一次尝试后得到了详细的批改反馈(不仅是对错,还有具体哪里出错、为什么出错)。如果这个学生足够聪明,他可以回顾自己的答案,结合批改反馈来理解自己在哪些具体步骤上犯了错,以及正确的思路应该是什么。SDPO正是利用了大语言模型的这种回顾性自省能力。技术路线如下:对于一个问题x,模型首先从当前策略采样多个回答,然后获取环境反馈(如运行时错误、失败测试、成功样本等)。关键步骤是将反馈加入上下文,使同一模型变成自我教师,该教师由于看到了额外信息,其next-token分布会与学生的原始分布不同。SDPO通过最小化学生和自我教师之间的蒸馏损失来更新模型参数,本质上是让模型学会在没有反馈的情况下也能做出接收反馈后会做的选择。这种设计避免了外部教师的需求,同时提供了密集的token级信用分配。

SDPO的核心创新点是将同一策略模型在两个不同角色间切换:作为学生进行初始尝试,作为教师在接收反馈后回顾性地评估行为的价值。这一创新的本质区别在于:传统蒸馏需要一个比学生更强的固定外部教师(如GPT-4蒸馏到小模型),而SDPO的教师就是学生自身加上反馈信息后的版本。具体而言,自我教师是将问题x和反馈f一起输入当前策略后得到的条件分布。由于反馈包含了环境输出(如运行时错误)和可能的正确样本,教师的分布会偏向更合理的token选择。核心洞察是:无需额外采样——只需重新计算原始尝试在反馈增强上下文下的log概率,就能获得密集的信用分配信号。教师的优势在于事后诸葛亮:它不需要在初始尝试时就做对,只需要在看到反馈后能识别错误。这与人类认知方式高度一致——我们经常在得到反馈后才理解自己错在哪里。

方法步骤详情

SDPO算法的具体执行步骤如下:第一步,从数据集中采样一个问题x。第二步,从当前学生策略采样G个回答。第三步,对每个回答评估环境以获得反馈f,反馈包含环境输出(如运行时错误)和/或同组中已成功的样本解答。第四步(自我蒸馏核心),计算自我教师的log概率:在反馈和已生成token的条件下,原始回答中每个token的概率。第五步,计算蒸馏损失,即学生和自我教师next-token分布之间的KL散度,其中stopgrad操作阻止梯度通过教师传播,防止教师退化回学生。第六步,通过梯度下降更新参数。论文进一步推导出SDPO梯度形式为策略梯度,其中优势函数由自我教师和学生的log概率比估计,这使得SDPO可以作为GRPO的直接替代品,仅需替换优势函数。此外,论文采用了正则化自我教师(EMA或信任域插值)和对称JSD散度来提升训练稳定性,并使用top-K近似(K=100)避免内存开销。正则化参数alpha=0.01用于EMA和信任域插值。

技术新颖性

SDPO的技术新颖性体现在多个层面。首先,在概念层面,它首次将自我蒸馏引入在线强化学习框架,解决了传统蒸馏需要外部强教师的根本限制。Table 1清晰展示了SDPO在三个维度上的独特定位:on-policy采样、丰富信号、环境反馈。其次,在算法层面,SDPO证明了蒸馏损失的梯度本质上是策略梯度,优势函数由自我教师的log概率比估计,这一理论洞见使得SDPO可以无缝集成到现有RLVR管道中。第三,在技术实现层面,论文引入了多项稳定性改进:正则化自我教师(通过EMA或信任域插值防止教师退化)、对称JSD替代KL散度(避免非对称性导致的训练不稳定)、以及top-K logit近似(在几乎不损失信息的前提下避免存储完整logits的内存开销)。第四,SDPO实现了密集的token级信用分配——每个生成位置的每个候选token都有独立的优势估计,这与GRPO的常数级序列级优势形成鲜明对比。第五,论文提出了在标准RLVR环境(无丰富反馈)中利用成功rollout作为隐式反馈的创新策略,将SDPO的适用范围扩展到了没有自然反馈信号的场景。

Qwen3-8B自我教学示例
Figure 4: Qwen3-8B自我教学示例
SDPO与GRPO每步训练时间对比
Figure 5: SDPO与GRPO每步训练时间对比
SDPO的密集信用分配示意
Figure 9: SDPO的密集信用分配示意
通过自我蒸馏将上下文压缩到模型权重中
Figure 12: 通过自我蒸馏将上下文压缩到模型权重中

实验结果

SDPO在三个在线RL评估场景中均展现出显著优势。在科学推理和工具调用任务上(无丰富反馈),SDPO在聚合准确率上达到70.2% vs GRPO的66.6%,在Chemistry任务上使用Olmo3-7B-Instruct时,SDPO在50分钟内达到GRPO训练5小时的准确率,实现了6倍加速,且5小时准确率高出10个百分点以上。更引人注目的是,SDPO生成的回答长度平均比GRPO短3倍以上——在Chemistry任务上实现了11倍的长度缩减(764 vs 5549 tokens),同时保持更高准确率。GRPO的回答中频繁出现Hmm、Wait等填充短语和循环推理模式,而SDPO的回答简洁且避免了这些表面化推理模式。在竞赛编程LiveCodeBench v6上,SDPO达到48.8%的最终准确率,显著超过GRPO的41.2%,也超越了排行榜上最强的指令模型Claude Sonnet 4(40.5%)和Claude Opus 4(39.7%)。SDPO仅需4倍更少的生成次数即可达到GRPO的最终准确率。消融实验表明,logit级SDPO > token级SDPO > 序列级SDPO > GRPO,证明密集信用分配和丰富反馈信号是互补的。模型规模研究显示SDPO的优势随模型增大而增强,在Qwen3-8B上优势最为显著。在测试时自我蒸馏场景中,SDPO在极难问题(pass@64 < 0.03)上实现53.2%的发现率,而best-of-k和multi-turn采样分别仅为41.5%和35.6%,且SDPO以约3倍更少的生成次数达到相同的发现概率。遗忘评估表明SDPO在学习新任务的同时保持了先前能力,在IFEval、ArenaHard-v2和MMLU-Pro等保留任务上实现最佳的性能-遗忘权衡。

自我蒸馏与替代方法的对比
Table 1: 自我蒸馏与替代方法的对比
自我教师的提示模板
Table 2: 自我教师的提示模板
SDPO与GRPO在推理基准上的对比
Table 3: SDPO与GRPO在推理基准上的对比
不同教师正则化方法的对比
Table 4: 不同教师正则化方法的对比
On-policy方法不会导致灾难性遗忘
Table 5: On-policy方法不会导致灾难性遗忘
不同反馈类型的性能对比
Table 6: 不同反馈类型的性能对比
LiveCodeBench v6上的学习曲线对比
Figure 1: LiveCodeBench v6上的学习曲线对比
Olmo3-7B-Instruct在Chemistry上的训练进展
Figure 6: Olmo3-7B-Instruct在Chemistry上的训练进展
GRPO与SDPO回答的定性对比
Figure 7: GRPO与SDPO回答的定性对比
SDPO随模型规模的缩放特性
Figure 8: SDPO随模型规模的缩放特性
丰富反馈与密集信用分配的消融实验;自我教师的训练动态
Figure 10: 丰富反馈与密集信用分配的消融实验;自我教师的训练动态
GRPO和SDPO优势的组合效果
Figure 11: GRPO和SDPO优势的组合效果
测试时自我蒸馏在难题上的发现概率
Figure 13: 测试时自我蒸馏在难题上的发现概率
查看结构化数据
任务指标本文基线提升
Chemistry科学推理 avg@16准确率(5小时训练) SDPO: 80.9% (Qwen3-8B), 80.0% (Olmo3-7B) GRPO: 74.5% (Qwen3-8B), 56.7% (Olmo3-7B) Qwen3-8B提升6.4个百分点,Olmo3-7B提升23.3个百分点
LiveCodeBench v6竞赛编程 最终验证准确率 SDPO: 48.8% GRPO: 41.2%, Claude Sonnet 4: 40.5% 相对GRPO提升7.6个百分点,达GRPO准确率仅需1/4生成次数
Physics科学推理 avg@16准确率(5小时训练) SDPO: 75.6% (Qwen3-8B), 66.1% (Olmo3-7B) GRPO: 72.7% (Qwen3-8B), 63.3% (Olmo3-7B) Qwen3-8B提升2.9个百分点,Olmo3-7B提升2.8个百分点
Materials Science科学推理 avg@16准确率(5小时训练) SDPO: 78.4% (Qwen3-8B), 79.1% (Olmo3-7B) GRPO: 77.1% (Qwen3-8B), 75.0% (Olmo3-7B) Qwen3-8B提升1.3个百分点,Olmo3-7B提升4.1个百分点
ToolAlpaca工具调用 avg@16准确率(5小时训练) SDPO: 68.5% (Qwen3-8B), 62.1% (Olmo3-7B) GRPO: 67.7% (Qwen3-8B), 65.0% (Olmo3-7B) Qwen3-8B提升0.8个百分点,Olmo3-7B在on-policy设置下表现略低
LCBv6极难问题测试时发现 discovery@k(发现概率) SDPO: 53.2% (at k=2750) Best-of-k: 41.5%, Multi-turn: 35.6% 以约3倍更少生成次数达到相同发现概率

局限与改进

论文承认了SDPO的几个重要局限性。首先,SDPO的性能高度依赖模型的上下文学习能力——在较弱的模型上(如Qwen2.5-1.5B和Qwen3-0.6B),SDPO可能不如GRPO,论文在Qwen2.5-Instruct的缩放研究中明确观察到了这一现象。这意味着SDPO主要适用于较强的基座模型,限制了其通用性。其次,SDPO依赖环境反馈的质量——如果环境提供无信息或误导性反馈,模型可能无法通过SDPO有效学习。第三,虽然SDPO相比GRPO的计算开销较小(约5.8%的额外时间不含代码环境,17.1%包含代码环境),但对于生成长度较短的小模型,生成时间占比较小,这一相对开销可能更为显著。从独立分析的角度看,论文的评估主要集中在Qwen3模型家族上,对其他模型架构的泛化性有待验证;实验中的任务类型以科学推理和代码为主,对更广泛的NLP任务(如开放式文本生成、对话等)的适用性尚未探索;此外,论文的自我教师模板设计可能对不同任务类型需要不同的调整,缺乏自动化的模板优化机制。

独立分析的弱点

尽管SDPO取得了显著成果,仍存在几个值得关注的弱点。第一,自我教师的回顾能力上限受制于模型本身的上下文学习能力。对于较弱的模型(如Qwen3-0.6B),SDPO的优势几乎消失甚至不如GRPO,这表明该方法存在一个能力阈值——只有当模型足够强大时,自我蒸馏才有效。改进方向包括:设计针对弱模型的课程学习策略,或开发混合方法在弱模型上逐步引入自我蒸馏。第二,论文在无丰富反馈场景中将成功rollout作为隐式反馈,但这本质上是GRPO的一种变体,其信息增益有限——当问题太难以至于所有rollout都失败时,这种策略完全失效。改进方向包括:引入外部知识源作为辅助反馈,或设计主动探索策略增加成功rollout的概率。第三,top-K近似(K=100)虽然在实践中有效,但可能遗漏长尾分布中的重要信息。对于词汇量较大的多语言模型,这一近似可能需要更精细的自适应策略。第四,论文未充分探讨SDPO在off-policy设置下的表现——作者提到off-policy SDPO是未来方向,但未给出初步实验结果,考虑到off-policy方法在样本效率上的已知优势,这一缺失值得关注。第五,自我教师的正则化参数(如EMA的alpha=0.01)是通过实验选择的,缺乏理论指导,不同任务和模型可能需要不同的设置。

未来方向

论文作者提出了四个令人兴奋的未来研究方向。第一,长视野和智能体设置——RLRF在轨迹较长或暴露中间状态信息的环境中特别有价值,将SDPO应用于智能体环境(如网页浏览、软件工程任务)是自然的下一步。第二,大规模训练动态——超越LiveCodeBench的评估,在大规模多任务RL训练中应用SDPO并进一步研究其与前沿基座模型的缩放特性。第三,超越可验证奖励——虽然论文聚焦于可验证的代码生成,但许多任务提供无真实标签的文本反馈,探索SDPO的回顾机制能否改善开放式文本生成或连续奖励任务中的对齐效果仍是开放问题。第四,推理行为差异——SDPO诱导了与GRPO质性不同的推理模式,特别是避免了后者的冗余和表面化推理倾向,未来工作应系统研究提示模板等个体因素如何影响行为。基于论文成果还可延伸的方向包括:将SDPO与树搜索结合实现更强的测试时计算能力;将SDPO应用于多模态模型的RL训练;研究SDPO在持续学习和终身学习场景中的特性;以及探索SDPO在对齐任务中替代或补充RLHF的潜力。

复现评估

论文在可复现性方面做得较好。代码已在GitHub开源(https://github.com/lasgroup/SDPO),这大大降低了复现门槛。训练使用了verl库进行快速多GPU训练,该库是公开可用的。实验在4块NVIDIA GH200 GPU的节点上进行,每次运行(含初始化和验证)约需6小时,这一算力需求对于学术团队是可承受的。论文提供了详细的超参数设置(在附录E中),并使用3个随机种子报告标准误差。评估数据集LiveCodeBench v6是公开的,科学推理数据集SciKnowEval和工具调用数据集ToolAlpaca也是公开的。然而,完整的训练日志和检查点未公开发布,这可能影响精确复现。此外,论文的一些关键设计选择(如正则化参数alpha=0.01、top-K近似的K=100、JSD替代KL散度等)虽然有消融实验支持,但最优值可能因任务和模型而异,复现时可能需要额外的超参数调优。总体而言,论文的可复现性评级为良好,具备开源代码、公开数据和合理算力需求的条件。