目 录CONTENT

文章目录

通过稀疏电路理解神经网络

Administrator
2025-11-26 / 0 评论 / 0 点赞 / 0 阅读 / 0 字

📢 转载信息

原文链接:https://openai.com/index/understanding-neural-networks-through-sparse-circuits

原文作者:Leo Gao、Achyuta Rajaram、Jacob Coxon、Soham V. Govande、Bowen Baker、Dan Mossing


神经网络为当今最强大的人工智能系统提供动力,但它们仍然难以理解。我们不会用明确的、逐步的说明来编写这些模型。相反,他们通过调整数十亿个内部连接或“权重”来学习,直到他们掌握一项任务。我们设计了训练规则,但不设计出现的具体行为,结果是一个没人能轻易破译的密集连接网。 

我们如何看待可解释性

随着人工智能系统变得更加强大,并在科学、教育和医疗保健领域的决策中产生实际影响,了解其工作原理至关重要。可解释性是指帮助我们理解模型为何产生特定输出的方法。我们有多种方式可以实现这一目标。 

例如,推理模型被激励在得出最终答案的过程中解释其工作。链式思维可解释性则利用这些解释来监控模型的行为。这一点立刻具有实用价值:对于识别诸如欺骗之类令人担忧的行为,当前推理模型的链式思维似乎提供了有价值的信息。然而,完全依赖这一特性是一种脆弱的策略,随着时间的推移,这可能会失效。

另一方面,机理可解释性是这项工作的重点,旨在完全逆向工程模型的计算。到目前为止,它还没有那么直接具有实用价值,但原则上可以更全面地解释模型的行为。通过在最细微的层次上解释模型行为,机理解释性可以减少假设,从而增强我们的信心。然而,从低层次细节到复杂行为解释的路径要长得多,也更加艰难。

可解释性支持实现几个关键目标,例如更好地进行监督,并提供不安全或战略不协调行为的早期预警信号。这也补充了我们其他的安全措施,例如可扩展的监督、对抗性训练和红队测试。 

在这项工作中,我们展示了:通过特定的训练方式,我们常常能够让模型变得更易于解释。我们认为,我们的工作是对密集网络事后分析的有前景的补充。 

这是一个非常雄心勃勃的赌注;从我们的工作到完全理解我们最强大模型的复杂行为,还有很长的路要走。然而,对于简单的行为,我们发现用我们的方法训练的稀疏模型包含一些小型、可分离的电路,这些电路既易于理解,又足以执行该行为。这表明,可能存在一条可行的途径来训练我们能够理解其机制的大型系统。

一种新方法:学习稀疏模型

以往的机理可解释性工作从密集、纠结的网络开始,并试图拆解它们。在这些网络中,每个神经元都与成千上万个其他神经元相连。大多数神经元似乎都在执行各种不同的功能,使其看似无法理解。 

但是,如果我们训练的是神经元数量更多,但每个神经元只有几十个连接的非缠结神经网络呢?这样一来,所形成的网络也许会更简单,更容易理解。这是我们工作的核心研究重点。

本着这一原则,我们训练的语言模型采用了与 GPT‑2 等现有语言模型非常相似的架构,但做了一个小修改:我们强制模型的绝大部分权重为零。这限制了模型只能使用其神经元之间极少的可能连接。这是一个简单的更改,我们认为它从根本上理清了模型的内部计算。

密集电路与稀疏电路的对比图。密集版显示了两行节点和许多相互连接的线条,而稀疏版显示了相同的布局,但连接更少且更具选择性。

在常规的密集神经网络中,每个神经元都与下一层的每个神经元相连。在我们的稀疏模型中,每个神经元只与下一个层的几个神经元相连。我们希望这能让神经元,以及整个网络,更容易理解。

评估可解释性

我们希望测量稀疏模型计算的解耦程度。我们考虑了各种简单的模型行为,并检查我们是否能分离出模型中负责每种行为的部分——我们称之为电路。

我们精心策划了一套简单的算法任务。对于每个模型,我们都将其剪裁成了仍能执行该任务的最小电路,并检查了该电路的简洁程度。(详情请参阅我们的论文(在新窗口中打开)。)我们发现,通过训练更大且更稀疏的模型,我们能够用越来越简单的电路生成能力更强的模型。

