U-OPSD:以self-consistency取代真值监督的无监督自蒸馏

OPD 和 OPSD 都没有真正摆脱外部监督:要么需要更强教师,要么需要参考答案。U-OPSD 把 OPSD 里的真值参考答案替换成模型自己对同一道题的多数投票共识,反而反超了所有有监督基线。

1. 论文信息

论文:On-Policy Self-Distillation without Any Supervision
链接:arXiv:2608.06296
机构:UC San Diego / Georgia Tech / University of Maryland / ByteDance

OPD(On-Policy Distillation)指学生在自己采样的轨迹上训练、由教师提供逐 token 分布的蒸馏范式,解决 teacher-forced SFT 的 train-inference mismatch;

OPSD(On-Policy Self-Distillation,arXiv:2601.18734)进一步把教师和学生做成同一个模型,教师通过额外看到真值参考答案(privileged information)而”比自己强”;

U-OPSD 去掉的正是这份参考答案——教师看到的特权上下文,变成模型自己多数投票得到的伪解答。

2. 从 OPD 到 OPSD,”self” 还差在哪

OPD:外部教师 + 学生自己的轨迹。 教师是一个独立且更强的模型,学生只看到题目、按推理时的状态生成轨迹,教师逐 token 给出完整词表分布,学生做 token 级蒸馏。信号是 dense 的,但监督来自一个必须已经超过当前模型的外部教师。

OPSD:同一模型,教师多看一份参考答案。 学生策略 πS(·|x) = πθ(·|x) 只看题目;教师策略 πT(·|x, y⋆) = π̄(·|x, y⋆) 额外看到真值解答 y⋆,π̄ 是冻结梯度的同一网络。教师共享参数,却在”知道答案”的条件下给每个位置一个更准的分布——这正是”self”与”privileged”并存的地方:模型还是同一个,但特权信息来自外部。

把现有方法摊开看,外部监督无非三种入口:

监督来源 代表方法 形式
Gold answer RLVR / GRPO 序列级标量 reward
更强外部教师 OPD / GKD 外部模型逐 token 分布
特权上下文 OPSD / SDFT(GT 或 ICL) 参考答案或示例

不同 on-policy 蒸馏框架的监督来源对比

左:OPSD/SDFT 依赖真值解答或 ICL;中:SDPO 依赖环境反馈;右:U-OPSD 完全无监督,用多数投票构造伪标签。

“self” 只解决了教师身份,没有解决监督来源。U-OPSD 的观察是:模型多次独立生成的一致性(self-consistency)本身就是可用的监督信号,可以构造出问题专属的 self-teacher。

3. Sample → Vote → Distill

U-OPSD 对每个无标注题目 x ~ U 走三步,全程不需要标签:

U-OPSD 框架:Sample → Vote → Distill

U-OPSD 用模型自身的多数投票共识取代 OPSD 中的真值参考答案:教师条件于一致(winning)轨迹,学生沿不一致(losing)轨迹的前缀做逐 token 蒸馏。

(1) Sample。 用当前策略(梯度冻结,记为 π̄)在训练温度下采样 G 条独立 rollout,解析每条生成的最终答案 a(g) = Ans(y(g)):这类推理模型习惯把最终答案写在 boxed 方框里(例如 $\boxed{42}$),解析器提取方框内的内容,再做归一化、canonicalization。解析不出答案的 rollout 记为无效(通常是被截断的生成)。

(2) Vote。 在有效答案上做多数投票得到伪答案 ã(x),平票时均匀随机打破。投票把 rollout 分成两类:与共识一致的 Y⁺ 和与共识不一致的 Y⁻;无效 rollout 两边都不属于——它既不能证明对,也不能证明错。一致性分数 c(x) 是有效 rollout 中同意共识的比例。

这里的”伪”指它没有真值背书——不是外部给出的参考答案,而是模型自己多数投票得到的代理标签,质量取决于模型自身的一致性(第 4 节报告 86.7% 的伪标签与真值一致)。

(3) Distill。 当 c(x) ≥ τ(默认 τ=0.5;τ 是信任投票的阈值,一致性不够的题不拿伪答案当老师),选一条一致 rollout 作为教师参考(默认取最短的一致轨迹 y⁺),把教师分布蒸馏进不一致轨迹的前缀:教师条件于 (x, y⁺, y⁻<t),学生只条件于 (x, y⁻<t),逐 token 最小化两者分布的 forward KL(β=0,沿袭 OPSD 的逐 token pointwise clipping)。

