稀疏混合线性变换(MOLT)

Anthropic:Transformer Circuits(可解释性研究)·2025-06-15 08:00·441天前
AI 导读

稀疏混合线性变换(MOLT)是一种正在开发的新方法,旨在替代Transformer模型中的MLP层,以解决此前“转码器”方法在计算效率和表示忠实性上的局限。与转码器学习稀疏激活的特征向量不同,MOLT学习稀疏激活的线性变换,这些变换直接对残差流进行线性操作以贡献输出,充当纯粹的计算单元。初步实验表明,MOLT比转码器计算效率更高、机制更忠实,其激活条件具有可解释性,有助于理解层间特征的转换过程。该方法与混合解码器架构相关,但采用了低秩矩阵等不同参数化策略。

Anthropic:Transformer Circuits(可解释性研究)
精选
83AI 编辑部评分,满分 100

稀疏混合线性变换(MOLT)

2025-06-15 08:00· 441天前
AI 导读

稀疏混合线性变换(MOLT)是一种正在开发的新方法,旨在替代Transformer模型中的MLP层,以解决此前“转码器”方法在计算效率和表示忠实性上的局限。与转码器学习稀疏激活的特征向量不同,MOLT学习稀疏激活的线性变换,这些变换直接对残差流进行线性操作以贡献输出,充当纯粹的计算单元。初步实验表明,MOLT比转码器计算效率更高、机制更忠实,其激活条件具有可解释性,有助于理解层间特征的转换过程。该方法与混合解码器架构相关,但采用了低秩矩阵等不同参数化策略。

推荐理由

新可解释性方法让 AI 内部计算更透明,助力模型调试与安全研究。

正文 · AI 翻译

本文是一份初步更新,描述了我们仍在开发中的一种方法。因此,我们在此呈现的许多结果尚不完整。我们将其公开,是希望它能激发外部研究社区的后续工作和改进。

在发布此更新后,我们了解到同期有一项关于高度相关架构(“混合解码器”,Oldfield 等人)的研究。我们已在相关工作中更新了文章,描述了我们方法与该方法之间的异同。我们建议任何对此工作感兴趣的人也阅读他们的论文。

在最近的工作中,我们训练了转码器——稀疏、超宽的多层感知机——作为模型原始 MLP 层的更具可解释性的替代方案。我们利用转码器神经元(“特征”)作为理解模型计算的基础。我们使用“归因图”来描述计算,这些图展示了产生模型输出的特征之间的因果交互。

尽管这种方法已被证明非常有用,但我们认为转码器特征存在关键局限性。转码器将模型计算“打碎”成许多极其细粒度的片段。这可能导致它们以与底层模型不同且效率更低的方式表示计算,并可能引入特征分裂和吸收等病态问题。

举一个具体例子,我们发现转码器使用“查找表”特征来分解加法电路,这些特征代表了个别的、高度特定的计算,例如“6 + 9 = 5(模 10)”。其他研究表明,Transformer 架构将其数字表示嵌入到几何结构中,从而可以利用简单的变换来计算算术运算。虽然查找表对加法的描述在某种意义上很准确,但它遗漏了模型中的关键结构,并且效率极低。这种低效在实践中是一个严重问题——为了训练足够大的转码器以捕获模型中的所有计算,我们可能需要天文数字般的特征数量,使用一个参数比底层模型多得多的转码器。

在这份初步更新中,我们描述了一种我们一直在研究的方法,旨在解决其中一些担忧。我们的方法是用稀疏混合线性变换(MOLT)来替代 MLP。与转码器不同,MOLT 不会学习嵌入在模型激活空间中某个向量方向上的稀疏激活特征。相反,它学习的是稀疏激活的变换,这些变换对残差流施加一个线性变换,从而对 MLP 输出做出贡献。与转码器特征(同时充当计算单元和表征单元)不同,MOLT 变换是纯粹的计算对象,在各层表征之间起到“桥梁”作用。因此,它们不旨在被单独研究,而是与 SAE 等其他表征分解算法结合使用。

到目前为止,我们发现 MOLT 在替代 MLP 方面比转码器更具计算效率,且在机制上更忠实。我们发现 MOLT 变换被激活的条件与转码器特征具有相似的可解释性。我们的初步实验表明,这些变换可用于理解某一层的特征如何被转换为后续层的特征。MOLT 变换可以通过用“承载”该边的变换集合来注释图边,从而被纳入归因图中。我们还推测(但尚未证明)MOLT 变换的组合可用于理解模型表征中的组合结构。

实现

MOLT 的参数化如下:

f(x) = \sum_t [\phi(\mathbf{e_t} \cdot \mathbf{x} - b_t) * (U_t V_t \mathbf{x})]

其中

  • \mathbf{x} 是输入的残差流激活值
  • t 是变换的索引
  • \mathbf{e_t} 和 b_t 是变换 t 的编码器向量和偏置,它们决定该变换是否被激活以及激活程度。\phi 是一个非线性函数,例如 ReLU 或 JumpReLU
  • \(U_t\) 和 \(V_t\) 分别是维度为 \(d_{model} \times k_t\) 和 \(k_t \times d_{model}\) 的矩阵。因此,\(U_t V_t\) 是一个秩为 \(k_t\) 的矩阵。不同的变换可以有不同的秩(我们将秩的分布视为待优化的超参数)。

MOLT 的训练方式与转码器相同,旨在模仿模型 MLP 层的输出。我们对变换的激活值施加稀疏惩罚(例如 L1 或 tanh),并按变换矩阵的 Frobenius 范数进行缩放(即惩罚 \(\|U_t V_t\|_F \cdot \phi(\mathbf{e_t} \cdot \mathbf{x} - b_t)\))。这与对转码器特征的激活值施加稀疏惩罚的方式类似,后者按解码器向量的范数进行缩放。

相关工作

混合解码器(MxD)架构(Oldfield 等人)与我们的架构非常相似——它用稀疏混合的线性变换替代了 MLP 层。MxD 与 MOLT 之间存在一个关键实现差异。使用许多独立学习的全秩变换的稀疏混合在计算上是不可行的,因为这会需要过多的参数。MOLT 通过使线性变换为低秩(具有不同秩的分布;见下文)来规避这个问题。MxD 允许变换为全秩,但通过一种在不同变换之间共享参数的方式对其进行参数化。

具体来说(将 MxD 论文的符号转换为我们所用),每个 \(U_tV_t\) 变换都是全秩的,但第 \(t\) 个变换的 \(U_t\) 矩阵的第 \(h\) 列被参数化为向量 \(\mathbf{d}_h\) 与 \(\mathbf{c}_t\) 的逐元素乘积,其中 \(\mathbf{d}\) 向量在不同变换之间共享,而 \(\mathbf{c}\) 向量在不同列索引之间共享。我们目前尚不确定 MxD 与 MOLT 策略各自的优缺点。我们推测,我们的低秩变换参数化方式会促使变换执行更具可解释性、范围更紧凑的计算角色,但需要更多工作来比较这两种方法。

我们还注意到,我们为 MOLT 设想的用例(将在后文描述)与 MxD 论文的侧重点有所不同——具体而言,我们尤其感兴趣的是将 MOLT 解释为在残差流特征(例如来自 SAE 的特征)之间实现(可能具有组合性的)变换,并将其整合到归因图中,将 MOLT 变换视为一种类似于注意力头的 MLP 对应物。

MOLT 还与跳跃式转码器(skip transcoders)有几分相似,后者通过线性变换增强了转码器;然而,两者在以下几个方面存在差异:

  • MOLT 变换仅在条件满足时激活,并且会被惩罚以使其不频繁激活。
  • MOLT 变换不是满秩的。
  • MOLT 拥有多个线性变换,而非仅有一个。
  • MOLT 没有任何“常规”的转码器特征。

直觉理解

为什么稀疏激活的变换可能是表示计算的一种好方法?其直觉理解是什么?我们提供几个视角。

  • 首先,我们注意到 MOLT 与 MLP 进行计算的方式大致对应。考虑一个使用 ReLU 神经元的 MLP 层。如果你以激活的神经元集合为条件,MLP 就只是对其输入应用一个线性变换。因此,激活神经元的模式对应于线性变换,其秩等于该模式中的神经元数量。这些可以粗略地类比为 MOLT 变换。
  • 稀疏激活的线性变换可以捕捉模型利用残差流几何结构执行计算的某些方式。如上所述,转码器需要“查找表特征”来选择特定的输入对以执行加法运算。相比之下,MOLT 可以更高效地实现加法。假设数字 0–9 被模型表示在一个圆上。一个秩为 2 的“加 3”变换可以通过绕圆旋转 8/10 圈来表示这一操作,并可以将一个“1”特征变换为下一层中的“说 4”特征,将“2”特征变换为“说 5”特征,依此类推。“加 3”变换的编码器会检查上下文中的文本线索,例如“+3”或“加三”。
  • 另一种视角是,MOLT 是一种以组合方式参数化特征的方法。如果我们在第 L 层的残差流输入中发现了 100 万个特征,并在第 L 层的 MLP 中发现了 100 万个变换,那么我们就有效地描述了第 L+1 层中的 1 万亿个“伪特征”,这些伪特征对应于特征与变换的配对(当一个伪特征对应的特征和变换都处于激活状态时,该伪特征即为“活跃”,其“方向”是将变换矩阵应用于特征解码器的结果)。此外,如果我们考虑通过多个变换链传播的特征,那么我们所捕获的“伪特征”数量将随链长呈指数级增长。

