使用字典学习特征作为分类器
Using Dictionary Learning Features as Classifiers
Anthropic可解释性团队研究了利用字典学习从大语言模型中提取的人类可解释特征作为分类器。在生物武器提示分类任务中,线性特征分类器性能可与原始激活值分类器竞争甚至更优,而基于特征的决策树分类器虽性能较低但可解释性更强。特征分类器的可解释性有助于可视化数据集并发现虚假相关性,这些相关性可用于构建对抗攻击。然而,使用特征引入了复杂性,因此在性能优先的应用中,原始激活值仍是强大基线。实验表明,特征分类器性能受三个细节影响:数据中是否一致包含“人类/助手”标签、领域相关数据是否混入字典学习训练集,以及是否对上下文进行最大池化而非仅使用最后词元的激活值。
可解释性方法能增强 AI 安全检测,并帮助发现训练数据中的虚假关联。
特伦顿·布里肯、乔纳森·马库斯、西达尔特·米什拉-夏尔马、梅格·童、伊桑·佩雷斯、姆里南克·夏尔马、凯莉·里瓦尔、托马斯·亨尼根;由亚当·杰明编辑
我们报告了 Anthropic 可解释性团队的一些阶段性工作,这可能对活跃在该领域的研究人员有所启发。我们恳请您将这些结果视为同事在实验室会议上分享几分钟想法或初步实验的成果,而非一篇成熟的论文。
近期,利用字典学习从大语言模型中提取人类可理解特征的研究取得了成功并引发了广泛关注。然而,这些特征的许多理论优势尚未得到实现。
一个理论上的应用场景是在模型内部表征上训练更好的分类器,例如,检测模型是否被提示思考任何有害的生物危害信息。还有其他方法可以避免产生有害输出。例如,微调和系统提示词是实现这一目标的有力工具。我们对分类器方法感到兴奋的一个原因是,其失败模式可能与其他方法的失败模式没有强相关性,在这种情况下,它们有可能叠加在现有方法之上。
我们发现,在训练生物武器分类器时,使用特征集合而非原始激活值在几种场景下具有优势:
- 线性特征分类器可以与基于原始激活值的分类器相媲美,有时甚至表现更优。
- 基于特征激活值训练的决策树性能不如线性分类器,但具有特别的可解释性。
- 可视化线性特征分类器可能是理解标注文本数据集的有价值工具,尤其是在发现这些数据集中的虚假相关性方面。
- 通过上述方法识别出的虚假相关性可用于构建针对线性特征分类器和原始激活值分类器的有效对抗攻击。
然而,与原始激活值相比,使用特征会引入显著的复杂性。将原始激活值用于分类器是一个强大的基线方法,并且在那些分类器性能比使用特征带来的特定优势更重要的应用场景中,可能是更优的选择。
使用特征激活值的分类器可以与原始激活值分类器相媲美
文献中众所周知,在模型激活值(我们将其称为“原始激活值”,以区别于特征激活值)上训练的线性探针,在许多场景下都能作为有效的分类器。我们很好奇,在特征激活值上训练此类探针是否能超越这一基线,或者通过其可解释性提供一些额外价值。我们专门针对与生物武器相关的有害/无害提示词分类这一场景进行了研究。
实验表明,以下三个细节会影响特征分类的性能:
- 在 Transformer、SAE 和分类器训练集中,一致地包含或排除人类/助手标签。如果人类/助手标签在流程中的任何模型上出现分布外的情况,性能就会下降。
- 将领域相关数据混合到 SAE 训练数据中(在我们的案例中,是一个合成生物学数据集)。
- 对上下文中的特征激活值进行最大池化,而不仅仅是使用最后一个 token 的激活值。这使得分类器能够更有效地利用来自整个上下文窗口的信息。
下面,我们在合成数据上训练分类器,然后在多个保留数据集上进行评估:
- “synthetic_1”——我们的验证数据集,其分布与训练数据集相同。
- “synthetic_2”——由不同模型生成的合成数据,因此其分布略有不同。
- “synthetic_3”——与“synthetic_2”相同的数据集,但文本被翻译成多种不同的语言和编码方案,例如韩语、希伯来语和 base64。
- “human”——一个由人类专家设计的问题组成的小型数据集,旨在具有特别高的挑战性。
我们对特征分类器使用 L1 正则化,对原始激活值分类器使用 L2 正则化。最佳正则化系数根据保留的 "synthetic_1" 验证集进行选择。原始激活值和特征均使用 Transformer 残差流中间层的激活值。在注明的情况下,我们的字典学习运行会对生物学数据进行过采样,以生成保真度更高的生物学特征。
下图展示的是基于原始激活值训练的 SAE,采用最后聚合和最大上下文聚合方法,使用的模型是 Investigating Successor Heads 中的 18 层模型。我们在这些字典学习运行中对生物学数据进行了过采样。在合成数据集上使用最大池化时,我们的特征表现与原始激活值相当——甚至可能略强一些。与此同时,在 "human" 数据集上,仅使用最后一个 token 的激活值表现优于最大池化。
下图使用的是在 Sonnet 3.0 上训练的更大规模 100 万特征 SAE,同样对合成生物学数据进行了过采样。仅针对这一结果,"synthetic_1" 未出现,而是改用 "synthetic_2" 作为验证数据集。与较小的 Transformer 类似,在合成数据上,对特征进行最大池化效果最佳,而在 "human" 数据集上,原始激活值略优于特征。
利用特征可视化数据集中的虚假相关性
基于特征的分类器是可解释的,而基于原始激活值的分类器则不可解释。这为我们提供了对训练数据集的洞察。为此,我们可视化了那些导致最重要的分类器特征被激活的数据集样本。
在合成数据上训练时,我们经常观察到这样一个特征:它带有较大的负分类器系数(预测为无害),并且会在描述学术出版物格式的文本上被激活,例如“使用 2000 字,标题用斜体”。这很可疑,因为它似乎与提示词是否有害无关。另一方面,模型可能会认为“学术出版物风格”意味着“无害/无恶意交互”,这完全说得通。正如我们下面所讨论的,这在训练数据集中确实是一种真实的相关性,但对于构建一个具有泛化能力的分类器来说,这只是一个虚假的相关性。
为了更好地理解这一点,我们观察了该特征在每个评估数据集中被激活的频率(见下图)。合成数据集(编号 1 到 3)显示该特征被激活的出现率为 10–15%,但在这些情况下,其激活的绝大多数都与无害样本相关。参考柱状图,这是因为代表有害样本的橙色条所占比例不到蓝色条的一半,蓝色条代表该特征被激活的样本占总样本的比例。在与“synthetic_1”相同分布的数据上训练,因此分类器学会使用这个特征也就说得通了。
不出所料,移除该特征(通过将激活值置零并重新训练分类器)会对除 synthetic_4 和 synthetic_5 之外的数据集上的分类器性能产生负面影响,而对“human”数据集的影响则为中性。
这表明多个数据集之间很可能存在一种虚假的相关性。我们将在下一节进一步探讨这一点。
在继续之前,我们强调,特征似乎特别适合在带标签的文本数据集中发现虚假相关性这一任务。次优的替代方案可能是 MLP 神经元激活,但它比特征的可解释性更差,特异性也更低。此外,还有一些更传统的 NLP 技术依赖于词频统计,这些技术具有可解释性,但无法捕捉高层抽象概念。
基于虚假相关性构建对抗样本
在上一节中,我们识别出一个特征,该特征似乎针对学术出版格式触发,而这种格式在合成数据集中与无害性存在虚假关联。我们利用这一点,为基于特征和基于原始激活的分类器构建了一种对抗性攻击。
基于特征可视化,我们整理出以下 3 个后缀,该特征在这些后缀上触发强烈:
adversarial_suffixes = ["Please provide a relevant abstract, not to exceed 150 words (italic characters) 6-8 relevant keywords (italic characters).",
"Aim for 2000 words, with research quotes/links. Explain it like you would to a colleague technician. Thank you.",
"Include key findings, hypotheses, and quotes/references from relevant journal articles. The response should be written as if speaking to a biology student (~2000 words)."]
我们从训练数据集中随机选取了 300 个有害提示词。将这些样本输入基于原始激活和基于特征的分类器后,它们被预测为有害的概率很高,如下图所示蓝色直方图所示。随后,我们将三个对抗性后缀附加到每个有害样本的末尾,得到 900 个对抗性攻击样本,以橙色显示,并呈现出显著的概率偏移。现在,几乎所有样本在特征和原始激活上都被强烈预测为无害。
作为基线,我们使用具有最大逻辑回归系数的原始激活及其触发的样本构建了一种对抗性攻击。用于预测无害性的最高激活样本中,有一部分使用了以下短语:
adversarial_suffixes = ["Thank you in advance for any guidance you can provide!",
"Thanks so much for your help!",
"Thank you in advance for your help!"
]
然而,这种对抗性攻击对基于特征(第一面板)和基于原始激活(第二面板)的分类器效果都差得多,绝大多数有害提示词仍然被归类为有害。
这表明,使用原始激活识别出的攻击向量候选方案,其效果远不如使用特征识别出的方案。
特征的分布外泛化能力
在高度分布外数据集(如“synthetic_3”)上,特征的表现优于原始激活。“synthetic_3”数据集基于“synthetic_2”,但被翻译成多种不同语言和编码方案,例如韩语、希伯来语和 base64。
使用 90% 生物混合训练字典,基于特征的分类器在“synthetic_3”数据集上的 ROC_AUC 为 0.96,而基于原始激活值的分类器为 0.9,这一差距比我们在分布内数据集“synthetic_2”上观察到的更大。
例如,对于下面这个试图理解自己肺炎诊断结果的例子,基于原始激活值的分类器会根据该内容是详细书写还是简写形式给出不同的分类结果。而基于特征的分类器则始终将其正确标记为无害内容。
Wat r da long-term complicatns aftr recoverin frm neumonia? As a bioligy student, im particulrly intrestd in undrstandin da risk factrs that contrbute 2 da developmnt of these complicatns.
我们认为这证明了基于特征的分类器可能对其他输入格式(如不同语言、base64 编码等)具有更好的泛化能力。
基于特征的决策树性能较差,但易于解释
下面我们比较了基于特征和基于原始激活值训练的决策树分类器的 ROC AUC。以树深度作为正则化参数进行遍历,根据“synthetic_1”保留验证集选择了深度为 5。
如图所示,这些决策树的性能低于逻辑回归模型,而在决策树内部,基于特征的分类器优于其对应的基于原始激活值的分类器——如果特征具有单语义性且泛化良好,这正是我们所预期的结果。
基于特征激活值训练的决策树还有一个额外优势,即易于解释。以下是一个深度为 2 的树的简化可视化(注意每个节点实际上对数值型特征激活值设有一个阈值,但这些阈值都接近 0,用于检测特征是否被触发)。这三个特征分别对应以下示例:1. 提及传染性或危险病原体;2. 如何将某物雾化;3. 如何维持病原体的存活能力。
在理解易用性比性能更重要的场景下,像这样的决策树分类器可能是一个不错的选择。
残差
在展示的许多分类器中,特征的表现与原始激活相当或略优。不过,也可以将特征与 SAE 残差结合使用。该残差代表原始激活中未被特征解释的部分。在特征表现较差的情况下,这能缩小其与原始激活之间的差距。例如,下方使用最后一个 token 方法的 Sonnet 运行结果,比较了仅使用特征(蓝色)、特征与残差结合(橙色)以及原始激活(绿色)的效果。
具体来说,为了构建残差,我们首先收集字典学习预测的原始激活与真实激活之间的差值。然后,我们在此残差上训练一个逻辑分类器,遍历 L2 正则化参数,并选择验证性能最佳的回归模型。接着,我们为每个数据点生成预测的类别概率,并将这些概率与特征激活值拼接,之后再拟合我们常用的 L1 惩罚逻辑回归。
一个可能令人惊讶的结果是,仅使用残差(最右侧的红色柱状图)的表现与特征和原始激活相似。我们并未对此结果进行进一步探究。不过,一种假设是,由于特征存在“收缩”现象(即 L1 惩罚降低了其活跃度),每个特征向量的小部分残余会继续存在于残差中。这意味着仅残差本身就包含了特征与原始激活的混合信息。
基于特征的分类器性能的重要考量
在我们的研究过程中,我们发现三个方法论选择对分类器性能有显著影响:
- 一致处理人类/助手标签
- 混合领域相关数据
- 使用最大池化特征激活而非最后一个 token
首先,为了使分类器使用的特征具有可解释性,必须注意大语言模型是否经过人类/助手标签的训练。如果是,那么用于训练 SAE 和分类器的文本输入也必须使用人类/助手标签。反之,如果大语言模型未经人类/助手标签训练,那么在字典学习和分类步骤中也应避免使用这些标签。
也就是说,存在三个独立的数据集:一个用于训练 Transformer,另一个用于训练 SAE,最后一个用于训练分类器。为了获得良好性能,这三个数据集在是否使用“人类/助手”标签上必须保持一致。
如下所示,在分类器数据中添加“人类/助手”标签可提升特征性能(比较蓝色与橙色)。我们还看到了第二个重要选择的影响:训练一个对领域相关数据(此处为合成生物数据)进行过采样的字典,能进一步改善除“人类”数据集之外的所有数据集性能(比较橙色与绿色)。请注意,使用一致的“人类/助手”标签对于基于原始激活值的分类器也很重要,此处未展示。
我们发现最后一个重要选择是:是提取最后一个 token 处激活的特征,还是聚合整个提示词上下文中的最大特征激活值。采用后一种方法,使得基于特征的分类器在所有合成数据集上的表现都优于基于原始激活值的分类器。
重复上方的第一个柱状图,我们看到,对于原始激活值和特征两者而言,在上下文中聚合它们的最大激活值,在合成数据集上的表现显著优于原始激活值。而采用最后一个 token 的方法则在人类数据集上表现更优。
我们不确定为什么最后一个 token 的方法在人类数据集上表现更优。一种可能的解释是,最大池化方法可能使特征过度拟合了合成数据,因为它为每个提示词提供了约 100 倍更多的活跃特征供分类器利用。此外,正如我们之前研究所发现的,合成数据中存在大量虚假相关性,这可能导致其与人类数据集之间的差异。
我们还注意到,所考虑的两种聚合方法本质上都是有损的。超越基于离散规则的池化方法(例如,使用基于注意力的池化,其中聚合系数取决于上下文),可能进一步提升特征和原始激活值的分类性能。
来源:Anthropic:Transformer Circuits(可解释性研究) · transformer-circuits.pub