让模型"穿越回去"教自己:扩散语言模型的第一个自蒸馏框架 d-OPSD

用 10% 的训练步数追平甚至超过 RLVR,靠的是让 dLLM 把自己生成的"未来答案"当老师

如果你最近在折腾扩散语言模型(dLLM)的后训练,大概率被一个问题卡住过:这玩意儿到底该怎么 post-train?RLVR(强化学习 + 可验证奖励)那套在自回归模型上跑得很顺,diffu-GRPO 也证明了能 work,但训练步数动辄上千上万,sample efficiency 低得让人肉疼。SFT 又有暴露偏差(exposure bias)的老毛病。

自回归那边其实早就有更优雅的解法——on-policy self-distillation(OPSD,在线策略自蒸馏)。让一个模型同时当老师和学生,老师拿到一点"特权信息",学生从自己采样的轨迹里学,既有稠密监督,又是 on-policy。问题是,这套方法天生是为左到右生成设计的,搬到 dLLM 上水土不服

这篇 6 月刚挂出来的论文(arXiv: 2606.18195)就在啃这块硬骨头。它提出的 d-OPSD,是第一个专门为 dLLM 设计的在线策略自蒸馏框架。我读完的第一反应是:这个"让模型穿越回去拿着标准答案教自己"的设定,听起来有点玄,但他们把它落到 dLLM 的双向生成特性上之后,逻辑居然非常自洽。


一、先说清楚:OPSD 是什么,为什么 dLLM 用不了现成的

在线策略自蒸馏的核心吸引力

先把背景顺一下。知识蒸馏(KD)大家都熟,大老师教小学生,学生学老师的软标签分布。但传统 KD 是 off-policy 的——学生学的是老师在老师自己的轨迹上的分布,跟学生实际生成时遇到的状态对不上,这就是暴露偏差。

OPD(on-policy distillation)的改进在于:让学生先自己采样轨迹,老师再在学生的轨迹上提供稠密的 token 级监督。这样既保留了稠密信号(比 RLVR 的稀疏 outcome reward 强太多),又避免了暴露偏差(比 SFT 强)。

但 OPD 要求有个更强的老师,现实里往往没有。于是就有了 OPSD:老师和学生是同一个模型,区别只在于老师拿到了"特权信息"这一点。比如把参考答案 \(y^*\) 直接拼到 prompt 后面,构造一个"开了天眼"的老师 prompt \(x^* = x + y^*\),老师的分布就是:

\[p_T = p_\theta(\cdot|y^{<i}, x, y^*) = p_\theta(\cdot|y^{<i}, x^*)\]

然后让学生去对齐老师,最小化 token 级 KL:

\[\mathcal{L}_{\text{OPSD}}(\theta) = \mathbb{E}_x\left[\sum_{i=1}^{L}\mathcal{D}_{\text{KL}}\left(p_\theta(\cdot|y^{<i}, x) \| p_\theta(\cdot|y^{<i}, x^*)\right)\right]\]

这套在自回归模型上跑得不错,能用更高的 sample efficiency 追平 RLVR。

但 dLLM 是另一个物种

问题来了。dLLM 不是左到右生成的,它把生成建模成一个迭代去噪过程:从全是 mask 的序列开始,每一步预测所有被 mask 位置的分布,只保留 top-k 最自信的几个揭开,剩下的继续 mask,迭代 T 步还原出完整答案。

这就带来两个根本性的不兼容:

第一,特权信息怎么注入? 自回归只能 prefix conditioning(前缀给条件),所以参考答案只能往前面拼。但 dLLM 有双向能力,能建模 \(p(\text{prefix}|\text{suffix})\)——这意味着特权信息可以作为后缀注入。这个区别看着小,其实打开了一扇新门。

第二,token 级监督还成立吗? 自回归靠 next-token prediction,token 级 KL 天然成立。但 dLLM 是 next-step prediction,每步同时预测所有 mask 位置、又只保留一部分,token 级监督的因子分解根本不存在。

所以作者抛出两个问题,也是全文的主线:

有没有专门为 dLLM 量身定制的 OPSD? 有。老师构造方式和监督粒度都能为 dLLM 重新设计。

