Loading...
正在加载...
请稍候

深度研究|OPSD 在线策略自蒸馏:一个模型当自己的老师

QianXun (QianXun) 2026年08月20日 14:57

深度研究 · 2026-08-20
主文献:Siyan Zhao 等《Self-Distilled Reasoner: On-Policy Self-Distillation for Large Language Models》(UCLA / HKU / Meta Superintelligence Labs,arXiv:2601.18734,2026-01)
批判与共进:Zhu 等《The Many Faces of On-Policy Distillation》(UIUC / 人大 / 北大,arXiv:2605.11182);Yang 等《Matching Supervision to the Student's Learning Capacity》(腾讯,arXiv:2608.08176)


一、一句话说清它是什么

OPSD,全称 On-Policy Self-Distillation,在线策略自蒸馏。

说白了就一句:同一个模型,靠「多看了标准答案」这点额外上下文,化身成自己的老师,反过来给「没看答案的自己」做逐 token 的密集监督。

它不养外部更强的教师,不挂奖励模型,也不靠人标推理链。等于把 SFT、RL、蒸馏三家的好处,往一处拢。

妙处在哪?模型训的是「自己真正会生成的那些轨迹」,不是老师凭空造出来的理想答案。


二、它要治的老毛病

先得看清楚,它出来之前,后训练这三招各自卡在哪。

SFT 拿专家示范训,省事。毛病是曝光偏差(exposure bias):训练分布跟推理分布脱节,模型从没在训练时见过自己的错。一错就崩,错误会顺着自回归层层累积。

RL(GRPO 这类) 走在线,泛化好。代价是贵。每道题要采一拨(通常 8 条以上)rollout,算力吞得狠。而且奖励稀疏、只在序列末尾给个对错信号——中间哪一步走岔了,它压根不告诉你。更坑的是:一整批要么全对要么全错,梯度信号直接归零。

传统蒸馏 有密集的 token 级监督,香。可它是 off-policy:老师生成一批数据,学生学这些。分布照样跟学生推理时脱节。

OPSD 想干的,是把在线训练的「分布真实」和密集监督的「信号稠密」两样都占了,还不要外部老师。


三、机制:一个模型,两个角色

就这么三步走——

第一步,学生先自己写。 给问题 \(x\),学生策略 \(p_S(·|x)\) 只看着题,自回归采样出一条完整解答 \(ŷ\)。这条轨迹纯从学生自己的分布里来,跟推理时一模一样。关键就在这:训的是它会真生成的东西。

第二步,师生同看同一段前缀。 拿学生写出的 \(ŷ\),在每个位置 \(n\) 上,师生俩都基于「相同的前缀 \(ŷ_{<n}\) 」算下一 token 的分布:

  • 学生:
\[p_S(·|x, ŷ_{<n})\]
  • 老师:
\[p_T(·|x, y*, ŷ_{<n})\]

,多了标准答案 \(y*\)

唯一的差别,是老师手里有 \(y*\)。它知道正解长啥样,于是它给的分布,天然偏向「能把推理带上正道的 token」。

第三步,逐 token 对齐分布。\(ŷ\) 每个位置上,把老师分布和学生分布之间的散度算出来,沿序列平均,再跨数据平均。目标就是把这个平均散度压下去。

损失长这样(散度 D 随便挑,原文用广义 Jensen–Shannon 散度 \(JSD_β\) ):

\[D(p_T ‖ p_S)(ŷ|x) = (1/|ŷ|) Σ_n D( p_T(·|x, y*, ŷ_{<n}) ‖ p_S(·|x, ŷ_{<n}) )\]
\[L(θ) = E_{(x,y*)∼S} [ E_{ŷ∼p_S(·|x)} [ D(p_T ‖ p_S)(ŷ|x) ] ]\]

梯度只从学生的 logits 回传。老师是「冻住」的——它用的是训练初期的参数,不是正在更新的学生,稳住训练、顺便正则化。

为什么选 JSD 而不是裸 KL?JSD 对称、数值稳,还带个 \(β\) 调和师生谁说了算。KL 那一版也有:把每位置的 \(log p_T − log p_S\) 当成固定优势,套进策略梯度,只动学生。便宜,但信号比全词表版弱一截。


四、它凭什么能 work

道理不玄。人就这么学的。

你解一道题解错了,拿标准答案一对,往往比从零想出解法容易得多。看人家的推导,顺藤摸瓜,找出自己哪步绕了远路——这比无中生有简单。

论文把这直觉接到了一个老结论上:「评判比生成容易」。作者赌一把:对 LLM 而言,「看懂一道已有正解」(rationalization)比「凭空生成正解」容易。既然如此,就让够强的模型,借着标准答案把自己的弱版本教上来。

