文章目录
-
- [OPSD 的老问题:一段回答只配一个老师](#OPSD 的老问题:一段回答只配一个老师)
-
- [先把 OPSD 蒸馏的东西说清楚](#先把 OPSD 蒸馏的东西说清楚)
- 已有的自适应,都在回答这一层做
- [作者的赌注:偏好是 token 级的](#作者的赌注:偏好是 token 级的)
- 先做一个能证伪的实验:教师干预
-
- 实验怎么设计
- 发现一:同一段回答里,偏好只有约一半重合
- 发现二:多数投票能筛出可靠教师
- [发现三:最偏好的教师往往 KL 最大](#发现三:最偏好的教师往往 KL 最大)
- 方法:七个教师,两步点名
-
- 多教师池:一个模型,七种参考暴露
- [第一步:逐 token 的多数投票](#第一步:逐 token 的多数投票)
- [第二步:在多数派里挑 KL 最大的](#第二步:在多数派里挑 KL 最大的)
- 损失、伪代码与训练成本
- [为什么是「先投票再选 KL」](#为什么是「先投票再选 KL」)
- 实验:涨在哪儿,涨多少
- 消融:增益来自池子,还是来自点名
- 局限与失效场景
- 落地判断:谁该试,谁别碰
- 术语速查
先把场景摆清楚。你手上有一个会写长链推理的模型,训练集里每条题都配了标准解答。想让模型变强,最省事的办法不是再找一个更大的模型当老师,而是让模型自己当老师:学生自己采样一条回答,然后让「看过标准解答的自己」逐 token 给出下一个词的分布,学生去对齐这个分布。这就是 on-policy self-distillation,简称 OPSD。它不需要外部教师,监督信号又是 dense 的逐 token 分布,比只给一个对错标签的 RLVR 细得多,所以过去一年它成了后训练里很热的一条线。
但这条线有个反复被报告出来的毛病:一旦教师手上握着完整参考答案,它的分布就会变得非常尖锐,把学生自己探索出来的、正确但走法不同的回答压下去。已经有工作把这种现象描述成「教师监督与学生当前学习动态不匹配」,极端情况下会抑制学生的不确定性,推理成绩不升反降。
于是出现了自适应的一派:别让教师一直看全参考,按学生与教师的差距动态决定给它看多少。但这篇论文的作者认为,这一派停在了错误的地方。他们的判断是:教师强度的最小单位不是一条回答,而是一个 token。同一段回答里,讲思路转折的那个 token 需要一个强教师,只是复述题面符号的那个 token 可能谁教都一样。所以论文的标题才会这么硬:每个 token 都需要它自己的老师。
这篇论文叫 MTA-OPSD,来自 TU München、Kyoto University、ELLIS Institute Finland 等机构的合作,做的是纯数学推理上的后训练实验。我下面按「老问题怎么来的、作者怎么证、方法怎么拼、涨了多少、代价多大、什么时候别用」的顺序拆。所有数字都来自原文表格,我自己加的解释会明确标出来。
先把结论放这儿,细节后面逐条展开:
- 老问题:OPSD 的教师和被蒸馏的学生共用一套权重,唯一区别是教师能看见 privileged reference,也就是标准解答。参考越完整,教师分布越尖,压掉学生正确探索的风险越大。
- 已有自适应方案的粒度:Tan & Hong 的 Paint 一类方法按学生与教师的差距调整参考暴露比例,但一条回答内所有 token 共享同一个比例,本质是响应级自适应。
- 作者的主张:教师偏好是 token 级的。他们用同一段回答喂三个不同教师,发现有的位置上三个教师方向一致,有的位置上方向相反。
- 证据:教师干预实验里,同一段 rollout 里两个不同位置的「最偏好教师」重合率只有约 50%(Qwen3-1.7B,k=256)。
- 做法:用七种参考暴露配置拼一个多教师池,每个 token 先做多数投票筛出方向一致的子集,再在子集里挑与学生 KL 距离最大的那个教师。
- 主结果:Qwen3-1.7B 平均分 51.1 到 57.0(+5.9),Qwen3-4B 75.7 到 77.2(+1.5),Qwen3-8B 76.4 到 79.2(+2.8),三个规模的平均分都是第一。
- 代价:教师侧要同时算七个配置的分布,训练用 4 张 H200、全局 batch 32、全参数训练 300 步,参考解必须是题目自带的标准答案。
OPSD 的老问题:一段回答只配一个老师
先把 OPSD 蒸馏的东西说清楚
OPSD 是 on-policy distillation 的特例。给定 prompt x,学生从自己的分布里采样一条回答 y = {y_1, ..., y_L},然后在每个位置 i 上比较两个分布:一个是学生自己的 p_θ(·|c_i),一个是教师的 p_T(·|c_i),其中 c_i = (y_<i, x) 是学生到当前位置为止的上下文。目标是在每个位置最小化学生与教师之间的逐 token KL。OPSD 和普通 OPD 的唯一区别在于教师怎么来的:OPD 需要一个独立的、通常更强的外部教师,而 OPSD 直接把教师实例化成同一个模型,只是给它的上下文后面接上 privileged reference r,于是教师分布就是 p_T(·|c_i) = p_θ(·|c_i, r)。代进去,目标函数就变成学生和「加了参考的自己」之间的 KL:
L O P S D ( θ ) = E x ∑ i = 1 L D K L ( p θ ( ⋅ ∣ c i ) ∥ p θ ( ⋅ ∣ c i , r ) ) \mathcal{L}{\mathrm{OPSD}}(\theta)=\mathbb{E}{x}\\sum_{i=1}\^{L}D_{\\mathrm{KL}}(p_{\\theta}(\\cdot\\mid c_i)\\,\\\|\\,p_{\\theta}(\\cdot\\mid c_i,r)) LOPSD(θ)=Exi=1∑LDKL(pθ(⋅∣ci)∥pθ(⋅∣ci,r))
符号逐个对一下:c_i = (y_<i, x) 是学生到位置 i 为止的上下文,p_θ 是学生自己的分布,p_θ(·|c_i, r) 是同一套权重在看过参考之后的分布,D_KL 是两个分布之间的 KL 散度。整个式子逐位置求和,每个 token 都有自己的一项------这正是后文能把它换成逐 token 教师的前提。
这个设计的好处很直接:不用维护第二个模型,监督又是逐 token 的连续分布而不是稀疏奖励,同时训练数据来自学生自己的采样,避开了 SFT 那种在教师轨迹上训练、到推理时走自己路径的 exposure bias。
代价同样直接:教师看得比学生多。r 是数据集给的标准解答,里面有完整思路和最终答案。当学生的某一步和参考走法不同时,哪怕这一步是对的,教师也会给它一个明显更低的概率。教师分布越尖,这种「不认同」就越强,学生的探索空间被压窄。论文把这条链子讲得很简洁:高度信息量的参考会诱导出过度尖锐的教师分布,进而制造教师监督与学生学力之间的错配。
已有的自适应,都在回答这一层做
第一类做法是固定教师:OPSD 用前向 KL 加逐 token 的 KL 裁剪,SDPO 换成 Jensen--Shannon 散度。两者的共同点是整段训练里教师始终看完整参考。
第二类做法是自适应暴露:不是一直给全参考,而是按学生与教师的差距、按学习动态调整教师能看到多少参考。论文引的 Paint 就是这一类,用 student-teacher gap 来决定参考暴露比例。
作者的反驳很短:这些方法的自适应发生在响应级。同一条回答里,参考暴露程度是定死的,所有 token 由同一个教师监督。也就是说,方法承认了「不同学生状态需要不同强度的教师」,但不承认「同一段回答里不同位置需要不同强度的教师」。
作者的赌注:偏好是 token 级的
这篇论文押的就是这一点。图 1 是它的门面:同一个数学题、同一条学生回答,作者用三个暴露配置不同的教师(prefix-0.5、suffix-0.5、random-span-0.5)分别给每个位置打分,把教师的相对支持画成红绿格子。结果不是一片同色:有些位置上三个教师一起支持学生选的那个词,有些位置上三个教师一致反对,还有些位置出现红绿分裂------教师之间意见不一致。

图 1|同一条学生回答,三个参考暴露不同的教师在逐 token 给出支持(绿)或反对(红)的信号:有的位置三家一致,有的位置直接分裂。
图源:Every Token Needs Its Own Teacher: Multi-teacher Adaptive On-policy Self-distillation(arXiv:2610.40574v1),CC BY 4.0
这张图要看的不是颜色分布本身,而是「同一行里格子不同色」这个事实。如果教师偏好真的只是响应级现象,那么一条回答应该对应一个主导色;实际观察到的是逐位置翻转。
我认为这张图的价值在于它把「教师是一个整体」这个隐含假设直接打掉了。工程上看,我们平时说「用一个教师蒸馏」,实际上一直是用一个条件化上下文在整段回答上做 KL,从来没人检查过这个 KL 在每个位置上的方向是否一致。作者的贡献是把这个检查做了出来。
先做一个能证伪的实验:教师干预
实验怎么设计
要证明「不同 token 偏好不同老师」,最笨的办法是给每个 token 单独训一个模型,组合数爆炸,不可行。作者借了一个已有思路:不去训练,而是去干预生成过程,看结果变好还是变坏。
具体做法是造一个「学生---教师---学生」的接力回答。给定 prompt 和学生自己采样出的回答,选一个位置 i,保留 i 之前学生写的内容;从 i 开始交给候选教师写 k 个 token;之后把控制权还给原来的学生,让它把剩下的部分写完。整条接力的最终答案准确率,减去纯学生自己写的准确率,就是这个教师在这个位置上的「干预增益」,用作者的话说是教师偏好的 proxy。

图 2|教师干预实验的构造:保留学生写好的前缀,让候选教师接管 k 个 token,再交还学生写完,用最终准确率的差值衡量这个位置更偏好哪个教师。
图源:Every Token Needs Its Own Teacher: Multi-teacher Adaptive On-policy Self-distillation(arXiv:2610.40574v1),CC BY 4.0
整个接力过程如图 2 所示,上面一行是教师接管的 k 段,下面一行是学生自己的回答,右侧那个 Δ 就是两条路径的准确率差。这个设计的关键在于它把两个轴分开了:token 轴(干预从哪个位置开始)和 teacher 轴(干预用哪个教师)。只要固定一个轴扫另一个轴,就能回答「偏好是否随位置变化」。
扫描的配置写得挺细。token 轴上,他们同时取了规则位置和统计极端位置:rollout 的 25%、50%、75% 三个位置,加上学生熵最高、熵最低、学生-教师 KL 最大、KL 最小四个位置,每条 rollout 一共 7 个干预点。teacher 轴上,参考截断策略取 prefix、suffix、random-span 三种,暴露比例各取 0.5 和 0.75,再加上一个看全参考的教师,一共 7 个候选教师。干预长度 k 取 64、128、256 三档。
数据侧用了 DeepMath-103K 里 64 条至少中等难度的 prompt,学生模型是 Qwen3-1.7B 和 Qwen3-4B。为了压采样噪声,每个配置采样 2 条教师续写、每条续写再各采样 2 次学生接力。论文给的总生成数是 64×7×7×3×2×2×2 = 75264 条。这个数字我核过,量级上确实是一个认真的试点实验,不是随手画两张图。
发现一:同一段回答里,偏好只有约一半重合
第一个结论最硬:在同一个 rollout 里,不同位置的「最偏好教师」经常不是同一个 。论文表 1 给的是三个规则位置两两之间的重合率,Qwen3-1.7B、k=256 的设置下分别是 48.44%、50.00%、51.56%。
| 位置对 | 25% | 50% | 75% |
|---|---|---|---|
| 25% | --- | 48.44% | 50.00% |
| 50% | 48.44% | --- | 51.56% |
| 75% | 50.00% | 51.56% | --- |
这张表读起来像「一半一半」,作者的解释是「偏好随 token 变化」,我觉得还需要补一个参照系才好判断这个数字到底有多强。假设七个候选教师被选中的概率完全一样,那么两个独立位置碰巧选中同一个教师的概率是 7×(1/7)² ≈ 14.3%。50% 明显高于随机,说明位置之间确实有系统性;但它离 100% 又很远,说明「一条回答一个教师」这个假设在实践中丢掉了大约一半的信息。这个 14.3% 是我自己按均匀分布算的,论文没有给随机基线,作者也没有讨论「偏好重合」到底该跟什么比。
顺便说一句,这个实验有个容易被忽略的细节:重合率的单位是「位置对」,不是「回答」。三个位置两两比较,一条 rollout 贡献三个数据点,所以表 1 里的三个数并不独立。
发现二:多数投票能筛出可靠教师
第二个发现是方法论的种子。作者先定义了一个优势量:
a T ( y i ∣ c i ) = log p T ( y i ∣ c i ) − log p θ ( y i ∣ c i ) a_{T}(y_i\mid c_i)=\log p_{T}(y_i\mid c_i)-\log p_{\theta}(y_i\mid c_i) aT(yi∣ci)=logpT(yi∣ci)−logpθ(yi∣ci)
它的符号含义很清楚:如果大于零,说明这个教师在学生选的那个词上给的相对概率比学生自己高,也就是「支持学生的选择」;小于零就是「反对」。对每个位置,用符号把七个候选教师分成支持组和反对组,取人数多的那一侧,得到多数派子集。
然后他们问一个很实际的问题:那个表现最好的教师,有多少概率落在多数派里?表 2 的答案是 77.94% 到 90.68%。
| 模型 | 规则位置 | 统计极端位置 |
|---|---|---|
| Qwen3-1.7B | 77.94% | 88.09% |
| Qwen3-4B | 87.11% | 90.68% |
这个数字的意义不是「多数投票能选出最好的教师」------它做不到,77.94% 意味着还有两成多的情况最好教师在少数派里。它的意义是:多数投票是一个非常便宜的粗筛,能在不知道答案的前提下把明显不可靠的教师先排掉。
表 3 进一步佐证:Qwen3-4B、k=256 时,多数派教师的平均增益是 +3.34%,少数派是 +1.88%,整体平均 +2.34%。两组之间有 1.46 个百分点的差,方向是对的。
| 分组 | 平均干预增益 |
|---|---|
| 多数派 | +3.34% |
| 少数派 | +1.88% |
| 整体 | +2.34% |
发现三:最偏好的教师往往 KL 最大
第三个发现最有操作性,也最反直觉。对每个位置,作者在多数派里挑出与学生 KL 距离最大和最小的两个教师,比较它们的干预增益。表 4 的结果是:KL 最大的教师一致更好。
| 模型 | 最远教师增益 | 最近教师增益 | 差值 |
|---|---|---|---|
| Qwen3-1.7B | +2.42% | +0.59% | +1.83% |
| Qwen3-4B | +2.78% | +1.21% | +1.57% |
为什么反直觉?因为我们通常认为教师和学生差距太大不好教。但这里的目标不是「让学生学得舒服」,而是「让学生改掉可能错的选择」。一个几乎和学生一样的教师,能提供的修正量接近零;一个分布离得很远的教师,至少在信息量上能给足。
作者的解读是,KL 距离提供了一个可用的、不需要额外标注的偏好判据。这一点对工程实现特别重要:要判断「哪个教师更适合这个 token」,标准答案是跑一遍干预实验,那要花 7.5 万次生成;而 KL 距离只要一次前向就能算出来。
方法:七个教师,两步点名
多教师池:一个模型,七种参考暴露
方法的框架很朴素:不做单体选择,做池子加路由。作者构造一个多教师池 M = {p_T1, p_T2, ..., p_TK},所有教师共享同一套参数 p_θ,彼此唯一的不同是条件里的参考变体 r_k,因此每个教师的下一个词分布就是 p_Tk = p_θ(·|x, r_k)。默认设置里 K=7,七个配置是:完整参考、prefix-0.5、prefix-0.75、suffix-0.5、suffix-0.75、random-span-0.5、random-span-0.75。

图 3|左为 OPSD,一个教师监督全部 token;右为 MTA-OPSD,多教师池经多数投票加 KL 选择,把不同的 token 分给各自的教师。
图源:Every Token Needs Its Own Teacher: Multi-teacher Adaptive On-policy Self-distillation(arXiv:2610.40574v1),CC BY 4.0
图 3 把改了什么、没改什么画得很清楚。左边是标准 OPSD:一个教师,一条虚线指向所有 token,标注是 same teacher for all tokens。右边是 MTA-OPSD:一个虚线框里放 K 个教师,每个教师挂着不同的 reference,然后通过多数投票加 KL 选择,把不同的教师连到不同的 token 上,标注是 assign each token its own teacher。学生回答本身没有变化,变化的是「谁来监督它」。
截断策略这个词值得解释一下。prefix 截断保留参考的前一段,suffix 保留后一段,random-span 保留随机的一段,0.5 和 0.75 是暴露比例。所有设置下最终答案都会被保留,这是为了公平比较------不然教师连答案都没看到,就和其它配置不是一个难度了。
下面四张图是池子里四个具体教师的输入长什么样,题目是一道常见的二阶常微分方程求辅助方程。图 4 是完整参考,标准解答从头到尾都在,从换元到最终答案 m²+1=0 一条不缺。图 5 是 prefix-0.5,参考在中间被截断,末尾出现「truncated on the right」的标记,但最终答案仍然保留。图 6 是 prefix-0.75,暴露得更多,截断点更靠后。图 7 是 suffix-0.5,截断发生在左侧,参考从一个句子中间开始。
这四张图放在一起看,能看出一个容易被文字描述掩盖的事实:不同教师看到的不是「同一段文字的模糊版本」,而是语义结构完全不同的材料。prefix 教师知道题目怎么起手但可能缺收尾,suffix 教师一上来就看见结论却不知道为什么要这么变形。它们在同一个 token 上给出不同分布,一点都不奇怪。

图 4|池子里的 Teacher 0:条件里放完整参考解,从换元到最终答案一条不缺。
图源:Every Token Needs Its Own Teacher: Multi-teacher Adaptive On-policy Self-distillation(arXiv:2610.40574v1),CC BY 4.0

图 5|Teacher 1 是 prefix-0.5:参考只保留前一半,右侧被截断,但最终答案仍然保留。
图源:Every Token Needs Its Own Teacher: Multi-teacher Adaptive On-policy Self-distillation(arXiv:2610.40574v1),CC BY 4.0

图 6|Teacher 2 是 prefix-0.75:暴露比例更高,截断点更靠后,看到的推导更完整。
图源:Every Token Needs Its Own Teacher: Multi-teacher Adaptive On-policy Self-distillation(arXiv:2610.40574v1),CC BY 4.0

图 7|Teacher 3 是 suffix-0.5:截断发生在左侧,参考从一个句子中间开始,只剩后半段推导。
图源:Every Token Needs Its Own Teacher: Multi-teacher Adaptive On-policy Self-distillation(arXiv:2610.40574v1),CC BY 4.0
第一步:逐 token 的多数投票
在位置 i 上,池子里每个教师都给出一个优势值 a_Tk(y_i|c_i),取符号就得到这个教师投的一票:v_Tk(c_i) = sgn(a_Tk(y_i|c_i)),支持记 +1,反对记 -1。把所有票加起来再取符号,就是该位置的多数方向 V_M(c_i) = sgn(Σ_k v_Tk(c_i)),对应的子集 M_maj(c_i) = {p_Tk ∈ M | v_Tk(c_i) = V_M(c_i)} 就是这一票里「方向一致」的那批教师。整个过程是逐位置的,每个 token 独立算一次。
这里有个实现细节在附录里:七个教师是奇数,投票不会平票;但作者把方法写成了对任意 K 都成立,所以补了平票规则------当正负票数相等时,比较哪一侧的优势绝对值之和更大,取更大的那一侧。这个规则论文写在附录 B,正文的公式和它略有差异,读的时候要注意。
第二步:在多数派里挑 KL 最大的
多数投票只解决了方向,没解决强度。同一个方向上的七个教师可能都支持学生,但支持的力度差很远。第二步在多数派子集里挑与学生 KL 距离最大的那个:
p T ∗ ( c i ) = a r g m a x p T k ∈ M m a j ( c i ) D K L ( p θ ( ⋅ ∣ c i ) ∥ p T k ( ⋅ ∣ c i ) ) p^{*}{T}(c_i)=\mathrm{argmax}{p_{T_k}\in\mathcal{M}{\mathrm{maj}}(c_i)}D{\mathrm{KL}}\left(p_{\theta}(\cdot\mid c_i)\,\|\,p_{T_k}(\cdot\mid c_i)\right) pT∗(ci)=argmaxpTk∈Mmaj(ci)DKL(pθ(⋅∣ci)∥pTk(⋅∣ci))
把选出来的教师代回 OPSD 的目标,就得到 MTA-OPSD 的损失:
L M T A ( θ ) = E x ∑ i = 1 L D K L ( p θ ( ⋅ ∣ c i ) ∥ p T ∗ ( ⋅ ∣ c i ) ) \mathcal{L}{\mathrm{MTA}}(\theta)=\mathbb{E}{x}\\sum_{i=1}\^{L}D_{\\mathrm{KL}}(p_{\\theta}(\\cdot\\mid c_i)\\,\\\|\\,p\^{\*}_{T}(\\cdot\\mid c_i)) LMTA(θ)=Exi=1∑LDKL(pθ(⋅∣ci)∥pT∗(⋅∣ci))
到这里方法就讲完了。没有新增参数,没有新增网络,没有改动学生模型,改的只有一件事:每个 token 的 KL 是跟哪一个教师算的。
text
# 仅示意:MTA-OPSD 一个 step 的选师流程
输入: prompt x, 学生 p_θ, 参考 r_1..r_K
学生采样回答 y_1..y_L
输出: 每个 token 各自的教师分布
for i in 1..L: # 逐位置
c_i = (y_<i, x)
adv, vote = [], []
for k in 1..K: # K 路教师前向
p_Tk = p_θ(·|c_i, r_k) # top-100
a = log p_Tk(y_i) - log p_θ(y_i)
adv.append(a)
vote.append(sign(a)) # 支持 +1
V = sign(sum(vote)) # 多数方向
if V == 0: # 平票比绝对值
V = sign(sum(adv))
maj = [k for k in 1..K if vote[k] == V]
kbest = argmax_k KL(p_θ||p_Tk) # k in maj
loss_i = KL(p_θ || p_Tkbest)
loss = mean_over_batch(sum_i loss_i)
loss.backward() # 只更新学生
损失、伪代码与训练成本
损失项和 OPSD 是同一个形式,区别只在 r* 是逐 token 变的。实现上,一次训练 step 里要先对七个参考变体各做一次教师前向,拿到七个下一个词的分布(论文沿用了前作的设定,只保留教师分布的前 top-100 项),再逐 token 算优势、投票、取 KL 最大者,最后拼出每个 token 各自的教师分布,算 KL 反传。
这意味着教师侧的前向次数是 OPSD 的七倍 。论文没有给吞吐或显存的对照数字,只交代了训练配置:4 张 H200、学习率 1e-6、基于 veRL 的 PPO trainer、FSDP2 分片加 vLLM rollout、全参数训练不用 LoRA、全局 batch 32、训练 300 步、每 50 步评测一次取最好的 Avg@12。所以我只能确认前向次数这个量级,不能替作者补显存账单。
我认为这里有一个值得做工程的读者注意的点:七个教师的输入只在 reference 段落不同,prompt 主体是共享的。理论上 prompt 那段的 KV 可以复用,但七个 reference 长度不同会让后续 response 的位置编码整体平移,KV 复用的收益会被限制在 prompt 前缀那一小段。要做极致优化,得在 batch 维度上按变长打包,而不是简单地拼成一个大 batch。
为什么是「先投票再选 KL」
把可靠方向和信息量拆开
作者对这套两步设计有一个我认为写得相当好的解释:多数投票决定的是「方向可不可靠」,KL 选择决定的是「信息量够不够」,这两件事必须按这个顺序做。
如果直接用 KL 距离选教师,会发生什么?表 8 给了答案:跳过多数投票、直接在池子里取 KL 最大的教师,平均分只有 52.9,比 OPSD 的 54.0 还低。原因不难想:KL 最大的教师很可能是那个「与学生完全对着干」的教师,它的方向未必代表池子的共识,选它等于放大了一个异常意见。
反过来,只用多数投票、在子集里随机挑,平均分 56.6,比完整方法低 0.4。这个差距不大,说明在这套设置里 KL 的作用是精修而不是决定性的。但它确实稳定为正。
| 多数投票 | KL 选择 | AMC23 | AIME24 | AIME25 | 平均 |
|---|---|---|---|---|---|
| 否 | 最远 | 75.8 | 48.9 | 33.9 | 52.9 |
| 是 | 最远 | 78.5 | 51.4 | 41.1 | 57.0 |
| 是 | 随机 | 78.0 | 51.1 | 40.8 | 56.6 |
| 是 | 最近 | 75.7 | 48.6 | 35.6 | 53.3 |
两个方向下的行为差异
作者还分别讨论了两种方向下的机制,这段是理解方法为什么有效的关键。
当多数方向是支持时,多数派教师给学生采样的那个词更高的概率,选 KL 最大的那个意味着「既加强当前选择,又在其它候选上给出明显不同的分布」。也就是说,监督强化了这个 token,但没有把整条分布压成 one-hot,仍然给学生保留了别的可能。作者的说法是,这样能减少对学生当前轨迹的过拟合。
当多数方向是反对时,情况反过来:多数派教师认为这个 token 选得不好。这时候选一个 KL 很小的教师,等于只把这个词的概率轻轻压一点,几乎等于没纠正;选最远的教师,才会把概率质量明显挪到别的候选词上,起到真正的纠偏作用。
我认为这段解释最值得记住的不是机制本身,而是它揭示的一种设计取向:这套方法在做隐式的熵管理。它没有显式的熵正则项,也没有对教师分布的锐度设上界,而是靠「选方向对且离得远」来间接控制每一步的修正力度。
我的保留意见:锐度没有被约束
这里我想提一个作者没展开的问题。KL 最大化的选择会系统性地偏好更尖锐的教师分布------因为分布越尖,与学生的 KL 通常越大。论文在响应级方法上批评的正是「过度尖锐的教师分布」,但 token 级的这套选法并没有给锐度设任何上界,只是加了一道方向共识的闸门。
作者显然意识到了这个张力,所以反复强调「KL 不是独立的教师质量指标,只在方向共识之后才用」。从表 8 看,这道闸门确实有效:去掉它成绩就掉回 OPSD 以下。但我仍然认为,一个显式的锐度约束(比如对教师分布做温度上限,或对 KL 选出的教师再做一次置信度裁剪)是这篇工作留下的直接改进空间。
还有一个我自己更在意的点:论文在 6.3 节观察到,在同一个截断策略下,暴露比例更高并不必然带来更大的学生-教师 KL。附录 E 给了具体数字:Qwen3-4B 的 suffix 截断下,只有 49.1% 的情况是 0.75 的 KL 比 0.5 更大,反过来 50.9% 是 0.5 更大。这个观察的意义超出了本文:它说明「按暴露比例调教师强度」这条路的假设本身就不成立,因为强度和比例之间没有单调关系。这算是给响应级自适应方法的一记侧击。
实验:涨在哪儿,涨多少
设置:三个规模、三个数学基准
模型是 Qwen3 家族的 1.7B、4B、8B 三个规模,训练和验证都开 thinking 模式。训练数据来自 DeepMath-103K,题目难度按规模分开选:1.7B 用 5 到 7 级,4B 用 6 到 8 级,8B 用 7 到 10 级。评测集是 AMC23、AIME24、AIME25 三个数学竞赛集,指标是 Avg@12,也就是每个题采样 12 次取平均正确率。训练时最大生成长度 4096,验证时 38912。
对照分三类:两个固定教师方法 OPSD(前向 KL 加逐 token KL 裁剪)和 SDPO(Jensen--Shannon 散度),一个自适应方法 Paint(按学生-教师差距调参考暴露比例),再加基座模型本身。所有方法的训练和评测设置完全一致,都用数据集自带的标准解答当 privileged 信息,上下文里同时包含推理过程和最终答案。
主结果:三个规模的平均分都是第一
| 模型 | 方法 | AMC23 | AIME24 | AIME25 | 平均 |
|---|---|---|---|---|---|
| Qwen3-1.7B | 基座 | 74.1 | 45.6 | 33.6 | 51.1 |
| OPSD | 75.3 | 49.2 | 37.5 | 54.0 | |
| SDPO | 73.5 | 43.3 | 31.4 | 49.4 | |
| Paint | 76.0 | 47.5 | 38.6 | 54.0 | |
| MTA-OPSD | 78.5 | 51.4 | 41.1 | 57.0 | |
| Qwen3-4B | 基座 | 88.6 | 73.1 | 65.3 | 75.7 |
| OPSD | 89.1 | 74.4 | 65.6 | 76.4 | |
| SDPO | 87.7 | 71.4 | 61.7 | 73.6 | |
| Paint | 89.1 | 71.7 | 66.1 | 75.6 | |
| MTA-OPSD | 89.0 | 74.4 | 68.1 | 77.2 | |
| Qwen3-8B | 基座 | 89.1 | 73.1 | 66.9 | 76.4 |
| OPSD | 89.9 | 75.0 | 67.8 | 77.6 | |
| SDPO | 88.9 | 73.9 | 65.6 | 76.1 | |
| Paint | 90.0 | 76.1 | 68.3 | 78.1 | |
| MTA-OPSD | 89.8 | 77.5 | 70.3 | 79.2 |
读这张表要注意几件事。
第一,增益不是平均分配的。1.7B 是 +5.9,4B 只有 +1.5,8B 回到 +2.8。这个非单调很值得玩味:如果方法只是「更细的监督」,规模越大基线越强,增益理应单调收窄,但 8B 反而比 4B 拿得多。论文没有解释这个现象,我猜和难度分档有关------8B 用的是 7 到 10 级题,教师信号的信息量本来就更大,而 4B 在 AMC23 上的基线已经有 88.6,几乎没剩下空间(这一列从 89.1 到 89.0 基本没动),平均分的涨幅只能靠 AIME 两个集去挣。
第二,收益最集中的是 AIME25,也就是最难的那个集。1.7B 从 33.6 到 41.1,涨 7.5 个点;8B 从 66.9 到 70.3,涨 3.4 个点。难集上涨得多,说明 token 级教师的差别主要出现在长链推理的中后段------简单题学生本来就一次过,用不着教师纠偏。
第三,Paint 在这个实验里的表现不稳定。1.7B 上和 OPSD 打平(都是 54.0),8B 上是 78.1,比 OPSD 的 77.6 高,但在 4B 上只有 75.6,比基座的 75.7 还低一点点。作为唯一个响应级自适应基线,它没有展现出稳定优势,这削弱了「响应级自适应已经够用」的说法。

图 8|同一道椅子题的两条轨迹:MTA-OPSD 一路推到正确答案 907,OPSD 把约束理解错,最后得 9。
图源:Every Token Needs Its Own Teacher: Multi-teacher Adaptive On-policy Self-distillation(arXiv:2610.40574v1),CC BY 4.0
图 8 给了一个具体的定性例子,题目是 16 把椅子坐 8 个人、要求没有三个人连续相邻、问方案数除 1000 的余数,标准答案是 907。MTA-OPSD 一路推导到最终答案 907,中间该做的二值串计数转化和取模都对。OPSD 那条路径在前面的约束理解上就跑偏了,把条件解释成「每人至少隔一个空位」,最后算出的方案数是 9,得数是 9。这类例子说明不了统计显著性,但能让人直观看到「教师选错」会错成什么样。
代价:七倍教师前向,和一张四卡的账单
我把成本部分集中说,因为这是决定要不要试的第一道门槛。
- 前向次数:每个训练 step 要对七个参考变体各算一次教师分布,教师侧开销约为 OPSD 的七倍。
- 分布裁剪:沿用了前作设定,只保留教师分布的前 100 项,这在一定程度上压住了显存和传输开销。
- 硬件与配置:4 张 H200,全局 batch 32,全参数训练,300 步,每 50 步评测一次。
- 学生侧无改动:不加参数、不改结构、不动推理,部署时还是原模型,这和那些要新分支的方法有本质区别。
- 数据前提:必须有题目自带的标准解答当参考,这个前提比算力更硬------没有它整个教师池就构造不出来。
论文没有给出显存占用、单步耗时、或者「如果不做优化要多少卡」的对照。作为读者我只能说:方法在工程上是可行的(作者跑完了三个规模),但七倍教师前向这个数量级意味着它不太可能在单卡上复现。
消融:增益来自池子,还是来自点名
三个消融都在 Qwen3-1.7B 上做,基座平均分 51.1。
换掉池子:多教师真的比任何单个教师好吗
第一个问题很朴素:把七个教师拆开单独训练,会不会有某一个就够了?表 6 的答案是,单个教师里最好的是 prefix-0.75,56.2;MTA-OPSD 是 57.0。
| 教师配置 | AMC23 | AIME24 | AIME25 | 平均 |
|---|---|---|---|---|
| 基座 | 74.1 | 45.6 | 33.6 | 51.1 |
| 完整参考(即 OPSD) | 75.3 | 49.2 | 37.5 | 54.0 |
| prefix-0.5 | 76.8 | 50.8 | 40.0 | 55.9 |
| prefix-0.75 | 78.2 | 49.4 | 41.1 | 56.2 |
| suffix-0.5 | 75.9 | 48.6 | 34.7 | 53.1 |
| suffix-0.75 | 75.0 | 50.3 | 40.0 | 55.1 |
| random-span-0.5 | 76.8 | 49.4 | 36.9 | 54.4 |
| random-span-0.75 | 76.4 | 50.6 | 35.8 | 54.3 |
| MTA-OPSD | 78.5 | 51.4 | 41.1 | 57.0 |
这张表里有一个我认为必须点出来的数字:池子里最好的单教师 prefix-0.75 56.2,和多教师路由的 57.0,只差 0.8。而完整参考的 OPSD 是 54.0,落后 3.0。
换个说法:如果你的运气够好、正好把参考暴露调到 prefix-0.75,这套方法相对你的收益会缩水到 0.8 个点。它真正稳赚的部分,是不用去猜那个暴露比例------七个候选一起放进来,让每个 token 自己挑。作者的表述是「多教师池提供了多样、充分、互补的学习信号」,从这个表看,互补性确实存在,但幅度没有摘要给人的印象那么大。
另一个值得注意的细节是 suffix 类配置整体偏弱,suffix-0.5 只有 53.1,低于完整参考的 54.0。这和前面四张池子图对得上:suffix 教师一上来就看见结论,缺了推导的起手,对中段推理的帮助有限。
保留池子,换掉点名方式
第二个消融把变量隔离得很干净:池子不动,只换分配策略。对照组是随机挑一个教师,和把所有教师的蒸馏损失平均。
| 分配策略 | AMC23 | AIME24 | AIME25 | 平均 |
|---|---|---|---|---|
| 基座 | 74.1 | 45.6 | 33.6 | 51.1 |
| 随机挑一个 | 76.1 | 49.2 | 35.5 | 53.6 |
| 平均所有教师损失 | 75.7 | 48.9 | 36.4 | 53.7 |
| MTA-OPSD | 78.5 | 51.4 | 41.1 | 57.0 |
这组数字很关键,因为它回答了「增益到底来自哪里」。随机挑是 53.6,平均损失是 53.7,两者几乎一样;完整方法 57.0,比它们高 3.3 到 3.4 个点。也就是说,池子本身只值 2.5 个点左右(相比基座),而「怎么给 token 配教师」再值 3 个多点。
更有意思的是,随机挑的 53.6 甚至低于单教师 prefix-0.75 的 56.2。这说明混着用如果选不对,反而比老老实实单用一个好教师更差。这对想省事的团队是个明确警告:多教师池不是免费的午餐,配错教师会产生负迁移。
两步各值多少,以及教师分配长什么样
表 8 前面已经贴过,这里换个角度读:把「多数投票」和「KL 选择」当成两个开关,四个组合的平均分分别是 52.9、57.0、56.6、53.3。两个开关单独开都不如一起开,而单开 KL(52.9)甚至不如不开(54.0 的 OPSD)。这个结果支持作者的排序主张:方向闸门是前提,信息量是精修。
论文还报告了教师分配的动态:整个训练过程中,被选中的教师比较均匀地分布在池子里,没有塌缩到某一个主导教师。这条观察我认为比它看起来更重要------如果分配塌缩了,多教师池就退化成了单教师,方法的卖点也就没了。作者用「分布相对均匀」来描述,但没有给具体曲线或熵值,这一点信息量偏弱。
局限与失效场景
论文没有单独写 limitations 一节,结论里只提了两条 future work:自演化的教师池和更稳定的多教师训练。下面这些是我从实验设置、消融结果和方法的假设里读出来的边界,属于我的判断,不是作者的原话。
作者自己承认没解决的事
- 教师池是静态的、人工设计的。七个配置(三种截断乘两档比例加完整参考)是拍出来的,论文没有说为什么是这七个,也没有做「池子大小 K 怎么选」的消融。future work 里的自演化教师池,等于承认这一步现在靠人工。
- 多教师训练的稳定性没有被讨论。作者在 future work 里提「更稳定的多教师训练」,说明这一块现场还有坑,只是论文里没展开。
- 训练规模很小。300 步、全局 batch 32、单一数据集 DeepMath-103K、只做数学。这个规模足以说明方向,但不足以说明它能撑住一次真正的后训练。
我判断会崩的几类输入
- 参考解本身有错或者有多条合法路径。整套方法的前提是「标准解答是可信的强信号」。如果数据集里的参考解质量参差,七个教师会集体指向同一个错误方向,多数投票完全无法发现问题------它只检查方向是否一致,不检查方向是否正确。这一点在数学竞赛数据上问题不大,在人工标注的领域数据上会很致命。
- 学生已经答对、但走的是另一条路。多数派教师会「反对」学生当前的选择(因为参考走的是别的路径),方向判为负,于是系统会去纠偏一个本来正确的 token。这是 OPSD 的老毛病在 token 级的重现,理论上被「每个 token 单独投票」缓解了,但没有被消除。
- 极难题、学生全错的情况。这时几乎所有教师都反对学生的采样,方向一致为负,第二步就会稳定地选最远的教师,纠正力度拉满。单步看这是对的,连续几十步都这样可能过冲,把学生的分布推到一个更糟的区域。论文没有报告训练崩溃率或 KL 曲线的稳定性。
- 参考被截断到语义断裂。池子里 suffix 类教师能看到的部分包含「truncated on the left」这种人工标记,模型对这类标记的反应没有被分析过。suffix-0.5 的单教师成绩最差(53.1),可能就和这个有关。
- 非数学、非可验证任务。方法的优势来自「有标准解答」,没有标准解答就没有 privileged reference,池子无从构造。
统计与规模上的边界
- 试点实验的样本不大:64 条 prompt、两个模型、三个干预长度。表 1 的重合率只有三个数,且相互不独立。这些结论的方向可信,精度别当真。
- 主实验只报了最好的 checkpoint(每 50 步评测取最佳 Avg@12),没有报多个随机种子的方差。4B 上 +1.5 的增益,在 AIME 这种小样本集(题目数少、采样 12 次)上,很可能被种子波动吃掉一部分。
- 增益与规模的关系不单调(+5.9 / +1.5 / +2.8),论文没解释。这既是研究的空白,也是复现时的风险:你不一定能拿到摘要里那个数字。
落地判断:谁该试,谁别碰
有参考信号的场景:值得认真评估
如果你的任务满足「每条训练样本都带一个可信的参考答案」,这套方法是可以直接评估的候选方案。典型场景:
- 数学与竞赛题:这就是论文验证的场景,数据管线完全对得上,参考解通常还带完整推导。
- 代码生成且有单元测试:通过测试的解法可以当参考,甚至能构造多个不同实现当作不同的「教师视角」,池子的多样性天然更好。
- 有标准答案的考试类任务、结构化抽取、形式化证明:只要能验证对错,就能拿到可信参考。
- 已经在跑 OPSD、并且苦于调参考暴露比例的团队:这是这套方法最有把握的收益点。你不用再去猜 0.5 还是 0.75,七个一起放进来让 token 自己挑,表 6 显示池子里最好的单教师 56.2、路由后 57.0、而完整参考只有 54.0。相对「没调好」的 OPSD,收益是实打实的;相对「调到最优」的单教师,收益只有 0.8。
前置条件也得说清楚:要有至少能放下七倍教师前向的算力(论文是 4 张 H200 起),要有带标准解答的数据集,要能接受训练代码从 OPSD 改造成「多参考前向 + 逐 token 路由」。不改学生模型、不加推理开销这两点,让它比那些要加分支的方法更容易上线。
没有参考的场景:别碰
- 开放式写作、对话、摘要:没有标准答案,就构造不出 privileged reference,教师池无从谈起。
- 偏好对齐、人味风格、安全边界这类目标:它们的「正确答案」不是一段可读的参考文本,教师看到什么、看不到什么没法用截断比例表达。
- 纯 RLVR 场景但只有对错奖励:如果你手上只有 verifiable reward 而没有参考解,得先解决「参考从哪来」,这一步比后面的路由难得多。
- 只有单卡或少量算力的团队:七倍教师前向加上逐 token 的七路分布比对,成本和门槛都远超一次普通 SFT。表 8 显示跳过多数投票直接选最远会掉回 OPSD 以下,说明这套流程没有可以随便省略的环节。
一个更省的折中
如果七倍前向吃不消,我自己会考虑两个降级方案,都属于我的推测而非论文验证过的设置:
一是把池子缩到三个教师(完整参考加 prefix-0.5 加 suffix-0.5),表 6 里这三个的单教师成绩分别是 54.0、55.9、53.1,方向互补性还在,前向降到三倍。二是把 KL 选择换成「按 token 熵分档」的规则选择,高熵 token 用最远教师、低熵 token 用完整参考教师------这相当于用工学先验替掉投票,省掉七路优势计算,但会丢掉本文最核心的自适应性质。
这两个折中都还没有人验证过,写在这里是因为落地时预算往往是第一个约束。真要用,先在小规模上做一次和完整方法的对照,别直接拿去跑正式训练。
术语速查
论文里的专有名词
| 术语 | 原文含义与我的补充说明 |
|---|---|
| OPSD | on-policy self-distillation,学生和教师共用同一套权重,教师的上下文里额外接入 privileged reference |
| privileged reference | 学生看不见、教师能看见的参考信号,本文是数据集自带的标准解答,含推理过程和最终答案 |
| MTA-OPSD | 本文方法,多教师池加逐 token 的两步教师选择,全称 Multi-teacher Adaptive On-policy Self-distillation |
| 多教师池 | 同一模型在七种参考变体下形成的候选教师集合,论文记作 M,默认 K=7 |
优势信号 a_T |
教师与学生在该 token 上的对数概率差,符号表示支持或反对学生的采样 |
| 多数投票子集 | 按优势符号分组后人数占优的那一侧教师,论文记作 M_maj |
| 教师干预 | 保留学生前缀、让候选教师续写 k 个 token、再交还学生完成,用最终准确率增益衡量教师偏好 |
| 暴露比例 | 教师能看到参考的多大比例,本文取 0.5 和 0.75 两档 |
| 截断策略 | 参考保留哪一段,本文取 prefix、suffix、random-span 三种 |
| Avg@12 | 每题采样 12 次取平均正确率,本文所有主结果的评测指标 |
一句话回顾
如果只记三件事,我建议记这三条:
- 教师偏好在 token 级不同,同一段 rollout 里两个位置的偏好重合率只有约 50%,这是全文所有设计的出发点。
- 有效的是「先投票定方向、再选 KL 最大定强度」这个顺序,跳过任何一步成绩都会掉回 OPSD 附近。
- 相对于调到最优的单教师,它多赚的是 0.8 个点;相对于没调好的 OPSD,它多赚的是 3 个点。判断值不值得上,取决于你现在站在哪一边。