不模仿老师,只偷老师的"成长曲线"——Direct-OPD 如何用小模型的 RL 偏移撬动大模型
一个反直觉的困境
假设你是一个 7B 参数的语言模型,已经在 AIME 2024 数学竞赛上拿到了 56.7% 的分数。现在你的工程师说:"嘿,我跑了个 1.5B 的小模型 RL,它从 28.5% 涨到了 51.3%,我把它的策略蒸馏给你吧。"
你的第一反应应该是拒绝。
因为如果你老老实实地去模仿这个 51.3% 的小模型策略,你自己的分数会被拖到 50% 左右——论文里 Figure 1(a) 就画了这条曲线。这就像一个考上 567 分的高中生被强制按照一个考了 513 分的小学生答题方式重做一遍卷子,结果只能更糟。
但论文同时告诉你:如果你不模仿小模型的"最终策略",而是去模仿它"从 RL 前到 RL 后的那段变化方向",你的分数能从 56.7% 涨到 63.1%。
这就是 Direct On-Policy Distillation(Direct-OPD)的核心洞察:不要偷老师的答案,要偷老师的成长曲线。
为什么直接蒸馏会失败
要理解这个反直觉,得先看清楚标准 OPD(On-Policy Distillation)到底在做什么。
标准 OPD 的逻辑很朴素:学生自己采样到哪些状态,就在这些状态上让学生去匹配老师的下一个 token 分布。数学上,这等价于最小化学生和老师在每个学生访问过的 prefix 上的 KL 散度。这个 KL 散度会自然分解成一项:log q_t(v) - log p_t(v),也就是老师和学生之间的 log-ratio。
问题出在"老师的绝对分布"这件事上。一个 1.5B 模型经过 RL 训练后,它的策略分布里混了两样东西:
- RL 真正学到的"怎么思考更有效"的方向变化
- 1.5B 模型本身容量不足带来的"它只能这么回答"的局限
关键数学:策略偏移就是隐式奖励
Direct-OPD 的核心操作是定义"教师策略偏移":
$$\Delta_T(y|x) = \log \pi_T(y|x) - \log \pi_{T_{ref}}(y|x)$$
其中 $\pi_T$ 是 RL 后的教师,$\pi_{T_{ref}}$ 是 RL 前的同一教师。这个减法把"小模型本来就会的东西"减掉了,只留下"RL 让小模型改变的方向"。
这个减法不是随便做的。它背后有一个非常漂亮的数学事实:在 KL 正则化的 RL 目标下,最优策略满足
$$\log \frac{\pi^*(y|x)}{\pi_{ref}(y|x)} = \frac{1}{\beta} r(x,y) - \log Z(x)$$
也就是说,策略和参考的 log-ratio,在去掉一个 per-prompt 常数后,正比于奖励。
这个恒等式是 DPO(Direct Preference Optimization)的基础——DPO 从偏好数据反推策略。而 Direct-OPD 把它用在了反方向:你已经有了 RL 后的策略和 RL 前的参考,你可以从这对 checkpoint 里把奖励信号读出来。
一对小模型 checkpoint,就是一个隐式奖励模型。不需要训练显式 reward model,不需要在目标模型上跑稀疏奖励 RL,只需要拿这对 checkpoint 算 log-ratio。
从序列到 token:密集奖励
策略偏移 $\Delta_T$ 是序列级的,但因为自回归模型的对数概率可以按 token 分解,这个偏移也精确分解为每个 token 的偏移:
$$r_t(v) = \log \pi_T(v|s_t) - \log \pi_{T_{ref}}(v|s_t)$$
$r_t(v) > 0$ 的地方,RL 让教师更倾向于输出 token $v$;$r_t(v) < 0$ 的地方,RL 压制了 $v$。这是一个密集的、每个 token 都有的奖励信号,不是 RLVR 那种只在最后给一个对错的稀疏奖励。
学生在这个密集奖励上做策略梯度,等价于学生在用小模型 RL 发现的奖励函数做 KL 正则化 RL——但学生的参考策略是它自己($\pi_S$),不是小模型。所以学生是在"自己的基础上,朝着小模型 RL 发现的方向倾斜"。
自适应 KL:一个被忽视的工程细节
论文里有个容易被忽略但非常关键的工程细节:自适应 KL 系数 $\alpha$。
为什么需要自适应?因为 $\Delta_T$ 的尺度是由小模型 RL 的 $\beta$ 决定的,这个 $\beta$ 是小模型训练时固定的、从 checkpoint 对里无法恢复的。学生的 KL 系数 $\alpha$ 要和小模型的 $\beta$ 匹配,但 $\beta$ 不可观测。
Direct-OPD 的解决方案非常轻量:每步根据 batch 级别的平均奖励符号微调 $\alpha$。如果当前 batch 的平均偏移为正(教师 RL 在学生当前访问的状态上整体是鼓励方向),就稍微调大 $\alpha$ 防止过度放大;如果为负(教师 RL 在压制),就调小 $\alpha$ 让密集梯度有空间把概率从被压制的 token 上移开。
这个控制器只有一行公式,但它解决了一个本质问题:跨尺度迁移时,奖励的单位和正则化的单位不在同一个量纲上。
数据说话:4 小时 8 卡干了什么
论文的核心实验数据:
| 模型 | AIME 2024 基线 | + Direct-OPD | 提升 |
|---|---|---|---|
| Qwen3-1.7B | 48.3% | 62.4% | +14.1 |
| Qwen3-4B | 72.5% | 77.6% | +5.1 |
| R1-Distill-7B | 56.7% | 63.1% | +6.4 |
- Qwen3-4B 基线 72.5% 已经远超教师 JustRL-1.5B 的 51.3%,但 Direct-OPD 仍然能继续提升它
- 整个训练只用了 8 张 A100、4 小时
- 对比:Polaris 直接在 Qwen3-1.7B 上跑 RL,需要 32 张 A100、至少一周,达到类似效果
这意味着小模型是"发现 RL 方向的更便宜的环境"。大模型不需要自己重新发现这个方向,只需要把方向拿过来用。
不需要模仿:跨模式迁移
Section 4.1 的分析是这篇论文最精彩的部分之一。标准 OPD 文献认为,成功的蒸馏需要学生和教师在 top-k token 上有越来越高的重叠——学生在逐步进入教师的高概率 token 空间。
Direct-OPD 打破了这个条件。论文用了两个教师对:R1-Distill-1.5B → JustRL-1.5B(同模式)和 Nemotron-1.5B → QuestA-Nemotron-1.5B(跨模式)。跨模式迁移中,学生和教师的 top-k 重叠度始终很低,也不随训练上升——但迁移仍然有效。
这说明 Direct-OPD 不是在让学生"变成"教师,而是在让学生"在自己的分布内,朝着教师 RL 发现的方向倾斜"。学生保留自己的思考模式,只接受方向性调整。
短视野训练,长视野泛化
Section 4.2 的另一个反直觉发现:Direct-OPD 训练只用 2k token 的短响应,但效果能泛化到 16k 的长 rollout。
论文用一个"累积偏移差距" $G_T$ 来度量:在固定 64 条长 rollout 上,学生的 top-16 token 在教师偏移方向上的累积移动。结果是:只训练了 2k 长度的学生,在 16k 位置上的 $G_T$ 仍然显著高于未训练的基线。
更反直觉的是:6k 训练长度在 $G_T$ 上移动得更远,但验证分数反而更差(45.6% vs 2k 的 48.8%)。原因可能是:长 prefix 上小模型教师对越来越 off-distribution,log-ratio 变大但不可靠;2k 长度恰好避开了这些噪声区域,又捕获了可靠的早期方向信号。
这和人类学习有类比:短时间高强度的正确方向训练,比长时间在噪声区域里乱撞更有效。
顺序组合:RL 方向的加法
Section 3.3 展示了一个有趣的能力:两个独立学到的策略偏移可以顺序施加到同一个学生上。
先用 JustRL 的偏移训练 Qwen3-1.7B,再用 QuestA 的偏移继续训练。AIME 2024 从 48.3% → 62.4%(JustRL)→ 63.8%(+QuestA)。两次偏移各自贡献了 +14.1 和 +1.4。
这说明不同 RL 运行学到的是不同方向的能力改进,Direct-OPD 可以把它们像积木一样叠加。这为未来的"RL 方向库"提供了想象空间:跑多个小模型 RL,各取所长,顺序迁移。
开源代码
论文配套代码已开源:github.com/BytedTsinghua-SIA/Direct-OPD,基于 verl 框架。模型权重和训练产物在 HuggingFace 上发布。代码包含完整的训练脚本、评估流程和自适应 KL 控制器实现。
我的思考:这改变了什么
Direct-OPD 的意义不只是"省了几张 GPU 卡"。它改变的是 RLVR 的经济学模型。
当前的 RLVR 是"每个新模型都要从头跑一遍 RL"——模型越大,rollout 越贵,训练越慢。这导致 RLVR 成了大厂的特权,小团队只能用 SFT。
Direct-OPD 提出了一种分工:小模型负责"发现 RL 方向"(便宜、快、稳定),大模型负责"在自己基础上吸收这个方向"(短时、低算力、高保真)。这把 RLVR 从"每个模型都要重新发现"变成了"一次发现,多次复用"。
更深层地,这篇论文把"RL 训练后的 checkpoint 对"从"一个训练产物"提升为"一个隐式奖励模型的存储介质"。一对 checkpoint 就是一个 reward model,不需要额外训练,不需要标注数据,只需要一次 RL 运行。这个视角的转换,可能比 Direct-OPD 本身更有长期价值。
当然,论文也有局限:目前只在数学推理上验证,跨领域(代码、多语言、工具使用)的迁移效果未知;小模型教师对的选择仍然需要经验;自适应 KL 控制器只是初步设计,更精细的控制策略可能还有空间。
但作为一个"把 RL 的产物变成可迁移资产"的框架,Direct-OPD 已经足够清晰、足够实用、足够反直觉。
---
论文: arxiv.org/abs/2607.05394 代码: github.com/BytedTsinghua-SIA/Direct-OPD 模型: huggingface.co/BytedTsinghua-SIA