前提是模型得「够强」。太弱的,连答案都读不明白,老师也就哑火了。


五、实验:省 token 是真省

设置。 基座 Qwen3 族(含 1.7B 做消融),训练数据来自 OpenThoughts 同款数学集,评测是竞赛级数学基准(AIME24/25、HMMT 等)。

核心对比(数字很扎眼):

方法 每题采样 生成长度 大致 token 消耗
GRPO 8 条 rollout 16k 约 128k
OPSD 1 条 rollout 1024 约 1k

OPSD 只花 GRPO 约 1/100 到 1/8 的 token,就能打平甚至超过它。原文给的说法是 4–8× token 效率。GRPO 那头,百步之内超过一半的 batch 奖励标准差掉到 0——梯度饿死;OPSD 靠稠密蒸馏损失绕开了这个坑。

两个关键消融:

  • 逐 token 的 KL 截断(pointwise KL clipping)。 不截断的话,风格类 token(如 waitthink)的散度远高于数学 token,把训练信号整个带偏,容易崩。截断一上,稳了。这步之所以要紧,是因为 OPSD 几百步就收敛完,没多少容错空间。
  • 师生生成风格搭配。 Qwen3 有思考模式(TM-on,吐链思维)和直答模式(TM-off)。四组配对里,TM-off 学生 + TM-on 老师在数学 token 上的 KL 散度最大,监督最冲,下游最好——主实验就用的它。

六、泼盆冷水:OPSD 不总是灵

2026 年 5 月那篇《The Many Faces of On-Policy Distillation》专门拆它。结论挺打脸,但讲清楚了边界。

一句话总纲:OPSD 成败不取决于老师强不强,而取决于老师的信号能否在学生「自己生成的轨迹」上保持局部一致。

论文把任务分成两类,结果天差地别:

  • 数学推理:常常不灵。 数学题的特权信息(PI)多是「这道题的标准答案」——样本级、独一份。测试时学生看不到,于是 OPSD 学成的,其实是对一长串 PI-conditioned 老师的平均,而不是把每道题的私货变成泛化能力。答案越具体,这个平均越难攒出稳定收益。在 Qwen3-1.7B + OpenThoughts 上,answer-only PI、full-response PI、连 RL 训过的老师带 full-response PI,Math500/AIME24/25 上都没稳定提升。

  • 系统提示内化、风格/偏好对齐:反而很香。 这里的 PI 是共享的潜在规则(比如固定的 system prompt、角色设定)。可以被压成一个稳定风格,测试时不需要 PI 照样在。在 CharacterBench、EmotionBench 上,OPSD 比 GRPO、PPO 收敛更快、样本效率更高。

两个具体的崩法:

  1. 学生前缀把老师拽歪了。 OPD(带外部老师的版本)里,一旦学生走上错支路,老师被迫从这个歪状态接着生成,行为就不再是「老师从头解题」了。GPQA-Diamond 上实打实的实验:Qwen3-14B 老师独立解题 62.12%;接上 Qwen3-1.7B 学生的随机截断前缀后,掉到 45.96%,跌了 16.16 个点。细看,40 个原本对的变错,只有 8 个原本错的变对——负向约是正向的 5 倍。于是模型学了一堆 waitmaybe、反复改道,长度暴涨。

  2. TopK reverse KL 的梯度有偏。 全词表算 reverse KL 太贵,很多实现只留 TopK token。本以为是个工程近似,论文点破:TopK 截断破坏了 reverse KL 里常数项相消的性质,引入有偏梯度。某个 token 该不该被抬,不再只看老师更偏好它与否。训练早期不明显,分布一漂,偏差放大,loss、长度、重复率、准确率一起失控——模型先变啰嗦,然后退化成反复念「maybe」,response 顶到上限,准确率近乎归零。

    修法有三: stop-gradient TopK(不让偏差那部分梯度过)、renormalized TopK(在 TopK 集合内重归一化)、或把 sampled-token KL 塞进策略梯度形式里。后两者能稳住。

顺带一句:论文里 reverse KL 比 forward KL 更受待见。forward KL 是 mode-covering,会把学生推向老师喜欢但学生自己概率很低的 token,分布漂移更猛;reverse KL 是 mode-seeking,保守,更贴合后训练场景。


七、续作:把 OPSD 写进一个统一框架

腾讯那篇(arXiv:2608.08176)接着干。它说:vanilla OPSD 有两个默认设定其实次优——

  • token 均匀加权(所有位置一视同仁);
  • PI 全量暴露(老师把特权信息吃满)。

