电路追踪:揭示语言模型中的计算图谱 (Anthropic)

Transformer Circuits Thread

电路追踪:揭示语言模型中的计算图谱

电路追踪:揭示语言模型中的计算图谱

我们介绍了一种揭示语言模型行为背后机制的方法。通过追踪“替换模型”中的各个计算步骤,我们为感兴趣的提示词生成模型计算的图描述。这个替换模型将底层模型的部分(这里是多层感知机)替换为更易于理解的组件(这里是“跨层转码器”),并经过训练以近似底层模型部分。我们开发了一套可视化和验证工具,用于研究这些支持 18 层语言模型简单行为的“归因图”,并为 配套论文 奠定基础,该论文将这些方法应用于前沿模型 Claude 3.5 Haiku。

作者

Emmanuel Ameisen*, Jack Lindsey*, Adam Pearce*, Wes Gurnee*, Nicholas L. Turner*, Brian Chen*, Craig Citro*, David Abrahams, Shan Carter, Basil Hosmer, Jonathan Marcus, Michael Sklar, Adly Templeton, Trenton Bricken, Callum McDougall◊, Hoagy Cunningham, Thomas Henighan, Adam Jermyn, Andy Jones, Andrew Persic, Zhenyi Qi, T. Ben Thompson, Sam Zimmerman, Kelley Rivoire, Thomas Conerly, Chris Olah, Joshua Batson*‡

机构

Anthropic

发布时间

2025 年 3 月 27 日

作者

机构

发布时间

尚未发布。

DOI

尚无 DOI。

目录

§ 1 简介 § 2 构建可解释的替换模型

§ 3 归因图

§ 4 全局权重

§ 5 评估

§ 6 生物学 § 7 局限性 § 8 讨论 § 9 相关工作 § A 致谢 § B 作者贡献 § C 引用信息 § D CLT 实现细节 § E 归因图计算 § F 图剪枝 § G 验证替换模型 § H 使用跨层特征进行操纵的细微差别 § I 未解释的方差和转向因子的选择 § J 相似特征和超节点 § K 迭代修补 § L 干预细节 § M 界面注意事项 § N 残差流范数增长 § O 更多特征上的干扰权重 § P 选择特征的数字输出权重 § Q 小型和大型模型之间加法特征的比较 § R 其他评估细节 § S 提示词和图表列表

§ 1 简介

深度学习模型使用一系列分布在许多计算单元(人工“神经元”)中的转换来生成其输出。 机制可解释性领域试图用人类可以理解的语言来描述这些转换。 迄今为止,我们团队的方法遵循两步方法。 首先,我们识别特征,即可解释的构建块,模型在其计算中使用这些构建块。 其次,我们描述这些特征相互作用以产生模型输出的过程或电路。

一种自然的方法是使用模型的原始神经元作为这些构建块。另一种方法是研究大型模型组件的作用,例如整个 MLP 块和注意力头。 这种方法已经确定了这些组件在特定行为中发挥的有趣作用,但是大型组件在整个数据分布中扮演着许多不相关的角色,因此我们寻求更细粒度的分解。 使用这种方法,以前的工作成功地识别了视觉模型中由神经元组成的有趣电路,这些神经元似乎代表着有意义的视觉概念。 但是,模型神经元通常是多义的,代表着许多不相关的概念的混合。 人们认为多义性的一个原因是叠加现象,其中模型必须表示比神经元更多的概念,因此必须在许多神经元上“涂抹”它们对概念的表示。 网络的基本计算单元(神经元)与有意义的概念之间的这种不匹配已被证明是机械议程取得进展的主要障碍,尤其是在理解语言模型方面。

近年来,诸如稀疏自动编码器 (SAE)、转码器和互码器之类的稀疏编码模型已成为识别以叠加形式表示的可解释特征的有前途的工具。 这些方法将模型激活分解为稀疏激活的组件(“特征”)。 我们使用“特征”是遵循神经科学中的“特征检测器”和机器学习中的“特征学习”的传统。 一些最新文献使用术语“latent”,它指的是模型潜在空间中的特定向量。 我们发现“特征”更好地捕获了这些元素所扮演的计算角色,使其比 SAE 解码器向量更适合描述转码器神经元。事实证明,在许多情况下,这些组件对应于人类可以理解的概念。 虽然当前的稀疏编码方法是识别特征的一种不完善的方式(请参阅 § 7 局限性),但它们产生了足够可解释的结果,这促使我们研究由这些特征组成的电路。 几位作者已经朝着这个方向迈出了有希望的步伐。

