精读:NSD 负向自蒸馏 —— 不靠近看过答案的自己,只远离粗心的自己
NSD 让模型自己生成「粗心的解题者」当负教师,再用门控 unlikelihood 把学生分布推离它,全程不用标准答案、不用外部教师;本专栏重算后发现等权 ΔAvg 里 57% 的权重压在 9% 的评测题上,且纯噪声负条件在策略梯度设定下三个尺寸全部第一
1 论文概览
一句话总结:把自蒸馏的目标函数翻个符号——不去贴近「看过标准答案的自己」,而是推离「被提示成粗心解题者的自己」,并且全程不需要标准答案、不需要外部教师。
核心问题:On-Policy Self-Distillation(OPSD)让模型拿着金标答案当提示,给自己的采样轨迹打密集的 token 级监督,省掉了外部教师。代价是这位教师因为预先知道答案,产出的轨迹过度自信、过度线性。学生去拟合它,等于把「不确定」和「回头检查」这两种行为一起压掉了。论文把这个退化写得很直接:
By forcing the student to imitate an artificially confident reasoning trace conditioned on privileged information, OPSD inadvertently suppresses expressions of uncertainty and penalizes the exploratory, self-corrective behaviors required to solve challenging problems. —— 摘要
主要贡献:
- 提出 NSD(Negative Self-Distillation):一套 label-free、完全自举的训练框架。监督信号的来源不再是「正确答案」,而是「模型自己想象出来的坏解题方式」。
- token 级自适应门控 + 有界 unlikelihood:解决「哪些 token 才是真正的推理缺陷」与「unlikelihood 目标在高置信 token 上梯度爆炸」这两个问题。
- 三档负条件策略:在线解感知、离线问题级、以及直接塞无关维基百科段落当噪声(wiki-irr),都能跑通且效果接近。
- 效率账:每条样本只需 1 次 rollout(GRPO 类方法要 8 次),损失函数只用三个标量概率,不做全词表 logits 对齐。
- 反射行为的量化证据:用「反思 token 频率」做指标,测出 OPSD 与 Intuitor 把反思行为压掉了,NSD 把它抬上去了。
2 方法详解
架构与方法概述
NSD 的骨架出乎意料地轻。给一个无标注问题 ,流程是三步:
- 学生 采样一条轨迹 ,再用一个元提示让同一个模型为这道题生成一句负条件 (例如「扮演一个粗心的解题者」)。论文默认的在线策略是让模型先看到自己的初始解再生成负条件:。
- 冻结两个初始模型的副本: 只看原题, 看「原题 + 负条件」。
- 对学生采样到的每个 token ,比对两个冻结副本给出的概率,算出更新量。
关键创新点
创新点一:门控只认「被负条件抬高的 token」。
这是全文最核心的一个设计。门控函数定义为
论文对它的解释是:
If , the token is not activated by a negative condition and naturally exempt from penalization, preserving the model’s original generative distribution. Conversely, if , it indicates that the negative prompt has boosted the token’s likelihood, marking it as a critical target for suppression. —— §2.3
这个判据的巧妙之处在于它不问「这个 token 好不好」,只问「这个 token 是不是负条件带来的」。判断一个 token 是不是推理错误需要金标或者有能力的评审;判断「加了负提示之后它的概率涨了没有」只需要两个前向传播。整个「识别缺陷」的难题被替换成了一个差分问题。
创新点二:用 Sigmoid 把惩罚压成有界量。
标准 unlikelihood 是 ,当 时损失和梯度一起发散。论文在外面套一层 Sigmoid,得到
附录 A 给了闭式梯度。对 logit 求导,标准形式是 ,随学生置信度单调递增, 时达到 ;Sigmoid 形式是
这个函数有个干净的极值,论文只给了图,这里补上解析解:令导数为零得 ,峰值在 ,峰值为 。也就是说 Sigmoid 把惩罚梯度的天花板从 压到了 ,在 处标准形式的梯度是 Sigmoid 形式的 倍,而 时 Sigmoid 形式的梯度趋于 0。
还有一个值得记下来的性质:损失值和梯度在 NSD 里是脱钩的。固定门控 时, 随 从 单调升到 ,而梯度在 之后一路降到 0。高置信 token 拿着最大的损失值,却几乎拿不到梯度。论文图 3 右图画的是实测分布,容易被读成「损失权重被转移到了低置信 token」,实际那张图里起作用的是 与 的经验相关性,不是公式本身的单调性。
创新点三:KL 锚定项,权重只有 0.01。
总目标是 ,其中 。这个权重小到几乎可以忽略,可 §5.2 的消融显示去掉它会在训练中途崩掉:
Removing the KL constraint leads to a mid-training collapse. —— §5.2
论文观察到 noKL 变体在第 120 步左右:前向 KL 剧烈震荡,平均门控激活 断崖式下跌, 的均值也大幅下降。作者的解读是模型漂得太远,门控开始乱激活、失效。
与基线方法的区别
附录 B 的表 4 把 NSD 和六类方法按五个维度做了对照,最有信息量的是「信号来源」和「是否监控信号质量」两列:
| 方法 | 信号来源 | 需金标 | 监控信号质量 |
|---|---|---|---|
| SFT / 离策略蒸馏 | 外部教师 | 否 | 否 |
| RLVR (GRPO) | 金标 | 是 | 是(噪声梯度被抵消) |
| OPD | 外部奖励 | 否 | 否 |
| OPSD / SDPO | 金标 | 是 | 否 |
| RLIF (Intuitor) | 内部指标(自信度) | 否 | 否 |
| TTRL | 多数投票 | 否 | 否 |
| NSD | 负条件 | 否 | 是(门控过滤) |
NSD 是表里唯一在「不用金标」的前提下还做了显式信号过滤的方法。它的对照组也选得有讲究:OPSD 代表「用金标走自蒸馏」,Intuitor 代表「用自信度自我奖励」,TTRL 代表「用多数投票造假金标」。三类替代自举信号各出一个代表。
3 实验结果
主要指标
主表在三个尺寸(Qwen3-1.7B / 4B / 8B)、七个数学基准上汇报 avg@8(非思考模式)。Avg 是相对同尺寸基座的七个基准绝对增益平均。
| 方法 | 1.7B | 4B | 8B |
|---|---|---|---|
| OPSD † | +1.1 | +1.0 | +0.3 |
| Intuitor | −0.5 | +1.3 | +1.9 |
| TTRL | +0.3 | +0.2 | −0.1 |
| NSD | +2.3 | +7.5 | +6.0 |
† 表示需要金标。1.7B 的 NSD 行给了 95% CI 与单侧 ;4B 行 、8B 行 的 p 值单元格在表里是空的。
4B 上逐基准拆开看,增益分布极不均匀:
| 基准 | AIME24 | AIME25 | AIME26 | HMMT | AMC | Oly | MATH-500 |
|---|---|---|---|---|---|---|---|
| 基座 | 23.8 | 20.4 | 17.9 | 10.8 | 68.8 | 47.8 | 71.2 |
| NSD | 35.8 | 31.3 | 29.2 | 16.3 | 76.3 | 51.0 | 73.1 |
| 差值 | +12.0 | +10.9 | +11.3 | +5.5 | +7.5 | +3.2 | +1.9 |
与 SOTA 的对比
严格说这篇论文没有对外部 SOTA。它的比较类是「label-free 自举训练」,论文自己在附录 B 也承认:
Note that our NSD is a label-free approach, which is not directly comparable to baselines that rely on additional or external supervision. —— 附录 B,表 4 注
需要注意两点。第一,主表里没有带金标的 RLVR(GRPO),而它才是当前后训练的主流范式;论文用 OPSD 当”用金标”的参照,OPSD 在本表里三个尺寸只拿到 +1.1 / +1.0 / +0.3。第二,对照组里存在配置不对等:NSD 学习率 、批大小 32、每条样本 1 次 rollout;TTRL 学习率 、批大小 8、PPO mini-batch 1。TTRL 拿到 +0.3 / +0.2 / −0.1 之后被归因为「多数投票伪标签不行」,但它的学习率只有 NSD 的二十分之一。
思考模式下(4B,表 7)NSD 是 +3.0,OPSD +0.2,Intuitor −11.3,TTRL −1.9。Intuitor 的崩塌原因是过度思考,输出超长被截断。
消融实验关键发现
消融一:负条件的内容有多重要? 论文测了四种策略,结果对「精心设计的负条件」不太友好。默认在线解感知策略在 4 个基准上 +7.8%,只看问题的离线策略 +7.3%,而直接塞无关维基百科段落(wiki-irr)被描述为”competitive”。切到策略梯度目标(表 8)之后结论直接反转:
| 策略 | 1.7B | 4B | 8B |
|---|---|---|---|
| 解感知(在线) | +2.5 | +5.1 | +2.8 |
| 解感知(离线) | +2.4 | +4.2 | +1.9 |
| 问题级(离线,仅 4B) | — | +4.4 | — |
| wiki-irr(纯噪声) | +5.0 | +5.9 | +5.8 |
纯噪声在三个尺寸上全面第一。论文给的解释读起来像是在自我消解:
wiki-irr utilizes noise to introduce more generalized interference (causing an overall degradation of the model’s reasoning capabilities in long contexts), which ultimately makes it a more effective strategy in this regime. —— 附录 D.3
门控质量指标也指向同一方向。表 3 的 style-task 比值(越低越好,越低表示梯度更集中在任务 token 而非格式 token 上)是:NSD 门控 + wiki 条件 2.6×、+ 解感知 3.4×、+ 问题级 3.5×、熵加权 OPSD 3.9×、原始 OPSD 5.4×。用无关噪声构造出来的门控,在论文自己的指标上是质量最高的那一个。
消融二:反射行为。 Qwen3-4B 上每题平均反思 token 数(“wait / actually / let me reconsider” 等,定义见附录 E):基座 3.6,OPSD 2.2,Intuitor 0.8,NSD 7.5。OPSD 把反思压到基座的 61%,Intuitor 压到 22%,NSD 抬到 208%。
消融三:效率。 单步墙钟时间,wiki-irr 变体把 68s 降到 54s;rollout 开销比 GRPO 类方法()降约 60%,因为 NSD 只要 。OPSD 要抽 top-128 logits,NSD 只要三个标量概率。
4 个人分析
亮点
把「识别缺陷」换成了「测量扰动敏感度」。 这是我认为这篇论文最值得记住的一步。判断一个 token 是推理错误,本来需要金标、验证器或者一个更强的评审模型。NSD 用一个差分把它绕过去了:不问对不对,只问「加了这个负提示之后它是不是更容易出现」。这让整条流水线能在完全无标注的数据上跑,成本只有两次前向传播。
梯度上界是解析可控的。 很多 unlikelihood 类方法的崩塌是工程问题而非理论问题。这里 Sigmoid 形式给出了 处的峰值 和 时的 0,梯度行为完全可预测,落地时不需要靠调 clipping 去救。
局限性
一、NSD 的目标函数里没有任何「正确」的信号。
把总目标拆开看就很清楚: 只会降低被门控 token 的概率(它对 logit 的梯度恒为负方向), 项只会把学生拉回初始模型。两项都不会提高任何 token 的概率。既然如此,NSD 训练后模型分布里所有概率上升的 token,来源只有两个:softmax 的重新归一化,以及被 KL 项拉回基座的那个方向。
这带来一个可以直接检验的推论:§4.2 报的「反思 token 从 3.6 涨到 7.5」里,有一部分是抑制的副产品,不是新学会的能力。 反思词(wait / actually / however 等)在附录 E 的分类里被归为 style token,而一个”粗心的解题者”说 “wait” 的概率理应低于正常模型,也就是 ,门控 恒为 0,这类 token 永远不会被惩罚。其他 token 被压下去之后,归一化会把概率分配给这些从不挨罚的 token。论文把计数上升读成「激发了反思」,可它并没有验证这些新增的 “wait” 是否真的带来了修正——附录 D.4 的案例分析只有 AIME 2025 II #12 一道题,且结论摘要是外部模型 Sonnet 写的。
二、Avg 是等权平均,而四个小基准拿走了 57% 的权重。
按 pass@8 数值的粒度可以反推各基准题量(AIME 三个年份与 HMMT 各 30 题、AMC 40 题,数值全是 与 的整数倍),加上论文明示的 OlympiadBench 675 题与 MATH-500 的 500 题,合计 1335 题。四个 30 题的基准加起来只占 120 题,是 9.0% 的评测样本,却占了 的 Avg 权重。
按题量重新加权后(本专栏推算,非论文数据):
| 方法 | 等权 Avg | 按题量加权 | 比值 |
|---|---|---|---|
| NSD 1.7B | +2.34 | +1.19 | 0.51 |
| NSD 4B | +7.47 | +3.45 | 0.46 |
| NSD 8B | +5.99 | +2.18 | 0.36 |
| OPSD 4B | +0.99 | +0.23 | 0.24 |
| Intuitor 4B | +1.33 | −0.32 | −0.24 |
NSD 的增益被砍到 36%–51%,Intuitor 4B 甚至翻了符号。方向没有变,NSD 依然是三个里最强的,可「+7.5」这个数字里有一半以上来自 120 道 AIME/HMMT 题。论文的 95% CI 是给 Avg 这个等权统计量算的,不覆盖口径选择本身。
三、pass@8 的增益大于 avg@8,与「锐化」的直觉相反。
| 尺寸 | pass@8 增益 | avg@8 增益 | 比值 |
|---|---|---|---|
| 1.7B | +7.2 | +2.3 | 3.13 |
| 4B | +8.3 | +7.5 | 1.11 |
| 8B | +9.7 | +6.0 | 1.62 |
pass@8 衡量「8 次采样里至少有一次对」,涨得比 avg@8 快,说明 NSD 扩大的是覆盖率而不是把分布压尖。1.7B 上尤其明显:单次平均只涨 2.3 分,可八次里能撞对一次的概率涨了 7.2 分。这个形态和本专栏此前读过的 OPD 系列里「蒸馏扩张、RL 锐化」的分工是一致的——一个纯抑制式目标做出了扩张,本身就值得追问一句:压低某些 token 的概率之后,概率质量去了哪里?答案大概率是分散到了更多条轨迹上,而不是集中到最正确的那一条。
四、两位教师从头到尾冻在 step 0。
与 都是初始模型的副本,训练中永不更新。学生越往后跑,它采样的 token 对这两个冻结模型来说越陌生, 和 会一起变小,而门控取的是两者的差。差值随绝对量一起收缩,信噪比只会更差。论文在 §5.2 里确实观察到了门控失效的现象,但那是 noKL 变体在崩溃时的曲线;加了 KL 之后门控激活随步数怎么变化,正文没有给。KL 项在这里的角色是双刃的:它既稳住了训练(保证学生留在冻结教师的分布附近,门控才有意义),也把学生能走多远这件事本身锁住了。 这么小的权重就能决定崩与不崩,说明系统离分岔点很近,而论文没有 的扫描。
五、规模曲线并不单调,与论文给出的机制解释对不上。
论文把「大模型增益更大」归因于负条件的质量:
NSD uses on the model itself to generate solution-specific negative conditions. By optimizing against these higher-quality conditions, larger models receive a stronger contrastive training signal. —— §4.1
实测增益是 +2.3 → +7.5 → +6.0,8B 比 4B 低了 1.5 分。如果「模型越强、自生成的负条件越好」是主因,8B 不该输给 4B。也不是天花板问题:8B 基座在 AIME 2024 的 pass@8 是 56.7%,4B 是 50.0%,余量还在。限制条件那一节只自陈了「极小的模型生成不出有意义的负条件」,没有解释中段这次回落。
六、其余几处
- 只在数学域、Qwen3 三个尺寸、非思考模式下训练(附录 C.2 写明全程
enable_thinking=False),思考模式只用于评测。没有代码域与 agent 域。 - 表 1 注脚说取「验证集上的最佳检查点」,可 §3 的实验设置里没有定义这个验证集是什么、从哪来。
- 表 5 里 OPSD 的 Top-k logits 记为 −1(不截断),§4.4 正文却写 OPSD 抽 top-128,两处对不上。
- 训练语料是 MATH(丢掉金标),而 MATH-500 出自 MATH 测试集,是唯一同分布基准——NSD 在它上面只涨 +1.9 / +1.0 / +0.1。反过来读这也是个正面信号:增益集中在分布外,不像过拟合训练语料。
对大模型领域的影响
这篇论文真正的价值不在 +7.5 这个数字,而在于它给出了一条不依赖任何正确性判据的后训练路径的实证。过去两年 label-free 自举的路子基本被「自信度」和「多数投票」两条占着,两条都依赖模型自己判对错——Intuitor 在 1.7B 上拿 −0.5,正是因为弱模型的高自信不等于高准确率。NSD 换了个参照物:不求证什么是对的,只规避什么是错的。这个方向的边界条件也清楚了——它的天花板由基座模型自己的分布决定,压不出基座 pass@k 之外的东西。
它把一个解码期技巧固化进了权重。 这个形式,和对比解码里「用扰动后的分布减原始分布」是同一个算子,只不过对比解码在推理时改 logits,NSD 在训练时改权重。如果这条路线成立,近几年积累的一大批解码期干预手段(对比解码、激活 steering、各类 logit 差分)都多了一条「蒸馏进权重」的转化通道。
5 实践启示
可以借鉴的技术
一、门控作为数据管道的 token 级过滤器。
只需要两个标量概率相减,比按熵筛 token 便宜,也比训一个判别器便宜。做轨迹数据筛选时,凡是想保留「推理关键 token 的监督、丢掉格式 token 的噪声」的场景,都可以拿这个差分当权重。论文的对照数据说明它比熵加权更有效(style-task 比值 2.6–3.5× 对 3.9×)。
二、负样本不一定值得精雕细琢。
wiki-irr 用无关维基段落当负条件,在策略梯度设定下三个尺寸全部第一,在主设定下也与精心生成的负条件持平。对做数据工程的团队来说这是个成本信号:构造难负例时的 prompt 工程投入,边际收益远低于预期。真正起作用的看来是「存在一个分布扰动」这件事本身。
三、Sigmoid 有界惩罚可以直接搬。
凡是要在 LLM 上用 unlikelihood / 负向 DPO / 任何「压低某些 token 概率」的目标, 这个形式都能替掉 ,梯度上界从 降到 , 时自动归零,不需要额外的 gradient clipping 或概率下限截断。
四、KL 锚的权重必须先扫。
是全文最敏感的一个数:去掉它第 120 步就崩,留着它又限制学生能走多远。论文没有给扫描曲线,落地时这一步不能省。
潜在应用场景
- 无验证器领域的后训练。 数学和代码有结果可判,写作、规划、开放问答没有。NSD 不需要答案也不需要验证器,是这类领域少有的密集监督来源。
- 基座上线前的「去噪微调」。 纯抑制式目标适合在强基座上做小幅修正:压掉已知的不良模式(套话、幻觉句式、过度断言),用 KL 锚控制改动幅度。它不适合当唯一的训练信号。
- 把线上日志转成负条件。 本专栏前八期反复讨论「拿什么练」,NSD 提供了一条反过来的用法:把线上被用户点踩、被回退、被人工改写的交互攒成负条件语料,比攒正样本容易得多。
- agent 轨迹的逐步过滤。 终端、GUI 这类长程任务里,一条 300 步的轨迹往往只有几步是关键错误。用「加/不加负提示的概率差分」定位这几步,成本是两次前向,比跑一遍验证器便宜。
参考文献
Pei, Wei, Xu, Zhu, Chen, Meng (2026). Negative Self-Distillation: Learning to Reason by Avoiding Flaws. arXiv:2609.11699 [cs.CL]. University of Virginia; Stanford University. 代码 github.com/Prongcan/NSD,权重 huggingface.co/collections/PassionPrc/nsd-negative-self-distillation.
相关精读
本专栏连续四十三期追问同一个命题——不依赖外部监督的训练信号从哪里来:
- OPSA:on-policy 自适应的无教师自提升 —— 问「教师要不要」
- One-Shot OPD:一条 query 够不够 —— 问「数据要多少」
- OPD-then-RL:两种信号摆在一起还是前后站队 —— 问「信号怎么组合」
- Co-Evolving Harnesses:换个脚手架,同一份信号反过来了 —— 问「环境算不算变量」
- DART-SD:把标注单元从轨迹换成状态图
- SPADE:把优化对象从轨迹上移到生成器
- Terminal-Universe:把映射方向掉个头,从环境反推任务
- Compile by Training:练会的能不能固化下来不重复付费
- E-SFT:中间段要不要 —— 问「中间段要不要」
- 精读:TrimSFT——只让「中间那一段置信度」的 token 参与 SFT:续篇。用 gold token 与最强竞争者的 logit gap 做高斯带通加权,剪掉已掌握与学不会的两端;按其附录重算,真正与精度强相关的是「参与训练的 token 有多少」(R_eff 相关 −0.83),而不是权重曲线的形状。
- DataFlex-RL:13 种 RLVR 数据策略,没有一个跑赢均匀采样:续篇。前十一期默认了「挑对数据就有收益」,这一期在 RLVR 层次上问这个收益大到量得出来吗。
- 精读:把「做不出来」的题变成训练信号:续篇。数据选点推到端点——连一条 rollout 都做不对的题,用教师的部分推理轨迹装上难度旋钮照样榨得出梯度;按其 Table 2 重算,按题量加权后 MFC 对 GRPO 的领先只剩 0.78pp,每条 headline 优势都落在一个标准误以内。
- 精读:NGU 与 RL 里的马太效应
- 一条响应里只给三个位置价值监督:SP³O
- 精读:ActObs——把被 mask 掉的那 45% 观察 token 重新纳入损失:续篇。这十五期都在问「一条轨迹里哪些 token 配得上监督」,本篇按 token 的来源(动作 vs 环境)作答,代价为零而收益只有 1–3 道题。
- 精读:Score Centering——把训练-推理失配里的漂移项减掉
- 精读:把公开代码库里已实现的功能翻成 RL 环境
- 精读:按梯度可估性给 token 分配蒸馏监督
- 精读:给 token 级信用一个唯一解,然后把它求和掉
- 精读:把中间状态的价值估计整体消掉
- 精读:把后训练配方本身当成果,再逐阶段对账
- 精读:不跑 RL,先把新奖励的结果预测出来
- 精读:把特权信息从损失搬到采样器——多轮 agent 里自蒸馏为什么会崩
- 精读:把中间那一步的信号从模型里搬进环境——用沙箱回滚跑出免费过程奖励
- 精读:把 prompt 课程从「排难度」换成「排目标」——Fisher–Rao 弧长上的高斯课程 ARCUS
- 精读:SCAPO——用「扰动下不动」给 token 记一笔负账
- 精读:GMC-GRPO——把重要性比从逐条裁剪换成整组收缩
- 精读:把 off-policy 专家数据 MCMC 投影成 on-policy 数据
- 本篇问的是第五层:既然「靠近一个看过答案的自己」会压掉反思,那把目标函数翻成「远离一个粗心的自己」够不够。
- 精读:CARM——把响应级掩码的判据从净位移换成双向漂移
- 精读:Mesh Learning——把 RLVR 的坍塌解释成策略容量的供需冲突
- 精读:跨分词器 OPD——把对齐覆盖度补满反而掉点
- 精读:SRD——把事后回顾蒸成事前先见
- 精读:ZCPO——把参考 KL 从损失支搬进组内系数
- 精读:Residual Advantage——让教师只重分信用,不改响应总分
- 精读:TAPO——把重要性比的记账区间从「当前 token」挪到前缀
- 精读:GPPO——把 PPO 的裁剪区间拆成「散度」与「估计器」两维
- 精读:RTI——把干预从优化期搬到采样期
- 精读:LVRL——把价值函数从「训出来的部件」换成「冻结的前沿 LLM」
- 精读:Thinking Leakage——no-think 的 RL 增益有多少是从 think 漏过来的
- 精读:Ares——把 RLVR 的更新秩交给梯度谱,账本落在截断之后
- 精读:GracefulRL——给退避一个中间价,代价是 74% 的题不再作答
- 精读:MRTPO——把每个奖励的优势拆回到它自己读的那几个 token 上