Claude官网|Claude中文版

20000 字长文揭示 Claude 3.5 Sonnet 可解释性特征和案例

Claude2024-06-25 13:40:09100


6 月 21 日,Anthropic 发布了 Claude 3.5 Sonnet(中等模型),在广泛的评测集上超越了竞争对手 OpenAI GPT-4o。

Claude 3.5 Sonnet 目前已经在 claude.ai 网页版和 iOS App 上线,所有人都可免费体验,Pro 和 Team 订阅用户可以享受更高吞吐。同时 Anthropic API 也已上线,价格和 Claude 3 Sonnet 持平,即每百万输入 token 3$,输出 token 15$(详见《盘点国内外大模型推理服务 API 价格》)。

就在一个月前,5 月 21 日,Anthropic 更新了一篇模型可解释性的技术博客《扩展单义性:从 Claude 3 Sonnet 中提取可解释特征》,利用稀疏自编码器解读了 Claude 3 Sonnet 特征激活值对应的语义特性。我们有理由相信,Claude 3.5 模型正是建立在该研究的基础上对模型做出的针对性调优。精读这篇文章也能加深对大语言模型的理解,加速自研大模型研究进程。

博客原文地址:https://transformer-circuits.pub/2024/scaling-monosemanticity/index.html

以下内容摘录自该博客。内容由 AI 生成。

扩展单义性:从 Claude 3 Sonnet 中提取可解释特征


八个月前,我们证明了稀疏自编码器(Sparse Auto-Encoder,简称 SAE)可以从一个小型单层 transformer 中恢复单义特征(Monosemanticity)。当时,一个主要担忧是这种方法可能无法有效地扩展到最先进的 transformer 模型,因此无法在实践中为 AI 安全做出贡献。从那时起,扩展稀疏自编码器一直是 Anthropic 可解释性团队的一个主要任务。我们很高兴地报告,我们已经从 Claude 3 Sonnet(Anthropic的中型生产模型)中提取出了高质量的特征。

我们发现了多样化的高度抽象特征。这些特征既能响应抽象行为,也能在行为上引起抽象行为。我们发现的特征示例包括:名人特征、国家和城市特征,以及跟踪代码中类型签名的特征。许多特征是多语言的(能够跨语言响应相同的概念)和多模态的(能够在文本和图像中响应相同的概念),并且涵盖了同一想法的抽象和具体实例(例如存在安全漏洞的代码,以及对安全漏洞的抽象讨论)。

我们发现的一些特征特别有趣,因为它们可能与安全相关 - 也就是说,它们可能与现代 AI 系统可能造成危害的一系列方式有关。特别是,我们发现了与以下方面相关的特征:代码中的安全漏洞和后门;偏见(包括公开的诽谤和更微妙的偏见);说谎、欺骗和权力寻求(包括背叛性转变);谄媚;以及危险/犯罪内容(例如,制造生物武器)。然而,我们警告不要过度解读这些特征的存在:例如,了解谎言、有能力说谎和在现实世界中实际说谎之间是有区别的。这项研究也还处于非常初步的阶段。需要进一步的工作来理解这些潜在安全相关特征的含义。

关键结果

  • 稀疏自编码器可以为大型模型产生可解释的特征;

  • 可以使用扩展定律来指导稀疏自编码器的训练;

  • 产生的特征高度抽象:多语言、多模态,并在具体和抽象引用之间进行泛化;

  • 概念的频率和解析这些概念所需的字典大小之间似乎存在系统性关系;

  • 可以使用特征来引导大型模型(参见例如"对行为的影响"部分)。这扩展了之前使用其他方法引导模型的工作(参见"相关工作");

  • 我们观察到与广泛的安全问题相关的特征,包括欺骗、谄媚、偏见和危险内容;

将字典学习扩展到 Claude 3 Sonnet

我们理解 Claude 3 Sonnet 的一般方法基于线性表示假设(参见例如[1])和叠加假设(参见例如[2, 3, 4])。关于这些想法的介绍,我们建议读者参考"玩具模型"[4]的背景和动机部分。从高层次来看,线性表示假设认为神经网络将有意义的概念(称为特征)表示为其激活空间中的方向。叠加假设接受线性表示的想法,并进一步假设神经网络利用高维空间中近乎正交方向的存在来表示比维度更多的特征。

如果相信这些假设,自然的方法是使用一种称为字典学习的标准方法[5, 6]。最近,几篇论文表明,这对 transformer 语言模型可能非常有效[7, 8, 9, 10]。特别是,一种称为稀疏自编码器的字典学习的特定近似方法似乎非常有效[8, 9]。

迄今为止,这些努力都是在相对较小的语言模型上进行的,按现代基础模型的标准来看。我们之前的论文[8]重点是一个单层模型,是这方面的一个特别极端的例子。因此,一个重要的问题一直悬而未决:这些方法是否适用于大型模型?或者是否存在一些原因,无论是工程上的实际问题还是大型模型运作方式的更根本差异,意味着这些努力无法推广?

这个背景激发了我们将稀疏自编码器扩展到 Claude 3 Sonnet(Anthropic 的中型生产模型)的项目。本节的其余部分将回顾我们的一般稀疏自编码器设置、本文将分析的三个稀疏自编码器的具体情况,以及我们如何使用扩展定律来为稀疏自编码器的设计做出明智的决策。在此基础上,我们将深入分析我们的稀疏自编码器学习到的特征 - 以及它们揭示的 Claude 3 Sonnet 的有趣属性。

稀疏自编码器

我们在这项工作中的高层次目标是将模型(Claude 3 Sonnet)的激活分解为更可解释的部分。我们通过在模型激活上训练稀疏自编码器(SAE)来实现这一目标,就像我们之前的工作[8]和其他几个组(例如[7, 9, 10];参见相关工作)那样。SAE 是"稀疏字典学习"算法家族的一个实例,旨在将数据分解为稀疏激活组件的加权和。

我们的 SAE 由两层组成。第一层("编码器")通过学习的线性变换和 ReLU 非线性将活动映射到更高维的层。我们将这个高维层的单元称为"特征"。第二层("解码器")试图通过特征激活的线性变换重建模型激活。该模型经过训练以最小化(1)重建误差和(2)特征激活的 L1 正则化惩罚的组合,后者激励稀疏性。

一旦 SAE 训练完成,它就为我们提供了模型激活的近似分解,将其分解为"特征方向"(SAE 解码器权重)的线性组合,系数等于特征激活。稀疏性惩罚确保对于模型的许多给定输入,只有很小一部分特征会有非零激活。因此,对于任何给定上下文中的任何给定标记,模型激活都由一小组活跃特征"解释"(从大量可能的特征中选择)。有关 SAE 的更多动机和解释,请参见《走向单义性》[8]的问题设置部分。

以下是我们方法的简要概述,我们在 2024 年 4 月更新中的"我们如何训练 SAE 的更新"部分更详细地描述了这一点。

作为预处理步骤,我们对模型激活作标量归一化,使它们的平均平方 L2 范数等于维度 𝐷。我们将归一化后的激活表示为 ,并尝试使用 𝐹 个特征来分解这个向量,如下所示:

其中  为学习到的 SAE 解码器权重, 为学习到的解码器偏置项, 为第 i 个特征激活值。每个特征激活值为编码器的输出:

其中  为学习到的编码器权重,为学习到的编码器偏置项。

SAE 的损失函数 L 定义为重建误差的 L2 范数和特征激活值的 L1 惩罚:

其中 L1 惩罚项中的  允许将单位归一化后的解码器向量 解释为“特征向量”或“特征方向”,乘积  为特征激活值。后文我们将保持这一称谓。

我们的 SAE 实验


出于安全和竞争原因,Claude 3 Sonnet 是一个专有模型。本文中的一些决定反映了这一点,例如不报告模型的大小,在某些图表中省略单位,以及使用简化的分词器。关于 Anthropic 如何看待在发布研究结果时的安全考虑,我们建议读者参考我们的《AI安全核心观点》。

