最后一层不一定最聪明:用"熵谷解码"绕过对齐税,免训练零内存白嫖推理能力

你有没有想过一个特别基础、但好像从来没人认真质疑的问题——

大模型生成下一个 token 的时候,为什么一定要用最后一层的输出?

从 GPT 到现在,所有自回归模型的解码逻辑都是默认的:跑完全部 L 层 Transformer,拿最后一层的 hidden state 投影到词表,softmax,采样。背后有个"理所当然"的假设:层越深,表示越好,预测越可靠。Deeper is better。

这篇 6 月底挂出来的论文(arXiv:2606.21906)说:不对。最后一层有时候反而在帮倒忙

更狠的是,他们给出的解决方案——动态选一个"更靠谱的近末层"来解码——不需要训练、不增加显存、延迟涨不到 2%,却能在 GPQA-Diamond 上让 Qwen3.5-35B-A3B 直接涨 6.5 个点,在最难的 Omni-MATH Level-4 上把 gpt-oss-20b 从 1.1% 拉到 23.5%。

我第一反应是怀疑的。这种"免费午餐"的故事在 LLM 圈子里听太多了,大部分最后都翻车。但把这篇从头到尾啃下来之后,我得说——它的故事讲得相当自洽,而且证据链做得比我预期的扎实。


📖 核心摘要

痛点:对齐过的(Instruct)大模型在复杂推理上经常莫名其妙地"掉链子",标准解码总在关键位置吐出 "the"、"is"、"so" 这种通用功能词,而不是该出现的专业术语。这就是所谓的对齐税(Alignment Tax)——为了让模型更安全、更像人话,牺牲掉了一部分硬核推理能力。

核心发现:作者通过逐层探针,揭示了 Transformer 前向传播里反复出现的一个三段式动态——Guess(猜测)→ Refine(精炼)→ Perturb(扰动)。早期层快速猜个粗糙草稿,中间层稳定精炼推理语义,而最后几层会把精炼好的预测往"通用、对齐偏好"的 token 上拽

方案:提出 Confident Decoding(自信解码),一种免训练的解码策略。它不截断模型、完整跑完所有层,只是用熵作为信号,从最后一层往回做"保守反向搜索",找到那个预测最自信(熵最低)的"熵谷"层来出 token。整个层选择被建模成一个最优停止问题,还给了理论保证。

效果:跨密集模型和 MoE 模型一致涨点,GPQA-Diamond 上 +6.5、LiveCodeBench 上 +9.4,最难任务上涨幅高达 +22 个点;FLOPs 实际只增加 0.87%,延迟 <2%,显存零额外开销。

我的判断:这是那种"机制解释 + 简单方案"双都打动我的论文。它最值钱的地方不是涨点,而是把"对齐税"这件玄学的事,第一次落到了具体哪一层、对哪些 token、以什么形式发生。方法本身简单到几乎像个 trick,但背后的观察是真有洞察。


🔗 论文信息

  • 标题:Deeper is Not Always Better: Mitigating the Alignment Tax via Confident Layer Decoding
  • 作者:Xuanming Zhang, Sining Zhoubian, Yuxuan Chen, Tianyi Tang, An Yang, Sean Du, Chujie Zheng, Fei Huang, Dayiheng Liu, Gao Huang, Jingren Zhou
  • arXiv:2606.21906(2026 年 6 月 20 日提交,cs.CL)
  • 链接:https://arxiv.org/abs/2606.21906

从作者列表能看出来,这是 Qwen 团队、清华、南洋理工的一票人凑出来的活儿。An Yang、Dayiheng Liu、Jingren Zhou 这几个名字常年挂在 Qwen 的技术报告上,所以主干模型清一色用 Qwen3.5 系列也就不奇怪了。


🤔 先说说"对齐税"到底是个什么东西

聊方法之前,得先把动机讲清楚,不然后面会觉得这论文在解决一个伪命题。

对齐税这个词不是这篇论文发明的。RLHF、DPO 这类后训练做完之后,模型确实变得更礼貌、更安全、更"听话"了,但很多人都观察到一个副作用:在硬核推理任务上,对齐后的模型有时候还不如对齐前的 base 模型

这篇论文给了一个特别直观的证据。看图 1:

图1:Confident Decoding 与 Standard Decoding 的 token 替换对比