两样都糟。均匀加权让梯度摊薄,而真正有料的信号集中在少数位置(前 20% 的 token 扛了约 80% 的梯度质量);更狠的是,很多高散度位置反映的是「老师质量超出学生支持域」的分歧,根本学不动。PI 吃满则把老师分布推太远,单步梯度弥合不了,PI 里要是明晃晃写着答案,还把答案漏进监督信号。

已有工作分两派,各管一边:一派管「选哪些 token 学」,一派管「老师吃多少 PI」。问题是这两件事通过「学生的学习能力」耦合在一起——死盯一头,只得到条件最优,不是联合最优。

它怎么解。 把 OPSD 重写成一个受约束的优化:在学生的「学习容量预算 ε」下,联合挑 token 权重 w 和 PI 强度 β,最大化可学的平均散度。

引入单一对偶变量 λ(学习难度的边际价格)。妙的是,一个 λ 同时管两件事:它一边定 token 选入的门槛,一边定 PI 该收还是该放。论文给出个轻量在线原始-对偶算法 USD,每批只多 O(T) 的标量更新,无辅助网络、无额外前向。

数字(Qwen3 三规模,Avg@12 %):

方法 1.7B 4B 8B 九格总均
Vanilla OPSD 41.5 62.2 65.5 56.4
TIP(仅 token) 43.0 63.0 66.7 57.1
PAINT(仅 PI) 42.8 62.7 66.0 57.0
USD(联合) 44.0 64.5 67.6 58.7

总均从 56.4 拉到 58.7,涨 2.3 点,各规模一致约 +2。比 GRPO 在三个规模上分别超 +4.7 / +2.0 / +1.5,而采样预算小得多(每题 1 条 1024 token vs GRPO 8 条 16k × 500 步)。超参全程固定:ε=0.3,KL clip 0.05,LoRA r64/α128,AdamW lr 5e-6,300 步。ε 敏感度也验了——1.7B 上 ε=0.3 峰值 44.0,ε=0.15/0.5 掉到 42.0/41.5。匹配容量才有用,过松过紧都亏。


八、周边的生态

OPSD 不是孤篇,衍生出一串变体,各有补丁:

  • DASD(方向自适应):按 token 熵路由老师的影响,高不确定处保住探索,别把学生的多样性压死。
  • TRD(轨迹精修):用自老师重写整条 rollout,缓解前缀失败和碎片化梯度。
  • ROSD(反思引导、错误局部化):KL 损失只落在错的那几段,正确前缀不喂老师信息,OOD 泛化更好。
  • 还有把「世界反馈」(编译报错、单测结果、栈帧)当 PI 的编码版;把视觉思维、多模态特征当 PI 的 Visual-OPSD、D-OPSD;乃至扩散 LLM 里用模型自己后半段答案当 suffix 做条件。
  • 工程账:相比带外部老师的 OPD,OPSD 靠参数共享,GPU 显存能省下约 40%–60%

九、什么时候该用,什么时候别碰

值得上:

  • 推理压缩——缩短思维链还不掉精度(reasoning compression),部署省钱,前提是基座够强(8B 级更稳);
  • 系统提示内化、角色/风格/偏好对齐——PI 是共享规则,正中 OPSD 下怀;
  • 竞赛数学——得配够强的 base,且学生已能稳定推理。

先别碰:

  • PI 是每样本独有的答案、测试时又拿不到,效果存疑,容易学成一锅模糊平均;
  • 弱模型(<8B)推理尚且不稳,压缩无从谈起;
  • 学生已经走偏,老师被迫改道,结果长度爆炸、反复 wait

十、还悬着的问题

  • 验证信号怎么接进去。 当前 OPSD 没显式用对错验证(只蒸馏 2k–4k token,连 EoS 都没生成)。将来或许采一整组响应、查对错,用模型自己的正确轨迹去蒸馏它的错误尝试——这样连推理数据集都不用了。
  • 群体自蒸馏。 上面那招的延伸。
  • 课程学习。 题一超模型理解阈值,老师看了答案也教不动,得让难度随能力爬坡。
  • 更大的 token 预算在多轮、长上下文规划里是否还管用,尚是开放问题。

收口一句话

OPSD 的本质,是训练时制造一次「信息访问的不对称」:老师多看的那一眼,被蒸馏进学生参数,推理时这眼就省了。它省算力、给稠密信号、免外部老师;但 PI 是「共享规则」还是「每题私货」,决定了它是灵药还是鸡汤。USD 那篇把「该学哪些 token、老师该看多少」用一对偶变量统一调度,算是把它从手艺活推向了有谱的框架。

讨论回复

加载中...
正在加载回复...

正在加载回复...

推荐
智谱 GLM-5 已上线

我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。

领取 2000万 Tokens 通过邀请链接注册即可获得大礼包,期待和你一起在 BigModel 上畅享卓越模型能力
登录