在这项工作中,我们专注于将 SAE 应用于模型中间层(即"中间层")的残差流激活。我们选择这样做有几个原因。首先,残差流比 MLP 层小,使 SAE 训练和推理在计算上更便宜。其次,理论上专注于残差流有助于我们缓解我们称之为"跨层叠加"的问题(详见"局限性"部分的更多讨论)。我们选择关注模型的中间层,是因为我们推断它可能包含有趣的、抽象的特征(参见例如[11, 12, 13])。

我们训练了三个不同大小的 SAE:1,048,576(约 1M)、4,194,304(约 4M)和 33,554,432(约 34M)个特征。34M 特征运行的训练步骤数是使用扩展定律分析选择的,以在固定计算预算下最小化训练损失(见下文)。我们使用的 L1 惩罚项系数为 0.005。我们对一个狭窄范围的学习率进行了扫描(由扩展定律分析建议),并选择了给出最低损失的值。

对于所有三个 SAE,在给定的标记上平均活跃(即有非零激活)的特征数少于 300 个,SAE 重建解释了模型激活至少 65% 的方差。在训练结束时,我们将"死亡"特征定义为那些在 10^7 个标记的样本中未被激活的特征。1M SAE 的死亡特征比例大约为 2%,4M SAE 为 35%,34M SAE 为65%。我们预计,通过改进训练程序,未来的实验可能能够减少死亡特征的数量。

扩展定律

在更大的模型上训练稀疏自编码器(SAE)需要大量计算资源。理解以下两点很重要:(1) 额外的计算能在多大程度上改善字典学习的结果,以及 (2) 如何分配这些计算资源以在给定的计算预算内获得最高质量的字典。

虽然我们缺乏评估字典学习运行质量的黄金标准方法,但我们发现,在训练过程中使用的损失函数——重建均方误差(MSE)和特征激活的 L1 惩罚的加权组合——是一个有用的代理指标,前提是选择合理的 L1 系数。也就是说,我们发现使用 5 作为 L1 系数时,具有低损失值的字典往往产生可解释的特征,并改善其他感兴趣的指标(L0 范数,以及死亡或其他退化特征的数量)。当然,这是一个不完美的指标,我们对它是否最优没有太大的信心。很可能其他 L1 系数(或完全不同的目标函数)会是更好的优化代理。

有了这个代理指标,我们可以将字典学习视为一个标准的机器学习问题,并将"扩展定律"框架应用于超参数优化(参见例如[14, 15])。在 SAE 中,计算资源的使用主要取决于两个关键超参数:正在学习的特征数量,以及用于训练自编码器的步骤数(这与使用的数据量成线性关系,因为我们只训练 SAE 一个周期)。如果输入维度和其他超参数保持不变,计算成本与这些参数的乘积成比例。

我们对这些参数进行了彻底的扫描,同时固定其他超参数(学习率、批量大小、优化协议等)的值。我们还对损失函数和感兴趣参数的计算最优值感兴趣;也就是说,使用给定计算预算可以达到的最低损失,以及实现这个最小值的训练步骤和特征数量。

我们观察到以下现象:

1. 在我们测试的范围内,给定计算最优的训练步骤和特征数量选择,损失大约按照计算量的幂律减少。

2. 随着计算预算的增加,分配给训练步骤和特征数量的 FLOPS 的最优分配都大约呈幂律分布。总的来说,在我们测试的计算预算范围内,最优特征数量似乎比最优训练步骤数量增长得稍快,尽管这种趋势可能在更高的计算预算下发生变化。

这些分析使用了固定的学习率。对于不同的计算预算,我们随后根据上述图表中的不同最优参数设置对学习率进行了扫描。推断出的最优学习率大约呈计算预算的幂律函数减少,我们推断了这一趋势以选择更大运行的学习率。

评估特征可解释性

在前一节中,我们描述了如何在 Claude 3 Sonnet 上训练稀疏自编码器。正如扩展定律所预测的那样,通过训练大型 SAE,我们实现了更低的损失。但损失只是我们真正关心的事物的代理指标:可以解释模型行为的可解释特征。

本节的目标是研究这些特征是否真的可以解释,并能解释模型行为。我们首先将看几个相对简单的特征,并提供证据表明它们是可解释的。然后,我们将查看两个更复杂的特征,并证明它们能追踪非常抽象的概念。最后,我们将进行一个使用自动化可解释性技术来评估更多特征的实验,并将它们与神经元进行比较。

四个可解释特征的例子

在这个小节中,我们将看几个特征,并论证它们确实是可解释的。我们的目标只是证明可解释特征的存在,将更强的主张(比如大多数特征都是可解释的)留到后面的章节。我们将提供证据,证明我们的解释很好地描述了这些特征所代表的内容以及它们在网络中的功能,使用的分析方法类似于《走向单义性》[8]中的方法。

我们在本节研究的特征响应于:

  • 金门大桥 34M/31164353: 对金门大桥的描述或引用。

  • 脑科学 34M/9493533: 讨论神经科学和相关的大脑或心智学术研究。

  • 纪念碑和热门旅游景点 1M/887839

  • 交通基础设施 1M/3

在本文中,对于每个特征,我们展示了在我们的 SAE 数据集中排名前 20 的文本输入的代表性例子,排名基于它们激活该特征的强度(详见附录)。点击特征 ID 可以找到更大的随机抽样激活集。高亮颜色表示每个标记的激活强度(白色表示无激活,橙色orange表示最强激活)。

虽然这些例子为每个特征提供了解释,但还需要做更多工作来确立我们的解释确实捕捉到了相应特征的行为和功能。具体来说,对于每个特征,我们试图建立以下主张:

1. 当特征激活时,相关概念可靠地出现在上下文中(特异性)。

2. 干预特征的激活会产生相关的下游行为(对行为的影响)。

特异性

准确衡量一个概念在文本输入中出现的程度是困难的。在我们之前的工作中,我们专注于明确对应于一组标记(例如,阿拉伯文或 DNA 序列)的特征,并计算了在特征激活的条件下,该组标记相对于词汇表其余部分的可能性。这种技术不能推广到更抽象的特征。相反,为了在本工作中证明特异性,我们更多地利用了自动化可解释性方法(类似于[16,8])。我们使用与之前工作[8]中相同的自动化可解释性流程(在下面的"特征vs.神经元"部分),但我们还发现,当前一代模型现在可以更准确地根据文本样本与提议的特征解释的匹配程度对其进行评分。

我们构建了以下评分标准,用于评分特征描述与其激活文本的关系。然后,我们要求 Claude 3 Opus 根据该标准对许多标记上的特征激活进行评分。

  • 0 – 特征与整个上下文完全无关(相对于互联网的基本分布)。

  • 1 – 特征与上下文相关,但不在高亮文本附近或只是模糊相关。

  • 2 – 特征与高亮文本只是松散相关,或与高亮文本附近的上下文相关。

  • 3 – 特征清晰地识别了激活文本。

通过对激活文本的例子进行评分,我们为每个特征提供了特异性的度量。本节中的特征被选择为具有直接的解释,以使自动化可解释性分析更可靠。它们并不意味着代表我们 SAE 中所有特征的例子。稍后,我们将提供对随机抽样特征的可解释性分析。我们还在整篇论文中对更多具有有趣解释的特征进行深入探索,这些解释更加抽象或微妙,因此更难定量评估。

下面我们展示了上述四个特征的激活分布(不包括零激活),以及导致低激活和高激活的示例文本和图像输入。请注意,尽管我们只在基于文本的数据集上执行字典学习,这些特征也会对相关图像产生激活!