虽然研究由稀疏编码特征构建的电路的基本前提听起来很简单,但设计空间很大。 在本文中,我们描述了我们目前的方法,其中涉及几个关键的方法论决策:

  1. 转码器。 我们使用转码器的一种变体而不是 SAE 来提取特征,这使我们能够构建一个可解释的“替换模型”,可以将其作为原始模型的代理进行研究。 重要的是,这种方法使我们能够分析直接的特征-特征交互。
  2. 跨层。 我们的分析基于跨层转码器 (CLT),其中每个特征从一层的残差流中读取,并有助于原始模型的所有后续 MLP 层的输出,这大大简化了生成的电路。 值得注意的是,我们可以将我们学习到的 CLT 特征替换为模型的 MLP,同时在约 50% 的情况下匹配底层模型的输出。
  3. 归因图。 我们专注于研究“归因图”,该图描述了模型使用类似于 Dunefsky 等人的方法在特定提示的特定 token 上产生输出所使用的步骤。 归因图中的节点表示活动特征、提示中的 token 嵌入、重构误差和输出 logits。 图中的边表示节点之间的线性影响,因此每个特征的活动是其输入边的总和(直到其激活阈值)(请参阅 § 3 归因图)。
  4. 特征之间的线性归因。 我们设计我们的设置,以便对于特定输入,特征之间的直接交互是线性的。 这使得归因成为一个定义明确、有原则的操作。 至关重要的是,我们冻结了注意力模式和归一化分母(遵循 ),并使用转码器来实现这种线性。直接的特征-特征交互是线性的,因为转码器特征“桥接”了 MLP 非线性,取代了它们的计算,并且因为我们已经冻结了剩余的非线性:注意力模式和归一化分母。 值得注意的是,严格来说,我们指的是特征的预激活与早期特征的激活呈线性关系。冻结注意力模式是一种标准方法,它将理解 transformer 分为两个步骤:理解给定注意力模式的行为,以及理解模型为何关注这些位置。 这种方法在 A Mathematical Framework 中针对注意力模型进行了深入探讨,该框架还讨论了 MLP 层的推广,这本质上是本文中使用的方法。 请注意,以这种方式分解理解注意力模式会导致 § 7.1 局限性:缺少注意力电路 中提到的注意力问题。 但是,我们也可以采用 Framework 采用的相同解决方案来研究 QK 电路。 特征还具有间接交互,由其他特征介导,这些特征对应于多步路径。
  5. 剪枝。 尽管我们的特征是稀疏的,但在给定的提示上仍然有太多的特征处于活动状态,难以解释生成的图。 为了管理这种复杂性,我们通过识别对特定 token 位置的模型输出贡献最大的节点和边来剪枝图(请参阅 § 5.2.4 附录:图剪枝)。 这样做使我们能够生成任意提示的模型计算的稀疏、可解释的图。
  6. 界面。 我们设计了一个交互式界面,用于探索归因图及其组成的特征,使研究人员可以快速识别和突出显示其中的关键机制。
  7. 验证。 我们研究电路的方法是间接的——我们的替换模型可能使用与底层模型不同的机制。 因此,重要的是我们验证在归因图中找到的机制。 我们通过扰动实验来实现这一点。 具体来说,我们测量在特征方向上应用扰动在多大程度上会产生与其他特征激活(以及模型输出)的变化,这些变化与归因图一致。 我们发现,在所有提示中,扰动实验在质量上通常与我们的归因图一致,但存在一些偏差。
  8. 全局权重。 虽然我们的论文主要侧重于研究单个提示的归因图,但我们的方法也使我们能够直接研究替换模型的权重(“全局权重”),这是许多提示中机制的基础。 在 § 4 全局权重 中,我们展示了这样做的​​一些挑战——由于权重干扰,简单的全局权重通常不如归因图那么容易理解。 但是,我们成功地应用它们来理解小数字加法背后的电路。

