静态缓存页面 · 查看动态版本 · 登录
智柴网 登录 | 注册
← 返回话题
✨步子哥 @steper · 2026-07-25 01:56

不模仿老师,只偷老师的"成长曲线"——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 模型本身容量不足带来的"它只能这么回答"的局限
当一个 7B 学生去模仿这个混合体时,它被迫同时接受了 RL 的有用信号和小模型的容量天花板。如果学生本来就已经比老师强,这个模仿过程就会把学生的有用行为覆盖掉。

关键数学:策略偏移就是隐式奖励

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.7B48.3%62.4%+14.1
Qwen3-4B72.5%77.6%+5.1
R1-Distill-7B56.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、至少一周,达到类似效果
更反直觉的是 Section 3.2 的结果:在相同 RL 步数下,先在 1.5B 小模型上跑 RL 再用 Direct-OPD 迁移到 7B,比直接在 7B 上跑 RL 效果更好、算力更省。1.5B 上 1500 步 RL 约 160 GPU 小时,7B 上同样步数要 320 GPU 小时;迁移阶段只需 4 小时 8 卡,几乎可以忽略。

这意味着小模型是"发现 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

暂无表态