GPT 2XL 已经足够干净了吗?

我会调查Opus是否能比GPT 4更好地解读神经元。

简而言之:Opus 5.5能够根据激活识别GPT 2-XL的3-19%神经元。这比GPT-4在2023年达到的0.3%有很大提升。

#AI注意:本文由人工撰写,但研究中Opus 5.5的使用量很大。我主要让它重发这篇2023年的论文,看看如果用Opus 5.5代替GPT4,改进幅度有多大。

自大型语言模型发明以来,它们一直固执地拒绝表达清晰。它们被描述为黑匣子和难以理解的机器,如果这种情况持续存在,这对检测人工智能阴谋和对齐行为来说是坏消息。

最近Goodfire帖子告诉我们神经网络已经是干净的,仅仅观察神经元就足够了。就本文而言,我的意思是,如果我们仅通过观察神经元来理解神经元的功能,而不是通过创建额外的衍生对象来研究,那么神经网络就是干净的。

这激发我重做一个2023年的旧实验。2023年,OpenAI发表了《语言模型可以解释语言模型中的神经元》。在这篇论文中,他们提出了一种方法论,原则上可以让智能神经网络逐个解释神经节点,并测试这些节点的解释。他们使用的过程很直接。在这篇文章中,我将介绍OpenAI所用的方法,并以Opus 5.5为主模型而非GPT-4,重新运行同样的方法。然后我会估算Opus 5.5解释整个GPT-2 XL的能力,最后我会举一个难度较高的神经元示例。

这篇文章假设读者已经熟悉神经网络的基础知识,如果没有的话,我推荐本帖.

方法1:OpenAI

在这个实验中,我想复制语言模型可以解释神经元OpenAI于2023年发表的论文,但使用了Opus 5.5,而非原论文中的GPT4。为了正确复现它,我们先看看原始工作。

原始工作对GPT-2 XL的所有神经元采用了相同的过程。例如,假设选中了神经元L12 N5603。这表示第12层的神经元编号5603。我们向GPT-2 XL输入数百万个文本标记,并记录每个标记的激活值。

然后找到这些值最高的位置,并将每个示例保存为一个64个标记的文本窗口。一个示例如下:

神经元1激活:市长0写0 : 0“ 0 经过0谨慎0考虑0, 0 I 0 0 决定 0 0 人 2 必须0 得到0 a 0 最终0 说10。0 ...

这些顶级输出及其价值随后会显示给GPT4实例,系统信息:“我们正在研究神经网络中的神经元。每个神经元在简短文档中寻找某个特定内容。观察神经元激活文档的部分,用一句话总结神经元在寻找什么。不要列出单词的例子。

激活形式是代币激活。激活值范围为0到10。神经元找到目标时,激活值为非零。激活值越高,匹配越强。”

对于本例开头选择的神经元,GPT4给出了以下解释:“与决策和责任概念相关的词。”

随后,这个解释被赋予了一个新的GPT4实例,该实例无法访问激活值。然后该实例被要求预测不同标记下的神经元激活情况。然后通过10个样本计算皮尔逊相关性,总共约640个标记。

如果预测与神经元完全同步上升和下降,相关性为1;如果完全没有相关性,则为0。在原始论文中,OpenAI也解释了所有神经元的皮尔逊相关系数为0.8>并进行了解释。

该方法为OpenAI提供了307,200个神经元中超过1,000个(~0.3%)的得分≥0.8。这仍然仅占解释良好神经元的约0.3%。



方法2:作品5.5


OpenAI的实验和我的实验之间有几个不同之处。最大的区别是我没有对GPT-2 XL的所有神经元进行这个测试,因为我只是想大致了解解释能力的差异。

在本次实验中,Opus被允许观看35个样本,而不是5个,并且允许它用多于一句话来描述神经元。

我以子代理身份运行了Opus 5.5,而不是作为一个干净的实例。这样一个效果是,两个子代理除了本实验的指令外,还获得了人类的通用子代理指令。

解释子代理只获得了实验的一般指令、顶发摘录和写解释的任务,而模拟子代理只看到了指令和说明。

还需要注意的是,这一结果的一部分可能来自语言模型自身的判断。这个问题在原论文中相同,因此不应影响相对差异。

GPT-4的模拟基于概率加权期望值。而对于Opus 5.5,我只是让它给出一个0到10的数字形式。

我很好奇Opus 5.5在这个任务上比GPT4好多少,于是我用同样的循环运行,并对20个随机神经元和GPT4进行了比较。