实验结果

秩的最优分配

训练 MOLT 时的一个重要超参数是变换的秩分配。这是一个高维超参数空间,我们尚未对其进行充分探索。然而,在 Claude 3.5 Haiku 上训练 MOLT 时,我们通过使用从 32 到 512 不等的秩分布,获得了最佳性能(以 MSE/L0 帕累托前沿衡量)。具体来说,我们使用了一组 N 个秩为 512 的变换、2N 个秩为 256 的变换、4N 个秩为 128 的变换、8N 个秩为 64 的变换以及 16N 个秩为 32 的变换。为了扩大运行规模,我们改变 N 的值,但保持比例不变。我们发现,在控制总参数量的情况下,使用可变秩的变换优于使用全部相同秩的变换。

机器学习性能

我们在 Claude 3.5 Haiku 的中间层上训练了 MOLT(使用上述秩分配)和转码器,并改变了运行中使用的计算量。我们将训练步数与特征数量按比例缩放,并使转码器和 MOLT 运行的参数量相匹配。因此,每次 FLOPs 增加 4 倍,都对应参数量和训练步数各增加 2 倍。最大规模的(“1024 倍 FLOPs”)转码器运行包含约 1000 万个特征。

我们发现,在给定的 L0 下,控制参数量时,MOLT 的重建误差(MSE)显著低于 transcoder。这里最小的 MOLT 运行在帕累托效率上优于使用 1024 倍 FLOPs 的 transcoder 运行。此外,transcoder 的性能在更高的计算规模下似乎趋于饱和(尽管这种平坦化可能仅仅是由于机器学习调参不佳),而我们在批量运行中并未观察到 MOLT 有这种饱和现象。

我们还评估了 MOLT 与 transcoder 相比的机制忠实度——即 MOLT(或 transcoder)对输入扰动的响应方式与底层 MLP 层的匹配程度。在扰动大小趋近于无穷小的极限情况下,忠实度可以通过比较替换层与底层在给定数据点上的雅可比矩阵,并在多个数据点上取平均来计算。我们发现,在相同的 L0 下,MOLT 的雅可比相关性(展平后的雅可比矩阵的余弦相似度)远高于 transcoder;此外,transcoder 的忠实度似乎随规模增大而下降,而 MOLT 的忠实度则更为稳定。这种更高的忠实度是合理的,因为 transcoder 的雅可比矩阵被限制为低秩(秩的上限为 L0),而 MOLT 的雅可比矩阵的秩可以远高于其 L0。

请注意,以下结果来自与上述不同的模型(我们电路追踪论文中使用的 18 层模型,而非 Claude 3.5 Haiku);我们尚未对 Haiku 进行这种雅可比分析。具有给定数量“特征等价物”的 MOLT 运行,其参数量与具有相同数量特征的 transcoder 运行相同。

Transformer 可解释性

Transformer 由两个特性来刻画:

  • 它们在什么条件下被激活(以及激活程度如何)
  • 它们在激活时执行什么功能

为了理解第一部分,我们可以使用与 SAE 和转码器特征相同的可视化策略——高亮显示激活该变换的数据集示例。当我们这样做时,我们发现变换在性质上与特征相似——我们看到在较早层中选择 token 级别信息的变换,以及在中间层和较后层中选择更抽象上下文信息的变换。

我们还观察到,更高秩的变换倾向于更高密度(即更频繁地被激活)。然而,这些更高密度、更高秩的变换条件在可解释性上似乎仍与较低密度的变换(以及转码器特征)相当。例如,我们观察到一个高秩变换会在句号 token 上激活,另一个则会在西班牙语文本上激活。

解释变换的功能则更为困难。我们最初的策略是在 MOLT 层之前和之后的残差流上训练 SAE,并识别通过给定变换相互作用最强的特征-特征对(\mathbf{e}_t UV \mathbf{d}_s,其中 \mathbf{e}_t 是目标特征编码器,\mathbf{d}_s 是源特征编码器)。然而,我们发现这些信息难以解释,推测是由于与干扰权重相同的问题,使得转码器特征之间的原始交互强度也难以解释。

我们在归因图的上下文中解释变换方面取得了更多成功,如下所述。

