概念 | Transformer 中一类专门实现「续写上一次出现过的模式」的注意力头:看到序列里 [A][B]…[A],它能预测下一个 token 是 [B]

是什么

Induction Head 是 Transformer 里一种被反复发现、功能高度专门化的 attention head。它实现的算法非常简单,可以用一句话概括:

当前 token 是 A,那就去历史里找上一次 A 出现的位置,把紧跟在那个 A 后面的 token 复制过来作为预测。

举个具体例子,序列是 … Harry Potter … Harry,模型读到第二个 Harry 时,induction head 会回头找到第一个 Harry,发现它后面跟着 Potter,于是把 Potter 的信息搬到当前位置,从而预测下一个 token 是 Potter。这是一种纯粹基于「前缀匹配 + 复制后继」的 in-context 模式补全,不依赖具体语义,对任意 token(哪怕是随机字符串)都成立。

这个算法通常不是单个 head 完成的,而是一个两层、两个 head 协作的小电路(见 电路):

  1. Previous-token head(前一 token 头):位于较前的层,它把「我的前一个 token 是什么」这条信息写进当前位置的 残差流。也就是说,在第一个 A 后面那个 B 的位置上,被写入了「我前面是 A」。
  2. Induction head(归纳头本体):位于较后的层。它的 QK 回路(query-key,决定「往哪看」)让当前的 A 去匹配那些「前面是 A」的位置——也就是匹配到第一次 A 之后的 B;它的 OV 回路(output-value,决定「搬什么」)则把被匹配位置的 token(B)复制到当前输出。

QK 负责「找到上一次出现的地方」,OV 负责「复制它的后继」——两者分工是理解 induction head 机制的核心。

为什么重要(动机)

Induction Head 之所以是 interpretability 的奠基性发现之一,原因有三:

  • 它是 in-context learning(ICL)的机制性证据。 大模型能「读了几个示例就照着做」长期是个黑箱观察。Induction head 给出了一个具体、可检验的微观机制:最朴素的 ICL(按上下文里的模式续写)至少部分由这种 head 实现。它把「模型会 ICL」这个行为级现象,落到了「这几个 head 在做前缀匹配复制」的电路级解释。

  • 它是 universality(普适性)的范例。 几乎所有规模、不同随机种子训练出来的 attention-only 与完整 Transformer 里,都能找到 induction head。同一种算法在不同模型里独立涌现,说明它不是某个模型的偶然,而是数据分布逼出来的一种「自然解」——这支持了「不同网络会学到相似回路」的 universality 假说。

  • 它伴随训练中的 loss 相变出现。 训练过程中存在一个明显的、相对突然的 loss 下降「拐点」(phase change),多项分析指出这个拐点与 induction head 的形成在时间上高度重合,模型的 ICL 能力也在此前后跃升。这让它成为「能力涌现」少数有清晰机制对应的案例之一。

对新手而言,先理解 induction head,是后续读懂更复杂电路分析、ICL 机制研究的前置——它是「用电路视角解释一个具体能力」的最干净的入门样例。

关键细节

  • 机制 vs 命名的边界(已知 / 需谨慎)。 严格的 induction head 定义是「实现前缀匹配复制算法的 head」。实践中人们常用一个行为代理指标来识别它:给模型喂随机 token 的重复序列(如 xyz…xyz…),看哪个 head 在重复段上注意力强烈指向「上一次出现位置的后继」。注意:行为上像 induction、和机制上真的在做 QK 匹配 + OV 复制,二者不完全等价——一个 head 可能在某些输入上表现得像 induction 却走了别的回路。判断机制需要更强的因果证据(见 Activation Patching因果中介)。

  • 它不止做「精确复制」。 后续工作发现,同一批 head(或其变体)还参与「fuzzy / 软匹配」的归纳——不要求 token 完全相同,而是按语义或抽象模式续写,甚至支撑更复杂的 in-context 推理。所以「induction head 只会逐字复制」是常见误解;精确复制是它最容易被识别的极端情形,而非全部功能。

  • 两头电路是典型结构,但非唯一实现(推测 / 争议)。 prev-token head + induction head 的两步组合是被反复验证的经典形态,但模型里 ICL 相关的回路可能更冗杂:存在多个 induction head 互为冗余、与其他 head 组合、或承担额外功能。把「ICL = induction head」直接画等号是 overclaim——induction head 解释的是 ICL 的一个重要成分,不是全部。

  • 依赖位置信息。 「前一个 token 是谁」「上一次出现在哪」都隐含对相对位置的利用,因此 induction 机制与模型的位置编码方式相关;这也是它能做「前缀」匹配而非单纯「内容」匹配的基础。

与其他概念的关系

  • 电路(Circuits):induction head 是「电路」这一分析范式最经典、最易讲清的实例——一个跨层、多 head 协作完成单一算法的子网络。想理解什么叫「电路级解释」,从它入手最直观。
  • In-context Learning and Induction Heads:系统提出并论证 induction head 与 ICL、与训练相变关系的 anchor 论文,发现层面的细节(共现指标、phase change 证据、universality)都在此。
  • 残差流(Residual Stream):两头电路靠残差流传递中间信息——prev-token head 把「前驱身份」写入残差流,induction head 再读出并使用它;残差流作为「共享通信总线」的视角是理解这种跨层协作的前提。
  • Activation Patching / 因果中介:要从「这个 head 看起来像 induction」升级到「它因果上确实在执行该算法」,需要这些干预方法做 grounding,避免把行为相关当成机制证据。