深度解读 · 模型训练 / 后训练

在线策略蒸馏:用十分之一的成本,逼出强化学习的效果

Thinking Machines Lab 的 On-Policy Distillation——把"强化学习的对路"和"蒸馏的密集反馈"合二为一。一个看似简单的改动(换掉正则项里的那个模型),把后训练成本砍掉 10~30 倍。

原文:Thinking Machines Lab · Connectionism · 2025.10.27 · 作者 Kevin Lu · 基于 Tinker 训练 API
一句话抓住重点

训练小模型有两条老路:RL(强化学习)——让模型自己答、只告诉它对错,对路但反馈太稀疏SFT/蒸馏——让模型模仿老师的标准答案,反馈密集但学的是老师的处境、不是自己的。在线策略蒸馏的核心:让学生自己答题,但请老师给它写的每一个 token 打分。结果——既对路又密集,AIME 数学推理达到同等水平只花 RL 1/10 的算力。

01 · 背景

训练专家模型的三个阶段,卡在最后一关

一个能力强的小模型,是几层训练叠出来的:

📚
预训练 Pre-training
教通用能力:语言、广义推理、世界知识
🏥
中训练 Mid-training
灌领域知识:代码、医学库、公司内部文档
🎯
后训练 Post-training
塑目标行为:指令遵循、数学推理、对话
💡
为什么用小模型
可本地部署(隐私/安全)、更新快、推理便宜

最后一关"后训练"决定成败,而它只有两种打法——而这两种各有硬伤。

02 · 核心矛盾

RL vs 蒸馏:一个对路但瞎,一个清楚但跑偏

文章用下棋打了个绝妙的比方,一看就懂:

♟️ 学棋的三种方式
· On-policy RL(强化学习)= 自己下整盘棋、无人指导,只在终局知道输赢——反馈对路(是你自己的棋),但极稀疏,不知道哪一步是败着。
· Off-policy 蒸馏= 看大师下棋,每一步都很强——反馈密集,但那些局面新手根本遇不到,学了用不上。
· On-policy 蒸馏(本文)= 你自己下,请大师对你走的每一步从"昏招"到"妙手"逐一点评——既是你的棋,又步步有评分。

SFT / 离线蒸馏

模仿外部标准答案
  • 采样:离线(老师的)
  • 反馈:密集 ✓
  • 痛点:误差累积、学到老师的腔调却没学到事实准确性

强化学习 RL

自己答、只评对错
  • 采样:在线(自己的)✓
  • 反馈:稀疏(每轮仅 O(1) bit)
  • 痛点:不知错在哪、算力多花在"搜索"上

在线策略蒸馏

自己答、老师逐 token 评分
  • 采样:在线(自己的)✓
  • 反馈:密集(每轮 O(N) bit)✓
  • 两全其美
03 · 怎么做

机制:让老师当"逐字裁判"

具体做法:从学生模型采样轨迹(让它自己答),再用一个高水平老师模型每个 token 打分。打分用的是逐 token 反向 KL 散度——衡量在同样的上文下,学生和老师对下一个词的分布差多远。学生表现得和老师一模一样时,KL=0。

💡 为什么反向 KL 是聪明的选择
不可"刷分"(unhackable):低 KL 必然对应老师眼中"高概率的好行为",没法投机;
mode-seeking(抓主峰):只学老师那一种最优行为,不把概率摊给一堆次优选项;
省算力:不用等整条轨迹采样完才算奖励,可用更短/部分轨迹训练;查老师的 logprob 只需大模型跑一次前向,轨迹则由便宜的小学生生成——还不需要单独的奖励模型。
🔧 工程上有多简单
文章原话:在已有的 RL 实现上,这可以是"一行改动"——只要那套 RL 用了 KL 正则,把正则项里的那个模型换成老师模型即可。把每个 token 的优势值(advantage)设成"负的反向 KL",复用 RL 的 importance-sampling 损失做更新。已开源在 Tinker cookbook
04 · 数据说话(一)

数学推理:复刻 Qwen3 结果,1/10 算力

在 Qwen3-8B 上训数学推理(老师 Qwen3-32B),目标把 AIME'24 从 60% 提到 70%。三条路的代价对比一目了然:

