ICML-2027 / OPSD_method_overview.md
Codex Restore
Restore previous repo contents and add deep-dive document
48c208c
|
Raw
History Blame Contribute Delete
16.8 kB

OPSD 论文讲解 — 用于 PPT 汇报

论文: Self-Distilled Reasoner: On-Policy Self-Distillation for Large Language Models arXiv: 2601.18734v3, 2026年3月 作者: Siyan Zhao (UCLA), Zhihui Xie (HKU), Mengchen Liu, Jing Huang, Guan Pang, Feiyu Chen (Meta), Aditya Grover (UCLA) 代码: https://github.com/siyan-zhao/OPSD


一、解决什么问题

LLM reasoning 的 post-training 有三条主流路线,各有硬伤:

方法 优点 痛点
SFT 信号密(每 token 都有 label) Off-policy → exposure bias(训练分布≠推理分布)
GRPO/RLVR On-policy → 无 exposure bias 信号稀(整条序列只有 0/1 reward,所有 token 一视同仁)
On-Policy Distillation On-policy + 信号密 需要额外的更大 teacher 模型

OPSD 的目标:能不能同时拿到 on-policy + dense signal + 不要外部 teacher?


二、核心思想(一句话)

同一个模型,给它不同的 context,就分裂出了 teacher 和 student。

  • Student:只看题目 x,生成答案
  • Teacher:看题目 x + 标准答案 y*(privileged information),评估 student 的答案

两个角色共享同一份权重 p_θ,区别仅在于 prompt 里有没有标准答案。


三、Figure 1 详解(主图,最重要)

这张图是整个方法的完整信号流,从左到右分 4 个区域:

┌─────────────┐   ┌──────────────────────────────────────┐   ┌─────────────────────┐
│  Dataset     │   │       On-Policy Self-Distillation     │   │  Learning Objective  │
│  S={(x,y*)}  │   │                                      │   │                      │
│              │   │  ┌─────────────┐ ┌─────────────────┐ │   │  Per-Token Divergence│
│  x: Problem  │──→│  │Student Prompt│ │ Teacher Prompt  │ │──→│                      │
│  y*: CoT+Ans │   │  │  x only     │ │  x AND y*       │ │   │  D(P_T(·|x,y*,ŷ<n) │
│              │   │  └──────┬──────┘ └───────┬─────────┘ │   │   || P_S(·|x,ŷ<n))  │
│  同一个 LLM   │   │         ↓                 ↓          │   │                      │
│     p_θ      │   │  P_S(·|x)           P_T(·|x,y*)     │   │  梯度仅流经 Student   │
│              │   │         │                 │          │   │  的 logits           │
│              │   │    ŷ ~ P_S(·|x)     评估 ŷ 上的     │   │                      │
│              │   │    ↑ on-policy       每个位置概率     │   │                      │
│              │   │    │ 采样生成              ↓          │   │                      │
│              │   │    └──── ŷ ──────→  P_T(·|x,y*,ŷ<n) │   │                      │
└─────────────┘   └──────────────────────────────────────┘   └─────────────────────┘

四个关键步骤(PPT 可用箭头动画逐步展示):

  1. 数据准备:从 reasoning dataset S={(x_i, y_i*)} 采样一对 (题目, 标准答案)
  2. Student 生成 rollout:Student prompt 只给题目 x,on-policy 采样生成 ŷ ~ p_S(·|x)
  3. Teacher 评估 rollout:Teacher prompt 同时给题目 x 和标准答案 y,在 Student 生成的*同一条轨迹 ŷ 上做一次 forward pass,得到每个位置的 teacher 概率分布
  4. 计算 per-token divergence:每个 token 位置 n,算 teacher 和 student 的概率分布距离 D(p_T || p_S),梯度只通过 student 的 logits 反传

四、Loss 公式拆解

4.1 总 Loss

