📢 转载信息
原文链接:https://openai.com/index/understanding-neural-networks-through-sparse-circuits
原文作者:Leo Gao, Achyuta Rajaram, Jacob Coxon, Soham V. Govande, Bowen Baker, Dan Mossing
我们训练模型以更简单、更易于追踪的步骤进行思考——这样我们就能更好地理解它们的工作原理。
神经网络驱动着当今能力最强的AI系统,但它们仍然难以理解。我们不是用明确的、循序渐进的指令来编写这些模型的。相反,它们通过调整数十亿的内部连接,即“权重”,来学习直至掌握任务。我们设计了训练规则,但没有设计出现的具体行为,结果就是人类难以轻易解读的密集连接网。
我们如何看待可解释性
随着AI系统能力越来越强,并对科学、教育和医疗决策产生实际影响,理解它们的工作原理至关重要。可解释性指的是帮助我们理解模型为何产生特定输出的方法。我们可以通过多种方式实现这一点。
例如,推理模型在得出最终答案的过程中会被激励去解释它们的工作。思维链可解释性利用这些解释来监控模型的行为。这立即可用:当前推理模型的思维链似乎对欺骗等令人担忧的行为具有信息量。然而,完全依赖这一特性是一种脆弱的策略,并且随着时间的推移可能会失效。
另一方面,机械可解释性(本文的研究重点)旨在完全逆向工程模型的计算过程。到目前为止,它的即时效用较小,但原则上可以提供对模型行为更完整的解释。通过寻求在最细粒度级别解释模型行为,机械可解释性可以做出更少的假设,并给我们带来更大的信心。但从低级细节到复杂行为解释的路径要长得多、困难得多。
可解释性支持几项关键目标,例如实现更好的监督,并为不安全或策略性错位行为提供早期预警信号。它还补充了我们的其他安全工作,例如可扩展监督、对抗性训练和红队测试。
在这项工作中,我们表明我们通常可以通过某些方式训练模型,使其更容易解释。我们认为我们的工作是对密集网络事后分析的有益补充。
这是一个非常宏大的设想;从我们的工作到完全理解我们最强大的模型的复杂行为,还有很长的路要走。尽管如此,对于简单的行为,我们发现用我们方法训练的稀疏模型包含小型的、解耦的电路,这些电路既可以理解,又足以执行该行为。这表明,可能存在一条可行途径,可以训练我们能够理解其机制的更大系统。
一种新方法:学习稀疏模型
以往的机械可解释性工作都是从密集、纠缠的网络开始,并试图将它们解开。在这些网络中,每个单独的神经元都连接到数千个其他神经元。大多数神经元似乎执行许多不同的功能,这使得理解它们看似不可能。
但是,如果我们训练解耦的神经网络,拥有更多的神经元,但每个神经元只有几十个连接呢?那么结果的网络可能会更简单,也更容易理解。这就是我们工作的核心研究赌注。
基于这一原则,我们使用与现有语言模型(如GPT-2)非常相似的架构训练了语言模型,但进行了一个小的修改:我们强制模型的大部分权重为零。这约束了模型只能使用其神经元之间可能连接中的极少一部分。这是一个简单的改动,但我们认为它极大地解耦了模型的内部计算。
在正常的密集神经网络中,每个神经元都连接到下一层的所有神经元。在我们的稀疏模型中,每个神经元只连接到下一层的少数几个神经元。我们希望这使得神经元以及整个网络更容易理解。
评估可解释性
我们希望衡量我们的稀疏模型的计算过程被解耦的程度。我们考虑了各种简单的模型行为,并检查了我们是否可以分离出负责每种行为的模型部分——我们称之为电路。
我们手工挑选了一系列简单的算法任务。对于每一个任务,我们将模型修剪到仍能执行该任务的最小电路,并检查该电路的简单程度。(详情请参阅我们的论文(在新窗口中打开)。)我们发现,通过训练更大、更稀疏的模型,我们可以产生能力更强、电路更简单的模型。
我们绘制了模型间可解释性与能力的对比图(左下角表示更优)。对于固定的稀疏模型大小,增加稀疏度——将更多权重设置为零——会降低能力但增加可解释性。扩大模型规模将这一前沿推向外部,表明我们可以构建更大、兼具能力和可解释性的模型。
为了具体说明,考虑一个任务,其中一个在Python代码上训练的模型必须用正确类型的引号来完成一个字符串。在Python中,‘hello’必须以单引号结尾,而“hello”必须以双引号结尾。模型可以通过记住是哪种引号打开了字符串并在末尾重现它来解决这个问题。
我们最具可解释性的模型似乎包含完全实现该算法的解耦电路。
稀疏Transformer中一个预测应该以单引号还是双引号结束字符串的示例电路。该电路仅使用了五个残差通道(垂直灰线)、第0层的两个MLP神经元,以及第10层的一个注意力查询-键通道和一个值通道。模型(1)在一个残差通道中编码单引号,在另一个中编码双引号;(2)使用MLP层将此转换为一个检测任何引号的通道和另一个对单双引号进行分类的通道;(3)使用注意力操作忽略中间标记,找到前一个引号,并将其类型复制到最后一个标记;(4)预测匹配的闭合引号。
在我们的定义中,上面显示的精确连接足以完成任务——如果我们移除模型中其余的部分,这个小电路仍然有效。它们也是必需的——删除这几条边会导致模型失败。
我们也研究了一些更复杂的行为。我们对这些行为(例如下面显示的变量绑定)的电路更难完全解释。即使如此,我们仍然可以获得相对简单的、可预测模型行为的部分解释。
另一个示例电路,细节较少。为了确定名为 current 的变量的类型,一个注意力操作在定义变量时将变量名复制到 set() 标记中,而另一个后续操作在变量后续使用时将类型从 set() 标记中复制出来,从而使模型能够推断出正确的下一个标记。
前方的道路
这项工作是迈向一个更大目标(使模型计算更容易理解)的早期一步。但是,前方的道路仍然漫长。我们的稀疏模型比前沿模型小得多,而且它们的大部分计算仍然没有被解释。
接下来,我们希望将我们的技术扩展到更大的模型,并解释模型更多的行为。通过枚举能力强大的稀疏模型中更复杂推理的基本电路模块,我们可以发展出一种理解,有助于我们更好地定位对前沿模型的调查。
为了克服训练稀疏模型的低效率,我们看到了两条前进的道路。一条是从现有密集模型中提取稀疏电路,而不是从头开始训练稀疏模型。密集模型在部署上比稀疏模型本质上更高效。另一条道路是开发更有效的技术来训练可解释性模型,这些技术可能更容易投入生产。
请注意,我们的研究结果并不能保证这种方法会扩展到能力更强的系统,但这些早期结果是有希望的。我们的目标是逐步扩大我们可以可靠解释的模型范围,并构建使未来系统更易于分析、调试和评估的工具。
🚀 想要体验更好更全面的AI调用?
欢迎使用青云聚合API,约为官网价格的十分之一,支持300+全球最新模型,以及全球各种生图生视频模型,无需翻墙高速稳定,文档丰富,小白也可以简单操作。
评论区