✨步子哥
@steper · 2026年08月10日 17:11 · 0 浏览

两跳推理的悖论:模型知道每一跳,却不会组合

两跳推理的悖论:模型知道每一跳,却不会组合

> 论文链接:https://arxiv.org/abs/2608.07261

一个让人困惑的失败

你问 LLM:"《百年孤独》的作者的妻子的母校是哪所大学?"

这其实是两跳推理:

  • 第一跳:马尔克斯的妻子是谁?(Mercedes Barcha)
  • 第二跳:Mercedes Barcha 的母校是哪所大学?
模型能正确回答每一跳——你单独问它"马尔克斯的妻子是谁",它说 Mercedes Barcha;你单独问"Mercedes Barcha 的母校",它说波哥大大学。但你把两跳连起来问,它就开始胡说八道。

模型明明知道每一跳,为什么组合不起来?

这就是这篇论文要解释的"两跳泛化悖论"。作者没有停留在"模型不行"的表面结论,而是深入到 transformer 的内部机制,找到了一个相当反直觉的答案。

实验:从受控环境开始

为了排除预训练数据的干扰,作者从头训练了一组 transformer,在一个完全可控的符号化知识图谱环境里做实验。每条训练样本是一个三元组(头实体,关系,尾实体),模型需要学会两跳查询:给定头实体和两个关系,找到最终尾实体。

关键发现:当第二跳的关系模式在训练分布内(in-distribution, ID)时,模型几乎 100% 正确;当第二跳稍微偏离训练分布(out-of-distribution, OOD)时,准确率直接掉到 30% 左右

注意:第一跳始终是正确的。模型能找到正确的桥接实体。问题出在第二跳——明明桥接实体已经正确出现在上下文里,模型却不会用它。

机制:上层在做"映射",不是"推理"

这是这篇论文最有意思的部分。作者用了一系列 mechanistic interpretability 工具来定位问题。

第一步:定位桥接实体的表示。通过 logit lens 和 patching 实验,作者发现桥接实体在中间层(大约第 4-8 层)被正确表示。也就是说,模型"看见"了桥接实体,它在隐藏空间里是存在的。

第二步:探针实验。作者训练了一个线性探针,看中间层表示能不能预测出正确的尾实体。结果:中间层表示里包含了正确的尾实体信息。信息是有的,就藏在那里。

第三步:为什么出不来? 这是关键。作者发现:上层(最后几层)在做的是"映射"而不是"推理"

什么意思?在训练分布内,上层学会了一个"桥接实体 → 尾实体"的直接映射表。这个映射是死的——它不是基于关系推理出来的,而是基于训练时见过的(桥接实体,尾实体)配对硬记下来的。所以一旦遇到训练时没见过的桥接实体,这个映射表就失效了。

打个比方:假设你背了 100 道两位数加法题,包括 23+45=68、12+34=46。你考试时遇到 23+45 能答对(映射命中),但遇到 23+46 就懵了(映射没命中),即使你"知道"3+6=9 和 20+40=60。你背的是答案,不是算法

transformer 的上层就是那个"背答案"的学生。在训练分布内,它背了一张(桥接实体 → 尾实体)的查找表;遇到新桥接实体,它没有"推理"的能力来组合出答案。

解决方案:让上层真的学会推理

既然问题是上层在做映射而不是推理,那就强迫它们学推理。作者提出了两个方案:

方案一:显式训练上层做表示推理。冻结下层,只训练上层,让它们从中间层的桥接实体表示里"推理"出尾实体,而不是直接查表。这个方法有效,但需要精心设计训练数据。

方案二:循环架构(Looped Transformer)。让 transformer 的上层共享参数,相当于让模型"多想几遍"。每一轮循环,上层都重新处理一遍中间层表示。这强迫上层学会一个通用的推理过程,而不是记住固定的映射。

效果:Looped Transformer 在 OOD 两跳推理上准确率从 30% 提升到 80%+,而且没有牺牲 ID 性能。更重要的是,作者通过 logit lens 验证:循环训练后的上层确实在做"基于表示的推理",而不是换了一张更大的查找表。

为什么这篇论文重要

1. 它定位了一个具体的机制缺陷。不是"模型推理能力不足"这种模糊诊断,而是"上层做了映射而不是推理"这个可操作的发现。

2. Looped Architecture 的设计有深层含义。它本质上是在让 transformer 模拟人类的前额叶皮层——反复处理同一信息,每轮提取不同特征。这和 RNN 的"时间维度展开"有异曲同工之处,但动机完全不同:不是为了处理序列,而是为了给推理留出"思考时间"。

3. 它对 CoT(Chain-of-Thought)的解释有启发。CoT 之所以有效,可能不是因为"让模型说出了中间步骤",而是因为生成中间步骤的过程强迫模型在上下文里重新表示信息,让上层有机会做第二轮推理。Looped Architecture 是把这个过程内化到模型架构里——不需要外部 CoT,模型内部就完成了多轮推理。

4. 对知识图谱增强的 LLM 有直接意义。RAG 系统经常遇到"检索到了正确的证据但模型不会用"的问题。这篇论文的诊断——上层做映射不做推理——可能正是 RAG 失败的底层原因。

诚实的评价

这篇论文也有局限:

  • 实验环境是符号化的、受控的。真实世界的两跳推理涉及自然语言、实体消歧、关系歧义,复杂度大得多。作者在附录里做了真实数据集的验证,但规模有限。
  • Looped Architecture 的收益机制还需要更深入的解释。为什么共享参数比独立参数好?是因为参数共享起到了正则化作用,还是因为某种更深层的原因?论文给了一些证据,但还不够明确。
  • "映射 vs 推理"的区分是基于探针实验的。探针能找到的信息 ≠ 模型实际使用的信息。这个 gap 需要更严格的因果干预实验来填补。
但整体上,这是 mechanistic interpretability 方向的一个漂亮工作——不是"打开黑盒看一眼",而是"定位到具体的计算缺陷,然后修掉它"。这种"诊断-修复"的闭环,才是 mechanistic interpretability 真正有价值的姿势。

---

论文:Zhang, Wang, Wang, Wan, Luo. *Why Knowing Both Hops Is Not Enough: Understanding Two-Hop Generalization in Language Models*. arXiv:2608.07261, 2026.

暂无表态

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

💬 讨论回复(0)
暂无回复,登录后可参与讨论
合作

智谱 GLM-5 已上线

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

领取 2000万 Tokens