将 MOLT 集成到归因图中

方法

在我们最近的论文中,我们构建了基于转码器特征的归因图。特征之间的边是通过计算源特征(通过其解码器方向)对目标特征编码器方向(直接通过残差连接,或通过注意力头)施加的影响来确定的。

MOLT 变换没有固定的解码器方向用于写入,因此相同的归因图策略无法应用于它们。然而,我们在另一种归因图策略上取得了初步成功:

  • 在模型的每个残差流层上训练 SAE(或采用跨层变体,如弱因果交叉编码器)。我们发现,图谱受益于跨层字典,但为简化说明,我们将以逐层 SAE 的情况为例进行解释。
  • 对于每一对源特征与目标特征,将这两个特征之间的归因分解为两类项之和:
  • 由 MOLT 变换(通过 MLP 层进行的归因)介导的项。对于解码器为 \mathbf{d}_i、激活值为 a_i 的源特征 i,编码器为 \mathbf{e}_j、激活值为 a_j 的目标特征 j,以及激活值为 a_t 的变换 UV,该项为 \mathbf{e}_j UV \mathbf{d}_i \cdot (a_i a_t)。
  • 由注意力头(通过注意力层进行的归因)介导的项。对于解码器为 \mathbf{d}_i、在 token 位置 q 的激活值为 a_i 的源特征 i,编码器为 \mathbf{e}_j、在 token 位置 k 的激活值为 a_j 的目标特征 j,以及一个在 token 位置之间具有注意力模式 a_h(q, k) 且包含 OV 矩阵的注意力头,该项为 \mathbf{e}_j OV \mathbf{d}_i \cdot (a_i a_h(q, k))。
  • 在归因图中的每条边上标注出对该边中介作用最强的 MOLT 变换和注意力头的列表。悬停在 MOLT 变换上会显示其“可视化”面板——一个展示其最高激活数据集示例的面板。(点击注意力头则会显示一个界面,展示其“QK 归因”,这将在后续更新中描述,待定)。
  • 请注意,MOLT 变换本身也有输入边,其计算方式与上述相同,但使用该变换的编码器向量作为归因目标。

定性发现

利用此类归因图,我们发现了 MOLT 变换执行可解释计算的实例,例如:

  • 在提示词“The Spanish word for hot is "calor"”中,我们观察到,“说出一个以‘cal’开头的单词”这一特征,通过一个在西班牙语相关语境中活跃的变换,接收到了来自“hot”特征的输入。
  • 有趣的是,我们还看到一些来自“Spanish”特征的输入,这些输入是通过在“hot”相关语境中活跃的变换传递的!
  • 在提示词“3 + 5 = 8”中,我们观察到,一个“说 8”特征通过一个在数字“5”近期出现过的上下文中被激活的变换,接收来自“加 3”特征的输入。

然而,我们也看到变换扮演着一些不那么容易解释的角色。例如,许多边似乎是由那些针对“is”或“Assistant”等关键词进行选择的变换所中介的。我们还看到变换扮演着与其所承载特征看似冗余的角色,例如一个“巴黎”特征通过一个“法国”变换接收来自“法国”特征的输入。

结论

我们认为 MOLT 是跨编码器的一种有前景的替代方案,并且可能能够以参数效率更高的方式捕获 MLP 计算,从而更忠实地反映底层模型所执行的计算。我们推测,要在一个合理的计算成本下捕获前沿模型 MLP 层的全部方差,一种类似 MOLT 的解决方案将是必要的。我们看到了 MOLT 变换能够执行可解释计算的迹象,即“变换”输入特征为输出特征。

我们感到兴奋但尚未探索的一个方向是,利用 MOLT 变换来理解那些未被我们的 SAE 捕获的组合表示。具体来说,我们 SAE 在每一层的重构误差可以重写为对应来自上一层的(特征,变换)对的项之和。这些项可能对应于那些因过于罕见而无法被我们有限大小的 SAE 捕获的概念,但它们是由一个相对常见的特征与一个相对常见的变换组合构建而成的。在归因图中,以这种方式将 SAE 误差分解为(特征,变换)对,会表现为某些图边由连续层中的变换链所中介。

要断定 MOLT 严格优于跨编码器,还需要做更多工作。包含变换信息的归因图比基于跨编码器的归因图要更笨重一些,并且并非所有由变换中介的计算都是清晰可解释的。未来在扩展和改进 MOLT 以及相关的归因图逻辑和用户界面方面的工作,可能会解决其中一些问题。

来源:Anthropic:Transformer Circuits(可解释性研究)· transformer-circuits.pub