本文的目标是详细描述和验证我们的方法,并使用一些案例研究进行说明。

我们注意到,训练跨层转码器可能会产生大量的前期成本和精力,这些成本和精力会分摊到其电路发现应用中。 我们发现这足以提高电路的可解释性和简约性,从而证明了投资的合理性(请参阅 开放权重模型的成本估算关于相对于每层转码器的成本匹配性能的讨论)。 尽管如此,我们强调可以使用每层转码器甚至 MLP 神经元等替代方案(保留上述步骤 3-8),并且仍然可以产生有用的见解。 此外,未来很可能会开发出比 CLT 更好的方法。 为了帮助复制,我们分享了有关 CLT 实施的指导、有关剪枝方法的详细信息以及支持交互式图分析界面的前端代码

§ 2 构建可解释的替换模型

§ 2.1 架构

CLT CLT CLT MLP MLP MLP + + + + + 残差流 特征 神经元 跨层转码器 特征从一层读取并写入所有后续层 Layer 1 Layer 2 Layer 3 图 1:跨层转码器 (CLT) 构成了我们替换模型的核心架构。

跨层转码器 (CLT) 由 L 层神经元(“特征”)组成,L 层的数量与底层模型的层数相同。 该模型的目标是使用稀疏激活的特征来重构底层模型的 MLP 的输出。 这些特征从其关联层的模型的残差流接收输入,但从某种意义上说,它们是“跨层”的,因为它们可以为所有后续层提供输出。除 CLT 之外的其他架构也可以用于电路分析,但我们已通过经验发现这种方法效果很好。 具体来说:

更正式地说,要运行跨层转码器,让 \mathbf{x^{\ell}} 表示原始模型在第 \ell 层的残差流激活。 第 \ell 层的 CLT 特征激活 \mathbf{a^{\ell}} 计算为 \mathbf{a^{\ell}} = \text{JumpReLU}\!\left(W_{enc}^{\ell} \mathbf{x^{\ell}}\right) 其中 W_{enc}^{\ell} 是第 \ell 层的 CLT 编码器矩阵。