方法AIME'24GPQA-DiamondGPU 小时
离线蒸馏 (SFT)55.0%55.6%
+ 强化学习 RL67.6%61.3%17,920
+ 在线策略蒸馏74.4%63.3%1,800

数据来自 Qwen3 技术报告 Table 21。在线策略蒸馏不仅分数更高,GPU 小时只有 RL 的 1/10。TM 用 Tinker 复现:从 SFT-400K 检查点出发,约 150 步(~7.7 万 prompt)就到 70%。

9-30×
总成本降幅
50-100×
同架构下算力效率
7-10×
更少梯度步达标
O(N)
每轮反馈 bit(RL 仅 O(1))
05 · 数据说话(二)

个性化:先灌知识,再"找回"被冲掉的能力

第二个场景更贴近企业落地:训一个懂公司内部文档、同时会好好聊天/遵循指令的内部助手。难点在于——给模型灌新知识(中训练)会冲掉它原有的指令遵循能力,这叫"灾难性遗忘"。无论怎么混比例、用 LoRA 限制,都救不回 IF-eval。

在线策略蒸馏给了个漂亮解法:拿这个模型自己更早的版本当老师,在 Tulu3 对话 prompt 上做一遍在线蒸馏,把丢掉的指令遵循能力"重新唤醒"——而且不损失新学的知识

模型阶段内部知识 (Internal QA)对话能力 (IF-eval)
Qwen3-8B 原版18%85%
+ 中训练 (100% 文档)43%45% ↓崩
+ 中训练 (70% 混合)36%79%
+ 中训练(70%) + 在线蒸馏41%83% ↑救回
💡 这才是最有想象力的地方
"用模型自己的旧版本当老师,找回被冲掉的能力"——这等于把模型本身当成了奖励模型。它指向一个很实用的范式:持续学习(continual learning)。可以"灌新知识 → 蒸馏找回行为"两个阶段反复交替,让模型不断更新知识、又不退化。对企业内部那种"文档天天变、又要保持好用"的助手,这是教科书级的解法。
06 · 为什么便宜

一个反直觉的结论:RL 的钱主要花在"搜索"上

为什么蒸馏能用 1/10 的步数追平 RL?文章给了个深刻解释:

RL ≈ 搜索(探索语义策略空间) 蒸馏 ≈ 学习(直接学会最终策略)

RL 的算力大部分不花在梯度更新上,而花在"搜索"——不断 rollout、试错、分配信用,靠运气"撞"到好策略。但一旦好策略被找到,把它教给别人就简单多了。在线策略蒸馏是抄近路:它不需要重走 RL 那条曲折的探索曲线,只学最终那个策略

🧪 还有两个意外发现
① 单 prompt 也能学:只用一道随机选的数学题反复训 20 步,竟也能逼近老师的 AIME 成绩——因为它学的是老师的"完整分布",不是死记一个答案(RL 多 epoch 训同一题会退化成背答案)。
② 连"自己的样本"做 SFT 都会变差:在 KL=0 的自采样数据上做 SFT,任何 >0 的学习率都会让性能下滑——因为有限 batch 的微小分布偏差会让训练逐渐"跑偏成离线"。而在线蒸馏因老师固定、始终在线,不会退化。这正是它适合持续学习的根因。
07 · 总评

这篇文章的分量在哪

💡 我的总评
在线策略蒸馏本身不是 TM 的原创(Qwen3 团队、Agarwal 等早有相关工作),TM 的贡献是把它讲透、跑通、开源,并用一系列干净的实验把"为什么有效"说清楚——尤其是"密集反馈带来数量级的效率提升"和"它是持续学习的天然工具"这两点。对你做训练框架(/projects/trainer)的人来说,这篇的可操作性极强:核心是"换掉 KL 正则里的模型",几乎零额外工程,却能把后训练成本砍一个数量级。落地门槛低 + 收益大,是少见的"读完就能用"的研究博客。
🔗 与另一篇的呼应
文中明确提到:要做到"真正的 on-policy",需要训练端和采样端逐比特一致——这正是 TM 另一篇《消除 LLM 推理的不确定性》要解决的问题。两篇是一套组合拳:那篇打地基(确定性),这篇盖楼(蒸馏)