U-OPSD 目标函数

教师分布条件于伪解答 y⁺ 与不一致轨迹前缀,蒸馏目标是最长错误完成;Dβ 默认为 forward KL。

y⁺ 是投票一致集合里选出的伪解答,默认取最短一致轨迹,替代 OPSD 中的真值 y⋆;y⁻<t 是第 i 条不一致轨迹在第 t 个 token 之前的前缀,即学生”已经写错到这里”的位置;π̄ 与 πθ 分别是梯度冻结的教师和可训练的学生,每一步都给出完整词表的 next-token 分布;Wk 是参与蒸馏的不一致轨迹集合(默认一条);Dβ 是两分布间的散度,默认 forward KL(β=0)。

需要澄清的是,蒸馏并不生成文本——y⁺ 与 y⁻ 早在 sampling 阶段就写好了,全程只是把这两条固定序列当作输入。损失沿着 y⁻ 逐位置计算,且各位置互不相干:教师读入 (x, y⁺, 已写前缀),只回答”知道答案的话,这里下一步该写什么”;这个回答不会被接续下去——下一步看的是 y⁻ 实际写下的(可能已出错)前缀,而不是上一步的预测。这个”读入内容后的下一步预测”正是模型的思考产物——在自回归模型里,想得对不对,就体现在下一步概率分得准不准。

前缀是逐位增长的,所以一次 teacher-forcing 前向就能同时得到所有位置的 next-token 分布(causal mask 让位置 t 只看得到前面),无需逐位置重跑。损失改的是学生参数,让模型以后遇到类似前缀更可能写对;y⁻ 的 token 本身不动。蒸馏的实质,就是把”看到答案时模型会怎么想”,变成学生”不看答案也能这么想”。

算法的完整流程:

U-OPSD 算法

Algorithm 1:单个 prompt 上的 U-OPSD 流程,默认取最短一致轨迹为教师参考、蒸馏一条不一致轨迹。

两个被跳过的样本类别很关键:模型完全不会的题(c(x) < τ)不训练,避免把多数投票的噪音学进去;完全一致的题(Y⁻ = ∅)没有不一致可纠正。训练因此恰好落在模型的 competence frontier——“会做、但做的时候会翻车”的题上:

完全不会的不学,完全一致的没得学。U-OPSD 只在”会但会不一致”的题上蒸馏,构成一个隐式的自课程学习:题目难度随模型能力自动对齐。

4. 实验结果与消融

主实验在 Qwen3-4B / Qwen3-8B 的思考与非思考两种模式上跑,评测 AIME24、AIME25、HMMT25、MATH500、AMC23 五个竞赛数学 benchmark。

非思考模式(表 1)。 U-OPSD 把 4B 从 40.96 提到 49.49(+8.5)、8B 从 43.57 提到 54.31(+10.7),五榜平均反超有监督 OPSD 3.2 / 2.3 分,且各拿到五个 benchmark 中的四个最优。同样无监督的 RL 方法(TTRL / RENT / Intuitor)最多只提升 1.5 分,U-OPSD 比它们高 7.0–11.3——同一个多数投票,当标量 reward 用几乎没用,当蒸馏上下文用却大幅反超。

Qwen3-4B 非思考 AIME24 AIME25 HMMT25 MATH500 AMC23 Avg
Base 25.83 17.78 10.83 84.10 66.25 40.96
w/ GT. + SFT 26.67 19.72 13.06 84.85 69.38 42.73
w/ GT. + GRPO 25.00 22.50 15.00 86.20 80.62 45.86
w/ GT. + OPSD 32.22 20.83 16.39 85.75 76.25 46.29
+ TTRL 25.00 20.83 11.94 83.60 67.50 41.77
+ RENT 22.22 20.28 11.39 84.00 74.38 42.45
+ Intuitor 23.89 20.00 11.67 83.70 70.62 41.98
+ U-OPSD 37.50 27.78 14.44 86.50 81.25 49.49
Qwen3-8B 非思考 AIME24 AIME25 HMMT25 MATH500 AMC23 Avg
Base 27.50 23.33 13.61 84.05 69.38 43.57
w/ GT. + SFT 26.94 21.67 11.94 84.10 72.50 43.43
w/ GT. + GRPO 30.56 21.94 13.06 87.85 73.75 45.43
w/ GT. + OPSD 41.67 28.06 18.33 87.15 85.00 52.04
+ TTRL 27.22 21.11 13.06 84.45 71.88 43.54
+ RENT 28.33 21.67 10.83 84.00 70.00 42.97
+ Intuitor 26.11 22.50 11.67 84.20 73.12 43.52
+ U-OPSD 45.56 34.72 18.61 89.55 83.12 54.31

