DAPD:学生看不到答案,凭什么装得像看过答案?
你有没有干过这种事——考试的时候对着答案订正错题,订正完觉得自己会了,结果下次合上答案还是不会。
大模型训练里有个几乎一模一样的毛病。现在流行一种叫在策略自蒸馏(On-Policy Self-Distillation, OPSD)的后训练方法:让模型自己采样一条解题轨迹,然后让一个"偷看过参考答案"的自己当老师,逐 token 地教那个"没看答案"的自己。听着挺美好,训练曲线也确实在涨。但问题来了——学生学着学着,开始在推理时装模作样:明明没看到答案,却表现得好像答案就在眼前,直接跳过推导蹦出一个断言,还编一套理由圆它。
这篇论文给这个现象起了个名字,叫特权幻觉(Privilege Illusion)。说实话,我读到这个词的时候第一反应是:终于有人把这件事说清楚了。
核心摘要:OPSD 训练里,教师拿着参考答案当特权信息,学生推理时却两手空空——这个信息不对称才是特权幻觉的病根,而不是教师信号本身有噪声。DAPD 的解法很直接:别再去修补教师的信号了,直接给师生双方匹配信息可用性,再加一个可训练的 Self 分布当桥梁锚点。在 Qwen3 五个规模上,DAPD 平均比 OPSD 高 2.00 分,AIME25 上高了 4.44 分,错误断言降了约七成。我的判断:这不是什么底层理论突破,但它把一个被很多人忽略的结构问题点破了,而且方案简单到你会有点不好意思——"怎么之前没人想到"。
论文信息 - 标题:DAPD: Dual-Anchored Policy Distillation - 作者:Jianyu Wu, Yizhou Wang, Encheng Su, Chen Tang, Shixiang Tang - arXiv:2608.01735,2026 年 8 月 3 日
🎯 特权幻觉:越训越爱"装"
先把问题本身讲清楚。
OPSD 的训练流程是这样的:给定题目 \(x\) 和参考答案 \(y^*\),从当前策略采一条 rollout \(y\)。然后在每个前缀 \(y_{\lt t}\) 处构造两个分布——一个是 None 分布 \(p_\theta(\cdot | x, y_{\lt t})\),不看答案,对应推理时的真实状态;另一个是 Cross 分布 \(p_\theta(\cdot | x, y_{\lt t}, y^*)\),把参考答案塞进上下文,让同一个模型瞬间变成更强的教师。训练目标就是拿停止梯度的 Cross 去监督 None。
直觉上没毛病:老师看了答案,学生没看,老师教学生,天经地义。
但作者做了一个行为探针实验,结果挺扎心的。他们统计了生成中的"错误断言"(wrong claims)——也就是模型在没有任何依据的情况下直接断言一个答案、然后围绕它编推导的行为。在五个 Qwen3 规模上,随着 OPSD 训练推进,这个数从每万次生成 13.0 次一路飙到 37.0 次,同期推理 Avg@12 从 59.56 掉到 53.24。

