DASH:自蒸馏如何利用分歧序列调整监督权重?从反向递推到真实梯度
教师与学生在某个 token 上的分歧很小,就说明这里不值得关注吗?未必:相同大小的局部分歧,可能出现在完全不同的推理路径中。DASH 因而不再给每个 token 的蒸馏损失相同系数,而是根据整条 rollout 的分歧变化,构造一组自适应权重。
但理解这篇论文,最重要的是区分反向递推的数值与实际更新的梯度。DASH 并没有把未来错误作为策略梯度奖励分配给早期动作;它对已有的局部蒸馏梯度重新加权。这个区别决定了怎样解释方法,也决定了怎样正确复现。
本文精读 ZhiYan Hou、Xinyu Tang 等人的 DASH: Divergence-Adaptive Supervision Horizons for On-Policy Self-Distillation of Reasoning Models,依据 arXiv v2,2026-08-07 的正文、附录、原始表格,并核对官方实现。数值示例为教学构造,独立批评会明确标注。
1. 一句话结论与论文全景
DASH 用“当前位置的局部蒸馏信号减去本条序列均值”控制传播门,再通过多步聚合,将均匀的 token 权重改成依赖整条分歧序列的权重。
它沿用 OPSD 已经计算的教师、学生分布,不增加模型前向。论文在 Qwen3-1.7B、4B、8B 上,相对匹配重跑的 vanilla OPSD,三项数学基准宏平均分别提高 3.20、1.40、1.60 个百分点。(表 1)
这篇的 horizon 是损失聚合的“有效监督跨度”,不是让教师生成更长答案,也不是证明模型能处理更长的 Agent 交互。本文实验是数学推理,主训练 rollout 最长 1,024 tokens,因此按博客主题归入 OPD。
2. Motivation:密集监督为什么仍有分配问题?
2.1 OPSD 已经解决了什么?
强化学习中的最终答案奖励通常很稀疏。在线策略自蒸馏(OPSD)改用一个拥有额外信息的教师:学生只看题目,教师还看参考解答,在学生已经生成的每个前缀上提供下一 token 的概率分布。
这样,每个位置都有可微分的监督,不必等到最终答案出来才得到一个 0 或 1。但 vanilla OPSD 通常把这些位置的损失直接平均,即每个位置的显式系数相同。(§3)
2.2 同一个局部分歧,不代表同一种轨迹状态
图 1 展示了局部分歧相近、后续分歧与最终结果却不同的轨迹。其分析中的轨迹内 Spearman 相关系数中位数约为 \(1.5\times10^{-3}\),说明在这组分析里,当前局部值对后续平均分歧的关联很弱。
这不能证明“小分歧就是关键错误”,也不能证明后续分歧由当前位置因果造成。它支持的较窄结论是:仅看当前一个标量,无法充分表达它所在的分歧变化过程。(图 1)
2.3 均匀系数不等于梯度不看历史
vanilla OPSD 的每个局部梯度仍然基于各自的学生前缀,当然依赖上下文。论文批评的是外面的显式权重统一为 \(1/T\),不是说 Transformer 或局部 KL 完全忽略顺序。
把一组损失数值重新排列,均匀平均的标量不变;DASH 的权重则会随排列变化。但这只是隔离“系数结构”的比较,不能把真实 token 任意打乱后,假设对应的局部梯度还保持不变。(§4.1)
3. Method:从教师分布到自适应监督跨度
3.1 教师从哪里来?不是额外训练一个更大模型
主实验的教师是同一冻结基座关闭 LoRA adapter 后的网络,额外输入参考解答及最终答案;学生是该基座加上可训练 LoRA,只看题目。教师通过 teacher forcing 对学生 rollout 的相同位置评分。(附录 A.2、B.2)
因此,这里的自蒸馏既利用模型共享的基座能力,也利用教师的特权上下文。它不意味着学生和教师每次都使用完全相同的当前参数;教师的基座冻结,学生 adapter 更新。
令 \(s_t=(x,y_{<t})\) 为学生前缀,\(z\) 为参考解答,记教师分布为 \(q_t\)、学生为 \(p_t\)。教师输出 stop-gradient,学生使用完整词表上的 forward KL:
\[ \begin{aligned} d_t&=D_{\mathrm{KL}}(q_t\|p_t),\\ \ell_{t,v}&=q_t(v)\log\frac{q_t(v)}{p_t(v)},\\ d_t&=\sum_{v\in\mathcal V}\ell_{t,v}. \end{aligned} \]
\(\mathcal V\) 是词表,\(t\) 是生成位置,\(v\) 是候选词表 token。这里的监督不只针对学生实际采样的一个 token。(式 1–2)
3.2 先逐词表项裁剪,再求和
DASH 实际聚合的是:
\[ r_t=\sum_{v\in\mathcal V}\min(\ell_{t,v},\tau), \qquad \tau=0.05. \]
这与 \(\min(d_t,\tau)\) 不同:前者裁剪每个词表项,再相加;后者先算总 KL 再裁剪。算法 1 与官方实现采用前者。
特别要注意,单个 \(\ell_{t,v}\) 可以为负,裁剪后的 \(r_t\) 也可以为负。正项封顶、负项保留后,\(r_t\) 不再保证具备 KL 的非负性。论文附录 A.4 明确说明了这一点。这里的符号 \(r_t\) 是局部损失信号,不是环境奖励。
3.3 用本序列均值形成传播门
对一条含 \(T\) 个有效 token 的 rollout:
\[ \bar r=\frac{1}{T}\sum_{t=1}^{T}r_t, \qquad g_t=r_t-\bar r. \]
\[ \lambda_t=\operatorname{sg}\big[\sigma(-\kappa g_t)\big], \qquad \kappa=5. \]
\(\sigma\) 为 sigmoid,\(\operatorname{sg}\) 表示停止梯度。只需要 \(t=1,\ldots,T-1\) 的门。
- \(r_t<\bar r\):\(\lambda_t>0.5\),跨过该位置之后的边界传播得更强。
- \(r_t>\bar r\):\(\lambda_t<0.5\),该边界更收紧。
- \(r_t=\bar r\):\(\lambda_t=0.5\)。
门控制的是位置 \(t\) 与 \(t+1\) 之间的传播。它不是当前位置损失的直接乘数,也不是根据绝对 KL 大小排序的选择器。均值来自完整 rollout,因此这是事后构造训练权重,不是在线预测未来。(算法 1、§5.3)
3.4 反向聚合,以及更容易理解的等价形式
从末尾向前计算:
\[ \begin{aligned} A_T&=r_T,\\ A_t&=r_t+\lambda_t A_{t+1}. \end{aligned} \]
最终最小化 \(\mathcal L=T^{-1}\sum_t A_t\)。这里 \(A_t\) 虽然记作 A,却不自动具有强化学习 advantage 的含义。(式 9–10)
把所有项展开、合并,就得到:
\[ \mathcal L=\frac{1}{T}\sum_{k=1}^{T}c_k r_k, \]
\[ \begin{aligned} c_1&=1,\\ c_k&=1+\lambda_{k-1}c_{k-1}. \end{aligned} \]
例如三位置时,\(c_3=1+\lambda_2+\lambda_1\lambda_2\)。第 \(k\) 个局部损失的系数由前面的门路径决定;这些门又使用整条序列均值,所以系数具有序列条件性。(式 11)
对常数门 \(\lambda\),有:
\[ c_k=\frac{1-\lambda^k}{1-\lambda}. \]
因此固定 \(\lambda\) 也会产生位置相关权重,不能称它为“所有位置等权”。而当 \(\lambda=0\) 时,聚合退回原来的局部平均。
3.5 horizon 指传播质量,不是实际生成长度
从位置 \(t\) 开始,向后各项的传播系数之和定义为有效跨度 \(h_t\)。固定门下:
\[ h_t=\frac{1-\lambda^{T-t+1}}{1-\lambda}. \]
当剩余轨迹足够长时,\(\lambda=0.5\) 的跨度趋近 2,\(\lambda=0.9\) 趋近 10。这是折扣权重的总量,不是硬截断到后面 2 或 10 个 token。自适应门使这一跨度随序列变化。(附录 A.5)
3.6 实际梯度为何不是“未来错误惩罚前面动作”?
由于门及其均值计算都被 detach,实际反传为:
\[ \nabla_\theta\mathcal L =\frac{1}{T}\sum_k c_k\nabla_\theta^{\mathrm{loc}}r_k. \]
也就是说,\(r_3\) 即使出现在 \(A_1\) 里,最终仍通过自己的局部蒸馏计算图更新模型;并没有因此变成 \(r_3\nabla\log\pi(y_1\mid s_1)\)。共享参数当然会让各位置的学习互相影响,但那不等于显式的动作信用分配。(附录 A.6、A.8)
论文命题 1 分解了固定 horizon 期望目标的梯度,其中确实还有一个包含未来 divergence-to-go 的 score-function 项。DASH 没有估计或恢复这个项;该分解只为“系数应考虑时序”提供结构动机。附录也指出,固定 \(H\) 的理论目标与按实际长度 \(T\) 归一化的期望目标不能直接画等号。
训练时需要参考解答及师生分布,评测时只用学生,不输入参考解答;DASH 主目标也不要求最终答案奖励。它是蒸馏权重方案,不是新增 critic 或过程奖励模型。
4. 具体数值例子:包含裁剪、门、递推和梯度
以下是教学用三位置、二元词表简化例子。实际模型词表很大;为展示算法,只保留候选 \(a,b\)。可将任务想成一道算术题,学生已经生成三 token 的固定轨迹;这里只演示这条轨迹怎样产生更新信号,不把三个 token 硬解释为三个完整推理步骤。
4.1 从合法概率算出局部信号
各位置教师分布都取 \(q=(0.5,0.5)\),学生依次为:
\[ \begin{aligned} p_1&=(0.48,0.52),\\ p_2&=(0.30,0.70),\\ p_3&=(0.46,0.54). \end{aligned} \]
使用论文的 \(\tau=0.05\),自然对数下得到:
| 位置 | \(\ell_{t,a}\) | \(\ell_{t,b}\) | 原始 \(d_t\) | 裁剪后 \(r_t\) |
|---|---|---|---|---|
| 1 | 0.020411 | −0.019610 | 0.000801 | 0.000801 |
| 2 | 0.255413 | −0.168236 | 0.087177 | −0.118236 |
| 3 | 0.041691 | −0.038481 | 0.003210 | 0.003210 |
例如第二个位置:
\[ \begin{aligned} \ell_{2,a}&=0.5\log(0.5/0.3)=0.255413,\\ \ell_{2,b}&=0.5\log(0.5/0.7)=-0.168236,\\ r_2&=0.05-0.168236=-0.118236. \end{aligned} \]
原始 KL 最大的位置,经过逐项裁剪后反而拥有最小的局部信号。这是人为选择来暴露裁剪行为的例子,不表示真实训练中总会发生这种排序反转。
4.2 算均值和传播门
三位置均值约为 \(\bar r=-0.038075\)。于是:
\[ \begin{aligned} g_1&=0.038876,\\ g_2&=-0.080161. \end{aligned} \]
代入 \(\kappa=5\):
\[ \begin{aligned} \lambda_1&=\sigma(-0.194379)\approx0.451558,\\ \lambda_2&=\sigma(0.400805)\approx0.598881. \end{aligned} \]
位置 2 的门比较开放,是因为裁剪信号低于均值,不能将这里口头改写为“原始 KL 较小”。最后位置没有下一项,所以不需要 \(\lambda_3\)。
4.3 反向算聚合值
\[ \begin{aligned} A_3&=0.003210,\\ A_2&=-0.118236+0.598881A_3\\ &\approx-0.116314,\\ A_1&=0.000801+0.451558A_2\\ &\approx-0.051722. \end{aligned} \]
所以 \(\mathcal L=(A_1+A_2+A_3)/3\approx-0.054942\)。损失为负在这个裁剪定义下是合法的,不应为了让它“像 KL”而擅自补一个下限 0。
再用等价系数复核:
\[ \begin{aligned} c_1&=1,\\ c_2&=1+0.451558=1.451558,\\ c_3&=1+0.598881c_2=1.869311. \end{aligned} \]
代入 \(\sum_k c_k r_k/3\),同样得到 −0.054942。最终各局部梯度的外部系数从统一的 \(1/3\) 变成约 \((0.333333,0.483853,0.623104)\)。
注意第一位置仍是 \(c_1=1\)。虽然 \(A_1\) 包含后续项,但没有因此把第一位置的局部梯度系数放大。
4.4 从损失到一次局部更新方向
第一位置的词表项未被裁剪,因此对候选 \(a\) 的 logit,forward KL 局部导数是 \(p_1(a)-q_1(a)=-0.02\)。乘上 DASH 系数后为:
\[ \frac{\partial\mathcal L}{\partial z_{1,a}} =\frac{1}{3}(-0.02)\approx-0.006667. \]
梯度下降倾向于增加该候选的相对概率。其他位置按各自裁剪后的计算图和 \(c_k/T\) 更新;不能对已封顶的词表项继续使用完整 KL 导数。
这条路径的最终训练输出是损失及参数梯度,不是新的正确答案。真实模型由共享 LoRA 参数承接梯度,能否改进解题需要重新生成并评测;上述简化没有模拟完整 tokenizer、网络 Jacobian 或 AdamW 更新。
5. Results:哪些实验支持了自适应权重?
5.1 配置与评测口径
训练集为 OpenThoughts-Math-30K,共 29,434 道题及参考解答。匹配重跑训练 200 个优化步骤,全局 batch 64;LoRA rank 64、alpha 128、dropout 0.05,学习率 \(5\times10^{-6}\),线性衰减,无 warmup。(§5.1、附录 B)
学生训练采样温度 1.1、top-p 0.95、top-k 20,主配置最大完成长度 1,024 tokens。论文还报告尝试 2,048 和 4,096 后表现相近,但主实验不是数万 token 的长 rollout 训练。
评测为 AIME 2024、AIME 2025、HMMT February 2025,每项 30 道题,每题独立采样 12 次。Avg@12 是 12 个答案正确性的平均,不是 pass@12,也不是多数投票正确率。评测使用 thinking 模式、温度 1、top-p 1、最多 38,912 个新 token,与训练长度上限不同。最终答案由符号验证器判定,异常时有字符串比较回退。(附录 B.3)
5.2 主结果:匹配 OPSD 对照最值得看
下表为表 1 的 OPSD / DASH 四训练 seed 均值,单位 %:
| 模型与方法 | AIME24 | AIME25 | HMMT25 | 宏平均 |
|---|---|---|---|---|
| 1.7B OPSD | 55.60 | 40.80 | 29.20 | 41.87 |
| 1.7B DASH | 58.30 | 45.80 | 31.10 | 45.07 |
| 4B OPSD | 76.40 | 68.30 | 46.10 | 63.60 |
| 4B DASH | 77.20 | 71.10 | 46.70 | 65.00 |
| 8B OPSD | 77.80 | 70.80 | 45.80 | 64.80 |
| 8B DASH | 78.90 | 71.40 | 48.90 | 66.40 |
三个尺度的宏平均分别提高 3.20、1.40、1.60 点,九个 benchmark × model 设置都高于匹配 OPSD。1.7B 在 AIME25 上的提升最大,为 5.00 点。
其他蒸馏方法的宏平均如下,但它们是单次训练重跑,而非四 seed 均值:
| 方法 | 1.7B | 4B | 8B |
|---|---|---|---|
| EOPD | 38.80 | 60.17 | 65.00 |
| AVSD | 39.17 | 62.90 | 64.03 |
| PW-OPSD | 43.43 | 62.44 | 65.23 |
EOPD 在本文共享的特权 OPSD 骨架上实例化,不是完全复现其原始外部教师架构;AVSD 保留多视角教师。表中的 Base、SFT、GRPO 则引用其他论文结果,不受本文统一训练预算约束。(附录 B.1–B.2)
所以,“DASH 在所列结果中最好”成立,不应扩大成“对所有基线均证明统计显著”。附录 C 给出了 DASH 基准级 seed 标准差,例如 1.7B 三项为 0.90、1.20、0.30 点;这也不是宏平均的置信区间。
5.3 一个必须醒目标明的协议:在最终基准上挑 checkpoint
每 20 步保存一次 checkpoint,从第 20 到 200 步共 10 个候选。对每个方法、模型尺度和训练 seed,选择三项最终基准宏平均最高的那一个,再报告该 checkpoint 的三项分数。
作者明确称之为 best-within-200-step,而不是 held-out validation selection。它没有分别挑每个基准的最佳 checkpoint,但仍然用最终测试集合参与选择。因此分数更适合解读为这个选择协议下的最佳观测表现,不能视为完全独立的一次测试估计。(§5.1、附录 B.3)
5.4 固定门与反向门:不是任意递推都一样有效
1.7B 四 seed 宏平均如下(图 3、表 6):
| 配置 | 宏平均 |
|---|---|
| OPSD,\(\lambda=0\) | 41.87 |
| 最佳固定门,\(\lambda=0.1\) | 43.63 |
| 固定门,\(\lambda=0.5\) | 42.70 |
| Inverse-gap,翻转 sigmoid 内符号 | 42.10 |
| DASH | 45.07 |
固定聚合解释了一部分提升,自适应方案又比最佳固定门高 1.44 点。将小信号开门改成大信号开门后,分数比 DASH 低 2.97 点,支持本文选定的映射方向,但不证明这个方向对所有数据都最优。
5.5 仅仅增大 loss 尺度能解释提升吗?
DASH 的 \(c_k\ge1\),既改变相对权重,也提高平均梯度尺度。作者用一个 \(2\times2\) 对照分离二者(表 7):
| 权重分配 | 原始 OPSD 尺度 | DASH 平均尺度 |
|---|---|---|
| 均匀 | 41.87 | 42.57 |
| 自适应 | 44.27 | 45.07 |
在相同尺度下,自适应分配分别带来 +2.40、+2.50 点;仅提高尺度则带来 +0.70、+0.80 点。因此这些实验支持“相对权重分配贡献更大”,而非把所有提升归于梯度整体变强。
5.6 对 KL 方向与词表信息很敏感
1.7B 的完整词表 forward KL 为 45.07;换成 symmetric JSD 后为 38.23,reverse KL 为 41.47。它们不但低于 DASH 主配置,也低于 OPSD 的 41.87,说明不能无条件替换局部损失。(表 8)
保留教师 top-100 token,再把其余概率合并成 tail,得到 44.37,只下降 0.70 点;只保留 top-1 加 tail 则降到 34.83。top-k 加 tail 不是把 top-k 重新归一化并扔掉剩余质量,复现时需区分。(表 2)
\(\kappa\in\{1,2,5,10,20\}\) 的测试都超过 OPSD,但最佳为 5;这支持一定参数鲁棒性,不意味着参数无需选择。
5.7 额外成本低,但不是训练本身免费
作者在匹配运行日志中估计,额外标量扫描少于单步时间的 1%,不需要新增师生前向。表 4 报告 1.7B 约 45 分钟(8 张 A800)、4B 约 2.3 小时(8 张)、8B 约 15 小时(4 张),含调度及排队开销。这些是具体配置的报告,不是硬件无关的性能保证。
附录 E 还探索了与 GRPO 正确性项结合:1.7B 最强混合方案为 44.83,略低于纯 DASH 的 45.07;8B 同配置为 67.30,高于纯 DASH 的 66.40。不能概括成“加入可验证奖励一定更好”,也不能把该可选分支写成主方法。
6. 最具创新性的点
将蒸馏损失的显式系数,变成由真实分歧序列决定的传播路径权重。它不额外造教师、不训练新 critic,而是利用现有分布监督的顺序结构。
与只看位置的 PW-OPSD 不同,DASH 同一位置的权重可以随 rollout 变化;与只看一个局部标量的直接加权不同,它通过前序门的乘积累计形成权重;与策略梯度信用分配不同,它仍更新直接蒸馏通道。
最有说服力的证据是固定门、反向门和尺度匹配消融共同支持“自适应系数分配”的价值。理论分解帮助定位动机,但没有提供 DASH 对原始期望目标的无偏性或收敛优势保证。
7. 不足与可能的改进
7.1 作者明确说明的边界
论文没有独立的 Limitations 章节,但附录明确交代:不恢复遗漏的轨迹梯度;裁剪信号可能为负;固定 horizon 理论不等于变长目标;checkpoint 选择不是独立验证;不对单 seed 或外部基线宣称统计显著。这些是解读本方法必须保留的限制。
7.2 我的分析:需要独立验证集降低挑选偏差
用最终基准选 checkpoint 会让报告分数偏乐观。可以从训练分布另划验证集用于 checkpoint / 超参数选择,再一次性评测 AIME、HMMT,并同时报告最终第 200 步结果。
代价是额外验证数据和评测算力;应比较最佳分数与固定终点分数的差距、独立测试增益和配对 seed 区间。这样才能判断收益是否稳定地迁移到未参与选择的数据。
7.3 我的分析:裁剪信号不再忠实代表原始分歧
数值例子已展示,大 KL 可以因正项封顶而变成低甚至负信号。裁剪还改变梯度,不只是把门的输入压缩。因此“低 \(r\) 更值得向后看”是一种经验规则,不能等同于教师更可靠或学生更正确。
可将门信号与训练损失解耦:门使用未裁剪 KL 的稳健标准化或分位数,局部梯度保留现有裁剪,再和整 token 裁剪比较。代价是新增配置,未裁剪信号也更易受异常值影响;应测门饱和率、负信号比例、目标分歧变化和最终准确率,而非仅看 loss 降得快不快。
7.4 我的分析:不能把分布相似度当作推理正确性
教师拥有参考解答,也可能在学生异常前缀上给出不可靠分布;较小分歧也可能来自两者共同犯错。DASH 不包含对中间数学命题的独立验证。
可在一部分样本上加入符号步骤检查,分析高权重位置是否更常对应可验证的纠正。代价是领域验证器与标注成本;应测局部错误检测、对参考解答扰动的鲁棒性及任务成绩。不能仅以注意力或权重曲线证明因果推理改善。
7.5 我的分析:短 rollout 与长程交互之间仍有距离
训练主要在短数学 rollout 上,推理时允许更长生成,不等于验证了多轮工具调用、记忆或失败恢复。把方法移到 Agent 时,还需要明确环境观察是否参与均值与 mask、各轮长度怎样归一化。
可在固定环境步数预算下比较 token 级、turn 级均值和权重重置策略。代价是环境交互与教师评分成本;指标应包括任务成功、错误恢复和回合数,并检查全序列均值是否稀释了关键回合的分歧。这是研究设想,不是本文已有结果。
7.6 官方代码核对:批内归一化值得额外确认
本文核对了官方提交
412453fd1c6da4ab4c01ee221fd2cc7b55afb0c8 的
opsd_trainer.py。其中先对未归约词表项执行上界裁剪,再沿词表求和;gap
门显式 detach,递推保留局部信号梯度,与前文关键公式一致。
但当前代码的 DASH 分支将整个 micro-batch 的有效 token 加权求和,再除以有效 token 总数;均值门则按每条序列单独计算。批内 token 平均与先逐序列平均再平均 batch 不完全相同:变长序列时,前者让长序列占更多权重。
这不影响单条序列的 \(c_k\) 推导,但复现批间权重时必须核对。不能仅凭当前公开版本断言所有历史实验采用完全相同的归约方式。建议增加两条不同长度序列的单元测试,报告所用代码提交与 batch reduction;代价很小,却能避免把长度权重差异误当成算法收益。
8. 读者应记住的要点
- 先区分原始 KL \(d_t\) 与逐词表项裁剪后的 \(r_t\);后者可以为负。
- 反向递推最终等价于 \(c_k\) 加权局部损失,stop-gradient 决定了它不是未来奖励策略梯度。
- 相对权重分配的价值有尺度控制消融支持,但测试集挑 checkpoint 限制了结果解释。
- DASH 调整监督权重;SOPD:不接管学生轨迹,如何用完整步骤修复 OPD 的碎片化监督? 则改变教师目标的连续生成单元,两者不是同一个“扩大 horizon”的操作。
原始资料与延伸
- 论文与版本记录、v2 HTML、v2 PDF。方法见 §3–4、算法 1;梯度边界见附录 A;结果、统计与消融见表 1–9、附录 B–E。
- 官方代码仓库;本文核对的 trainer 版本。代码核对为静态阅读,没有重新运行论文训练。
站内延伸:OPDVR:用答案正确性过滤蒸馏信号,如何把 OPD 与可验证奖励结合? 讨论用可验证结果控制蒸馏信号;RAGEN:多轮 Agent RL 为什么会崩溃?StarPO、Echo Trap 与推理退化 讨论多轮交互训练的退化与证据边界。
点赞与评论
喜欢这篇文章?点个赞,或留下你的想法。登录 GitHub 后即可参与。
如果评论无法加载,请检查网络连接后刷新页面。