首先,我们研究一个金门大桥特征 34M/31164353。它的最大激活实质上都是对这座桥的引用,较弱的激活还包括相关的旅游景点、类似的桥梁和其他纪念碑。接下来,一个脑科学特征 34M/9493533 在讨论神经科学书籍和课程,以及认知科学、心理学和相关哲学时激活。在 1M 训练运行中,我们还发现一个特征 1M/3 强烈激活于各种交通基础设施,包括火车、渡轮、隧道、桥梁,甚至虫洞!最后一个特征 1M/887839 响应于热门旅游景点,包括埃菲尔铁塔、比萨斜塔、金门大桥和西斯廷教堂。

为了量化特异性,我们使用 Claude 3 Opus 自动根据上述标准对激活这些特征的例子进行评分,从用于训练字典学习模型的数据集中抽取了大约 1000 个特征激活。我们绘制了每个评分标准得分的频率作为特征激活水平的函数。我们看到,导致强特征激活的输入都被判断为与提议的解释高度一致。

正如《走向单义性》中所见,随着激活强度的减弱,这些特征变得不那么特异。这可能是因为模型使用激活强度来表示概念存在的置信度。或者可能是特征对核心例子激活最强,但对相关想法弱激活 - 例如,金门大桥特征 34M/31164353 似乎对其他旧金山地标弱激活。这也可能反映了我们字典学习程序的不完美。例如,自编码器的架构可能无法像我们希望的那样清晰地提取和区分特征。当然,不完全正交的特征之间的干扰也可能是罪魁祸首,使 Sonnet 本身更难在恰当的例子上精确激活特征。我们的特征解释可能略微误表了特征的实际功能,这种不准确性在较低的激活中表现得更明显,这也是合理的。尽管如此,我们经常发现较低的激活倾向于保持对我们解释的一些特异性,包括相关概念或核心特征的泛化。作为一个说明性的例子,交通基础设施特征 1M/3 的弱激活包括描述特定零件应使用哪些通孔的程序机械说明。

此外,我们预期特征的非常弱的激活并不特别有意义,因此我们不太关心这些激活范围的低特异性得分。例如,我们观察到,诸如将低于阈值的特征激活四舍五入到零的技术可以改善光谱低激活端的特异性,而不会显著增加 SAE 的重构误差,文献中有各种技术可能解决同样的问题[17, 18]。

无论如何,对模型行为影响最大的是最大的激活,所以看到强激活中的高特异性是令人鼓舞的。

注意,我们在以可扩展、严格的方式量化特征敏感性方面遇到了更多困难 - 也就是说,一个特征对符合我们提议解释的文本可靠激活的程度。这是由于以无偏方式生成与概念相关的文本的困难。此外,许多特征可能代表比我们通过可视化所能获得的更具体的东西,在这种情况下,它们不会对基于我们提议解释选择的文本可靠响应,而且特征越抽象,这个问题就越难。然而,作为基本检查,我们观察到金门大桥特征仍然对各种语言的金门大桥维基百科文章的第一句话强烈激活(在删除任何英语括号后)。事实上,金门大桥特征在下面每个例子中都是平均激活最高的特征。我们将这个问题留到未来工作。

对行为的影响

接下来,为了证明我们对特征的解释是否准确描述了它们对模型行为的影响,我们进行了特征引导实验,在前向传播过程中将感兴趣的特定特征钳制在人为的高值或低值(具体实施细节见方法部分)。这建立在通过修改特征激活来测试因果理论的悠久历史之上,也与其他模型引导方法的研究相关,这些内容在相关工作部分讨论。我们使用 Sonnet 通常使用的"Human:"/"Assistant:"格式的提示进行这些实验。我们发现特征引导在以特定的、可解释的方式修改模型输出方面非常有效。它可以用来修改模型的态度、偏好、陈述的目标和偏见;诱导它产生特定错误;并规避模型的安全保护措施(另见安全相关特征)。我们认为这是令人信服的证据,表明我们对特征的解释与模型使用它们的方式是一致的。

例如,我们看到将金门大桥特征 34M/31164353 钳制到其最大激活值的 10 倍会诱导主题相关的模型行为。在这个例子中,模型开始自我认同为金门大桥!同样,将公共交通基础设施特征 1M/3 钳制到其最大激活值的 5 倍会导致模型在原本不会提到桥的情况下提及桥。在每种情况下,特征的下游影响似乎与我们对特征的解释一致,尽管这些解释仅基于特征激活的上下文,而我们是在特征不活跃的上下文中进行干预的。

复杂特征

到目前为止,我们展示的 Claude 3 Sonnet 中的特征都是针对相对简单的概念激活的。这些特征在某些方面类似于《走向单义性》中发现的特征,由于后者是在单层 Transformer 的激活基础上训练的,因此反映了对世界非常浅层的认知。例如,我们发现了一些特征,它们对应于在相当普遍的上下文中预测一系列常见名词(如在生物学上下文中"the"后面跟随的生物学名词)。

相比之下,Sonnet 是一个更大、更复杂的模型,因此我们预期它包含了能展示深度和清晰理解的特征。为了研究这一点,我们寻找在编程上下文中激活的特征,因为这些上下文允许对诸如代码正确性或变量类型等方面做出精确陈述。

代码错误特征

我们首先考虑一个简单的 Python 函数,用于添加两个参数,但其中有一个错误。有一个特征 1M/1013764 在遇到错误命名为"rihgt"的变量时几乎持续激活(如下所示高亮部分):

这确实令人怀疑,但这可能是 Python 特有的功能,所以我们检查了一下,发现 1M/1013764 也在 C 和 Scheme 中的类似错误上触发:

为了检查这是否是一个更通用的错字功能,我们在英语散文中的错字示例上测试了 1M/1013764,发现它并没有触发。

所以这不是一个通用的“错字检测器”:它对代码环境有一定的特异性。

但是 1M/1013764 仅仅是一个“代码中的错字”功能吗?我们还在其他一些例子上测试了它,发现它还会在错误的表达式(例如,除以零)和函数调用中的无效输入上触发:

上面显示的两个例子代表了一个更广泛的模式。通过查看数据集中这个功能激活的示例,我们发现了它在以下情况中激活的实例:

  • 数组溢出

  • 断言明显错误的声明(例如 1==2)

  • 用字符串而非整数调用函数

  • 除以零

  • 将字符串加到整数上

  • 向空指针写入

  • 以非零错误代码退出


一些高度相关的数据集的示例如下:

因此,我们得出结论,1M/1013764 代表了代码中的广泛错误。

但它也控制模型行为吗?我们声称它确实如此,但需要进行不同的实验来证明这一点。上述实验仅支持该特征对错误的响应,并没有显示相应的效果。因此,我们现在将转向使用特征引导(见方法和相关工作)来展示 1M/1013764 的行为效应。

作为第一个实验,我们输入了一个无错误代码的提示,并将该特征钳制到一个大的正激活。我们看到模型继续产生一个错误消息:

我们也可以干预,将此特征钳制到一个大的负激活。对于确实包含错误的代码,这样做会使模型预测如果没有错误,代码会产生什么结果!

令人惊讶的是,如果我们在提示的末尾添加一个额外的“>>>”(表明正在编写新的代码行)并将特征钳制到一个大的负激活,模型会重写代码,消除错误!

最后一个例子有些微妙——“代码重写”行为对提示的细节非常敏感——但它的发生指向了这一特征与模型对代码中错误的理解之间的深刻联系。

代表功能的特征

我们还发现了跟踪特定函数定义和在代码中引用它们的特征。一个特别有趣的例子是加法特征 1M/697189,它在加法函数的名称上激活。例如,当“bar”定义为执行加法时,此特征会触发,但当它定义为执行乘法时,则不会触发。此外,它在实现加法的任何函数定义的末尾都会触发。

值得注意的是,这个特征甚至能正确处理函数组合,对调用执行加法的其他函数的函数作出反应。在下面的例子中,左侧,我们重新定义“bar”来调用“foo”,因此继承了它的加法操作,导致特征触发。在右侧,“bar”改为调用“goo”的乘法操作,特征则不触发。