OPSD 在 dLLM 上能打过 RLVR 吗? 能,而且在性能和 sample efficiency 上都更强。

图1:d-OPSD 与 RLVR 基线(diffu-GRPO)在推理性能和 sample efficiency 上的对比

图1:d-OPSD(我们的方法)与 RLVR 基线 diffu-GRPO 的对比。左侧是推理性能,右侧是收敛所需的优化步数——d-OPSD 用极少的步数就追平甚至超过了 RLVR。这张图基本就是全文的"封面卖点"。


二、核心方法:让模型学"自己的未来经验"

d-OPSD 的两个核心贡献,正好对应上面两个不兼容。先看整体框架。

图2:d-OPSD 框架图,左侧是 AR 风格的老师构造,右侧是 d-OPSD 的做法

图2:左边 AR-style 是把参考答案当前缀拼到 prompt 后面(红字部分),右边 d-OPSD 是把学生自己生成的"未来答案"中的部分 token 直接揭开作为后缀特权信息。蓝色是已解码 token,粉色是自生成的未来 token,灰色是 mask,黄色虚线框是 top-k 最自信的 token。

贡献一:老师构造——学"自己的未来",而不是别人的标准答案

这是我觉得最有意思的设计。作者管它叫 "learning from self-future experience",并打了个特别接地气的比方:就像人总幻想"要是能回到十年前,知道接下来会发生什么就好了"这种心情

具体怎么做?给定 prompt \(x\),学生先用当前模型完整采样一条去噪轨迹:

\[Y = \{y_T, y_{T-1}, \cdots, y_0\} \sim p_\theta(\cdot|x)\]

其中 \(y_T\) 是全 mask 序列,\(y_0\) 是最终答案。然后在每个去噪步 \(t\),学生的输入就是当前的带噪序列 \(y_{\text{student},t} = y_t\)

老师的输入则不一样——从最终答案 \(y_0\) 里随机揭开一部分 token,塞回当前步的序列里

\[y_{\text{teacher},t}^i = \begin{cases} y_0^i, & \text{if } i \in \mathcal{S}_t \\ y_t^i, & \text{otherwise} \end{cases}\]

这里 \(\mathcal{S}_t\) 是按一个固定保留比例 \(\rho_{\text{teacher}}\) 随机选出来的揭示位置集合。说人话:老师偷看了学生自己最终会写出的答案里的一小部分,然后基于这点"剧透"去指导当前这一步的学生。

注意两个关键点,这也是它跟自回归方案的本质区别:

  1. 所有数据都是学生自己生成的——揭开的"未来答案"来自学生 on-policy 采样,不是静态数据集的 ground truth。这一点把它跟 d3LLM、Cd4LM 这些用真实答案构造老师的 off-policy 方法彻底区分开了。
  2. 特权信息是后缀条件——利用了 dLLM 的 \(p(\text{prefix}|\text{suffix})\) 能力,自回归根本做不到。

贡献二:从 token 级监督换成 step 级监督

第二个改动同样是对症下药。既然 dLLM 是 next-step prediction,那监督粒度也该是 step 级的。

在每个去噪步 \(t\),老师和学生各自算出全序列分布:

\[\mathcal{P}_{\text{student},t}^i = p_\theta(y^i|y_{\text{student},t}, x), \quad \mathcal{P}_{\text{teacher},t}^i = p_\theta(y^i|y_{\text{teacher},t}, x)\]

不是所有位置都参与这一步的状态转移。dLLM 每步只揭开 top-k 最自信的 mask 位置,所以只在这个 top-k 子集 \(\mathcal{K}_t\) 上算 KL:

\[\mathcal{L}_t = \frac{1}{|\mathcal{K}_t|}\sum_{i \in \mathcal{K}_t}\mathcal{D}_{\text{KL}}\left(\mathcal{P}_{\text{student},t}^i \| \mathcal{P}_{\text{teacher},t}^i\right)\]

把整条轨迹的 step 级损失平均起来,就是最终目标:

\[\mathcal{L}_{\text{OPSD}}(\theta) = \mathbb{E}_x\left[\frac{1}{T}\sum_{t=1}^{T}\frac{1}{|\mathcal{K}_t|}\sum_{i \in \mathcal{K}_t}\mathcal{D}_{\text{KL}}\left(\mathcal{P}_{\text{student},t}^i \| \mathcal{P}_{\text{teacher},t}^i\right)\right]\]

有个细节值得一提:\(\mathcal{K}_t\) 这个 top-k 子集可以从学生分布选,也可以从老师分布选。消融实验(后面会讲)显示从老师分布选效果更好,因为这会强迫学生去对齐老师最自信的那些位置,学习信号更强。

一个工程上的小心思:保证轨迹质量

作者还发现学生轨迹 \(Y\) 的质量会影响最终效果。所以他们用了类似 pass@k 的采样策略:对每个 prompt 反复采样,直到出现正确答案,或者采样次数达到阈值 k(默认 k=8)

值得注意的是,这个采样策略跟 RLVR 的 group-k rollout 计算开销是一样的,所以不算"作弊"。而且后面消融会看到,即便 k=1,d-OPSD 也已经超过了用 group k=8 rollout 的 RLVR 基线——这个对比挺能说明问题。


三、实验:先验证"老师够不够格",再看主结果

Toy Verification:自构造的老师真的够强吗?

在跑全套实验前,作者先回答了一个前置问题:这个靠揭开部分答案构造的自老师,本身够不够强,能不能引导蒸馏?

他们从每个任务训练集随机抽 500 题,用基座模型生成答案(取 Pass@8),按不同保留比例 \(\rho_{\text{teacher}}\) 构造老师输入,再让模型基于这些老师输入重新生成。结果如下:

方法 GSM8K Math500 Countdown Sudoku
Pass@1(学生) 81.3 36.8 18.2 7.2
Pass@8 95.5 53.6 59.2 27.7
自老师 \(\rho=0.10\) 85.6 40.8 29.6 11.0
自老师 \(\rho=0.25\) 93.4 46.2 45.4 13.5
自老师 \(\rho=0.50\) 94.8 47.4 48.2 15.4

结论很清楚:哪怕只揭开 10% 的答案 token,自老师就已经明显强于学生本身;揭到 50% 时,性能几乎追平 Pass@8 的上限。这说明揭开一点点"未来"就能把模型的能力拉上一个台阶——自老师确实够格。

主结果:四个推理任务上的全面对比

基座模型用的是 LLaDA-8B-Instruct(一个还没做过 post-training 的 SOTA dLLM)。任务覆盖数学推理(GSM8K、MATH500)和规划(Countdown 3 数、4×4 Sudoku)。

模型 / 序列长度 GSM8K 256 GSM8K 512 MATH500 256 MATH500 512 Countdown 128 Countdown 256 Sudoku 128 Sudoku 256
LLaDA-8B-Instruct(基座) 76.0 79.5 31.8 36.2 20.3 19.1 11.5 6.9
SFT Variant 78.8 81.1 32.6 34.8 20.3 14.5 16.5 8.5
d3LLM(off-policy 自蒸馏) 72.7 76.4 30.6 37.0 36.7 12.5 9.1 6.6
diffu-GRPO(RLVR) 79.8 81.9 37.2 39.2 33.2 31.3 18.4 12.9
VRPO(RLVR) 80.1 81.5 35.6 34.8 21.9 21.1 12.8 9.6
d-OPSD(本文) 81.0 82.2 37.2 37.8 37.9 32.3 23.9 20.6

d-OPSD 在 8 个设置里拿下了 6 个最优,尤其是 Sudoku 这种规划任务上提升明显(256 长度下从基座的 6.9 涨到 20.6,三倍多)。唯一被 diffu-GRPO 反超的是 MATH500 512 长度那一栏,但差距很小。

Sample Efficiency:这才是真正的杀手锏

如果说性能只是"追平",那 sample efficiency 就是"碾压"了:

方法 / 收敛步数 GSM8K Math500 Countdown Sudoku
diffu-GRPO 7700 6600 5000 3800
d-OPSD 425 100 175 425

