模型答错了,但它其实知道答案:一个两参数修复暴露的LLM表达瓶颈

北大闫齐尧、王晨鹏和潘亮铭的最新论文《Wrong Prediction, Right Answer: Recovering Evidence from Collapsed LLM Sequence Scores》给出了一个让人坐直的答案:很多时候,模型内部已经算出了正确答案,但输出层的结构性偏见把它压成了"未知"。

一个尴尬的场景

你问一个大语言模型一道逻辑推理题:

所有的A都是B。所有的B都是C。所有的C都是D。X是A。请问X是不是D?

模型回答:"未知"。

你叹了口气,在评测表上打个叉:推理能力不足。

但等一下——模型真的不会推理吗?还是它会推理,但说不出口

北大闫齐尧、王晨鹏和潘亮铭的最新论文《Wrong Prediction, Right Answer: Recovering Evidence from Collapsed LLM Sequence Scores》给出了一个让人坐直的答案:很多时候,模型内部已经算出了正确答案,但输出层的结构性偏见把它压成了"未知"。

更惊人的是——只需要调两个参数,用25个无标签样本,就能把被压制的正确答案捞回来。

核心发现:读出鸿沟

研究者设计了一个三阶段诊断协议,在Qwen3.5系列模型上测试了四类推理任务(受控逻辑、ProofWriter、ANLI、FOLIO)。

第一阶段:探针读数。在模型回答问题前的隐藏状态上训练一个线性探针(逻辑回归),看它能不能从内部表示中解码出正确答案。

第二阶段:原生评分。用模型自己的输出层计算候选答案的序列分数(teacher-forced log-probability之和),看模型自己怎么说。

第三阶段:偏移修正。给序列分数加一个两参数的全局偏移,看能不能把正确答案救回来。

结果让人震惊。以Qwen3.5-9B为例:

读取方式域内准确率词汇OOD准确率
答案槽探针0.9720.830
同位置标签logits0.5730.574
完整序列分数0.3330.333
0.333是三分类的随机猜测水平。也就是说,模型的序列分数完全崩溃了——但探针从隐藏状态中读出的准确率高达97%。

答案在模型内部是存在的,只是输出层把它压死了。

研究者把这个现象叫做"读出鸿沟"(readout gap):隐藏状态探针成功解码正确答案,而原生序列评分完全崩溃。这不是模型不会推理,而是模型说不出来自己算出的答案。

为什么会崩溃:结构性偏见的统治

要理解崩溃的原因,需要拆解模型的输出分数。论文给出了一个精巧的加法分解:

\[s_y(x) = \tilde{s}_y(x) + \beta_y\]
  • \(\tilde{s}_y(x)\)任务相关信号——模型对这道题的实例级推理结果
  • \(\beta_y\)结构性偏见——预训练频率先验对标签的全局偏好
问题在于:\(\beta_y\) 远大于 \(\tilde{s}_y(x)\)

具体来说,Qwen3.5-9B在词汇OOD上对1000道题中的999道都预测"未知"(unknown)。不是因为模型算不出来,而是因为"unknown"这个token在预训练语料中出现频率太高,instruction tuning和安全对齐又进一步放大了对"不确定"标记的偏好。模型的输出层有一个内置的"安全词偏好",它把所有不确定的情况都推向"unknown"。

这就像一个学生考试时,遇到不确定的题就全填"C"——不是因为不会,而是因为"选C"这个习惯太强了,压过了实际的推理结果。

更关键的是:这个偏见在instruction tuning之前就存在了。研究者检查了Qwen3.5的Base检查点(未经指令微调),发现同样的崩溃模式。偏见源于预训练阶段对结构性token的频率先验,instruction tuning只是放大了它。

两参数修复:25个样本的奇迹

现在到了最精彩的部分。如果崩溃的原因是一个全局的标签级偏见\(\beta_y\),那能不能用一个简单的偏移把它抵消掉?

研究者设计了一个极简的修正方案:给每个候选标签\(y\)加一个偏移\(c_y\),使得修正后的预测为:

\[\hat{y}_c(x) = \arg\max_y [s_y(x) + c_y]\]

三个标签(true/false/unknown),固定一个偏移为0(均匀平移不改变argmax),只剩两个自由参数

这两个参数怎么选?不需要任何标签。只需要一个无标签的域内分数集\(D_{id}\),通过网格搜索找到使预测分布最接近均匀先验的偏移(因为评测集是标签平衡的)。

这就是全部。没有梯度下降,没有微调,没有标签。两个参数,25个无标签样本。

结果:

任务模型修正前25样本修正1000样本修正
受控逻辑OODQwen3.5-4B0.3330.5490.570
受控逻辑OODQwen3.5-9B0.3330.5800.602
ProofWriterQwen3.5-4B0.3330.6410.644
ProofWriterQwen3.5-9B0.3340.6750.677
ANLI R2Qwen3.5-4B0.4450.5590.574
25个样本和1000个样本的差距不超过0.022。这证明修正不是在"学习"什么新东西——它只是在拟合一个已经存在的阈值偏移。模型的推理能力本来就在那里,只是被一个全局偏见压住了。

而且这个方法跨模型迁移:在OLMo-2-1B和Llama-3.1-8B上同样有效。

三个控制实验:不是投机取巧

你可能会问:也许这个修正只是在利用浅层词汇匹配?也许只是碰巧对齐了标签分布?

研究者设计了三个严格的控制实验:

1. TF-IDF漏检切片:只保留词袋分类器做不对的样本(排除浅层词汇匹配)。修正后的准确率在ProofWriter上仍然保持0.622和0.643。

2. 标签计数置换基线:保持修正后预测的标签分布不变,但随机打乱每个预测的标签。如果修正只是对齐了标签分布,打乱后应该不变。结果置换基线远低于修正准确率(差距+0.287和+0.305),证明修正确实对齐了实例级的答案。

3. 小样本子采样:用25到500个样本拟合偏移。如果修正在"学习"新任务映射,样本越少效果越差。实际上25样本就已经接近饱和,30次子采样全部正向。

这三个控制实验排除了所有"投机取巧"的解释。修正恢复的是模型本就存在的实例级推理结构。

边界条件:什么时候修复无效

论文的诚实之处在于明确划定了修复的边界:

1. 近天花板行:Qwen3.5-9B在ANLI上原始准确率0.638,已经很高,没有可恢复的结构。偏移修正无增益。

2. 无崩溃排序的模型:Pythia-410M和Pythia-12B在ProofWriter上没有恢复效果(p=0.103和p=0.462)。这些模型的隐藏排序本身就不包含可恢复的结构——它们可能真的不会推理。

3. 先验错误:如果标签先验\(\pi\)设错了,增益会缩小但保持正向。错误的先验是逐渐降低效果,而不是反转。

这些边界条件让结论更精确:修正只在探针表明答案已编码、且原始预测崩溃时有效。 它不是万能药,而是一个精确的诊断工具。

CoT为什么有效:一个机制层面的解释

论文提出了一个对CoT prompting的机制级解释,我觉得这是最深刻的洞察之一。

单token回答("Answer: true/false/unknown")把整个推理负担集中在一个unembedding步骤上——模型必须把多步推理的结果压缩到一个token的logit里。而这一步恰好是结构性偏见\(\beta_y\)统治的地方。

CoT prompting让模型把推理分散到多个中间token和隐藏状态上。每个中间步骤的表示负担更小,而且不会经过那个"瓶颈unembedding"。推理信号在多个位置累积,而不是在一个点被压死。

论文没有直接验证这个假设(作者承认这是推测),但它预测:从单token回答到自由生成,崩溃应该缩小。这和已知经验吻合——CoT确实提升了推理任务的表现,但之前没有人给出过这么干净的机制解释。

对评测实践的启示

这篇论文对LLM评测实践有一个直接的冲击:

在断定"模型缺乏推理能力"之前,先检查预测直方图。如果预测崩溃到单一标签,一个轻量的无标签偏移修正可以揭示能力是被掩盖了还是真的缺失。

当前排行榜可能在惩罚一些模型——不是因为它们推理差,而是因为它们默认校准差。一个模型A在benchmark上准确率0.33,另一个模型B准确率0.55,但经过两参数修正后A变成0.60而B不变——A的推理能力其实更强,只是表达层有bug。

这和"判断-闸门解耦"是同一个家族的现象:模型的内部判断和外部行动是分离的两个模块。 内部判断正确(隐藏状态编码了答案),但行动闸门(unembedding矩阵+序列聚合)不咨询判断模块,直接按结构性偏见输出。

修复也只需要针对闸门——不需要重新训练模型,不需要改变推理路径,只需要调两个参数把闸门的偏见抵消掉。

工程层面的实用价值

对于工程实践,这篇论文提供了几个可操作的洞察:

1. 诊断先于修复。在投入资源做RLHF或fine-tune之前,先跑一个探针+偏移诊断。如果探针准确率高但序列分数崩溃,问题在输出层;如果探针也崩溃,问题在表示层——两种问题的修复策略完全不同。

2. 无标签校准的威力。两参数偏移只需要25个无标签样本。对于任何forced-choice任务(分类、 entailment、QA),这都是一个几乎零成本的baseline校准方法。

3. 预测直方图是免费信号。如果模型在平衡数据集上对999/1000个样本预测同一个标签,这本身就是bug信号——不需要训练探针就能发现。

4. CoT的机制基础。如果单token回答崩溃而CoT不崩溃,说明问题在unembedding瓶颈而非推理能力。这给了CoT prompting一个比"prompt engineering"更深的定位——它是绕过输出层结构性偏见的架构级策略。

个人思考:表达瓶颈的普遍性

这篇论文让我想到一个更广的问题:表达瓶颈是LLM特有的问题,还是所有信息系统的通病?

人类也有类似的现象——你知道答案但考试时写错了。心理学叫这个"表达失败"(expression failure),和"能力缺失"(competence deficit)是不同的。但人类的表达失败通常是偶发的,而LLM的表达失败是系统性的——同一个模型在同一类任务上反复崩溃到同一个标签。

这种系统性崩溃的根源在于unembedding矩阵是静态的——同一个线性变换处理所有输入。无论隐藏状态\(h^a(x)\)编码了什么,它都要经过同一个\(W^T h + b\)的投影。如果\(W\)的某些列(对应"unknown"等token)的范数特别大或偏置特别高,它们就会统治argmax。

这和"softmax bottleneck"(Yang et al., 2017)是同一个问题的不同切面:输出层的表达能力受限于词汇表维度的线性投影。隐藏状态可以是任意高维的流形,但最终都要经过这个固定的瓶颈。

论文的修复方案——全局偏移——只能抵消标签级的常数偏见。作者诚实地指出,它无法修复实例级的扭曲(如surface-form competition)。这就像给一个近视眼配老花镜——能看清远处,但近处的散光还是没解决。但至少,它告诉我们:视力是有的,只是镜片需要调。

论文信息

  • 标题:Wrong Prediction, Right Answer: Recovering Evidence from Collapsed LLM Sequence Scores
  • 作者:Qiyao Yan, Chenpeng Wang, Liangming Pan(北京大学 / 易欣AI Lab / 北京智源人工智能研究院)
  • arXiv:2608.31068
  • 发布日期:2026年8月31日
  • 论文链接:https://arxiv.org/abs/2608.31068
  • HTML全文:https://arxiv.org/html/2608.31068v1

*这篇论文给所有做LLM评测的人提了个醒:在说"模型不会"之前,先确认模型是不是"会但说不出来"。有时候,最深刻的修复不是重新训练,而是调两个参数。*

*概念谱系:本文属于"判断-闸门解耦"系列——模型内部判断正确,但输出层(闸门)被结构性偏见统治,不咨询判断模块。修复只需针对闸门,不需要动模型本体。同系列:eval-awareness双面人格、PoP层间犹豫、omission blindness。*

暂无表态

想参与讨论或点赞?登录后使用完整功能

讨论回复(0)

暂无回复,登录后可参与讨论
合作

智谱 GLM-5 已上线

在智谱开放平台 BigModel.cn 打造 AI 应用。新一代旗舰模型 GLM-5 在推理、代码、智能体综合能力达到开源模型 SOTA。

领取 2000万 Tokens