散点图显示了 x 轴上的模型能力(预训练损失)与 y 轴上的可解释性(裁剪后电路规模)之间的关系。点表示不同大小和稀疏程度的模型,颜色表示总参数,标记大小表示非零参数的数量。箭头将右上方向标记为“更好”。

我们绘制了模型的可解释性与能力的对比图(左下角越低越好)。对于固定的稀疏模型大小,增加稀疏性——将更多权重设置为零——会降低能力,但会提高可解释性。扩大模型规模将这一前沿向外推进,这表明我们可以构建既有能力又可解释的更大模型。

为了具体说明这一点,请考虑一个任务:一个在 Python 写代码上训练的模型必须用正确的引号类型来完成一个字符串。在 Python 中,‘hello’必须以单引号结束,而“hello”必须以双引号结束。模型可以通过记住打开字符串的引号类型,并在结尾处再现它来解决这个问题。

我们最具可解释性的模型中,似乎包含解耦的电路,而这些电路正是按照该算法本身在运作。

示意图说明稀疏Transformer中的示例电路。它展示了当输入令牌如 “(” 和 “circuits” 出现时,特定神经元与注意力头如何被激活并作出回应;图中标注了正、负权重的传递路径、乘法操作、非线性变换,以及 MLP 层与注意力层之间的连接,并最终汇聚为输出令牌的概率分布。

稀疏Transformer中的示例电路,预测字符串是否以单引号或双引号结束。该电路仅使用了五个残差通道(垂直灰线)、第0层的两个MLP神经元,以及第10层的一个注意力查询键通道和一个值通道。该模型 (1) 在一个残差通道中对单引号进行编码,在另一个通道中对双引号进行编码;(2) 使用 MLP 层将其转换为一个通道以检测任何引号,另一个通道用于在单引号和双引号之间进行分类;(3) 使用注意力机制忽略中间的 token,找到前一个引号,并将其类型复制到最终 token;(4) 预测匹配的闭合引号。

在我们的定义中,上述确切的连接足以完成任务——即使我们移除模型的其他部分,这个小电路仍然可以工作。它们也是必要的——删除这几条边会导致模型失败。

我们还研究了一些更复杂的行为。我们用于这些行为的电路(例如下文所示的变量绑定)更难以完全解释。即便如此,我们仍然可以获得相对简单的部分解释,这些解释可以预测模型的行为。

图示突出显示了 Python 函数 get_neighbors 中的一个稀疏 Transformer 电路示例。图中用方框标出了对 current = set() 的两次赋值,彩色箭头显示了哪些注意力头(标有 Q/K/V 索引)被激活,以连接变量 current 的每次出现与其在循环中的使用。

另一个电路示例,细节较少。为了确定名为 current 的变量的类型,一个注意力操作在定义时将变量名称复制到 set() token 中,另一个后续操作将类型从 set() token 复制到变量的后续使用中,从而使模型能够推断出正确的下一个 token。

前方的道路

这项工作是朝着更大目标迈出的早期步骤:使模型计算更易于理解。但是,仍然有很长的路要走。我们的稀疏模型比前沿模型小得多,其计算的大部分仍未被解释。 

接下来,我们希望将我们的技术扩展到更大的模型,并解释更多模型的行为。通过列举在有能力的稀疏模型中支撑更复杂推理的电路模式,我们可以形成一种理解,帮助我们更好地针对前沿模型进行研究。

为了克服训练稀疏模型的低效问题,我们看到两条前进的道路。一种方法是从现有的密集模型中提取稀疏电路,而不是从头开始训练稀疏模型。从根本上说,密集模型的部署比稀疏模型更高效。另一种方法是开发更高效的技术来训练可解释性模型,这可能更容易投入生产。

请注意,我们在这里的发现并不能保证这种方法会扩展到更强大的系统,但这些早期结果是令人鼓舞的。我们的目标是逐步扩展我们可以可靠地解释的模型部分,并构建工具,使未来的系统更易于分析、调试和评估。




🚀 想要体验更好更全面的AI调用?

欢迎使用青云聚合API,约为官网价格的十分之一,支持300+全球最新模型,以及全球各种生图生视频模型,无需翻墙高速稳定,文档丰富,小白也可以简单操作。

0

评论区