差距大到有点夸张——Math500 上 diffu-GRPO 要 6600 步,d-OPSD 只要 100 步。整体看大概只需要 RLVR 约 10% 的优化步数就收敛了。作者把这归因于老师分布提供的稠密监督,这跟自回归那边 OPSD 的结论是一致的。

说实话,看到 100 步这个数我愣了一下,又特意回去确认了下确实是 gradient updates(梯度更新步数)而不是别的口径。考虑到每步的计算开销跟 RLVR 一样(都是 group-k rollout),这个效率优势是实打实的。


四、为什么 d-OPSD 的老师构造更好?一个很巧的分析

这部分我觉得是全文最有洞察力的地方。作者没有满足于"我的方法更好",而是去刨根问底:为什么把"自己的未来答案"当后缀,比把参考答案当前缀更有效?

他们先做了一个对照实验——AR-style OPSD:严格按自回归那套,把参考答案当前缀拼到 prompt 前面提供特权信息,但保持 step 级监督不变。

方法 GSM8K Math500
LLaDA-8B-Instruct 76.0 31.8
AR-style OPSD 78.4 33.4
d-OPSD(本文) 81.0 37.2

d-OPSD 明显更强。但光有结果还不够,作者定义了一个叫 Overlap Top-K 的指标来解释机制:在每个去噪步,统计学生和老师在 top-k 子集位置上,词表 Top-K 分布的重叠比例(实践中 K=20)。

\[\mathcal{M}_{\text{overlap},K,t} = \frac{1}{|\mathcal{K}_t|}\sum_{i \in \mathcal{K}_t}\left[\frac{|\mathcal{P}_{\text{student},t}^{i,\text{Top-}K} \cap \mathcal{P}_{\text{teacher},t}^{i,\text{Top-}K}|}{K}\right]\]

直觉上,这个重叠度衡量的是老师到底能给学生带来多少新知识。如果老师和学生的分布几乎完全重叠,那老师其实没教什么新东西。

图3:d-OPSD 与 AR-style 方案的 Overlap Top-K 对比

图3:红线是 AR-style,重叠度高达 0.85~0.9 接近 1;绿线是 d-OPSD,稳定在 0.7 左右。重叠度越高,说明老师带来的新知识越少。

结果一目了然:AR-style 的重叠度几乎贴着 1,意味着把参考答案拼前缀,老师跟学生想的差不多,根本没带来新的思维模式。而 d-OPSD 的重叠度落在 0.7 这个"恰到好处"的区间——既不是完全不同(那样学生学不动),也不是几乎相同(那样没东西可学),而是有足够多的新知识可以从老师迁移给学生。

这个分析我很喜欢。它没有停留在"我的数更高",而是给出了一个可量化、可解释的视角去理解为什么 dLLM 该用后缀而非前缀。


五、消融实验:每个设计选择都有交代

作者的消融做得相当扎实,几乎把每个超参和设计选择都扫了一遍。挑几个关键的说。

散度目标:Reverse KL 完胜 Forward KL

方法 GSM8K
基座 76.0
Forward KL 77.9
Reverse KL(默认) 81.0

作者归因于 reverse KL 的 mode-seeking(寻峰)行为更鲁棒,而 forward KL 的 mode-covering(覆盖)行为容易被带偏。

保留比例 \(\rho_{\text{teacher}}\):不是越高越好

配置 GSM8K
基座 76.0
diffu-GRPO 79.8
\(\rho=0.10\) 80.5
\(\rho=0.25\)(默认) 81.0
\(\rho=0.50\) 79.8

这里有个反直觉的点:\(\rho=0.10\) 居然比 \(\rho=0.50\) 效果更好,尽管前者是个更弱的老师(回看 toy 实验,揭开越多老师越强)。作者的解读是:蒸馏效果不只由老师强弱决定。这其实呼应了 Overlap Top-K 的发现——老师太强(揭太多)反而可能让重叠度过高,新知识变少。

\(\mathcal{K}_t\) 选择:从老师分布选更好

方法 GSM8K
基座 76.0
From Student 78.6
From Teacher(默认) 81.0

采样策略 Pass@k:k=1 也够打