思考模式(表 2,只列五榜平均)。 增益收窄到 +2.2 / +1.9,与有监督 OPSD 打平、稳定超 GRPO;base 已 74.85 / 76.09,可挖掘的 headroom 本来就小。

Avg(思考模式) 4B 8B
Base 74.85 76.09
w/ GT. + GRPO 76.35 76.92
w/ GT. + OPSD 76.20 77.97
+ TTRL / RENT / Intuitor 75.76 / 75.65 / 76.07 76.95 / 77.16 / 76.64
+ U-OPSD 77.05 77.99

Qwen3-4B 训练曲线

训练曲线印证了同样的图景:非思考模式 U-OPSD 从 step 50 起在每个 checkpoint 都高于所有方法(AIME 的冲顶也发生在 step 50 而非最后 checkpoint),思考模式所有方法都挤在 base ±2 分内——收益来自早期快速纠正不一致轨迹,不是长训练堆出来的。

消融与机制。

配置消融:τ、G 与教师更新。 三个超参数的行为都很反直觉:

配置消融:τ、G、教师更新

左:一致性阈值 τ,接受所有样本(τ=0)反而最好;中:每 prompt 采样数 G,G=12 更优、G=16 回吐;右:教师更新方式,EMA 教师带来进一步提升。

  • τ=0 最好。 平均准确率随 τ 单调下降:59.21(τ=0)> 53.93(τ=0.5)> 44.40(τ=0.9)——多学比学得干净更重要。
  • G=12 优于 8。 G=4/8 几乎无差别,G=12 再涨 4.7 分、G=16 回吐;默认 G=8 只为与 OPSD 成本对齐,G=12 是更优工作点。
  • EMA 教师还有空间。 decay 0.995 的 EMA 教师再 +2.4 分。

教师参考:完整推理轨迹是刚需。 教师条件于最长一致轨迹最优(59.00);裁到只剩 boxed 伪答案(label-only)掉 11.4–15.6 分、低于 base——伪标签只给”答案是什么”,推理轨迹才给”怎么走到答案”。蒸馏轨迹也不宜贪多:k=1/2/3 都超过有监督 OPSD,全量蒸馏反而最差。

蒸馏目标:full-vocabulary >> sampled token。 词表级蒸馏在每一步对整个词表逐项比较教师与学生分布,无需采样;sampled-token 方案则先让学生从自己的分布里采一个 token、只在该 token 上打分,平均低 13.7 分——伪标签监督下,完整词表分布比真值监督下更重要。

散度选择:forward KL 是刚需。 forward KL 57.10;JSD 掉到 43.34;reverse KL 训练不收敛(生成长度涨到 99k、可解析答案掉到 33%,loss of termination)。机制上 forward KL 是 zero-avoiding、eos 不会被推没,reverse KL 是 zero-seeking、token 一旦归零就拉不回来——这是目标方向性的本质差异。

伪标签质量。 96.3% 的 rollout 可解析、94.0% 的题过阈值、86.7% 的伪标签与真值一致,蒸馏集小而集中;但多数投票复现的是 base 最高频答案,仍有 13.3% 伪标签是错的,且论文没做投票被刻意污染的鲁棒性实验。

U-OPSD 没有发明新的训练目标,只是把 OPSD 里的真值参考答案换成模型自己的多数投票共识。适用前提是答案可抽取、可 canonicalize 投票的场景,开放式任务要么换软共识(judge/embedding)、要么引入验证器,没有免费午餐;限制自我提升的从来不是 gold solution,而是暴露并纠正自身不一致的机制。