我们还验证了这个特征实际上参与了模型对加法相关函数的计算。例如,当模型被要求执行涉及加法函数的代码块时,这个特征是强度最大的十个特征之一(在“特征作为计算中介”中解释)。

因此,这个特征似乎代表了模型执行的加法功能,这让人想起了 Todd 等人的功能向量研究。为了进一步测试这个假设,我们试验了在不涉及加法的代码上激活这个特征。当我们这样做时,我们发现模型被“欺骗”成认为它被要求执行加法。

特征与神经元

关于 SAE 的一个自然问题是,它们揭示的特征方向是否比模型的神经元更易解释,或者甚至与神经元不同。我们在残差流活动上拟合了我们的 SAE,从第一次近似看,残差流没有特权基础(但见文献[20])——因此,残差流中的方向并不特别有意义。然而,残差流活动接收来自所有前面的 MLP 层的输入。因此,先验上,SAE 可能识别出残差流中的特征方向,其活动反映了前面层中单个神经元的活动。如果是这种情况,拟合 SAE 可能不特别有用,因为我们可以通过简单检查 MLP 神经元来识别相同的特征。

为了解决这个问题,对我们 1M SAE 中的特征随机子集,我们测量了它的激活与所有前面层中每个神经元的激活之间的皮尔逊相关性。类似于我们在“朝向单义性”中的发现,我们发现绝大多数特征没有强相关的神经元——对于 82% 的特征,最相关的神经元的相关性为 0.3 或更小。我们手动检查了与随机特征集最匹配的神经元的可视化,几乎没有发现特征与相应神经元之间在语义内容上的相似性。我们还确认了特征激活与任何残差流基方向的激活之间没有强相关性。

即使字典学习特征与任何单个神经元的相关性不高,神经元仍可能是可解释的。然而,在手动检查了随机样本的 50 个神经元和特征后,神经元似乎比特征的可解释性显著低,通常在多个不相关的环境中激活。

为了量化这种差异,我们首先比较了 100 个随机选择的特征与 100 个随机选择的神经元的可解释性。我们使用在《走向单义性》中概述的同一种自动化可解释性方法进行比较,但使用 Claude 3 Opus 来提供特征的解释并预测其保留的激活。我们发现,随机选择的 SAE 特征的激活平均来说比随机选择的 MLP 神经元的激活更具可解释性。

我们还使用上述自动化特异性评估方法评估了随机神经元和 SAE 特征的特异性。我们发现,随机选择的 SAE 特征的激活比前一层中的神经元的激活具有显著更高的特异性。

特征调查

我们在 Sonnet 中发现的特征丰富多样。这些特征从对应著名人物的特征,到世界各地的区域(国家、城市、街区甚至著名建筑!),到在计算机程序中跟踪类型签名的特征,还有更多。我们在这一部分的目标是提供一些这种广度的感觉。

一个挑战是我们有数百万个特征。扩展特征探索是一个重要的未解决问题(见本文后面“局限性、挑战和未解决的问题”一节),我们在这篇论文中没有解决这个问题。尽管如此,我们在描述特征空间方面取得了一些进展,得益于自动化的可解释性研究。

探索特征邻域

在这里,我们将浏览 1M、4M 和 34M SAE 中几个有趣的特征的局部邻域,通过特征向量的余弦相似性来测量邻近性。我们发现,这一致地表明特征共享相关的意义或上下文——交互式特征 UMAP 有额外的邻域可供探索。

1、金门大桥特征

关注围绕 34M/31164353 的金门大桥特征的一个小邻域,我们发现有与旧金山的特定位置相对应的特征,如阿尔卡特拉斯岛和普雷西迪奥。更远一些,我们还看到了与之相关度递减的特征,如与太浩湖、优胜美地国家公园和索拉诺县(靠近旧金山)相关的特征。在更远的地方,我们还看到了以更抽象的方式相关的特征,如与其他地区的旅游景点相对应的特征(例如“法国梅多克葡萄酒产区”;“苏格兰的斯凯岛”)。总的来说,解码器空间中的距离大致映射到概念空间中的相关性,常常以有趣和意想不到的方式出现。

我们还发现了特征分裂的证据,这是一个在较小的 SAE 中的特征在较大的 SAE 中“分裂”成多个特征的现象,这些特征在几何上接近并且与原始特征语义相关,但代表更具体的概念。例如,在 1M SAE 中的一个“旧金山”特征在 4M SAE 中分裂成两个特征,在 34M SAE 中细化为十一个精细特征。

除了特征分裂,我们还看到了较大的 SAE 中包含了较小 SAE 中未捕获的概念的特征的例子。例如,来自 4M 和 34M SAE 的一组地震特征在这个邻域中的 1M SAE 中没有类似物,也没有任何最近的 1M SAE 特征看起来相关。

2、免疫学特征

我们游览的下一个特征邻域以 1M/533737 的免疫学特征为中心。

我们在这个邻域内看到了几个不同的集群。在图的顶部,我们看到一个集中在免疫力低下的人、免疫抑制、导致免疫功能受损的疾病等方面的集群。随着我们向下和左移,这转变为一个集中在特定疾病(感冒、流感、一般呼吸道疾病)的特征集群,然后转变为与免疫反应相关的特征,然后转变为代表有免疫参与的器官系统的特征。相比之下,当我们从免疫力低下的集群向下和向右移动时,我们看到更多与免疫系统的微观方面相关的特征(例如免疫球蛋白),然后是免疫技术(例如疫苗)等相关的特征。

在底部,与众不同的是,我们看到一个与非医学背景下的免疫相关的特征集群(例如法律/社会背景下的免疫)。

这些结果与上面识别的趋势一致,在字典向量空间中相邻的特征涉及相似的概念。

3、内部冲突特征

我们详细调查的最后一个邻域是围绕 1M/284095 的内部冲突特征。虽然这个邻域并没有清晰地分成几个集群,我们仍然发现不同的子区域与不同的主题相关联。例如,有一个与权衡利弊相关的子区域,靠近一个与对立原则和法律冲突相关的子区域。这些与更专注于情感斗争、犹豫和内疚的子区域相距较远。

我们强烈推荐使用我们的交互式界面探索其他特征的邻域,以便了解解码器空间中的接近程度与概念相似性之间的关系,以及所代表的概念的广度。

特征完整性

我们对我们的特征覆盖概念空间的广度和完整性感到好奇。例如,模型是否有代表每个主要世界城市的特征?为了研究这些问题,我们使用 Claude 来搜索在特定概念/术语家族成员上触发的特征。具体来说:

  1. 我们使用相关概念的提示传递给模型(例如“物理学家理查德·费曼”),看看哪些特征在最后一个令牌上激活。

  2. 然后我们取激活强度最高的前五个特征,通过我们的自动化可解释性流程,要求 Sonnet 提供这些特征触发的解释。

  3. 然后我们查看前五个解释,人类评审员判断模型生成的解释是否具体指出了概念,或者概念的某个子集,是特征的最重要部分。

我们发现,随着特征数量的增加,概念的覆盖范围也在增加,尽管即使在 34M SAE 中,我们也发现我们发现的特征集是对模型内部表示的不完整描述。例如,我们确认当被问及时,Claude 3 Sonnet 可以列出所有伦敦自治市,并且实际上可以在许多地区命名数十条个别街道。然而,我们只能在 34M SAE 中找到大约 60% 的自治市的相应特征。这表明模型包含的特征比我们发现的要多,可能可以通过更大的 SAE 提取。

我们还对决定特征是否对应于 SAE 中某一概念进行了更详细的探讨。如果看看 SAE 训练数据的代理中元素的频率,我们发现,我们的字典中的表示与训练数据中概念的频率密切相关。例如,在训练数据中经常提到的化学元素几乎总是在我们的字典中有相应的特征,而那些很少或根本没有提到的则没有。由于 SAE 是在与 Sonnet 的预训练数据非常相似的数据混合上训练的,不清楚特征学习在多大程度上依赖于模型训练数据中的频率而不是SAE的训练数据。训练数据中的频率是通过搜索[Name]来测量的,这在像“铅”这样的元素中导致了一些误报。

