机械可解释性研究现状速览
总结AI解释性研究的成果与差距,介绍电路、叠加等已确立的概念。学术价值高但距离实际应用较远。
总结AI解释性研究的成果与差距,介绍电路、叠加等已确立的概念。学术价值高但距离实际应用较远。
TL;DR——机制可解释性研究已经从一种好奇心驱动的探索,发展为一个严谨的子领域,并积累了可复现的研究成果——回路(circuits)、叠加(superposition)和归纳头(induction heads)如今都已成为公认的概念。但在理解玩具模型与理解前沿规模系统之间,仍然隔着一道巨大的鸿沟。本文将梳理目前有哪些结论得到了可靠验证、哪些方法论还不够稳固,以及这些发现为何值得基于这些模型构建产品的工程师关注。
在深度学习的大部分历史中,可解释性研究基本等同于一件事:事后合理化。显著性图、LIME、SHAP——它们在特定场景中确实有用,但本质上只能告诉你模型关注了哪些输入特征,而不能解释模型为什么会产生这样的输出。机制可解释性研究做的是另一件事。它提出了一个更难的问题:我们能否逆向工程出训练后的神经网络实际运行的算法?
对于小型和中等规模模型,答案正越来越接近“可以”——当然仍有一些需要注意的限制。如今,我们已经拥有了一批可复现的研究成果。值得越过炒作的滤镜,准确理解这些成果。
机制可解释性研究中最经得起时间检验的发现,是回路的存在:由权重和 attention heads 构成、可以被识别出来的子图,它们负责执行具体且可以命名的计算。最经典的例子,是 Transformer 语言模型中的归纳头回路。
归纳头由两个 attention heads 组成,它们共同实现了一种简单的上下文复制算法:如果序列中包含 [A][B]...[A],第二个 head 就会回头关注此前紧跟在 A 后面的 token,并预测 B。这不是比喻,也不是近似描述——研究人员已经定位到了这些具体的 heads,对它们进行了消融,并观察到了预测中的上下文学习性能下降。这个机制是真实存在且可测量的。
归纳头的重要性并不局限于其自身狭窄的功能,因为它似乎是更广泛的上下文学习行为所依赖的一种基础原语。当你向语言模型提供几个新任务格式的示例,而模型能够举一反三时,类似归纳头的回路会在这个过程中发挥实质性作用。这是一个有关模型内部机制、具体且可以被证伪的主张,而不是事后编出来的故事。
第二个已经确立的成果是叠加。神经网络会在同一个激活空间中,将多个特征编码为近似正交的方向,从而表示比自身维度更多的特征。这解释了一个长期存在的谜题:为什么 probing classifiers 几乎能在所有地方找到可线性解码的特征,哪怕某些层看起来小到根本容纳不下这么多特征?答案是,神经网络采用了经过压缩的有损存储,而且这种压缩的几何结构并非随机形成——它会根据特征出现的频率和共现关系呈现出可预测的模式。
叠加对工程实践有一个直接影响。它意味着 activation patching 和因果追踪实验——在正常与被破坏的 forward pass 之间交换激活,以定位某个事实存储在何处——测量到的确实是真实存在的东西,但这个东西会与同一位置上的许多其他计算纠缠在一起。定位一个事实,并不等于把它隔离出来。
机制可解释性研究的主要工具是 activation patching,有时也被称为因果中介分析。其基本设置是:让模型分别处理两个以受控方式存在差异的输入,然后系统性地交换每一层、每个 head 位置上的激活,从而找出哪些组件对输出差异负有因果责任。这是一种有理论依据的方法,其思想大致借鉴自因果推断。
问题在于,研究结论对干预方式的选择非常敏感。在 residual stream 上进行 patching、在 attention head 的输出上进行 patching,以及在 MLP 层的输入上进行 patching,可能会得到不同的解释。Transformer 的计算并不存在唯一标准的分解方式,而你选择的分解方式会影响最终发现的结果。这并不是一个致命缺陷,但它意味着,我们应当把回路研究的发现理解为特定分析协议下得到的结论,而不是关于模型的唯一客观真相。
另一个相关问题是多义性(polysemanticity)。单个神经元,甚至单个 attention head,通常都会对多个互不相关的特征产生响应。一个会对法语文本产生激活的神经元,也可能会被某些代码模式激活。这是叠加造成的结果,也意味着可解释性论文中那些清晰整洁的回路图往往经过了简化。真实的计算要混乱得多,许多组件同时承担着两种甚至三种职责。
研究人员已经开始使用稀疏自编码器(SAEs)来解决这个问题,将具有多义性的激活分解为单义特征——也就是激活空间中对应某个单一且可以命名概念的方向。与原始神经元相比,通过 SAE 提取的特征更容易解释;研究人员已经利用它们找到了与特定命名实体、句法角色,甚至情绪效价相对应的特征。但最终发现哪些特征,高度依赖 SAE 的稀疏性惩罚和架构,这又在研究人员与模型内部机制之间增加了一层方法论选择。
几乎所有最清晰的机制研究成果,都来自参数量不超过几十亿的模型,而且通常是在合成任务上训练的小型 Transformer。从这些模型迈向前沿规模模型,不仅仅是一个量变层面的扩展挑战——它也可能是一个质变问题。
随着规模扩大,回路会分布到更多层和更多 heads 之中。在小型模型中发现的、由两个 heads 构成的清晰归纳回路,在大型模型中也存在类似结构,但由于计算分散在更广泛的计算图中,因此更难将其隔离出来。更重要的是,大型模型似乎会形成多个彼此重叠的回路,以冗余方式执行相似的计算。对其中一个回路进行消融,并不会带来同样明显的性能下降,因为其他回路会进行补偿。这种冗余有助于提升鲁棒性,却给可解释性带来了麻烦。
目前还有一种正在形成、但尚未得到充分证实的假设:随着模型规模扩大,可能会涌现出性质全新的计算结构,而这些结构在较小模型中没有任何对应物。如果这一假设成立,就意味着在小型模型上形成的回路词汇体系无法直接迁移,研究领域将需要针对每一个能力层级开发新的基础原语。这是一个尚未解决且非常重要的问题。
机制可解释性目前带来的实际收益,还不是一套可以直接用于生产环境的工具,而是一组更精确的心智模型,帮助我们理解和推理模型行为。
Prompt 敏感性具有机制层面的基础。当模型面对语义等价的 prompts,却表现出截然不同的行为时,原因在于 tokenization 和早期层表示激活了不同的回路。理解这一点——它是 Transformer 工作方式中的结构性特征,而不是一个迟早会被修复的 bug——会改变你设计评估套件的方式。
Prompt 敏感性具有机制层面的基础。当模型面对语义等价的 prompts,却表现出截然不同的行为时,原因在于 tokenization 和早期层表示激活了不同的回路。理解这一点——它是 Transformer 工作方式中的结构性特征,而不是一个迟早会被修复的 bug——会改变你设计评估套件的方式。
Fine-tuning 可以抑制回路,却不会将其移除。模型编辑方面的研究表明,fine-tuning 通常会通过添加一个相互竞争的信号来抑制某种行为,而不是修改底层回路。这解释了为什么 fine-tuning 得到的安全行为可能非常脆弱——原始回路仍然存在,只是在等待一个能够绕过抑制信号的 prompt。
Fine-tuning 可以抑制回路,却不会将其移除。模型编辑方面的研究表明,fine-tuning 通常会通过添加一个相互竞争的信号来抑制某种行为,而不是修改底层回路。这解释了为什么 fine-tuning 得到的安全行为可能非常脆弱——原始回路仍然存在,只是在等待一个能够绕过抑制信号的 prompt。
Activation steering 是一种真实有效的干预。在 forward pass 进行到一半时,向模型的 residual stream 添加一个特征方向,可以可靠地让模型行为朝着该特征所对应的方向发生变化。这并不是什么魔法,而是线性表示假设的直接推论。它也意味着,随着通过 SAE 提取的特征变得更加可靠,激活空间干预将成为一种更实用的受控生成工具。
Activation steering 是一种真实有效的干预。在 forward pass 进行到一半时,向模型的 residual stream 添加一个特征方向,可以可靠地让模型行为朝着该特征所对应的方向发生变化。这并不是什么魔法,而是线性表示假设的直接推论。它也意味着,随着通过 SAE 提取的特征变得更加可靠,激活空间干预将成为一种更实用的受控生成工具。
这些结论并不意味着你应该在生产环境中运行自己的可解释性实验。它们意味着,这个领域目前产出的研究已经足够丰富,值得认真阅读,因为它们正在改变模型评估、编辑和控制的可能边界。
机制可解释性已经证明自己足以成为一个严肃的研究方向。它产出了可复现的研究成果,建立了一套具有明确已知失效模式的方法论工具箱,并开始与模型行为相关的实际问题建立联系。这已经超过了大多数可解释性方法所能达到的程度。
但这个领域的核心目标——用完整且人类可读的方式,解释一个前沿模型在推理时究竟做了什么——距离实现仍然非常遥远。理解一个在合成任务上运行的两层、纯 attention Transformer,与理解一个面对开放式问题的千亿参数模型之间的鸿沟,并不是投入更多算力和更多研究生就能填平的。它可能需要目前尚不存在的全新概念框架。
正确的态度既不是全盘否定,也不是盲目相信。研究发现是真实的,外推结论则仍属推测。对于资深工程师来说,区分二者就是这场游戏的全部。
如需采取进一步行动,你可以考虑屏蔽此人和/或举报滥用行为。