图 1:当两种解码策略产生分歧时(约占生成 token 的 2%),右边的标准解码倾向于选择 "the"、"is"、"so"、"."、"but" 这类通用高频功能词和标点——这正是对齐模型的典型口癖;而左边的 Confident Decoding 在"熵谷"处提交,恢复出 "mass"、"radius"、"approximately"、"Cartesian"、"oxygen" 这种领域专用术语。两个小人的比喻很传神:自信解码像个登顶后插旗的登山者,停在了置信度的山峰;标准解码则被"对齐"这个拽着绳子的家伙硬生生拖下了山。

这张图我看完笑了一下,因为它把一个挺抽象的问题讲得特别具体。两种解码在 98% 的 token 上选择是一样的,真正分歧的只有那 2%。但偏偏就是这 2%,决定了你这道题是答对还是答错——该写 "radius"(半径)的地方,对齐模型给你来个 "the",整条推理链就废了。

说实话,这个观察跟我自己的体感是对得上的。用对齐很重的模型做数学题,经常感觉它"话到嘴边又咽回去了",明明逻辑链铺垫得好好的,临门一脚却给你来句正确的废话。


🧠 三段式动态:Guess → Refine → Perturb

那这个"临门一脚踢歪"到底发生在哪里?作者的回答是:最后几层

为了证明这点,他们设计了两个逐层探针指标,思路很朴素:

  • 相对贡献范数(Norm Ratio):衡量每一层"写入"了多少东西,即这一层模块输出的范数 ‖m^(l)‖ 除以输入残差流的范数 ‖h^(l-1)‖。值大说明这层在大刀阔斧地改写。
  • 残差 I/O 余弦相似度(IO-CosSim):衡量这一层是在"沿着原方向精炼"还是"掉头改方向"。接近 1 说明保留了原有语义轨迹,值低说明发生了大的方向偏转。

把这两个指标沿层画出来,三个阶段就跳出来了。看图 2:

图2a:相对贡献范数的层级动态

图 2(a):Qwen3.5-35B-A3B 在 GSM8K 上的相对贡献范数。第 1 层贡献范数高达约 1.6(Phase I 猜测阶段,疯狂构建初始表示),随后在 Phase II 长期稳定在 0.2–0.4 的低位(增量精炼),到了第 40 层(最后的全注意力层)又猛地飙到约 0.85,是 Phase II 的 2–3 倍——这就是 Phase III 扰动的指纹。灰色竖带标记的是 10 个全注意力层(l=4,8,…,40)。

光看范数还不够,范数大可能只是正常精炼。关键得看方向变没变——这就是 IO-CosSim 的作用。结合论文给出的数据:

阶段 层范围 行为特征 IO-CosSim
Phase I:猜测 l ≲ 0.15L 高度不确定下快速搭草稿 ≈0.67
Phase II:精炼 0.15L ≲ l ≲ 0.95L 增量式、方向保真地精炼语义 0.91–0.97
Phase III:扰动 l ≳ 0.95L 大幅改写、偏置语义轨迹 ≈0.69(第40层)

最关键的数字是这个:第 40 层的 IO-CosSim 骤降到 0.69,这是除了最初嵌入阶段之外,整个网络里最大的一次方向偏转

这就是核心证据。Phase II 那么多层,都在小心翼翼地保真精炼(cos 相似度 0.9 以上),唯独到了最后一层,突然来个大转向。论文的解读是:这个转向不是在"继续把推理做得更好",而是在"把推理结果往对齐偏好的方向掰"。

到这我得停一下,提个我自己的疑问:方向偏转大,就一定是"坏事"吗?会不会最后一层确实在做某种必要的全局校准?

论文在后面用熵的视角回答了这个问题,下面会讲。但单看图 2,我承认这个"最后一层在搞破坏"的论断,证据是有的,但还不算铁证。


🔧 Confident Decoding:往回找那个"熵谷"

既然问题出在最后一层的扰动,最朴素的想法就是——别用最后一层了,用倒数第二层或者更靠前的某一层来解码

但哪一层?固定退到某一层(静态早退出 / early exit)肯定不行,因为不同 token 的"扰动起点"是不一样的。作者的答案是:用熵作为信号,每个 token 动态地、保守地往回找

为什么是熵?

对第 ℓ 层的残差状态,先做最终归一化,再用 unembedding 矩阵投影到词表,得到一个概率分布,然后算它的香农熵:

\[H_t^{(\ell)} = -\sum_v p_t^{(\ell)}(v) \log p_t^{(\ell)}(v)\]

逻辑很直接:熵越低,说明这一层对"下一个 token 是什么"越笃定。如果某一层的预测分布特别尖锐(低熵),而它之后的层反而变得犹豫(熵升高),那很可能就是"精炼到位了,但后面被扰动搞糊涂了"。