上图(a)是训练过程中错误断言数量的变化:灰色 OPSD 曲线在 200 步之后急剧上扬,300 步时冲到 37 左右;深绿方块是完整 DAPD,全程压在低位。浅绿的 Privileged Anchor 曲线就是后面要说的"信息不对称验证实验",错误断言比 OPSD 少了 45%。下图(b)是对应的 Avg@12 走势:OPSD 在 200 步后明显塌掉,终点比 Privileged Anchor 低 6.22 分。两张图放在一起看,幻觉涨、性能跌,相关性一目了然。
你想想看这个行为像什么——像极了抄作业抄多了的学生,形成了肌肉记忆:反正答案总是在附近的,先写个数再说。训练时 Cross 分布老是在旁边"递小抄",学生的 None 分布被拉着去模仿它,久而久之就学会了"答案会自己出现"这个虚假的先验。
🔍 病根:不是老师教错了,是师生信息不对称
出了问题,大家的直觉反应都是修教师信号。已有的方案也确实是这么干的:SDFT、SDPO 这类直接把特权信号灌给学生;Purified OPSD、DOPD 这类则试图过滤或重加权教师信号,把"依赖特权"的那部分压掉。
作者的诊断是:这些全是在治标。问题的结构根源是信息不对称——教师有特权信息,学生推理时没有,两者压根不在同一个信息条件下,你让其中一个模仿另一个,模仿出来的必然是"假装有特权"的行为。
说到这个,其实类似的现象在别的训练范式里也露过头。比如 RLHF 里做 RLAIF 的时候,评审模型能看到 rubric,被打分的模型看不到,训久了也会出现"迎合隐藏标准"的怪行为。再往前数,知识蒸馏领域老早就知道 teacher-student gap 这回事,但多数人把它当成能力差距来处理,很少有人从"信息可用性"这个角度去拆。DAPD 把这个视角挪到自蒸馏场景,算是捅破了一层窗户纸。
光说不练假把式,作者做了个相当漂亮的验证实验:保持教师不动,把学生的 None 分布换成 Self 分布 \(p_\theta(\cdot | x, y_{\lt t}, y)\)——也就是让学生也看到自己生成的完整补全。这样 Cross 和 Self 都拿着完整信息,信息不对称消失了。结果是错误断言直接少了 45%,推理 Avg@12 涨了 6.22 分。
这个实验我觉得是全文最值钱的部分。它把"幻觉从哪来"这件事从一个模糊的抱怨变成了一个可验证的因果命题:改信号没用,改信息条件才有用。
🏗️ DAPD:加一个 Self 当桥梁,两条路径对齐
诊断清楚了,药方其实就顺了。既然 None(无特权、可训练)和 Cross(有特权、停梯度)之间隔着一条信息鸿沟,那就造一座桥。
这座桥就是 Self 分布 \(p_{\text{Self}}^s = p_\theta(\cdot | x, s_{\lt t}, s)\),条件于完整补全 \(s\)。它的身份很妙:跟 Cross 比,它共享策略参数、是可训练的;跟 None 比,它手里拿着完整补全、信息条件和 Cross 是对齐的。原本"无特权的可训练学生"和"有特权的停梯度教师"之间的空档,被它正好填上。
围绕这三个分布,DAPD 在每个补全来源 \(s \in \{y, y^*\}\) 上定义三个目标。纠缠蒸馏 \(\mathcal{L}_{\text{ent}}^s = \text{D}(\text{sg}[p_{\text{Cross}}^s] \| p_{\text{None}}^s)\) 保留原版 OPSD 的特权引导;推理锚 \(\mathcal{L}_{\text{infer}}^s = \text{D}(\text{sg}[p_{\text{None}}^s] \| p_{\text{Self}}^s)\) 把 Self 拉向 None,相当于告诉桥梁"别忘了学生推理时的真实处境";特权锚 \(\mathcal{L}_{\text{priv}}^s = \text{D}(\text{sg}[p_{\text{Cross}}^s] \| p_{\text{Self}}^s)\) 则在双方都有完整信息时直接对齐——这时候没有信息差了,蒸馏是"干净"的。
三个目标再组装成两条路径,这就是 Dual-Path Anchoring(DPA):无条件路径走 \(\mathcal{L}_{\text{infer}}^{\bar{s}} + \mathcal{L}_{\text{ent}}^s\),全程不依赖特权信息;特权路径直接用 \(\mathcal{L}_{\text{priv}}^s\),双方信息匹配。
还剩一个问题:引导从哪来?参考答案可靠但可能偏离当前策略,rollout 学生够得着但可能是错的。作者的答案是 Dual-Source Anchoring(DSA)——两个方向都要,用 \(\lambda\) 加权:
工程上这个设计有个很实在的好处:没有任何额外模型,教师、学生、桥梁全是同一个策略的不同条件化版本,推理时零额外开销。代价全在训练侧——三个分布、两个方向,算下来每个 token 位置要跑好几个 forward。这笔账后面再算。

