大语言模型如何在上下文中完成两跳推理?
How Do LLMs Perform Two-Hop Reasoning in Context?
作者报告Llama2-7b有干扰时终点概率接近1/K;于K=2微调后,K=5的目标概率为0.86。
- 两跳推理要靠两条相邻事实推出终点。作者发现同一上下文加入无关推理链后,预训练LLM容易在各个看似合理的终点之间分配概率,而不是锁定目标链。
- 作者合成带干扰的两跳数据,在只含一条干扰链的提示上微调LLM,并从头训练三层Transformer,用注意力logits和logit lens反推信息流,再用三参数模型对照训练动态。
- 四个预训练模型在链数增加时把概率分到多个终点。只在K=2微调后,Llama3.1-8B在K=5的目标终点概率为1.00,OLMo-7B为0.50。三层模型约800步后从均匀猜测转为顺序查询。
- 结论把扩展到多跳推理和更多LLM列为未来工作。实验包括四个7B/8B模型、六个模板和超过50000个上下文,微调只在K=2;符号任务固定五条链。held-out测试集条数未报告。
- 被测模型
- Llama2-7bQwen2.5-7BOLMo-7BLlama3.1-8Bthree-layer Transformer
- 基准
- synthetic two-hop reasoning with distractorssymbolic two-hop reasoning
- 指标
- next-token probability of the first token of [END-T]next-token probability of the first token of [END-NT]cross-entropy loss at the query token
预训练大语言模型在存在干扰项时会在简单的两跳推理任务上失败,往往在所有看似合理的结论中随机猜测;经过少量微调后,模型可以达到接近完美的准确率并具备较强的长度泛化能力。作者在合成的两跳推理任务上从头训练一个 3 层 Transformer 并逆向分析其内部信息流,发现注意力 logits 在训练过程中出现明显相变,从最初的随机猜测转变为结构化的顺序查询机制。在这一机制下,模型在早期层先检索前置概念与桥接概念,再用它们推断最终答案。作者还表明,这一动态可由一个仅含三个参数的纯注意力网络刻画。
深度解读
这篇论文试图解决什么问题?
有干扰时基座把终点概率分散到各链上,微调后集中;作者用三层网络描述顺序查询。
预训练 LLM 在同一上下文放入多条两跳链时,常把目标终点的概率分散到各终点上;少量微调后概率集中,论文用三层 Transformer 反推这一转变。
- 场景:作者把 premise 定义为用一种关系连接两个实体的事实。两跳由源实体 [SRC] 连到桥实体 [BRG]、再连到终点 [END]。作者认为这是多跳推理里最简单、可处理的形式,对跨步整合信息很关键,但预训练 LLM 能否完成仍不清楚。
- 不足:作者称先前机理工作主要是 in-weight 多跳,从权重取出并组合已存储的事实。本文看 in-context:事实必须从当前上下文抽出,不靠记住的知识。
- 观察:干扰设定把多条链放进同一上下文,只有目标链通向正确推断,其余实体记为 [SRC-NT]、[BRG-NT]、[END-NT]。作者报告无干扰时 [END-T] 概率高,有干扰则接近 1/K(K 为推理链数),并略偏向目标。
- 做法:用 6 个模板合成带干扰数据;在一条目标链加一条干扰链的 1,000 条提示上微调;再从头训练三层 Transformer,分析注意力从随机猜测到顺序查询的相变,并用三参数网络拟合动态。
有哪些相关研究?
相关工作分多跳、上下文归纳头与小模型机理;作者把本文放在in-context两跳,并称三层才够。
作者在 Section 1.1 把相关工作分成多跳推理、上下文学习与归纳头、以及 LLM 可解释性三条线。
多跳推理
- 评测与潜在路径:Zhong et al. [2023] 被作者当作评测 LLM 的多跳基准。Yang et al. [2024b] 被引为:在某些提示下,LLM 可以沿潜在推理路径走。
- 按中间步注意:Biran et al. [2024]、Wang et al. [2024a]、Feng et al. [2024] 被归为从机理上研究模型如何依次注意中间步骤来做多跳。作者的对比挂在这一类上:先前工作主要是 in-weight,本文是 in-context,不依赖记住的知识。
上下文学习与归纳头
- ICL:Brown et al. [2020] 把 ICL 定义为不更新权重、只凭若干示例预测新输入的标签。作者还列举回归、分类、贝叶斯推断、模型选择和序贯决策等上下文任务,并称两跳比标准回归式 ICL 更复杂。
- 归纳头:Elhage et al. [2021]、Olsson et al. [2022] 把归纳头描述为连接重复 token、从而复制并补全序列的注意力模式。Bietti、Nichani、Wang、Chen 等分析小 Transformer 中的归纳头。Sanford et al. [2024a] 的结论被作者用来对比:两层才够做归纳头。
- 层数:作者称两跳要把两条分开的关系事实组合起来,本文中两层 Transformer 解不了该任务,最小是三层。Sanford et al. [2024b] 被引为理论结果:log k 层对上下文中的 k 跳既必要又充分。论文未把这当作对本文的批评。
可解释性与小系统
- 不可直接比较的机制:作者列举 grokking(Nanda et al. [2023])、function vectors(Todd et al. [2023])、电路发现、binding ID(Feng and Steinhardt [2023])、association-storage(Meng et al. [2022]、Geva et al. [2023]),并写本文与它们不可直接比较。
- 小代理模型:Olsson et al. [2022] 在两层网络复现归纳头;Bietti et al. [2024] 讨论 bigram 记忆与归纳头出现的快慢;Zhu et al. [2024] 在双线性模型和一层 Transformer 上分析 reversal curse;Reddy [2023] 用两参数玩具模型刻画归纳头的突然出现;Guo et al. [2024] 在 Bigram-Backcopy 上区分 active 与 dormant attention head。作者称方法类似,但两跳比 Bigram-Backcopy 或 copy-paste 更复杂。
基线与数据
- 基线方法:自然语言实验以各模型微调前的基座为对照,微调设定在结果表中写为 Fine-tuned on K=2。符号实验以一层、两层 Transformer 对照三层。基准均为作者合成:6 个模板、超过 50,000 个带干扰上下文,以及每上下文 5 条链的符号任务。
作者把本文定位为 in-context 而非 in-weight 的两跳机理研究,并称该符号任务需要三层,两层不够。
论文如何解决这个问题?
带干扰两跳上微调LLM,并用三层Transformer反推从均匀猜测到顺序查询的注意力。
作者把 in-context 两跳 做成可填空的合成任务:先看预训练 LLM 把概率分给哪个终点,再在符号版上反推三层 attention-only Transformer 的层间取信息顺序。
任务设定
- 链的成分:一条有效两跳恰有两条 premise。[SRC] 连 [BRG],[BRG] 连 [END]。带干扰时多条链共用一个上下文,只有目标链的结论被拿来查询;干扰链只放入两条 premise。目标与非目标 premise 随机排列。
- 符号版:隐去谓词,每个实体一个互不相同的 token。premise 写成 [SRC][BRG] 与 [BRG][END],结论写成 [SRC][END]。作者把配对中的前者叫 parent、后者叫 child。
- 固定长度上下文:每条上下文抽 5 条链,1 条目标、4 条干扰。链内 source-to-bridge 总在 bridge-to-end 之前,链之间打乱。末尾查询是 [SRC-T],要预测的下一 token 是 [END-T]。训练配置里序列长度 N=23(Table 6)。
模型选择与反推工具
- 深度:作者比较不同深度后称,每层一个注意力头的三层 Transformer 是能同时出现随机猜测和结构化学习的最小结构。一层、两层在长时间训练后仍不能一致地解该符号任务。去掉 MLP 后,作者称动态和相变仍在,后续分析因此集中在三层 attention-only。
- 训练:Adam,学习率 0.0003,batch 512,10,000 步,pre-layer norm,位置嵌入(Table 6)。LLM 微调用 LoRA,配置放在实验一节。
- 两种读法:注意力 logits 是 softmax 前的标量,用来看一个 token 从另一个 token 取信息的强度;softmax 之后作者称为 attention weights。logit lens 把隐藏状态经最终 READOUT(layer norm 再线性映射到词表)投到下一 token 的 logit。作者把查询处概率写成各前序 token 的加权和,权重是注意力权重,被加项是该 token 的 value 再经 READOUT。
SOFTMAX(READOUT(hquery))≈SOFTMAX(∑i wi·READOUT(VAL(i)))
这里 w_i 是 query 对第 i 个前序 token 的注意力权重。
慢学习阶段的信息流
作者取 training step 800 的注意力图(Figure 2)。
- 第 1 层:棋盘格。parent 关注前面 premise 里的 child,反过来也一样。[END] 从 [SRC] 和 [BRG] 取信息。
- 第 2 层:parent 改为均匀关注前面所有 token;child 仍均匀关注前面所有 parent,这些 logits 幅度近似相等。作者称此时不区分相关与无关 token。
- 第 3 层:query 关注前面所有 child,包括 [SRC] 到 [BRG] 里的 [BRG],以及 [BRG] 到 [END] 里的 [END]。
作者用 logit lens 解释为何概率落在各 [END] 上、而不是所有 child 上(Figure 3 是一条干扰的示意,数值在附录 B)。每个 [END] 在自身位置为正、在前面 parent 上为负。query 的读出被写成对 child 的平均:
READOUT(hquery)≈1/(|CHILD|)∑i∈CHILD(ei−∑j∈PARENTaj ej)
a_j>0,e_i 是第 i 位为 1 的向量。负项落在 [SRC] 与 [BRG],剩余较大的项是各 [END];softmax 后作者称其他项可忽略,各 [END] 因正项大小相近而得到接近的概率。
结构化阶段与三参数模型
- step 10000 的三层(Figure 4):第 1 层里,作者称大的项只连接每条 premise 内配对的 parent 与 child,child 复制 parent。第 2 层主要是 query 对 [BRG-T];因 [BRG-T] 已复制 [SRC-T],query 同时持有二者。第 3 层 query 对 [END-T]:二者共享 [BRG-T] 的信息,[END-T] 在第 1 层直接得到,query 经第 2 层间接得到。作者称因此下一 token 偏向 [END-T]。
- 三参数:α、β、γ 分别表示第 1 层复制、第 2 层 query 对 [BRG-T]、第 3 层 query 对 [END-T] 的进度。注意力用近似 softmax,定义为 exp(u)/(exp(u)+M),即一个 logit 为 u、其余 M 个为 0。复制层权重近似为该函数作用在 (α, N) 上,作者称 N 来自对 2N 个位置取平均;后两层的第二参数写为 2N。α、β、γ 趋于无穷时损失趋于 0,对应 10000 步之后;三者为 0 时损失接近在整个词表上均匀猜,对应未训练模型。模拟里 [END-T] 的 value 读出固定为 ξ 乘独热向量,ξ=30。
- 对照假设:该模型去掉“在各 [END] 上猜测”、只留顺序查询。假设 C.1:随机猜测机制造成 0–800 步慢学习。假设 C.2:顺序查询造成 800–10000 步的突然相变。优化是梯度下降,学习率 0.1。
论文做了哪些实验?
四个模型在K=5的目标概率均高于各自基座,OLMo-7B微调后仍为0.50。
实验设置
- 被测 LLM:Llama2-7b(Table 2 写作 Llama2-7B,结论写作 Llama2-7B-Base)、Qwen2.5-7B(Table 3 标题写作 Qwen2.5-7b)、OLMo-7B、Llama3.1-8B(Table 4 行名写作 Llama3-8b)。符号实验另训练一层、两层、三层 Transformer,主分析是去掉 MLP 的三层 attention-only。模板设计借助 Deepseek-R1。
- 自然语言数据:6 个模板,覆盖家庭、地理、生物和算术关系;地点和生物类别为虚构名称,作者称以此避免先验知识干扰。语言名和人名为常见名称。作者构造超过 50,000 个上下文。每条样本抽一个模板,恰一条目标链,干扰链只保留两条 premise,目标结论放在末尾,premise 随机排列。
- 微调:正文写 1,000 条提示,每条一条目标链加一条干扰链,结果表均标 Fine-tuned on K=2。Table 2 的 Data Processing 写 Distractor Numbers 为 2。LoRA:r=16,alpha=32,dropout=0.05,模块为 q/k/v/o_proj,fp16,AdamW,学习率 2×10^−4,cosine,warmup ratio 0.03,weight decay 0.01,3 个 epoch,batch 16,最大长度 128。附录称四模型在四张 A100 上、一小时内完成。
- 指标与协议:held-out test set 上,查询处目标终点实体首 token [END-T]、以及非目标终点首 token [END-NT] 的下一 token 概率。多干扰时先在上下文内对 [END-NT] 平均,再跨上下文平均,括号为标准误。K=1 表示无干扰。论文未报告测试集条数,也未使用 LLM 评审或人工判定。摘要写 near-perfect accuracy;表格报告的是概率。
- 符号训练:每上下文 5 条链(4 条干扰),序列长度 23,Adam,学习率 0.0003,β1=0.9,β2=0.99,weight decay 0.01,batch 512,10,000 步。作者称不同随机种子下结果一致,未给出种子个数。
主结果
下表是 [END-T] 首 token 的平均概率(括号内为标准误)。微调列都是在 K=2 上微调后再测。K 是上下文中的推理链数。Llama2-7b 据 Table 1,Qwen2.5-7B 据 Table 3,Llama3.1-8B 据 Table 4,OLMo-7B 据 Table 5。
表格较宽,可左右滑动
模型 基座 K=1 基座 K=5 K=2微调后 K=5 Llama2-7b 0.82 (0.01) 0.20 (0.01) 0.86 (0.01) Qwen2.5-7B 0.80 (0.01) 0.24 (0.01) 0.99 (0.00) Llama3.1-8B 0.90 (0.00) 0.27 (0.01) 1.00 (0.00) OLMo-7B 0.72 (0.01) 0.14 (0.00) 0.50 (0.01) - 正文对 Llama2-7b 的解读:作者称微调前只在无干扰时选出 [END-T],有干扰则接近在终点集合上随机猜,并略偏向目标。Table 1 中 K=5 的 [END-NT] 平均概率是 0.11 (0.00),这是每个非目标终点的平均,不是总和。K=2 时基座为 [END-T] 0.41 (0.01)、[END-NT] 0.34 (0.01)。
- 泛化说法与表定义:微调只用一条干扰链。作者称模型仍能处理更多干扰,正文写到五条干扰链。Table 1 把 K 定义为推理链总数,K=1 为无干扰,表内最大是 K=5。Llama2-7b 微调后 K=3、K=4 的 [END-T] 为 0.92 (0.01) 与 0.89 (0.01)。
- 附录并不重复同一条曲线:Llama3.1-8B 微调后 K=1 至 K=5 的 [END-T] 均为 1.00 (0.00),[END-NT] 均为 0.00 (0.00)(Table 4)。Qwen2.5-7B 微调后 K=3 的 [END-NT] 为 0.01 (0.00)(Table 3)。OLMo-7B 微调后 K=3 为 0.66 (0.01)、K=4 为 0.57 (0.01)(Table 5)。主文未讨论 OLMo 的下降。基座也不都贴着 1/K:Qwen2.5-7B 在 K=3 与 K=4 的 [END-T] 都是 0.26 (0.01)。
符号任务上的相变
- 测了什么:三层单头 Transformer 在 4 条干扰的符号两跳上,查询处交叉熵,以及各类 token 的预测概率(Figure 1)。
- 结果:作者称约 800 步出现相变。此前对所有可能终点 token 的概率接近均匀,约 0.2,并略偏向 [END-T]。图注写 [END-NT] 是对 [End-NT1]、[End-NT2]、[End-NT3] 和 [Brg-NT4] 的平均,原文即写 [Brg-NT4]。一层和两层长时间训练后仍不能一致求解。去掉 MLP 后,作者称动态与相变不受损害。
- 作者解读:800 步前是慢学习、接近随机猜测;相变后进入能做正确推断的结构化阶段。
注意力 logits 与 logit lens
- 慢阶段:Figure 2 取 step 800。作者描述第 1 层为棋盘格,第 2 层 child 对前面 parent 的 logits 幅度近似相等,第 3 层 query 关注前面全部 child。
- 为何不是在所有 child 上均匀:Figure 3 用一条干扰的例子;Figure 5 是 step 800、256 条序列平均的第 3 层 value 的 logit lens。作者称各 token 对自身为正,[END] 对 [BRG] 为负,[BRG] 对 [END] 约等于 0。负项与正项抵消后,较大项剩在各 [END] 上。
- 结构化阶段:Figure 4 取 step 10000。作者称第 1 层 child 强关注配对 parent,第 2 层 query 强关注 [BRG-T],第 3 层 query 强关注 [END-T],从而使预测偏向目标终点。
三参数模型对照
- 测了什么:只保留顺序查询、去掉在各终点上猜测的三参数系统,对照三层 Transformer 的损失(Figure 6,Appendix C)。用来检查假设 C.1(随机猜测造成 0–800 步慢学习)和 C.2(顺序查询造成 800–10000 步相变)。
- 结果:图注写三层 Transformer 在 0–400 步慢学习、约 800 步突然相变;这与 Section 3.1 “约 800 步之前为慢阶段”的分界写法不完全相同。三参数模型前 1000 步损失不变,约 1000 步突然相变,α、β、γ 同步变化。
- 作者解读:作者称因为随机猜测被拿掉后慢学习不再出现、突然相变仍在,所以模拟支持 C.1 与 C.2。
其他消融与分析
- 去掉 MLP:作者称不改变符号任务的动态和相变,论文未给单独损失(Section 3.1)。
- 一层、两层:作者称不能一致求解,论文未报告其损失或概率。
- Example 1(标题为 2 条干扰):基座对三个终点名为 0.33、0.32、0.31;微调后写为 0.97、0.01、001,原文即 001。
- Llama2-7b 基座 K=3、K=4 的 [END-T] 为 0.31 (0.01)、0.25 (0.01),[END-NT] 为 0.20 (0.01)、0.14 (0.00)(Table 1)。
- OLMo-7B 基座 K=1 的 [END-T] 为 0.72 (0.01),是四张表里 K=1 最低的一项(Table 5)。
- 四模型共用 Table 2 的 LoRA 配置;论文未报告 LLM 微调的步数,也未报告 held-out 条数。
有什么可以进一步探索的点?
作者仅在结论里把扩展到多跳和更多LLM列为未来工作,未另写局限。
作者指出的局限与后续方向
论文没有 Limitations 专节。Section 4 Conclusions 明确写了一条后续方向:把这项工作扩展到多跳推理和更多 LLM 会是重要的未来工作。除此之外,作者没有把某一项实验现象写成局限。
实验覆盖范围
- 自然语言结果表覆盖 Llama2-7b、Qwen2.5-7B、OLMo-7B、Llama3.1-8B,微调配置同为 Table 2 的 LoRA,结果表均标注在 K=2 上微调,评测 K=1 到 K=5(Table 1、3、4、5,Appendix A)。
- 模板为 6 个,作者构造的上下文超过 50,000 个;微调提示为 1,000 条。评测在 held-out test set 上,论文未报告该测试集条数。
- 符号任务固定为每上下文 5 条链、序列长度 23、10,000 步、batch 512;作者比较一层、两层和三层后,称三层单头是最小结构,并在去掉 MLP 的三层 attention-only 上做反推(Section 3,Table 6)。
- 报告的量是终点实体首 token 的下一 token 概率,以及查询处交叉熵。论文未报告另设的准确率,也未报告评审与人工的一致性。
- 注意力与 logit lens 针对该三层模型的 step 800 与 step 10000;logit lens 数值在 256 条序列上平均。三参数模型用学习率 0.1 的梯度下降,ξ 固定为 30(Appendix B、C)。
总结一下论文的主要内容
作者称Llama2-7b有干扰时接近按链数分配终点概率;三层网络相变后顺序注意桥与终点。
作者研究 Transformer 语言模型如何在上下文里做两跳推理,重点是同一上下文里还有无关链的时候。
- 问题:一条两跳由 [SRC] 经 [BRG] 连到 [END]。干扰链与目标链混在一起时,模型要选出目标终点,而不是其他链的终点。作者把这看成多跳里最简单的 in-context 形式,相对的是从权重里取出已记住事实的 in-weight 多跳。
- 做法:6 个模板、超过 50,000 个合成上下文上测预训练模型,并用 1,000 条“一条目标链加一条干扰链”的提示做 LoRA 微调。符号版把实体收成单 token,每条上下文 5 条链,从头训练三层单头 Transformer,用注意力 logits 和 logit lens 看各层取哪些 token,再用只含 α、β、γ 的系统对照损失。
- LLM 数字:Llama2-7b 基座在 K=1 时 [END-T] 概率为 0.82 (0.01),K=5 时为 0.20 (0.01)(Table 1)。同一模型只在 K=2 微调后,K=5 为 0.86 (0.01)。附录里同样只在 K=2 微调后,Llama3.1-8B 在 K=5 为 1.00 (0.00),Qwen2.5-7B 为 0.99 (0.00),OLMo-7B 为 0.50 (0.01)(Table 3–5)。正文的约 1/K 说法是对 Llama2-7b 的;Qwen2.5-7B 基座在 K=3 与 K=4 都是 0.26 (0.01)。
- 小模型:作者称约 800 步前,三层模型对各个终点 token 的概率约 0.2;第 3 层 query 取到所有 child,但正负项抵消后概率留在各 [END] 上。step 10000 时,第 1 层在 premise 内复制 parent,第 2 层 query 对 [BRG-T],第 3 层 query 对 [END-T]。一层和两层不能一致求解。作者称三参数模型前 1000 步损失不变、约 1000 步相变,因此把慢学习归到随机猜测、把相变归到顺序查询。
- 作者的收束:摘要和结论称很少的微调就足以换上能选出目标终点的机制,并出现向更多干扰的泛化;附录的微调配置是 3 个 epoch。作者把扩展到多跳和更多 LLM 写成未来工作。