最后一层不一定最聪明:用"熵谷解码"绕过对齐税,免训练零内存白嫖推理能力
你有没有想过一个特别基础、但好像从来没人认真质疑的问题——
大模型生成下一个 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:当两种解码策略产生分歧时(约占生成 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:

图 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 矩阵投影到词表,得到一个概率分布,然后算它的香农熵:
逻辑很直接:熵越低,说明这一层对"下一个 token 是什么"越笃定。如果某一层的预测分布特别尖锐(低熵),而它之后的层反而变得犹豫(熵升高),那很可能就是"精炼到位了,但后面被扰动搞糊涂了"。
这个低熵的点,就是论文说的熵谷(Entropy Valley)。
保守反向搜索
算法(论文 Algorithm 1)我用大白话翻译一下:
- 完整跑完所有 L 层(注意:前向传播一点不改,KV cache、注意力核全都原样)。
- 在最后 K 层这个窗口里,并行算出每一层的熵。
- 从最后一层 ℓ=L 开始往回扫:只要前一层的熵严格更低,就把选择更新到前一层;一旦遇到第一个"往回走熵不降反升"的点,立刻冻结,就用当前这层。
- (可选)以概率 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。它真正想往上够一够的,是给这个规则一个理论保证。
作者把熵的逐层观测值分解成三部分:
- \(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"分开画熵曲线:

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

图 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: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 前沿,关注我