方法总览图。左边是 Dual-Source Anchoring:教师策略(拿着参考 \(y^*\))和学生策略(拿着 rollout \(y\))是两个分布"大陆",参考→rollout 和 rollout→参考两个方向互相锚定,目标策略被拉到中间。右边是 Dual-Path Anchoring 的分布视角:上方红色的无条件路径把 \(p_{\text{None}}^y\) 经纠缠项推向 \(p_{\text{Cross}}^y\),同时 \(p_{\text{Self}}^{y^*}\) 被推理锚拉向 \(p_{\text{None}}^{y^*}\);中间被叉掉的 OPSD 直连标注着 information asymmetry;下方蓝色的特权路径让都有完整补全的 \(p_{\text{Self}}^y\) 和 \(p_{\text{Cross}}^y\) 直接对齐。中间那个小小的 \(p_{\text{self}}\) 就是整个框架的枢纽。
📊 实验:数字能打,但有几个地方值得细看
好,方法讲完了。work 不 work?看数据。
训练用 OpenThoughts 数据集,按任务家族分领域训练,Qwen3 系列 1.7B 到 32B 五个规模,LoRA(rank=64)微调。评估覆盖推理(AIME24/25、HMMT25,Avg@12)、编程(LiveCodeBench v5、BFCL v3)和指令遵循(IFBench)。基线包括 OPSD、SDFT、SDPO、Purified OPSD、DOPD。
主表:六边形碾压,但幅度要分开看
Qwen3-4B 上的完整对比:
| 方法 | AIME24 | AIME25 | HMMT25 | LCB v5 | BFCL v3 | IFBench | 平均 |
|---|---|---|---|---|---|---|---|
| Base | 75.56 | 65.56 | 42.50 | 52.11 | 61.38 | 29.67 | 54.46 |
| SDFT | 75.00 | 62.78 | 41.94 | 51.05 | 61.26 | 33.00 | 54.17 |
| SDPO | 70.56 | 62.78 | 40.83 | 50.53 | 61.75 | 32.67 | 53.19 |
| OPSD | 76.67 | 67.78 | 43.33 | 52.26 | 61.32 | 30.67 | 55.34 |
| Purified OPSD | 76.67 | 67.50 | 45.00 | 53.16 | 62.50 | 32.67 | 56.25 |
| DOPD | 73.61 | 65.00 | 38.89 | 50.30 | 61.47 | 31.67 | 53.49 |
| DAPD | 77.22 | 72.22 | 46.39 | 53.31 | 61.91 | 33.00 | 57.34 |
DAPD 在六个基准上全面超过 OPSD,平均高 2.00 分。提升的分布很有讲究:AIME25 上高 4.44 分、HMMT25 上高 3.06 分,越难的任务涨得越多;而 BFCL v3 这种相对饱和的基准只高 0.59 分,天花板压着呢。
有两个基线的表现值得说道。SDFT 和 SDPO 这两个"直接灌特权信号"的,平均分别 54.17 和 53.19,连 Base 都没打过——直接把答案喂出来的教师,教出来的学生连原模型都不如,这从侧面佐证了幻觉问题的严重性。DOPD 更惨,53.49,过滤特权信号的努力反而把有用的引导也滤没了。Purified OPSD 倒是还行,56.25,是最强的基线,但它毕竟是打补丁,跟 DAPD 的结构性方案差着 1.09 分。
跨规模:OPSD 的增益在大模型上直接消失了
这张表我个人觉得是全文最有信息量的一张:
| 模型规模 | OPSD vs Base | DAPD vs Base | DAPD vs OPSD |
|---|---|---|---|
| 1.7B | +5.19 | +7.13 | +1.94 |
| 4B | +1.39 | +4.08 | +2.69 |
| 8B | +0.00 | +2.41 | +2.41 |
| 14B | +0.09 | +2.13 | +2.04 |
| 32B | +0.28 | +3.06 | +2.78 |