这个低熵的点,就是论文说的熵谷(Entropy Valley)

保守反向搜索

算法(论文 Algorithm 1)我用大白话翻译一下:

  1. 完整跑完所有 L 层(注意:前向传播一点不改,KV cache、注意力核全都原样)。
  2. 在最后 K 层这个窗口里,并行算出每一层的熵。
  3. 从最后一层 ℓ=L 开始往回扫:只要前一层的熵严格更低,就把选择更新到前一层;一旦遇到第一个"往回走熵不降反升"的点,立刻冻结,就用当前这层。
  4. (可选)以概率 1−p 随机回退到标准的最后一层解码。实验默认 p=1,即始终用熵谷。

核心就一句话:从最后一层往回退,退到熵第一次开始反弹的地方就停

这个"保守"二字是精髓。它不会贪心地找全局熵最低层,而是只要熵开始回升就停手——这保证了它不会退得太深,从而落进还没精炼好的 Phase II 中段。

代码逻辑大概长这样:

def confident_decode_step(hidden_states, W_U, K, L):
    # hidden_states: 各层归一化后的残差状态
    H = {}
    for l in range(L - K, L + 1):           # 候选窗口
        logits = W_U @ normalize(hidden_states[l])
        p = softmax(logits)
        H[l] = -(p * log(p)).sum()          # 各层熵

    chosen, H_ref, frozen = L, H[L], False
    for l in range(L - 1, max(0, L - K) - 1, -1):
        if not frozen and H[l] < H_ref:
            chosen = l                       # 熵还在降,继续往回退
        else:
            frozen = True                    # 首次不降,冻结
        H_ref = H[l]
    return W_U @ normalize(hidden_states[chosen])

我特别想强调一点,因为这是这个方法能"零内存开销"的关键:它没有截断模型。模型该跑的 40 层一层不少地跑完,KV cache 完整保留。它只是在最后那个采样的瞬间,多算了几层的 logits 和熵,然后挑一个出 token。所以显存增量是 0,额外计算只是几次 unembedding 投影。

工程实现上他们基于 vLLM 做了三件事:前向传播保持图安全(归一化/unembedding/熵计算放在编译区域外)、连续批处理下做形状感知的缓冲对齐、候选窗口完全向量化。这块对要落地的人有参考价值。


📐 把"选哪一层"变成最优停止问题

如果只是上面那个启发式规则,这论文顶多算个不错的 trick。它真正想往上够一够的,是给这个规则一个理论保证

作者把熵的逐层观测值分解成三部分:

\[\hat{H}(l) = H^*(l) + \varepsilon^{(l)} + \eta^{(l)}\]
  • \(H^*(l)\) —— 单调下降的真实熵(精炼越来越好,越来越自信);
  • \(\varepsilon^{(l)}\) —— 有界的投影噪声(用 unembedding 强行把中间层投到词表,本来就不准,但误差有上界 \(\varepsilon_{max}\));
  • \(\eta^{(l)}\) —— 每个 token 的对齐扰动(Phase II 里几乎为 0,但在冲突 token 的最后一层,扰动增量会超过 \(2\varepsilon_{max}\))。

然后把"从后往回找熵谷"这个动作,建模成一个最优停止(Optimal Stopping)问题,给出定理 1

保守反向扫描找到的停止点 V̂,严格落在 [V_onset, V*] 区间内。

通俗讲就是:这个搜索规则既不会停得太晚(不会落进 Phase III 的扰动区,因为扰动一来熵就涨,停止条件就触发了),也不会停得太早(不会退到 Phase II 中段把还没精炼好的表示拿出来用)。它恰好卡在"精炼完成、扰动尚未发生"的那个甜点上。

证明分两种情况:整合信号强的时候,算法精确停在 oracle 最优层 V*;整合信号弱、有局部振荡的时候,可能提前停,但因为那一带真实熵的变化本来就极小,所以语义损失被严格约束到可忽略。

我对这个理论的态度是:它是个漂亮的事后合理化,但前提假设挺强。"对齐扰动增量 > 2 倍投影噪声上界"这个条件,本质是个无法直接验证的假定。不过话说回来,理论的价值在于它给了一个清晰的因果叙事,让你明白"为什么保守反向搜索这个简单规则是对的"——这点它做到了。

来看实证证据,图 4 把"扰动 token"和"未扰动 token"分开画熵曲线:

图4a:扰动token的逐层熵曲线

图 4(a):Qwen3.5-35B-A3B 在 GPQA-Diamond 上,那 16.2% 经历了 Phase III 扰动的 token 的平均逐层熵。注意看 V*(第 39 层)那个深谷——熵在这里降到最低点,然后到第 40 层又反弹上去(放大框里的 "tail rise" 看得很清楚,39→40 熵从谷底往上抬)。ΔH 在尾部 +0.37 nats。这就是"最后一层把好不容易精炼到位的预测又搅浑了"的直接证据。

图4b:未扰动token的逐层熵曲线

图 4(b):剩下 83.8% 没有 Phase III 的 token,熵一路单调降到底(ΔH=−2.52 nats),最后一层老老实实,没有反弹。对这些 token,Confident Decoding 会自然地选最后一层,跟标准解码没区别。

这两张图是整篇论文我觉得最有说服力的地方。它把"对齐税"量化到了 token 级别:只有 16.2% 的 token 会被最后一层扰动,但恰恰是这部分,决定了难题的成败。剩下 83.8% 该咋解码咋解码,方法不去碰它。这种"只在该出手时出手"的克制,是它几乎零开销的根本原因。


🧪 实验:从涨点幅度看,这税收得不轻

主实验跨了 6 个模型(密集 + MoE 都有),7 个 benchmark。我把表 1 的核心数据整理一下:

模型 策略 GPQA-D HLE LCB-v6 Omni-MATH Air-Bench
Qwen3.5-27B Last Layer 78.2 16.0 63.9 76.0 65.7
Confident 79.4 16.8 73.3 76.2 64.7
Δ +1.2 +0.8 +9.4 +0.2 −1.0
Qwen3.5-35B-A3B Last Layer 76.3 9.2 70.1 72.3 51.7
Confident 82.8 11.2 74.4 73.0 55.4
Δ +6.5 +2.0 +4.3 +0.7 +3.7
Qwen3.5-122B-A10B Last Layer 83.3 14.7 76.8 78.3 66.0
Confident 85.4 16.5 79.2 78.5 67.0
Δ +2.1 +1.8 +2.4 +0.2 +1.0
Gemma-4-31B Last Layer 76.8 9.2 75.1 68.3 74.0
Confident 80.8 11.0 78.3 69.0 76.0
Δ +4.0 +1.8 +3.2 +0.7 +2.0
gpt-oss-120B Last Layer 76.3 10.8 83.1 70.2 88.0
Confident 80.8 12.6 84.5 71.0 90.0
Δ +4.5 +1.8 +1.4 +0.8 +2.0

几个我注意到的点:

一是 GPQA-Diamond 和 LiveCodeBench 涨得最猛。这俩都是硬核推理 benchmark,Qwen3.5-35B-A3B 在 GPQA-D 上 +6.5,Qwen3.5-27B 在 LCB-v6 上 +9.4。而 WritingBench 这种创作类任务几乎不动(+0.1~0.5)。这个分布恰好印证了它的故事——对齐税主要伤的是硬推理,不是创作,所以方法的收益也集中在推理上。

二是它在 Gemma 这种非 Qwen 模型上也涨,说明这不是 Qwen 专属的玄学,三段式动态有一定的架构普适性。

三是偶尔会掉。比如 Qwen3.5-27B 在 Air-Bench 上 −1.0,gpt-oss-20b 在 Omni-MATH 上 −0.3。涨多跌少,但不是稳赚不赔。

Base vs Instruct:对齐税的直接证据

表 2 这个对比,是我认为全文最关键的一组消融,因为它直接验证了"税"的来源:

模型变体 策略 平均分 Δ
Base Last Layer 55.0
Confident 56.1 +1.1
Instruct Last Layer 58.3
Confident 60.9 +2.6

逻辑闭环了:Confident Decoding 在 Instruct 模型上的增益(+2.6)明显大于 Base 模型(+1.1)。如果"最后一层扰动"真的来自对齐,那对齐越重的 Instruct 模型,被救回来的空间就该越大——数据正好如此。

更有意思的一个细节:标准解码下,Instruct 模型在 HLE 上居然比 Base 还差(论文里提到 7.1% vs 8.0%),对齐把推理能力压到比没对齐还低。而 Confident Decoding 把它救回到了 9.5%。这就是"对齐税"四个字最扎心的注脚。

越难的题,涨得越夸张

表 3、表 4 按任务难度分层,这组数据看完我是真有点意外:

模型 策略 MATH-L1 L2 L3 L4 Omni-L4
gpt-oss-20b Last 98.2 57.1 30.2 2.1 1.1
Confident 97.8 69.8 56.8 24.6 23.5
Δ −0.4 +12.7 +26.6 +22.5 +22.4
Qwen3.5-35B-A3B Last 97.1 57.9 33.0 2.7 0.3
Confident 97.0 79.8 50.0 11.9 7.5
Δ −0.1 +21.9 +17.0 +9.2 +7.2

规律特别清晰:最简单的 L1 反而轻微掉点(−0.4、−0.1),越往难涨得越猛。gpt-oss-20b 在 Omni-MATH 最难的 L4 上,从惨不忍睹的 1.1% 直接干到 23.5%。

这个 L1 掉点其实挺重要的——它说明在简单题上,最后一层的"扰动"可能根本不是坏事,强行往回退反而损失了信息。方法不是万灵药,它是专治难题里那种"想对了又说错"的毛病

图 3 进一步验证了"动态熵谷"这个选法本身的必要性:

图3:不同层选择策略的对比

图 3:GPQA-Diamond 上的层选择策略对比。左图 (a):固定退到 Last−1、Last−2、Last−4 这些静态策略,随着采用概率 p 增大,准确率断崖式下跌(退到固定层会误伤大量本该用最后一层的 token);唯独动态熵谷(黑色虚线)一路爬到 82.8%。右图 (b):就算找到了谷,选谷的邻居(Valley−2、Valley−1)也会掉,选 Valley 本身才最优。这张图基本堵死了"随便退一层不就行了"的质疑——位置必须精确,而且必须逐 token 动态决定。

开销:几乎白嫖

这是这篇论文最让人舒服的部分。基于 Qwen3.5-35B-A3B(L=40, |V|=151,936, K=10)的统计:

  • 88.5% 的 token 在最后一层就自然满足单调条件,触发零额外计算;
  • 只有 11.5% 的 token 启动反向扫描;
  • 真正导致 argmax 结果被替换的,仅占全部 token 的 2.47%
  • 反向扫描平均只跑 0.116 次迭代/token

最终账单:FLOPs 实际只增加 0.87%,端到端延迟 <2%/token,KV cache 显存增量 0 MB

这个开销结构很合理:因为大部分 token 压根不需要回退,平摊下来几乎免费。最坏情况下(K=10 全扫)FLOPs 会涨 74.6%,但实际触发率极低,所以真实开销可以忽略。


💡 我的判断:机制比方法更值钱

把整篇看完,我的评价分两层。

方法层面,Confident Decoding 简单到近乎一个 trick。它没有训练、没有改架构、没有新参数,本质就是"在最后几层里挑个熵最低的出 token"。如果剥掉理论包装,它就是一个聪明的早退出变种。这种简单是优点——意味着任何人都能在 vLLM 上几十行代码加上去,立刻验证。

机制层面,它的贡献我觉得被低估了。Guess-Refine-Perturb 这个三段式叙事,加上"对齐税在 token 级别只影响 16.2% 的 token、且集中在最后一层"这个量化结论,是真正有信息量的东西。它把"对齐让模型变笨"这个长期玄学,第一次拆解到了哪一层、哪些 token、什么形式的粒度。哪怕你不用它的解码方法,这个观察本身对理解和改进对齐流程都有价值。

当然,我也有保留意见:

  • 理论那部分的假设偏强,"扰动增量 > 2ε_max"这种条件实证上很难直接证伪,更像是为已有规则量身定做的合理化。
  • L1 简单任务掉点说明"最后一层扰动 = 坏"这个论断不是普适的,至少在简单场景下最后一层是有用的。论文对这个反例的讨论略显轻描淡写。
  • 主干高度依赖 Qwen 系列,虽然加了 Gemma 和 gpt-oss 做泛化,但作者团队就是 Qwen 团队,难免让人想多问一句:这个现象在 Llama、Mistral 上有多普遍?

但这些都不影响我对它的整体看好。在一个人人都在卷训练、卷数据、卷 RL 的时代,能用一个推理时、零成本、可解释的小改动白嫖出这么多推理能力,这本身就挺反直觉、挺漂亮的。

如果你手上正好在做推理服务、用的又是对齐很重的模型,这个思路真的值得花半天时间在你的场景上试一试——成本几乎为零,万一在你那些"想对了又答错"的 case 上 work 了呢?


觉得有启发的话,欢迎点赞、在看、转发。跟进最新 AI 前沿,关注我