L_OPSD(θ) = E_{(x,y*)~S} E_{ŷ~p_S(·|x)} Σ_{n=1}^{|ŷ|} D(p_T(·|x,y*,ŷ_{<n}) || p_S(·|x,ŷ_{<n}))
  • 外层期望:遍历数据集
  • 内层期望:student 自己 on-policy 采样(不是用标准答案!)
  • 求和:遍历生成的每个 token 位置
  • D:可以是 Forward KL、Reverse KL、JSD 等(实验表明 Forward KL 最好

4.2 信号怎么来的——直觉理解

在每个 token 位置 n,teacher 和 student 看到的前缀相同(都是 ŷ_{<n}),但 teacher 额外知道标准答案。所以:

  • 如果 student 下一步要走偏,teacher(因为看过答案)会给出不同的概率分布 → divergence 大 → 梯度大 → 重点学习
  • 如果 student 下一步选择正确,teacher 和 student 分布一致 → divergence 小 → 几乎不更新

这就是 dense signal 的来源:teacher 在每个 token 位置独立告诉 student "你这一步该怎么调"。

4.3 Per-Token Pointwise KL Clipping

论文发现一个严重问题:stylistic tokens(如换行、连接词)的 KL 远大于数学推理 token

Token 类型       │  典型 KL 值
─────────────────┼──────────
数学符号/数字     │  0.02 ~ 0.1
推理连接词        │  0.5 ~ 2.0
格式/风格 token   │  5.0 ~ 50.0    ← 主导了整个 loss!

修复:对每个 token-vocabulary entry 做 clipping

D_clip(p_T || p_S) = 1/|ŷ| Σ_n Σ_{v∈V} min(ℓ_{n,v}, τ)

clip 掉极端大的值,防止风格 token 劫持训练信号。


五、Figure 2:Teacher vs Student Prompt 对比

┌─────────────────────────────────────────────────────┐
│  Student Prompt (红色)                               │
│                                                     │
│  Problem: Find the derivative of f(x) = 3x² + 2x - 5│
│           at x = 2                                   │
│  Answer:                                             │
└─────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────┐
│  Teacher Prompt (绿色)                               │
│                                                     │
│  Problem: Find the derivative of f(x) = 3x² + 2x - 5│
│           at x = 2                                   │
│  Here is a reference solution:                       │
│  First find f'(x) = 6x + 2, then evaluate at x = 2:│
│      f'(2) = 6(2) + 2 = 14                          │
│  After understanding the reference solution,         │
│  please try to solve this problem using your own     │
│  approach below:                                     │
│  Answer:                                             │
└─────────────────────────────────────────────────────┘

关键细节

  • Teacher 不生成 token,只做 prefill(forward pass)
  • Teacher 的 prompt 里包含完整的标准答案
  • "rationalization" 是隐式的——teacher 看了答案后,自然会在每个位置给出更好的概率分布

六、与 SFT / GRPO 的本质区别

6.1 Table 1(论文核心对比表)

SFT/Off-Policy GRPO On-Policy Distillation OPSD (Ours)
On-Policy Data
Dense Learning Signal
Low Sampling Cost
No External Teacher

OPSD 是唯一四项全 ✓ 的方法。

6.2 信号密度对比

SFT:   每个 token 有信号,但 ─────── 训练用别人的轨迹,推理走自己的轨迹
       (分布错位 → 越训越偏)

GRPO:  自己的轨迹,但 ──────────── 2000 个 token 共享一个 0/1 reward
       (信用分配失败 → 浪费样本)
       rollout: [t1 t2 t3 ... t2000] → reward = 0
                 ↑  ↑  ↑       ↑
                 全部受到相同惩罚

OPSD:  自己的轨迹 + ──────────── 每个 token 独立获得 teacher 反馈
       (精准 + 高效)
       rollout: [t1 t2 t3 ... t2000]
                 ↑  ↑  ↑       ↑
                 各自不同的 KL divergence

6.3 采样效率对比(Figure 3 数据)

指标 OPSD GRPO
每题采样数 1 条 8 条
每条长度 1K tokens 16K tokens
收敛步数 100 步 数百步
计算量差距 ~100x 更省

GRPO 还有 reward diversity collapse 问题(Figure 3 右图):当所有 8 条 rollout 全对或全错时,advantage = 0,梯度为零,白算了。100 步之后超过一半的 batch 处于这种状态。


七、Algorithm 1 伪代码

Require: 推理数据集 S = {(x_i, y_i*)}; 语言模型 p_θ; divergence D (e.g., JSD_β)

1: Let p_S(·|x) 和 p_T(·|x,y*) 为同一模型在不同 conditioning 下的策略
2: while not converged do
3:    Sample minibatch B ⊂ S
4:    for all (x, y*) ∈ B do
5:        Sample on-policy response ŷ ~ p_S(·|x)
6:        Compute token-wise divergence along student rollout:
           ℓ(x,y*) ← 1/|ŷ| Σ_n D(p_T(·|ŷ_{<n},x,y*) || p_S(·|ŷ_{<n},x))
7:    Calculate loss L_OPSD(θ) ← 1/|B| Σ_{(x,y*)∈B} ℓ(x,y*) and update θ

八、实验结果

8.1 数学推理 Benchmark(Table 2)

Method AIME24 AIME25 HMMT25 Average
Qwen3-8B
Base (Instruct) 75.8 65.6 43.9 61.8
+ SFT 72.3 64.2 42.9 59.8
+ GRPO 76.4 68.9 46.7 64.0
+ OPSD 77.8 70.8 45.8 64.8
Qwen3-4B
Base (Instruct) 74.9 66.4 42.2 61.2
+ SFT 70.2 62.3 43.4 58.6
+ GRPO 75.6 68.1 44.4 62.7
+ OPSD 76.4 68.3 46.1 63.6
Qwen3-1.7B
Base (Instruct) 51.5 36.7 23.1 37.1
+ SFT 48.4 36.3 22.7 35.8
+ GRPO 51.1 38.3 23.7 37.7
+ OPSD 57.2 43.9 29.2 43.4

关键观察

  • SFT 在所有尺度上都退步了(因为 ground truth 的 reasoning 风格较简洁,SFT 模仿了风格但丢了推理能力)
  • OPSD 在小模型(1.7B)上提升最大:+6.3 average,远超 GRPO 的 +0.6
  • GRPO 在某些 benchmark 上后期会 collapse(entropy 崩塌)

8.2 关键消融

Divergence 目标(Table 3, Qwen3-1.7B, AIME25):

Method Base Step 50 Step 100
Forward KL(P_T ∥ P_S) 36.7 43.9 41.1
Reverse KL(P_S ∥ P_T) 36.7 37.5 35.0
JSD (β=0.5) 36.7 36.9 39.0

Forward KL 一骑绝尘。Reverse KL 和 JSD 几乎没有正向效果。

Per-Token KL Clipping(Figure 4):没有 clipping 的训练在 ~25 步后 collapse,有 clipping 稳定收敛。

Generation Length(Figure 5):1024 和 4096 对比,增加长度不一定更好。前期 token 对学习更关键(后期 token 因 student 前缀足够长,teacher 和 student 趋于一致)。

Full-Vocab vs Sampled-Token Distillation(Table 4):

Method Variant AIME25 HMMT25
Full-vocabulary logit distillation 84.1 60.0
Sampled-token distillation 82.1 57.3

Full-distribution 一致更优,但内存开销更大。


九、迁移到 Embodied 任务的问题分析

9.1 问题现象

"Embody 任务生成 JSON,非常结构化,被标准答案带偏了。OPSD 对表达风格的拟合特别严重,有点像 SFT。训练后模型不再回答结构化的轨迹预测,反而越来越说自然语言。"

9.2 根因分析

根因 1:KL divergence 被格式 token 主导

论文自己在 Table 5 和 Section 4.3.3 已经发现:style tokens 的 KL 远大于 content tokens。在数学推理中这只是需要 clip 的噪声,但在 JSON 输出场景中变成了致命问题:

数学推理场景:
  content token (∫, x², =)  → KL 小
  style token (换行, "so")   → KL 大但被 clip → 影响有限

JSON 输出场景:
  结构 token ({, }, "action":) → 这些是 CONTENT 还是 STYLE?
  自然语言 token ("I think...")  → teacher 偏好的表达方式

  → OPSD 分不清结构 token 和风格 token
  → 自然语言表达的 teacher 概率分布和标准答案的 JSON 格式分布差异巨大
  → 模型被拉向 teacher 的"自然语言 rationalization" 风格

根因 2:Teacher 的 Privileged Information 方向错误

OPSD 的 teacher prompt 是:"看了标准答案后,用自己的方式解题"。在数学中,标准答案和 student 的输出是同一种"语言"(都是数学推导)。但在 embodied 中:

标准答案 y*:  {"action": "pick", "target": [0.3, 0.5, 0.1], "gripper": "close"}
Student 输出:  {"action": "pick", "target": [0.31, 0.48, 0.12], ...}

Teacher 看了 y* 后的 "rationalization":
  → Teacher 会倾向于用自然语言解释 WHY 这个动作合理
  → 而不是输出相似的 JSON
  → 因为 teacher prompt 说 "please try to solve this problem using your own approach"
  → 模型 "自己的方式" 就是用自然语言说话

这就是看到的现象:模型越训越像在"说话"而不是"输出 JSON"。

根因 3:OPSD 的信息泄漏问题(RLSD 论文证明)

RLSD 论文(2604.03128)证明了 OPSD 有不可消除的信息泄漏:

L_OPSD = L* + I(Y_t; R | X, Y_{<t})

这个互信息项 I(Y_t; R | X, Y_{<t}) 驱动模型学习 "从 prompt 猜标准答案" 的 shortcut。在数学中这只是偶尔引用 "reference solution",但在 JSON 场景中:

  • 标准答案 R 包含精确的坐标数值
  • 模型学会了 "从 prompt 推断应该输出什么格式"
  • 当格式信号和内容信号冲突时,格式信号赢了 → 结构化输出退化为自然语言

9.3 为什么数学不受影响而 Embodied 受影响

维度 数学推理 Embodied JSON
输出格式 自由文本(数学推导) 严格 JSON schema
标准答案 vs Student 输出 同种语言(都是推导过程) 不同语言(JSON vs 自然语言 rationalization)
style token 的影响 边缘(clip 即可) 致命(格式本身就是 content)
Teacher rationalization 方向 和 student 输出方向一致 和 student 输出方向正交
信息泄漏后果 偶尔引用 "reference" 整体输出格式崩塌

十、可能的解决方向

基于 OPD 知识体系中的最新进展:

  1. RLSD 替代 OPSD(2604.03128):用环境 reward 控制方向,teacher log-ratio 只控制幅度。这样即使 teacher rationalization 风格不同,也不会拉偏输出格式。

  2. 格式 token masking:在 KL 计算中,屏蔽 JSON 结构 token({, }, "action": 等),只在 value 位置(坐标数值等)计算 divergence。

  3. 改用 ROPD(Rubric-based, 2605.07396):完全不用 logit 蒸馏,而是用 rubric 评分("轨迹是否到达目标?" "坐标误差是否小于阈值?")作为 reward。

  4. SRPO 范式(2511.15605):用成功轨迹的 latent world model 表示作为 progress reward,完全绕过 teacher logit 的格式污染问题。


附:关键论文索引

简称 全称 arXiv 核心贡献
OPSD Self-Distilled Reasoner 2601.18734 同一模型自蒸馏,teacher 看 gt 答案。100 步超越 GRPO。
RLSD Self-Distilled RLVR 2604.03128 证明 OPSD 泄漏理论根源,提出方向×幅度分离。
ROPD Rubric-based OPD 2605.07396 Rubric 替代 logits,黑盒兼容,10x 样本效率。
SRPO Self-Referential Policy Optimization 2511.15605 VLA 场景 self-referential RL,world model progress reward。
Revisiting OPD Failure Modes and Fixes 2603.25562 三个 failure modes + Teacher top-K LSM 修复。
Rethinking OPD Phenomenology and Recipe 2604.13016 两个成功必要条件 + progressive alignment 机制。