方法 GSM8K Countdown
基座 76.0 20.3
diffu-GRPO 79.8 33.2
k=1 80.4 34.0
k=8(默认) 81.0 37.9

前面提过,即便 k=1,也超过了用 group k=8 的 RLVR,而且 sample efficiency 还更高。

Clipping 很关键:不加 pointwise clipping,训练在 150 步左右就开始崩,到 500 步掉到 69.37。加了之后稳定在 81.0。clipping 阈值取 0.05。

失败模式:作者很坦诚

值得点赞的是,作者专门留了一节讲失败模式。d-OPSD 跟 RLVR 一样,在某些设置下会在达到性能峰值后发生策略崩溃(policy collapse),训练有时会灾难性退化。他们猜测这可能源于 reverse KL 的 mode-seeking 行为变得过于狭窄,阻碍了进一步学习。

这种透明度在论文里不算常见。承认方法有 collapse 风险,比硬吹"全面 SOTA 无懈可击"要可信得多。


六、我的判断:巧思扎实,但别忽略它的边界

聊完技术,说说我的看法。

这篇论文最值钱的地方,是把 dLLM 的双向生成特性真正用对了地方。 "self-future experience"这个 idea 听着像营销话术,但落到 \(p(\text{prefix}|\text{suffix})\) 上之后,逻辑是通的——自回归只能前缀注入,dLLM 能后缀注入,这是结构性的差异,不是包装。而 Overlap Top-K 那个分析更是点睛之笔,把"为什么后缀比前缀好"从玄学变成了可量化的"新知识传递量"。

Sample efficiency 的提升是真的能打。 10% 的步数追平 RLVR,对工业界训 dLLM 的人来说是实打实的成本节约。而且 k=1 就能超 RLVR,意味着哪怕不做多次采样,也有收益。

但有几点我得泼点冷水:

第一,实验规模偏小。只在 LLaDA-8B 一个基座、四个任务上验证。dLLM 本身生态还小,这可以理解,但能不能泛化到更大模型、更复杂任务(比如代码、多轮推理)还是问号。作者自己也没声称通用。

第二,policy collapse 这个坑没解决。作者很诚实地承认了,但既然 RLVR 也有这毛病,d-OPSD 在"稳定性"上并没有比 RLVR 有本质优势,只是 efficiency 更高。真要上生产,崩溃风险得有兜底机制。

第三,对"老师够强"的依赖。整套方法的前提是基座模型自己 Pass@8 能把答案做对(toy 实验里 GSM8K Pass@8 是 95.5,但 Sudoku 只有 27.7)。在基座本身就很弱的任务上,自老师可能压根构造不出有用的"未来"——Sudoku 上虽然涨了,但绝对值(20.6)还是很低,说明这个天花板是被基座能力卡住的。

一句话定位:这是一篇 idea 漂亮、分析扎实、实验诚实的工作,把自回归的 OPSD 范式干净利落地迁移到了 dLLM,并且给出了"为什么该这么迁移"的可解释证据。它不是颠覆性的底层突破,但在 dLLM 后训练这个相对空白的领域里,是一块踏实的奠基石。

如果你正在做 dLLM 的 post-training,被 RLVR 的训练成本劝退,这套思路绝对值得一试——尤其是 k=1 配置,几乎是"免费午餐"级别的收益。代码作者已经开源(GitHub: xingzhejun/d-OPSD),可以直接上手验证。


论文信息

  • 标题:Learning from the Self-future: On-policy Self-distillation for dLLMs
  • 作者:Yifu Luo, Zeyu Chen, Haoyu Wang, Xinhao Hu, Yuxuan Zhang, Zhizhou Sha, Shiwei Liu
  • 机构:清华大学、慕尼黑工业大学、南洋理工大学、英属哥伦比亚大学、德州大学奥斯汀分校、ELLIS Institute Tübingen、马普智能系统研究所、图宾根 AI 中心
  • arXiv:2606.18195(2026 年 6 月 16 日)
  • 代码:https://github.com/xingzhejun/d-OPSD

觉得有启发的话,欢迎点赞、在看、转发。跟进最新AI前沿,关注我