上图(a)是 4B 上六个基准的柱状对比,绿色 DAPD 柱子在每个任务上都压过灰色 OPSD,差距标注在柱顶。下图(b)是更要命的规模曲线:灰色 OPSD 相对 Base 的增益从 1.7B 的 5.19 分一路俯冲,8B 之后基本贴着零轴躺平;绿色 DAPD 曲线虽然也在降,但全程保持在 2 分以上,32B 处还翘头到 3.06 分。两条曲线之间那块绿色阴影,就是特权幻觉吃掉、又被 DAPD 抢回来的增益。
看到这个曲线我愣了一下。OPSD 在 8B 及以上几乎零增益——也就是说,如果你用 OPSD 训大模型,训了个寂寞。作者的解释是大模型的 rollout 本身包含更多有用推理,但特权幻觉也更严重地把这些增益抵消掉了。DAPD 把信息条件对齐之后,这部分被吃掉的增益回来了,所以 32B 上 DAPD vs OPSD 反而最大,高 2.78 分。
说实话这里我有个没完全想通的点:为什么 1.7B 上 OPSD 的增益反而最高?小模型幻觉应该也不少啊。作者的叙事是"大模型 rollout 质量高、被幻觉抵消得多",逻辑上自洽,但小模型高增益的具体机制论文没展开。可能我的理解有偏差,欢迎指正。
消融:每个锚都在干活
路径组件消融(Avg@12):只用纠缠蒸馏时 Reference 源 62.13、Rollout 源 63.33;加上推理锚后涨到 63.43 和 64.91;再加特权锚到 63.89 和 65.09。两个来源趋势一致,推理锚的增量比特权锚大——这说明"把学生推理时的真实处境锚住"是收益的主要来源,跟根因诊断对上了。
引导来源消融也有意思:只用参考引导 63.89,只用 rollout 引导 65.09,双源结合 65.28。等等,单看的话 rollout 引导居然比参考引导好?这与直觉相反——参考答案不是更可靠吗?我的解读是:rollout 在学生自己的分布内,学起来没有分布偏移的损耗;而参考答案再对,也是"别人家的轨迹"。双源结合只比纯 rollout 高 0.19 分,这个增量说实话不算大,DSA 的贡献更像是稳健性而非绝对性能。
\(\lambda\) 的扫描给出了一个实用的调参指引:1.7B 偏好 \(\lambda=0.5\)(参考引导占一半),4B 以上全是 \(\lambda=0.2\) 最优(rollout 引导占八成)。模型越大,越该信自己的 rollout。
训练细节里藏着的真功夫
有个细节容易被略过,但对复现的人来说很关键:散度函数用的是分量裁剪前向 KL:
工程直觉是这样的:词表里几万个 token,教师分布在极少数 token 上的 logit 差可能非常大,朴素 KL 会被这些"尖刺"主导,梯度全喂给长尾了。给每个分量的贡献设个上限 \(c=0.05\),等于强制把学习信号摊平到更多 token 上。消融数据支持这个判断:分量裁剪前向 KL 拿到 65.28,而无裁剪前向 KL 只有 62.50,裁剪反向 KL 62.50,无裁剪反向 KL 63.33——接近 3 分的差距,比很多方法创新的增益都大。说实话,这种"不起眼的工程选择决定成败"的戏码,在蒸馏工作里我见过不止一次了。
其余配置一并记下:LoRA rank 64、scale 128,学习率 \(5 \times 10^{-6}\) 线性衰减 500 步,batch size 32,rollout 采样温度 1.1、top-p 0.95、max 1024 tokens,训练上下文拉到 20K,bf16 加梯度检查点。这些数没什么玄的,但少了哪个你都复现不出来。
无参考场景:顺手打开的一扇门
还有个挺实用的探索:没有参考答案时,用另一条独立 rollout 或经正确性验证的 rollout 替代 \(y^*\),框架照样转。4B 上用验证 rollout 能到 66.11(OPSD 62.59),8B 到 67.59(OPSD 65.00)。对那些参考答案稀缺的任务,这条路的价值可能比主结果还大——当然,前提是你要有可靠的自动验证信号,开放式任务上这个前提不成立。
还有个分布外泛化的实验值得补一句:只在推理数据上训练,然后直接测编程和指令遵循,DAPD 在 LiveCodeBench v5 上比 OPSD 高 4.82 分(54.14 对 49.32),BFCL v3 和 IFBench 基本持平。只在数学题上训,代码能力反而涨得最多——我的理解是,幻觉少了之后模型更愿意老老实实做长链条推导,这个习惯是跨任务迁移的。当然 BFCL 和 IFBench 没涨也说明,它不是万灵药,工具调用这类能力光靠推理蒸馏带不动。
🤔 泼点冷水
数据确实能打。但有几个地方我觉得读者要心里有数。
训练开销是第一笔账。三个分布、两个方向,每个位置大约 6 个 forward pass,再加上 20K 的训练上下文,LoRA 虽然省了显存,总计算量比原版 OPSD 翻了好几倍是跑不掉的。论文没给具体的训练时长对比,这是个遗憾——如果训练成本是 OPSD 的三倍,那 2 分的平均提升在预算紧张的团队眼里就得重新掂量了。
架构泛化是第二笔账。全部实验都在 Qwen3 家族上做,换 Llama、换 DeepSeek 还成立吗?Self 分布的有效性依赖"同一模型不同条件化"这个设定,不同架构的模型对上下文里塞答案的敏感度差别挺大的,这块没测,谨慎乐观。
另外定性案例虽然生动——AIME24 那道圆环切球题,OPSD 推导卡住后直接来了句 "I recall that the answer is likely 36/7",典型的幻觉式断言,DAPD 则老老实实推完两种情况得到 127——但案例毕竟是挑出来的,行为探针的量化数据(250 到 300 步间错误断言降约 73%)才是更硬的证据。
💡 我的判断
坦率的讲,这篇论文不是那种理论上有多少新意的工作——Self 分布、双向蒸馏、加权组合,单拎出来每个都不新鲜。它真正的贡献是把一个被大家含糊对待的问题变成了结构性的诊断:幻觉不是教师信号的错,是信息条件不匹配的错。诊断一旦清楚,药方几乎是自动推导出来的。
对工程实践的启发,我觉得有三层。
其一,如果你在做任何带特权信息的蒸馏(教师看答案、看检索结果、看工具返回),先问自己一句:学生推理时能看到这些吗?看不到,那特权幻觉就是你迟早要踩的坑,DAPD 的"信息匹配 + 锚点"思路值得直接搬。
其二,行为探针这个做法值得学。光看 benchmark 分数你发现不了幻觉——性能掉了你才知道出事了。直接统计"无依据断言"这类行为指标,能在训练早期就暴露问题。
其三,无参考场景的扩展才是真正有想象力的部分。参考答案总有用完的一天,但 rollout 是无限的,配合一个验证器,这套框架可以滚起来自举。
用一句话收尾:修信号不如修信息条件——这个道理不止适用于蒸馏,做 RL、做 agent 训练的人都可以琢磨琢磨。
觉得有启发的话,欢迎点赞、在看、转发。跟进最新AI前沿,关注我