如果您想了解这一差异中究竟有多少来自解释器与模拟器的贡献,相关内容也可在附录中找到。

在测试的20个神经元中,Opus在每一个神经元上都优于GPT-4。从图1可以看出,GPT-4在许多神经元上的得分接近于0,这意味着它未能识别出任何模式;而Opus 5.5则能更好地识别这些模式。

Opus在一次性生成这些解释时表现如何?

接下来我想知道Opus在一次性生成这些解释方面的效果如何,但这个小实验消耗了我的Claude Pro订阅额度,于是我决定对神经元进行分批处理。

为了检验分批处理是否仍能给出连贯的结果,我运行了一个包含12个神经元的批次,其中最后6个是从前20个神经元中随机选取的。结果显示,模拟器的得分略有下降,但解释器的表现似乎还能维持得不错。

利用这一组合,我又测试了另外30个神经元,总计达到50个神经元。

在50个神经元中,Opus能够在单次尝试中识别出其中大多数的部分功能。这些神经元的解释得分可以汇总起来,从而估算出如果将这种方法应用于整个GPT-2 XL,能够被较好解释的神经元数量。

基于这些数据进行推断时,需要注意的是,在这些随机选取的神经元中,仅采样了第8至第40层。该流程最初是在前20个神经元上设计的,其平均得分为0.51;而新增的30个神经元的平均得分为0.41。



从这张柱状图可以看出,Opus在大多数情况下都能解释部分行为,但距离能够识别每个神经元背后的主要行为仍有较大差距。与OpenAI使用GPT-4仅能识别0.3%的神经元相比,Opus能够识别8%,在识别神经元能力上实现了惊人的26倍提升。

探索一个难解的神经元

在考察那些Opus表现优于GPT-4的20个神经元时,我开始好奇哪些是较难解释的神经元。这里所说的“难解神经元”,是指相关性得分较低、即Opus无法在一次尝试中准确找出该神经元激活或抑制原因的神经元。

例如,第L21层的第4526号神经元得分仅为0.25,而GPT-4的得分为-0.02。Opus最初推测该神经元会在聊天类博客中的常见短语末尾被激活,但这似乎并不能完全解释该神经元的整体行为特征。

受Goodfire论文的启发,我让Opus对该神经元进行了更深入的测试,包括使用更长的上下文窗口、调整上下文长度、遮蔽实验、假设竞赛、输入分解以及兄弟节点分析等。

这些测试揭示了两个邻近神经元,它们似乎属于一个“Meta,作者与读者互动”的群体。经过一整天使用Claude Pro的实验,其激活变化中有8%得到了合理解释,而一次性解释仅能说明3.5%的变化。

这表明,一次性解释仍然只是对GPT-2 XL神经元清晰度的一个下限估计。在尝试解释该神经元的过程中,我还借助了注意力头分解等衍生分析方法。

关于神经网络,我们仍有许多未知之处,希望看似不“干净”的现象,只是因为我们尚未找到正确的观察角度所致。

如果本文有遗漏之处,欢迎指正——这是我首次尝试复现一篇可解释性研究论文。


未来计划

对我来说,这意味着单纯地询问Opus每个神经元的作用,似乎是一个很有前景的研究方向。因此,我也将参与一项旨在识别bonsai中每个神经元含义的项目。

如果您对该项目感兴趣,也建议关注社区共建的bonsai项目。如果我们把“干净”定义为每个神经元都能用一句话解释清楚,那么GPT-2 XL显然并不“干净”。

我希望通过后续工作证明,随着模型的更新迭代,我们能够更清晰地理解特定神经元的含义,并且在解释单个神经元方面仍有很大的探索空间。

附录1:Claude对话链接

上述内容几乎全部出自同一场Claude对话。如果您想查看我具体的操作步骤及顺序,可以点击此处查阅。

附录2:比较解释器与模拟器

为了区分究竟是解释本身还是模拟过程带来了更好的结果,我们还让Opus 5.5以模拟器的身份,对GPT-4的解释在10个神经元上进行了验证。

结果显示,Opus 5.5在处理GPT-4的解释时表现优于GPT-4自身,但两者的结合产生了最强的效果。

  1. “一次性”指首次尝试即成功。
  2. 具体的解释为:“在句中完成名词短语或固定连接词的头部词汇,尤其常见于轻松随意的第一人称博客、论坛或公告文体。”
参与讨论