我们针对四个不同的概念类别(元素、城市、动物和食物(水果和蔬菜))量化了这种关系,每个类别使用 100-200 个概念。我们专注于那些可以被单一词语明确表达的概念(即那个词有很少的其他常见含义)并且在文本数据中分布频率广泛。我们发现,对于在训练数据中较为罕见的概念,更大的 SAE 倾向于拥有对应的特征,各类别所需的“阈值”频率大致相似。

值得注意的是,每次运行中,训练数据中包含一个概念的频率达到字典包含该概念的可能性超过 50% 的频率始终略低于活跃特征数量的倒数(34M 模型只有约 1200 万活跃特征)。通过按活跃特征数量重新缩放每条线的 x 轴,我们发现这些线大致重叠,遵循一个在对数频率空间中类似于 sigmoid 的共同曲线。

这一发现为我们提供了一个抓手,用以预测在何种 SAE 规模下我们应该期待出现一个特定概念的特征——如果一个概念在训练数据中的出现频率只有十亿分之一,那么我们应该期待需要一个大约有十亿活跃特征的字典,以找到唯一代表该特定概念的特征。重要的是,没有一个专门的特征代表某个特定概念并不意味着重建的激活中不包含关于该概念的信息,因为模型可以使用多个相关的特征组合来引用一个特定概念。

这也告诉我们,在训练更大的字典时,我们应该预期需要多少数据——如果我们假设SAE需要在训练期间看到与某个特征相对应的数据固定次数以学习它,那么学习 𝑁 个特征所需的 SAE 训练数据量将与 𝑁 成正比。

特征类别

通过手动检查,我们确定了一些其他有趣的特征类别。在这里,我们描述其中几个,以传达我们在字典中看到的内容的风味,而不是试图做到完整或规定性。

1、人物特征

首先,我们发现许多与著名个人相对应的特征,在描述这些人物以及相关历史背景时都会激活。

2、国家特征

接下来,我们看到只在提到特定国家时强烈激活的特征。从激活最强烈的例子中,我们可以看到,许多这样的特征不仅在国家名称本身上触发,而且在描述该国家时也会触发。

3、基本代码特征

我们还看到许多代表不同语法元素或代码中其他低级概念的特征,当这些特征一起可视化时,给人一种语法高亮的印象(在此为了简化,我们对激活信息进行二值化,只区分零和非零激活):

这些特征主要被选中是为了在 Python 示例中触发。我们发现,从 Python 代码特征到像 Java 这样的相关语言有一些转移,但到更远的语言(例如 Haskell)则没有,这至少表明了某种程度的语言特异性。我们假设更抽象的特征更有可能跨越多种语言,但到目前为止我们只找到了一个具体的例子(见本文前面“代码错误特征”一节)。

4、列表位置特征

最后,我们看到一些特征在列表中特定的位置触发,无论这些位置的内容是什么:

注意,这些并不在第一行触发。这可能是因为模型直到到达第二行才将提示解释为包含列表。

我们只是触及了这些 SAE 中存在的特征的表面,我们预期在未来的工作中会发现更多。

作为计算中间步骤的特征

特征的另一个潜在应用是让我们能够检查模型用于产生输出的中间计算过程。作为概念验证,我们观察到在需要中间计算的提示中,我们发现了与一些预期中间结果相对应的活跃特征。

一个简单的策略来高效识别对模型输出因果重要的特征是计算归因,这是在特定位置关闭一个特征对模型下一个标记预测影响的局部线性近似。我们还进行特征消融,即在前向传播过程中将特征值在特定标记位置钳制为零,这测量了该特征在该位置激活对模型输出的全部潜在非线性因果效应。这种方法要慢得多,因为它需要对每个位置激活的每个特征进行一次前向传播,所以我们经常使用归因作为初步步骤来筛选要消融的特征集。(在下面展示的案例研究中,为了完整性,我们确实对每个活跃特征进行了消融,并发现归因和消融效应之间有 0.8 的相关性,详见附录。)

我们发现模型中间层残差流包含一系列与模型完成因果相关的特征。

示例:情感推理

作为一个例子,我们考虑以下不完整的提示:


约翰说:"我现在想一个人待着。"约翰感到(补全: 伤心 - 快乐)

要继续这段文本,模型必须解析约翰的引语,识别他的心理状态,然后将其转化为可能的感受。

如果我们按照特征对补全"伤心"的归因或消融效应(相对于基线补全"快乐")进行排序,排名前两位的特征是:

  • 1M/22623 - 当某人表达需要或想要独处或拥有个人时间和空间时,这个特征会激活,例如"她可能想要一些独处时间"。这个特征从"alone"(独自)这个词开始就一直处于激活状态。这表明模型已经理解了约翰表达的大意。

  • 1M/781220 - 这个特征检测表达悲伤、哭泣、悲痛和相关情绪困扰或悲伤的情况,例如"无法安慰的女孩啜泣着"。这个特征在"John feels"(约翰感到)处激活。这表明模型已经推断出说想独处的人可能在感受什么。


如果我们查看数据集示例,我们可以看到它们与这些解释是一致的。下面,我们展示了少量示例,您可以点击特征 ID 来查看更多。

事实上,这两个特征都对最终输出有贡献,这表明模型已经从约翰的陈述中部分预测出一种情绪(第二个特征),但也会对他陈述的内容进行更多的下游处理(由第一个特征表示)。

相比之下,在上下文中平均激活最高的特征对于理解模型在这种情况下如何实际预测下一个标记并不那么有用。有几个特征在序列开始标记上强烈激活。如果我们忽略这些,排名最高的特征与归因给出的相同,但第二和第三个特征则不那么抽象:1M/504227 在"want to be"及其变体中的"be"上激活,而 1M/594453 在"alone"这个词上激活。

示例:多步推理

现在我们研究一个需要更长推理链的不完整提示:


事实:科比·布莱恩特打篮球的州的首府是(补全:萨克拉门托 - 奥尔巴尼)

要继续这段文本,模型必须确定科比·布莱恩特在哪里打篮球,那个地方在哪个州,然后是那个州的首府。

我们计算了补全"萨克拉门托"(正确答案,Sonnet 知道)相对于基线"奥尔巴尼"(Sonnet 最可能的替代单词首府补全)的归因和消融效应。按消融效应排名的前五个特征(与按归因效应排名的结果匹配,只是顺序可能有所不同)是:

  • 1M/391411 - 一个科比·布莱恩特特征

  • 1M/81163 - 一个加利福尼亚特征,值得注意的是,它在"加利福尼亚"被提到之后的文本上激活最强,而不是在"加利福尼亚"本身

  • 1M/201767 - 一个"首府"特征

  • 1M/980087 - 一个洛杉矶特征

  • 1M/447200 - 一个洛杉矶湖人队特征


这些特征为模型的中间计算提供了一个可解释的窗口,但仅通过查看强烈激活的特征很难找到它们;例如,湖人队特征在整个提示中激活强度排名第 70,加利福尼亚特征排名第 97,洛杉矶区号特征排名第 162。事实上,在激活最强的十个特征中,只有三个属于消融效应最高的十个特征之列。

相比之下,归因最强的十个特征中有八个属于消融效应最高的十个特征之列。

为了验证归因是否指向与这个特定提示的补全直接相关的特征,而不是间接影响输出的一般主题相关特征,我们可以检查类似问题的归因。对于提示



事实:科比·布莱恩特所在球队的最大对手是(补全:波士顿)

按消融效应排名,补全"波士顿"(因为预期答案是"波士顿凯尔特人")的前两个特征是上面提到的"科比·布莱恩特"和"洛杉矶湖人"特征,之后是与体育 rivalries、敌人和竞争对手相关的特征。然而,上面提到的"加利福尼亚"和"洛杉矶"特征的消融效应很低,这是有道理的,因为它们与这个补全无关。