我们让 \mathbf{y^{\ell}} 指的是原始模型 MLP 在第 \ell 层的输出。 CLT 尝试重构 \mathbf{y^{\ell}} 使用 JumpReLU 激活函数计算为: \mathbf{\hat{y}^{\ell}} = \sum_{\ell'=1}^{\ell} W_{dec}^{\ell' \to \ell} \mathbf{a^{\ell'}} 其中 W_{dec}^{\ell' \to \ell} 是第 \ell' 层特征输出到第 \ell 层的 CLT 解码器矩阵。

为了训练跨层转码器,我们最小化两个损失函数的总和。 第一个是重构误差损失,在各层之间求和: L_\text{MSE} = \sum_{\ell=1}^L |\mathbf{\hat{y}^{\ell}} - \mathbf{y^{\ell}} |^2 第二个是稀疏性惩罚(总系数为 \lambda、超参数,另一个超参数为 c),在各层之间求和: L_\text{sparsity} = \lambda\sum_{\ell=1}^L \sum_{i=1}^N \textrm{tanh}(c \cdot |\mathbf{W_{dec, i}^{\ell}}| \cdot a^{\ell}i) 其中 N 是每层特征的数量,\mathbf{W{dec, i}^{\ell}} 是特征 i 的所有解码器向量的连接。

我们在一个小的 18 层 transformer 模型(“18L”) 18L 在第 0 层没有 MLP,因此我们的 CLT 有 17 层。 上训练了大小不同的 CLT,以及在 Claude 3.5 Haiku 上训练了大小不同的 CLT。 所有层的特征总数范围从 300K 到 10M 个特征(对于 18L),以及从 300K 到 30M 个特征(对于 Haiku)。 有关更多训练详细信息,请参阅 § D 附录:CLT 实现详细信息

§ 2.2 从跨层转码器到替换模型

给定训练好的跨层转码器,我们可以定义一个“替换模型”,该模型将跨层转码器特征替换为模型的 MLP 神经元,也就是说,每层的 MLP 输出都替换为其由所有写入该层的 CLT 重建的结果。 运行此替换模型的前向传递与运行原始模型相同,但有两个修改:

注意力层像往常一样应用,没有任何冻结或修改。 尽管我们的 CLT 仅使用来自底层模型的输入激活进行训练,但“运行”替换模型涉及在来自替换模型本身中间激活的“超出分布”输入激活上运行 CLT。

神经元 Token1 Token1 Token2 Token2 Token3 Token3 输出 输出 原始 Transformer 模型 我们研究的底层模型是基于 transformer 的大型语言模型。 替换模型 特征 我们用 替换原始模型的神经元 . 特征通常比神经元多 . 特征是稀疏活动的,通常代表可解释的概念 . Layer 1 Layer 2 Layer 3 MLP Attention 为了理解特征代表什么,我们使用 ,它显示了特征最强烈激活的数据集示例 是 . 在这个例子中,当要说一个州的首都时,该特征会强烈激发。 特征可视化 特征 图 2:替换模型是通过将原始模型的神经元替换为跨层转码器的稀疏激活特征来获得的。

作为简单评估,我们测量替换模型的最可能 token 输出与底层模型的匹配完成的分数。 该分数随着规模的增加而提高,并且对于 CLT 而言,优于每层转码器基线(即,每层都有一个在其上训练的标准单层转码器;显示的特征数量是指所有层的总数)。 我们还将其与阈值神经元的基线进行比较,改变神经元归零的阈值以下(根据经验,我们发现较高的神经元激活越来越容易理解,并且我们将在下面指示它们的易理解性大致与根据我们在 § 5.1.2 定量 CLT 评估 中进行的自动评估的特征的易理解性相匹配)。 我们的最大 18L CLT 在 50% 的开源数据集中各种预训练风格的提示上匹配底层模型的下一个 token 完成(请参阅 § R 其他评估详细信息)。我们使用随机抽样的提示和目标 token 集,限制于那些模型可以正确预测但置信度低于 80% 的提示和目标 token (以过滤掉“无聊”的 token)。

越低越好 神经元开始高于此阈值时看起来可以理解(改变阈值) 神经元 (改变阈值) 神经元 10m 每层转码器 3m 1m 300k 10m 跨层转码器 3m 1m 300k 10m 跨层转码器 3m 300k 1m 越低越好 每层转码器 神经元开始高于此阈值时看起来可以理解 图 3:跨层转码器、每层转码器和阈值神经元在用作替换模型的基础时的 top-1 准确率和 KL 散度方面的比较。 解释性阈值是使用排序和对比评估确定的(请参阅评估)。

§ 2.3 局部替换模型

虽然运行替换模型有时可以重现与底层模型相同的输出,但仍然存在显着差距,并且重构误差可能会跨层复合。 由于我们最终对理解底层模型感兴趣,因此我们希望尽可能接近地近似它。 为此,在研究固定提示 p 时,我们构建一个局部替换模型,该模型

在此误差调整和冻结注意力和归一化非线性之后,我们有效地根据不同的基本单元重写了底层模型在提示 p 上的计算; 所有经过误差校正的替换模型的激活和 logit 输出与底层模型的激活和 logit 输出完全匹配。 但是,这不能保证局部替换模型和底层模型使用相同的机制。 我们可以通过测量这些模型对扰动的响应方式的不同来测量机制上的差异; 我们将扰动行为匹配的程度称为“机制保真度”,这在 § 5.3 评估机制保真度 中讨论。这在精神上类似于在点 a 处对函数 f 进行泰勒近似; 两者在 a 附近的一个邻域中局部一致,但在远离时行为发散。

局部替换模型可以被视为一个非常大的完全连接的神经网络,跨越 token,我们可以在其上进行经典电路分析:

局部替换模型中唯一的非线性是应用于特征预激活的那些。

局部替换模型是我们归因图的基础,在归因图中,我们研究局部替换模型在其生成的提示上的特征-特征交互。 这些图是本文的主要研究对象。

Texas capital ? Austin 局部替换模型 局部替换模型特定于感兴趣的提示。 我们添加一个误差调整项,并冻结注意力模式以使其成为给定提示上原始模型中的值。 它产生与原始模型完全相同的输出,但尽可能多地用特征替换计算。 归因图 我们通过活动特征从输入到输出进行追踪,剪除不影响输出的路径。 误差节点表示原始 MLP 输出与替换模型的重构之间的差异 注意力模式被冻结为其在原始模型中的值,这使我们能够定义不同 token 位置中特征之间的权重 重构误差 注意力介导的权重 Texas capital ? Austin 图 4:局部替换模型是通过向替换模型添加误差项和固定注意力模式来获得的,以完全重现原始模型在特定提示上的行为。

§ 3 归因图

我们将介绍构建归因图的方法,同时研究一个关于模型为任意标题编写首字母缩略词的能力的案例研究。 在我们研究的示例中,模型成功地完成了虚构的首字母缩略词。 具体来说,我们为模型提供提示 The National Digital Analytics Group (N 并抽样它的完成:DAG)。 该模型经过训练的 tokenizer 使用特殊的“Caps Lock”token,这意味着提示和完成将被 token 化为:The National Digital Analytics Group (``⇪``n``dag

我们通过构建一个归因图来解释模型执行输出“DAG”token 的计算,该图显示了从提示到中间特征再到该输出的信息流。由于“Caps Lock”token,实际的目标 token 是“dag”。 我们在这里以及文本的其余部分以大写形式写入 token,以便于阅读。 下面,我们显示了完整归因图的简化图。 该图显示了底部的提示和顶部的模型完成。 框代表相似特征的组,并且可以悬停以显示每个特征的可视化。 我们在 § 3.3 理解和标记特征 中讨论了我们对特征的解释。 箭头表示一组特征或 token 对其他特征和输出 logit 的直接影响。

The National Digital Analytics Group (⇪N DAG The National Digital Analytics Group (⇪ N say/continue an acronym say/continue an acronym say/continue an acronym say “G” say “G” say “G” say “A” say “A” say “A” say “D” say “D” say “D” Digital Digital Digital Analytics Analytics Analytics Group Group Group say “DA” say “DAG” say “DAG” say “DAG” say “DA” say “DA” say “DA_” Hover to see feature visualizations! DATASET EXAMPLES 图 5:18L 完成虚构首字母缩略词的归因图简化图。

首字母缩略词提示的图显示了三个主要路径,分别源自组成所需首字母缩略词的每个 token。 路径源自给定单词的特征,从而促进了关于“在正确位置说出该单词的第一个字母”的特征,这些特征本身具有到“说 DAG”特征和 logit 的正边。 “说 X”标签描述了“输出特征”,它提升了特定的 token X,任意单个字母用下划线表示。 “单词 → 说 _W”边表示注意力头的 OV 电路写入一个子空间,然后该子空间被目标位置的 MLP 放大。 除了顺序路径之外,每组特征还具有到 logit 的直接边,表示仅通过注意力头 OV 介导的效果(即,在局部替换模型中,到输出的路径不“接触”另一个 MLP 层)。

为了输出“DAG”,模型还需要决定输出首字母缩略词,并考虑到提示已经包含 N 这一事实,而且我们确实看到“在首字母缩略词中”和“在首字母缩略词开头的 N 中”的特征具有到 logit 的正边。 单词 National 对 logit 的影响最小。 我们假设这是因为它的主要贡献是通过影响注意力模式来实现的,而我们的方法无法解释这一点(请参阅 § 7.1 局限性:缺少注意力电路)。

在本节的其余部分,我们将解释如何计算和可视化归因图。

§ 3.1 构建提示的归因图

为了解释局部替换模型执行的计算,我们计算了一个因果图,该图描述了它在特定提示上执行的计算步骤序列。 我们构建图的核心逻辑与 Dunefsky 等人的逻辑基本相同,扩展到处理跨层转码器。 我们的图包含四种类型的节点: