正确的答案,错误的方向:为什么 Transformer 计数失败以及如何修复它
The Right Answer, the Wrong Direction: Why Transformers Fail at Counting and How to Fix It
摘要
大语言模型 在简单的计数任务中经常失败,即使要计数的项目在提示中也是如此。我们调查发生此故障是否是因为 Transformer 不在内部表示计数,或者因为它们无法将表示形式转换为正确的输出标记。在 Pythia、Qwen3 和 Mistral 三个模型系列中,参数范围从 0.4B 到 14B,我们找到了第二种解释的证据。线性探针从中间层恢复正确的计数,$R^2>0.99$,表明信息存在。然而,编码计数的内部方向几乎与数字词元输出头行正交($|\cos| \leq 0.032$)。换句话说,该模型以数字 logits 不会自然读出的形式存储计数。我们通过两种干预措施来定位这一失败。仅更新输出头的数字行(36,864 个参数)可显着改善受约束的数字预测(在四个任务上为 60.7--100.0%),但它不能修复无约束的生成(0%);我们并不声称数字行修复修复了开放式文本。相比之下,注意力 Q/V 上的小型 LoRA(7.67M 参数)改进了上游路由,并在真正的贪婪自回归生成(可部署修复)中实现了 83.1%$\pm$7.2%。第 35 层的 logits-lens(实体计数;正确数字排名):(i) 超过 3 个种子的中位数从 $10^4$ 下降到 1; (ii) 种子 42 显示 $54{,}332 \to 838$(中位数 top-1,而一颗种子远远低于)。 Norm、logits-lens 和跨任务分析将瓶颈概括为计数、加法和列表长度; MMLU 和 GSM8K 上的空值以及有限的 DROP 传输。这些结果将计数失败视为几何读出瓶颈,而不是内部表示失败:模型知道计数,但输出路径与表达计数所需的标记不一致。