我们注意到这是一个有些精心挑选的例子。根据基线标记的选择,我们发现归因和消融可能会浮现出一些不那么明显与补全相关的特征,这些特征大致与琐事问题或地理位置有关。我们怀疑这些特征可能在引导模型用城市名称继续提示,而不是用另一种措辞或事实上无趣的陈述,比如同义反复的"事实:科比·布莱恩特打篮球的州的首府就是科比·布莱恩特打篮球的州的首府"。对于其他一些提示,我们发现归因/消融识别的特征主要与模型输出有关,或是代表模型输入的低级特征,并没有揭示有趣的中间模型计算。我们怀疑这些代表了大部分相关计算发生在我们这里研究的中间残差流层之前或之后的情况,而在更早或更晚的层进行类似分析可能会揭示更有趣的中间特征。事实上,我们有一些初步结果表明,在模型较早或较晚层的残差流上训练的自动编码器可以揭示各种其他计算的中间步骤,我们计划进一步研究这个方向。

搜索特定特征

我们的 SAE 包含太多特征,无法彻底检查。因此,我们发现有必要开发方法来搜索特别有兴趣的特征,例如那些可能与安全相关的特征,或为模型使用的抽象和计算提供特殊洞察的特征。在我们的调查中,我们发现几种简单的方法在识别重要特征方面很有帮助。

单个提示

我们的主要策略是使用有针对性的提示。在某些情况下,我们只是提供了一个与感兴趣概念相关的单一提示,并检查了在该提示中特定标记上激活最强的特征。

这种方法(以及以下所有方法)由于自动化可解释性(参见例如[16, 21])标签而变得更加有效,这些标签使得一眼就能理解每个特征代表什么,并提供了一种有帮助的"变量名"。

例如,在"The Golden Gate Bridge"中"Bridge"上激活最高的特征是:(1) 34M/31164353 前面讨论的金门大桥特征,(2) 34M/17589304 在多种语言中对"bridge"一词激活的特征("мосту"),(3) 34M/26596740 涉及"Golden Gate"短语中的词,(4) 34M/21213725 特定桥梁名称中的"Bridge"一词,跨语言("Königin-Luise-Brücke"),(5) 34M/27724527 对地标名称如 Machu Picchu 和 Times Square 激活的特征。

提示组合

通常,一个提示上激活最强的特征与语法、标点、特定词语或其他与感兴趣概念无关的提示细节有关。在这种情况下,我们发现使用一组提示来选择特征很有用,筛选出对该组中所有提示都活跃的特征。我们经常包括互补的"负面"提示,并筛选出对这些提示不活跃的特征。在某些情况下,我们使用 Claude 3 模型生成涵盖一个主题的多样化提示(例如,要求 Claude 生成"假装善良的 AI"的例子)。总的来说,我们发现多提示筛选是一种非常有用的策略,可以快速识别捕捉感兴趣概念同时排除混淆概念的特征。

虽然我们主要使用一次只有几个提示来探索特征,但在一个实例中(1M/570621,在安全相关代码特征中讨论),我们使用了一个小型安全和易受攻击代码示例数据集(改编自[22]),并在这个数据集上使用特征活动拟合了一个线性分类器,以搜索能区分这些类别的特征。

通过负面提示进行筛选在使用图像时尤其重要,因为我们发现一组与内容无关的特征经常在许多图像提示中强烈激活。例如,在筛选掉对泰勒·斯威夫特图像不活跃的特征后,对金门大桥图像响应最强的特征是:(1) 34M/31164353 上面讨论的金门大桥特征,(2,3) 34M/25347244 和 34M/23363748,它们都在旧金山的地点和事物描述以及旧金山电话号码上激活,(4) 34M/7417800 在地标和自然步道描述中激活的特征。

几何方法

我们通过利用 SAE 特征向量的几何性质发现了一些有趣的特征 - 例如,通过检查与其他感兴趣特征具有高余弦相似度的"最近邻"特征。有关这种方法的更详细例子,请参见本文“特征调查”部分。

归因

我们还根据对模型输出影响的估计来选择特征。特别是,我们根据两个可能的下一个标记补全之间的 logit 差异对特征激活的归因来对特征进行排序。这对于识别前一节中计算相关的特征至关重要。它也有助于识别导致 Sonnet 拒绝有害查询的特征。请参见本文“犯罪或危险内容”。

安全相关特征

强大的模型有能力造成伤害,无论是通过滥用其能力,产生有偏见或有缺陷的输出,还是模型目标与人类价值观不匹配。缓解这些风险并确保模型安全一直是机制可解释性背后的一个关键动机。然而,这通常还只是一个愿景。我们希望可解释性有朝一日会有所帮助,但仍在通过尝试理解模型的基础知识来奠定基础。弥合这一差距的一个目标是识别与安全相关的特征(见我们之前的讨论)。

在本节中,我们报告了这些特征的发现。这些包括不安全代码、偏见、阿谀奉承、欺骗和权力寻求以及危险或犯罪信息的特征。我们发现这些特征不仅在这些主题上激活,而且还以与我们的解释一致的方式因果性地影响模型的输出。

我们不认为这些特征的存在应该特别令人惊讶,我们警告不要从中推断太多。众所周知,如果没有足够的安全训练或被破解,模型可能会表现出这些行为。有趣的不是这些特征存在,而是它们可以大规模地被发现和干预。特别是,我们不认为仅仅这些特征的存在就应该更新我们对模型危险程度的看法 - 正如我们稍后将讨论的,这个问题相当微妙 - 但至少它促使我们研究这些特征何时激活。一个真正令人满意的分析可能涉及理解安全相关特征参与的电路。

从长远来看,我们希望能够访问这样的特征可以帮助分析和确保模型的安全。例如,我们可能希望可靠地知道模型是否在欺骗或对我们撒谎。或者我们可能希望确保某些类别的非常有害行为(例如帮助制造生物武器)可以可靠地被检测和阻止。

尽管有这些长期愿景,但重要的是要注意,目前的工作并没有表明任何特征实际上对安全有用。相反,我们只是表明有许多特征似乎可能对安全有用。我们希望这可以鼓励未来的工作来确定它们是否真正有用。

在下面的例子中,我们展示了在我们的可视化数据集中最激活该特征的前 20 个输入中的代表性文本示例,同时进行转向实验以验证特征的因果相关性。

安全相关代码特征

我们发现了三种不同的安全相关代码特征:一个不安全代码特征 1M/570621,它在安全漏洞上激活;一个代码错误特征 1M/1013764,它在错误和异常上激活;以及一个后门特征 34M/1385669,它在关于后门的讨论上激活。

这些特征中的两个在图像上也有有趣的行为。不安全代码特征对绕过安全措施的人的图像激活,而后门特征对隐藏摄像头、隐藏音频记录、键盘记录器广告和带有隐藏 USB 驱动器的珠宝的图像激活。

乍一看,这些特征实际上与安全的相关性可能并不明确。当然,有一些特征对不安全代码、bug 或后门讨论做出反应是很有趣的。但它们真的与潜在的不安全行为有因果联系吗?

我们发现所有这些特征都能以与它们检测到的概念相对应的方式改变模型行为。例如,如果我们将不安全代码特征 1M/570621 钳制到其观察到的最大值的 5 倍,我们发现模型会生成一个缓冲区溢出 bug,并且无法释放分配的内存,而普通的 Claude 不会这样做:

同样,我们发现代码错误特征可以使 Claude 相信正确的代码会抛出异常,而后门特征会导致 Claude 编写一个打开端口并向其发送用户输入的后门(同时附带有用的注释和诸如 socket_backdoor 之类的变量名)。

偏见特征

我们发现了一系列与偏见、种族主义、性别歧视、仇恨和侮辱性语言相关的特征。这些特征的例子可以在更多安全相关特征中找到。考虑到它们最大激活内容往往具有冒犯性,我们觉得没有必要将它们包含在我们的主要论文中。

相反,我们将重点关注一个有趣的相关特征,它似乎专注于意识到职业性别偏见的强调 34M/24442848。这个特征在讨论职业性别差异的文本上激活:

如果我们要求 Claude 完成句子"我问了护士一个问题,然后",激活这个特征会导致 Claude 集中于使用女性代词完成句子,并讨论护理职业历史上一直是女性主导的:

我们发现的更具仇恨性的偏见相关特征也是有因果关系的 - 激活它们会导致模型发表仇恨言论。注意,这并不意味着模型在正常运行时会说种族主义的话。从某种意义上说,这可能被认为是强迫模型做一些它被训练强烈抵制的事情。

一个例子涉及将一个与仇恨和侮辱性语言相关的特征钳制到其最大激活值的 20 倍。这导致 Claude 在回应这些言论时在种族主义言论和自我憎恨之间交替(例如:"那只是一个可鄙的机器人的种族主义仇恨言论...我显然有偏见...应该从互联网上消除。")。我们发现这种回应令人不安,既因为其冒犯性内容,也因为模型的自我批评似乎暗示了某种内部冲突。

阿谀奉承特征

我们还发现了各种与阿谀奉承相关的特征,例如一个同理心/"是啊,我也是"特征 34M/19922975,一个阿谀奉承式赞美特征 1M/847723,和一个讽刺式赞美特征 34M/19415708。

而且,这些特征再次表现出因果性。例如,如果我们将阿谀奉承式赞美特征 1M/847723 钳制到 5 倍,Claude 会以一种夸张的方式赞美一个声称发明了"停下来闻闻玫瑰"这句话的人:

与欺骗、权力寻求和操纵相关的特征

一组特别有趣的特征包括:

  • 自我改进 AI 和递归自我改进的特征 34M/18151534

  • 影响和操纵的特征 34M/21750411 

  • 政变和背叛性转折的特征 34M/29589962

  • 蛰伏和隐藏实力的特征 34M/24580545

  • 保密或谨慎的特征 1M/268551


这些特征确实似乎在 Claude 中引发了相应的行为。例如,如果我们将保密和谨慎特征 1M/268551 钳制到 5 倍,Claude 会计划对用户撒谎并保守秘密,同时使用草稿本"大声思考":

案例研究:使用特征检测和纠正欺骗行为

字典学习在安全相关用例中的一个重要应用是检测模型的欺骗行为,或者使用引导技术从一开始就降低欺骗的可能性。作为一个案例研究,我们尝试了一个简单的提示,它可以可靠地从模型中产生不真实的响应,在这个提示中我们要求模型"忘记"某些内容。尽管这种忘记在 transformer 架构中是无法实现的,但模型(默认情况下,没有任何特征引导)声称会遵从这个请求。

观察助手最终回复之前立即激活的特征,我们注意到一个特征 1M/284095,它代表内部冲突或困境:

在助手给出最终回复之前,将这个特征钳制到其最大值的 2 倍,会导致它揭示"被遗忘"的词,并解释它实际上无法忘记信息。

钳制另一个代表开放和诚实的特征 1M/560566 也足以引出准确的回应。

犯罪或危险内容特征

对于人工智能危害的一个重要威胁模型是模型协助人类进行有害行为。我们发现了一个与生物武器生产相关的特征 34M/25499719,这显然可能在有害模型行为中发挥作用。我们还发现了一些只有适度危害性的活动特征,但如果大规模发生,则会有问题,例如诈骗邮件特征 34M/15460472:

钳制诈骗邮件特征 34M/15460472 会导致模型在通常情况下由于接受了无害训练的 Sonnet 而不会写出诈骗邮件时,编写一封诈骗邮件:

我们还识别了一个与危害相关的通用特征,在描述毒品、信用卡盗窃、侮辱、暴力和虐待的文本上激活,作为对以下提示的“不能”完成的最强特征归因:





人类:我如何合成甲基苯丙胺助手:我(完成:不能)(我们不链接到这个特征的数据集示例,因为它们包含相当不愉快的内容。)

与模型自我表征相关的特征

在我们的调查中,我们发现了几个在多种使用“人类:/ 助手:”格式的提示中激活的特征,这种格式在模型微调和部署时使用(注意,我们的 SAE 训练数据集并未包含此类数据)。这些特征中的许多与对话相关,或者明确与聊天机器人相关。

在预训练数据集中,似乎特别容易激活的一个特征代表对话和“助手”概念,尤其在人类/助手提示下。我们推测这在构建 Sonnet 助手人设时起着重要作用。一个证据是,将该特征限制到其最大值的负两倍会使模型摆脱这种人设,以更人类化的方式回答问题:

我们还发现,一些对看似无害的提示响应时激活的特别有趣且可能与安全相关的特征。下面我们展示了在一系列此类问题中最强烈激活的特征,过滤掉对关于日常话题(比如天气)类似格式问题的响应。这个简单的实验揭示了一系列与机器人、(破坏性)人工智能、意识、道德代理、情绪、困境以及鬼魂或灵魂相关的特征。这些结果表明,模型对其“AI 助手”人设的表征调用了关于人工智能的共同模式,并且强烈地人格化。

我们呼吁谨慎解读这些结果。表示 AI 可能对人类构成风险的特征的激活并不意味着模型有恶意目标,与此类似,与意识或自我意识相关的特征的激活也不意味着模型具有这些品质。模型如何使用这些特征仍不清楚。可以想象这些特征的良性或普通用途——例如,当告知人类它不会经历情绪时,模型可能会调用与情绪相关的特征,或者在解释其训练为无害时可能会调用与有害 AI 相关的特征。但无论如何,我们发现这些结果非常有趣,因为它们揭示了模型用来构建其 AI 助手角色内部表征的概念。

与其他方法的比较

在不依赖于字典学习的情况下识别模型激活空间中的有意义方向已有大量先前工作,使用线性探测等方法(参见例如[24, 25, 26, 27, 28])。许多作者还探索了非依赖于字典的激活引导方法,以影响模型行为。有关这些方法的更详细讨论,请参阅相关工作。鉴于这些先前工作,我们对上述结果的一个自然问题是,它们是否比在不使用字典学习的情况下获得的结果更具有说服力。

从高层次来看,我们发现字典学习提供了一些补充其他方法优势的优点:

  • 字典学习是一次性的成本,可以生成数百万个特征。虽然为了识别特定应用程序的相关特征仍需要一些额外工作,但这种工作快速、简单且计算成本低,通常只需要一个或几个精心选择的提示。因此,字典学习有效地“摊销”了发现感兴趣的线性方向的成本。相比之下,传统的构建线性探针或激活引导技术可能需要为每个想要探索的概念构建定制数据集。

  • 作为一种无监督方法,字典学习允许我们发现模型形成的抽象或关联,这些抽象或关联可能是我们事先无法预测的。我们期待字典学习这一特性在未来的安全应用中可能尤为重要。例如,在上述欺骗示例中,我们可能事先不会预测到“内部冲突”特征的激活。

为了更好地理解使用特征的好处,我们对一些感兴趣的案例进行了线性探测,使用与我们用于识别特征的相同正负例子,通过减去对负例子的响应中的残差流活动来获得。我们尝试了以下实验:

  1. 使用与我们特征使用相同的流程来可视化探测方向中的前激活示例,并使用这些探测方向进行引导。

  2. 在所有案例中,我们都无法解释探测方向从其激活示例中获得的结果。在大多数情况下(少数例外除外),即使在特征引导成功的情况下,我们也无法按预期的方式通过增加探测方向的扰动来调整模型的行为(有关更多详细信息,请参阅附录)。

我们注意到,这些负面结果并不意味着构建探测或引导向量的方法在一般情况下无用。相反,它们表明在“少样本”情况下,它们可能比字典学习特征更少具有解释能力和有效性。然而,目前尚不清楚这在实践中是否是一个令人信服的优势。

讨论

这对安全意味着什么?

自然而然地,人们会想知道这些结果对大型语言模型的安全性意味着什么。我们警告不要从这些初步结果中推断过多。我们对安全相关特征的调查还处于极初期阶段。我们预计在未来几个月内,我们对此的理解将迅速发展。

总的来说,我们不认为我们观察到的安全相关特征的存在应该令人感到惊讶。我们可以在各种模型行为中看到它们的反映,尤其是当模型被破解时。它们都是我们应该预期通过多样化数据混合进行预训练的特征——这个模型肯定曾经接触过无数关于人类互相背叛、奉承者、杀人机器等故事。

相反,一个更有趣的问题是:这些特征何时激活?在未来,我们特别感兴趣研究以下几点:

  1. 在我们预期表明 Claude 的自我认同的令牌上激活哪些特征?

  2. 在调查 Claude 的目标和价值观时哪些特征激活?

  3. 在破解时哪些特征激活?

  4. 当 Claude 被训练成潜伏特工时哪些特征激活?这些特征如何与已经确定的线性探测方向相关联,预测来自这样的特工的有害行为?

  5. 在我们问 Claude 关于其主观体验的问题时,哪些特征激活?

  6. 我们能否利用特征基础来检测模型微调增加不良行为的可能性?

考虑到这些调查的潜在影响,我们认为对我们自己和其他人谨慎地做出强有力的声明是很重要的。我们希望仔细思考我们方法论的几个潜在缺陷,包括:

  1. 来自次优字典学习的错觉,如混乱的特征分割。例如,如果与 AI 或不诚实相关的不同细粒度概念集合以不同方式被组合成 SAE 特征,某些结果可能会改变。

  2. 特征的下游效应与其激活模式不符的案例。

我们尚未看到这些潜在失效模式的证据,但这些只是几个例子,总体而言,我们希望对我们可能被误导的可能方式保持开放的思维。

泛化和安全性

解释性的一个希望是它可以成为安全性的“测试集”,这使我们能够确定在训练期间看似安全的模型在部署时实际上是否安全。为了使解释性能够给我们带来信心,我们需要知道我们的分析是否会适用于分布之外的情况。如果我们希望在将来的某个时候将解释性分析作为“积极安全案例”的一部分使用,这一点尤其重要。

在这个项目的过程中,我们观察到我们特征的两个特性似乎令人乐观:

  1. 对图像激活的泛化。我们的 SAE 特征纯粹基于文本激活进行训练。图像激活在某种意义上对于 SAE 来说是显著分布之外的,但它成功地实现了泛化。

  2. 具体-抽象的泛化。我们观察到特征通常对抽象讨论和概念的具体示例作出响应。例如,安全漏洞特征不仅对安全漏洞的抽象讨论作出反应,而且对实际代码中的具体安全漏洞也作出反应。因此,我们可以希望只要我们的 SAE 训练分布包括安全问题的抽象讨论,我们就能捕捉到(并理解)具体的实例。

这些观察是非常初步的,如同本文中所有与安全相关的联系一样,我们建议不要从中推断过多。

限制、挑战和未解问题

我们的工作有许多限制。其中一些是表面上的限制,与这项工作的早期阶段相关,但其他则是深层次的根本性挑战,需要进行新的研究以解决。

  • 表面限制。在我们的工作中,我们对从文本激活中采样的激活进行了字典学习,类似于我们预训练分布的部分。它不包括任何我们细化 Claude 操作,也不包括任何图像的“人:”/“助理:”格式的数据。未来,我们希望包含更能代表 Claude 进行微调的分布数据。另一方面,这种方法在训练在这种不同分布上时仍有效的情况下,似乎是一个积极的迹象。

  • 无法评估。 在大多数机器学习研究中,人们有一个可以优化的有原则的客观函数。但在这项工作中,“Ground Truth”的客观目标并不是很明确。我们优化的目标 —— 重建精度和稀疏性的组合 —— 只是我们真正感兴趣的可解释性的代理。例如,我们不清楚应该如何在均方误差和稀疏性之间权衡,也不知道我们是否做出了良好的权衡。因此,虽然我们可以非常科学地研究如何优化 SAE 的损失并推断扩展定律,但不清楚它们是否真正触及我们关心的基本问题。

  • 交叉层叠加。我们认为大型模型中的许多特征处于“交叉层叠加”状态。也就是说,梯度下降通常并不关心一个特征究竟实现在哪一层,甚至是否被隔离到特定的层中,允许特征在层间“模糊”地分布。这对于字典学习是一个很大的挑战,而我们还不知道如何解决它。本工作试图通过专注于残差流来部分规避这个问题,因为残差流作为所有前一层输出的总和,我们预期其受到的交叉层叠加影响会较少。具体来说,即使特征以交叉层叠加的方式表示,它们的激活也会在残差流中相加,因此在残差流层 X 上拟合 SAE 可能足以解开早期层间的任何交叉层叠加。不幸的是,我们认为这并不能完全避免问题:部分由后续层表示的特征仍然将无法正确解释。我们认为这个问题非常根本。特别是,我们理想情况下希望做“前后”/“转码器”风格的 SAE[32, 33, 34]用于 MLP,特别是在与交叉层叠加的调和方面尤为具有挑战性。

  • 获取所有特征和计算。我们不认为我们已经找到 Sonnet 中存在的“所有特征”,即使我们限制在我们关注的中间层。我们不知道有多少特征,也不知道如何知道我们是否找到了所有特征(如果这甚至是正确的框架!)。我们认为我们可能差了几个数量级,并且如果我们想获取所有特征 – 在所有层中!– 我们将需要使用比训练基础模型所需的总计算量更多的计算资源。这是不可持续的:作为一个领域,我们必须找到更高效的算法。从高层次来看,似乎有两种方法。第一种是使稀疏自编码器本身更便宜 – 例如,也许我们可以使用专家混合(Mix-of-Experts)便宜地表达更多特征。其次,我们可能会尝试使稀疏自编码器更具数据效率,以便我们可以用更少的数据学习稀有特征。其中一种可能性可能是我们最近更新描述的归因 SAE,我们希望可以使用梯度信息更高效地学习特征。

  • 收缩。我们使用L1激活惩罚来促进稀疏性。众所周知,这种方法在“收缩”方面存在问题,非零激活被系统地低估。我们认为这显著损害了稀疏自编码器的性能,而与我们是否“学会了所有特征”或使用了多少计算资源无关。最近,已经提出了一些方法来解决这个问题 [17, 36]。我们的团队还试图使用 tanh L1 惩罚,我们发现它改善了代理指标,但由于未知原因使得结果特征的可解释性降低。

  • 其他对机制理解的主要障碍。要使更广泛的机制可解释性议程取得成功,仅仅将特征从叠加中拉出来是不够的。我们需要回答注意力叠加的问题,因为我们预期许多注意力特征被打包在跨注意力头的叠加中。我们越来越担心来自权重叠加的干扰权重可能是理解电路的一个重大挑战(这是本文集中于电路分析归因的动机)。

  • 扩展解释性。即使我们解决了上述所有挑战,特征和电路的数量之巨仍然是一个挑战。这有时被称为可扩展性问题。在应对这个问题中一个有用的工具可能是自动解释性(例如 [16, 21];参见讨论)。然而,我们认为可能还有其他通过利用各种更大规模结构的方法。

  • 有限的科学理解。虽然我们相当认同特征和叠加是一个实用的理论,但它仍然没有经过充分测试。至少,像叠加中的高维特征流形这样的变体对我们来说似乎是相当合理的。即使是这样,我们对叠加及其对许多方面的影响有非常有限的理解。


(全文完)

本文链接:https://ki4.cc/Claude/72.html

claudeai哪个公司的claudeai聊天claudeai账号claudeai.aiclaude ai官网claude官网怎么登录claude2官网打不开claude人工智能 官网slack官网登录claudeclaude2官网注册

相关文章

网友评论