30 秒看懂
在《The Cognitive Revolution》节目中,Arthur Conmy 把机制可解释性(mechanistic interpretability)定义为:把网络学到的算法逆向还原为人类能理解的概念。随后他讲解了自己的 ACDC 方法,如何把寻找回路(circuit)这项苦差事变成软件。在 GPT-2 small 这个一亿参数的模型上,顺利的一次运行能在半小时到一小时内给出一个回路;但同样的流程放到 GPT-3 规模上不可行,因为它遍历的边数大致随节点数的平方增长。他坚持认为,重点不在于用更便宜的办法提取能力,而在于找到真正有意义的组件;如果这个雄心勃勃的目标失败了,它或许仍然能用来在部署前切除一个危险回路。
- 1一种前沿能力刚出现时,它究竟是表层的模式匹配,还是通用的解法,决定了部署的风险有多大。Conmy 认为,如果我们无法预测会涌现什么,至少需要一种办法来判断它有多深。
- 2研究的放大倍数,取决于野心有多大玩具级的模加法任务已经有神经元层面的解释;GPT-2 small 仍然主要是注意力头和 MLP 的层面;放大得太细,项目大概永远做不完。
- 3ACDC 并不是从模型里榨取能力的好办法缓存和重新计算让它很昂贵。Conmy 说,它唯一的目标,是找出语义上有意义的组件。
- 4研究者会挑选人类已经知道怎么做的任务,因为这样才能写出指标;但模型常常走出人类意想不到的路径,比如先把所有人名汇总起来,再把被排除的那些删掉。
- 5盯错了指标,平滑的曲线就会看起来像相变(phase change)准确率可能从 1% 跳到 50%,而对数概率一直在平稳增长。有一篇论文把这种现象称为“海市蜃楼”(mirage)。
- 6即使理解整个前向传播的梦想彻底失败,窄任务上的可解释性仍可能分离出一个寻求权力的回路,从而在系统部署前把它移除。
按章节阅读完整文稿
机制可解释性,就是把网络学到的算法逆向还原为人能理解的概念
Nathan Labenz 曾在《The Cognitive Revolution》上把机制可解释性视为通往长期安全的更有希望的路径之一,但他很少讲清楚这项工作究竟是怎么做的。这次的嘉宾是 Arthur Conmy,他刚发表了一篇论文和一个软件库,旨在自动化通常研究流程中最繁琐的一步。Conmy 的定义很直接:机制可解释性是“把神经网络实现的学习算法,逆向还原为人类能理解的概念”。模型就是一种把输入变成输出的算法。这个领域的任务,是说清模型在内部使用了哪些高层变量,而不仅仅是说某个矩阵乘了另一个矩阵。
Labenz 给出了一个三层的框架:首先描述信息究竟是如何被处理的;然后用直观的方式追问,那些被点亮的部分到底在做什么;最后再问,这种策略究竟是通用的理解,还是仍然只是一只随机鹦鹉(stochastic parrot)。Conmy 把前两层对应到目前实际的研究工作中。第一步是在庞大的网络中找出重要的子组件。第二步是追问这个子集意味着什么。他说,第三层只是众多用途中的一种:如果你能读懂算法,你也许终于能对模型是在推理,还是“只是一团启发式和统计的乱麻”,给出一个是或否的回答。
吸引他投身这一领域的,是本科时学的数学;这门学科几乎完全是在理解事情是如何发生的。相比之下,机器学习并不是一个以理解算法如何运作为通向下一项技术的常规路径的领域,它是一个盲目的优化过程。但它不必永远如此。Conmy 的研究目标,是用网络内部的组件来解释网络的更多行为,让这些网络学到的算法,能用人类的概念变得更容易理解。
在前沿,没人能分辨浅层启发式和通用解法
“随机鹦鹉”假说仍然只是一个假说,Conmy 说,它之所以看起来成立,只是因为评测还没有探得足够深。Labenz 的工作判断是,两者往往兼而有之:在某个规模之上,通用性开始显现,而且顿悟(grokking)的例子足够多,让人相信发生的不只是相关性;但对于任何一项具体任务,你仍然不知道自己处在哪一种状态。Conmy 同意,模型有时确实会执行正确的算法——基础数学和推理的基准测试都曾被设定,然后又被攻破——同时它们也依赖表层启发式。困难在于分辨两者,尤其是当某个新规模的模型突然做成了以前的模型做不到的事情时。
GPT-4 的编程能力让许多人感到惊讶。在某种能力刚刚出现的那一刻,我们并不清楚模型是否只是在足够多的情况下做出了模式匹配,足以让人类信服,还是真的对代码形成了某种实质性的理解。这种区别关系到未来的风险。Conmy 说,如果我们无法预测即将出现什么,那么至少希望知道,某项新技能究竟是表层启发式,还是对一个我们原以为很难的问题的完全通用的解法。他说,不可预测的通用性,本身就是系统部署时的一种不稳定来源。
对 Labenz 来说,GPT-4 技术报告里最重要的一句话很短:某些能力依然难以预测。报告显示了一条反向缩放规律(inverse scaling law)的逆转:在 GPT-4 之前,规模越大的模型越容易出现后见之明忽视(hindsight neglect)这种推理谬误,直到 GPT-4 时趋势才翻转。OpenAI 可以画出许多平滑的曲线,却仍然说不清,对于某项具体任务,它是否会被理解。Labenz 认为,这正是 Conmy 所指向的那种不可预测性。接下来,对话从这个动机转向了研究者今天真正能打开的那些模型。
第一步是可以定位的任务;开放式的安全行为通常过于分散,难以解释
Conmy 的论文把标准工作流程拆成三步。第一步,选择网络能够执行的一种行为,比如模加法,或者预测一个世纪里的某个后续年份。第二步,界定解释的范围:是神经元、注意力头(attention heads)和 MLP,还是整个层。第三步,运行干预实验,找出这些单元中哪些真正重要。对人来说,第三步通常最费力,因此 Conmy 和合作者尝试把它自动化,称之为回路发现。实际上,整个流程受限于你能加载哪些模型,以及这些模型能完成哪些不大的任务。和 GPT-4 或 Claude 2 相比,这项工作仍然是在相对较小的网络上进行的。
选择任务有两条标准。第一条是可定位性:这种行为应当能与自然语言计算的其余部分区分开来。在同一世纪内,根据较早的年份预测后面的年份,可以落实到具体的 token 补全上。生成无毒或无害的回应则是开放式的,可以用大量 token 来完成,并且分布在整个网络中,因此要解释它难得多。可处理性往往意味着把一个宽泛的概念收窄,直到项目真正能够做完。第二条标准是与更大模型的行为相关。事实回忆是一个很受青睐的任务:如果一个人在训练数据里被提及了一定次数,模型会不会存储这些信息?这个问题对于人们日后部署的系统,依然会很重要。
Labenz 想知道,人类的内省应在多大程度上决定任务清单:“年份”似乎可以拆解,而“我为什么会说出有毒的话”则不然。Conmy 的回答很谨慎。研究者确实会挑选人类知道如何完成的任务,因为那是写出指标的方式。不过,模型做这些任务时往往采用非常不同的方式。在他们发现的回路中,模型在句末选出正确的名字时,会先汇总所有名字,再把被删掉的那些去掉,这完全不是人类思考人名的方式。人类能够理解的任务是一个起点,但类人的算法并不是保证。
把组件置零会让模型偏离分布,应该用基线替换
这一文献里的一个任务,其实包含两个数据集:一组是表现出该行为的提示,另一组是用来对照的提示。你不能直接删掉模型的其余部分,还指望能完成一次前向传播。许多机器学习领域的默认做法是剪枝:把权重设为零,使某个神经元永远不激活。在这里这是个坏主意。训练期间,模型从未见过大量组件输出零的情况;它见到的是某个分布上的数值,偶尔有个单元会比平时激活得稍强一些。零值是分布外的(off-distribution),网络的其余部分会因此变得混乱。
更好的做法是:用该组件在被破坏的数据集(即基线(baseline)数据集)上产生的激活值,替换它的激活值。对于年份任务,Conmy 引用了 Michael Hanna 及合著者关于 GPT-2 如何完成“大于”运算(greater-than)的论文,实验提示大致是这样的:“这场战争从 1517 年持续到 15……”,模型必须补全一个更晚的年份。基线则是“这场战争从 1500 年持续到……”,其中 1500 年代的任何年份都可以,因此模型无需进行大小比较。在第一组上起作用、在第二组上不起作用的组件,就是在做这种比较的组件。Conmy 用医学做类比:这更像是换成安慰剂激素,而不是切掉一个腺体。在 Redwood Research,该团队的部分结果提供了证据,表明用另一个样本的激活值进行破坏,比直接置零更具代表性。
指标是从业者的选择,而不是只有“输出是否保持不变”这一种默认标准。在那些战争句子上,正确答案是更晚的年份,而不是 1516。研究者对正确年份的概率求和,再减去较早年份的概率。匹配原始模型的完整分布又太粗糙了:原始模型有时本身就是错的,而且它同时要兼顾的东西远比任务多。预训练是在整个互联网上做下一词元预测——书籍、论坛、转写糟糕的网页都在其中——因此模型要在“正确”的补全与讽刺、笑话、低级错误,以及文档干脆截断的可能之间保持平衡。针对具体任务的指标会剥离掉这条长尾。Labenz 得出了一个反直觉的结论,Conmy 也认同:一个被孤立出来的子回路,在这一个行为上可能比完整模型表现更好,因为完整模型同时在运行许多叠加的启发式。
放大倍数是对项目能否完成的押注,而不是自然定律
工作流程的第二步是选择抽象层级,Labenz 借用了生物学的类比:一端是生态学,另一端是遗传学,中间是细胞、器官、生物体和物种。Conmy 比大多数人更容易接受这个类比,因为他预期机制可解释性会更像生物学,而不是物理学。神经网络和进化都是在一个“愚蠢”的目标下训练出来的,却依然产生了复杂的行为。在一个研究者很少的年轻领域里,放大到哪个程度,主要取决于你有多雄心勃勃,也就是你要把当前对某种复杂程度行为的最佳解释推进到多远。
已有的例子已经覆盖了很宽的范围。Neel Nanda 及合作者对玩具 Transformer 如何完成模加法,给出了神经元层面的解释,这是一个关于顿悟的标志性结果。对 GPT-2 small 的理解则差得多,而且仍然主要停留在注意力头和 MLP 的层面;Conmy 参与了 IOI 论文,即去年的《Interpretability in the Wild》,它逆向还原了 GPT-2 small 内部的一条完整回路。再往下一层,ROME 论文把事实回忆定位到整个注意力层上,把许多注意力头打包在一起,然后再编辑这种回忆。ROME 论文的例子是:埃菲尔铁塔位于罗马。更细也不一定就更好。Conmy 说,如果你试图在量子力学层面解释飞行,他祝你好运,但并不指望你能做完。
把午餐桌上随口一说的那种选择,转化成代码里的因果有向无环图(causal acyclic graph),是 ACDC 项目中较为棘手的部分之一。一旦你明白前向传播(forward pass)是什么,提取激活值就没那么难,现成的库已经能提供帮助。更难的是修改某一个较早组件对某一个较晚组件的影响。默认情况下,代码是端到端运行的,一个较早的单元会影响到它下游的每一个单元。可解释性需要的是更细粒度的东西:具体来说,第一层对第八层做了什么?现在的教学材料让人更容易分离出单个注意力头,但因果图比天真的顺序实现要丰富得多。
ACDC 遍历每一条边,用基线替换,只保留影响指标的连接
概念上的飞跃来自残差流(residual stream),这是 Anthropic 可解释性团队在《A Mathematical Framework for Transformer Circuits》中的发现。机器学习通常谈论的是隐藏状态逐层变换。残差连接意味着你先做一次变换,再把原始状态加回来,因此前向传播就是一股持续的信息流,各个组件从中读取,又写回其中。这种视角让你能建模某个非常早期的单元,对某个特定下游单元的影响。在默认的图景中,你甚至从不去问第一层对第八层做了什么。Labenz 发现 Anthropic 的图示很有助于理解:残差流是核心对象,注意力头和 MLP 则是为它做出贡献的侧向环路。
在这种设置下,ACDC 是一个三步算法,它模仿了人类的过程,但不需要人类在回路中。先在选定的抽象层级上,把模型表示为一个计算图。对某个节点,查看它的每一条输入边,并逐一把该边的激活值设为基线数据集上的数值。如果下游指标下降超过某个阈值,就保留这条边;如果它不重要,就剪掉。对节点逐一递归。剩下的子图就是回路。要只破坏从某个早期注意力头到某个晚期 MLP 的连接,你需要把这个 MLP 的输入看作之前写入残差流的各项之和,减去该注意力头的干净贡献,再加上它被破坏后的输出。其余部分保持干净。
实现上有个技巧是缓存。保存早期注意力头的干净值和破坏值,在不改变该头的情况下运行前向传播直到 MLP,然后强制让 MLP“看到”被破坏的值。这样就把该头对中间组件的影响,与它对这个特定 MLP 的影响分开了。Labenz 更愿意指定一个目标稀疏度,也就是在仍然能完成任务的前提下,图能稀疏到什么程度,而不是对每条边设定局部阈值。Conmy 也希望有这样的算法,但他不知道该怎么设计。事先你无法判断在海量子图中哪一个最好;直接取一个 X 稀疏的图,在这项任务上通常毫无希望。局部阈值只是一个代理。处理完输出节点之后,你可以看到它保留了多少条边,并据此推测其余部分会有多稠密,然后进行扫描。实践中,研究者往往在出现有启发意义的子图之后就提前停止,而不是扫描每一个超参数。
验证时,先看能否复现早先研究者手工找到的回路,比如那个大于年份回路,而不是先看子图是否仍能完成任务。受众是可解释性研究者;迈向语义意义的第一步,是证明这个工具能恢复他们已经信任的组件。Conmy 说,子图的表现也许与此相关,但 ACDC 从来就不是为了做出一个出色的年份预测器。他也不把它吹成找到某种行为最佳子回路的办法。对边的干预涉及大量缓存和重新计算,因此它在提取能力方面并不具备竞争力。其他互补的工作,比如 Ziming Liu 的工作,在训练期间改变损失函数,以鼓励模块化结构。这是在为可解释性做选择。ACDC 则是事后的:面对一个固定的黑箱,在事后将其打开。两者需要彼此。Anthropic 的 SOLU 激活函数是一个警示:一项本意是让模型更可解释的训练改动,却让网络以一种令人困惑的方式隐藏了叠加(superposition)。稀疏并不意味着可解释,也不意味着已经顿悟。
在 GPT-2 small 上,一次运行一小时内就能结束;成本是二次方的,而“涌现”往往是错误的曲线
计算资源并不来自前沿实验室的超级集群。大部分来自 FAR AI,合作者 Adria Garriga-Alonso 就在那里工作。当运行稀疏而表现良好时,从业者在 GPT-2 small 上半小时到一小时就能得到结果。仍然存在两个瓶颈。如果阈值选得不好,你就要搜索每一个节点。Conmy 起初说成本大致与节点数成线性关系,随后又改口:因为算法要遍历的是边,而第零层的一个注意力头几乎会影响到下游的每一个注意力头,节点数翻倍,边数大约会翻四倍。GPT-2 small 是一个 1 亿(100M)参数的模型,按十年前的标准算大,但与 GPT-3 的数千亿参数相比则很小。ACDC 在 GPT-3 规模上不可行,在数十亿参数的级别上也谈不上高效。他认为,以目前的方法,它们无法再扩展到比 GPT-2 small 大一个数量级的模型。人们已经在 70 亿参数的 Alpaca 模型上做过一些可解释性工作,他也知道有一些后续研究,可能会把自动回路发现推进到那个规模。
即使在 GPT-2 small 上,他们也不是把神经元当作节点。论文的主要实验放在注意力头和 MLP 上,包括通往注意力头的查询(query)、键(key)和值(value)路径。神经元级别的 ACDC 会有太多连接,难以实用;况且现有研究也没有真正在那个粒度上理解过 GPT-2。去年的 IOI 逆向还原了 GPT-2 small 中的一条回路;今年,大于任务的回路也达到了同样的层级。这就是节奏。拖慢速度的是边的遍历,而不是前向传播。该库建立在 Neel Nanda 的 TransformerLens 之上,因此可以把 GPT-2 系列、EleutherAI 的 Pythia 模型,以及使用 GELU 或 SOLU 激活函数的玩具模型,作为计算图加载进来。开箱即用时,它可以用在许多开源模型上;但 Conmy 认为,在较大的模型上它仍然会太慢。
当一位从业者用 ACDC 研究 GPT-2 small 的性别代词偏见时——她研究女性名字之后的代词,他研究男性名字之后的代词——算法并没有返回一团乱麻。模型把名字信息汇总到了名字之后那个出人意料的下一个词元上,那是残差流中的另一个位置,然后再把它引导到代词上。关键的位置既不在输入,也不在输出,而是一个内部位置,如果靠手工去找,会花很长时间。这是迄今为止有限的证据,说明原始子图也可以是可读的。接着 Labenz 问起涌现。Conmy 的看法是,这往往取决于你选的是哪种指标。三位数加法可能看起来像是一次质变:一个 1 亿(100M)参数的模型输出垃圾,而十亿参数的模型突然就做对了。模型的训练依据的是补全概率的对数。后续工作(包括一篇把这种现象称为海市蜃楼的论文)发现,对数概率会随参数规模的对数平滑增长。指数增长很快,于是从 1% 正确跳到 50% 正确,看起来像是凭空出现的。他说,我们并不擅长找到正确的指标,因此只能采样输出。即便是对齐研究中心(Alignment Research Center)对 GPT-4 某些危险能力的评估,大多仍然只看模型说了什么。
Labenz 并不确定,那篇海市蜃楼论文能否让社会免于担忧。在 GPT-4 规模的运行期间,你事先并不知道该画哪些意外的曲线,而每个批次都跑一百万项诊断,开销会非常大。Conmy 同意,未知的未知极难判断,比如下一词元预测加上 RLHF,是否终究能在数学上赶上最顶尖的人类。他更关心的是已知的未知。工具性趋同(instrumental convergence)的论证认为,对于大量的最终目标,获取权力和资源都是有用的。当前的模型并没有做太多寻求权力的事情。如果把注意力限定在理论上危险的能力上,你就能更好地构建评测,判断今天的系统离危险有多远,而无需等待发现每一个未知的未知。
即使无法理解整个模型,我们也许仍能切除一个危险回路
按 Labenz 的描绘,安全的梦想是:弄清楚模型会如何实现那些最令人担忧的行为,然后在训练期间检测这些子图是否正在形成。Conmy 表示同意,并指出,你并不严格需要机制层面的理解,也能引导系统远离危险。但可解释性具有独特的具体性:它会用确切的位置和确切的原因来解释某种能力,而不是一张只会呈阳性或阴性的石蕊试纸。关于双重用途,两人都不觉得“这只会加速能力发展”的论点很有说服力。Conmy 小心地不歪曲对方的观点,然后给出了两点回应。第一,相关能力的大部分提升,并非来自透明性。Alignment Forum 上一篇关于务实 AI 安全的文章,回顾了视觉和语言方面的进展,发现其中大部分是工程上的:尝试各种替代方案,保留略微更好的那个,却并不理解原因。下一词元预测作为损失函数,以及把 RLHF 视为二选一(0 对 1)的偏好,并不是从某种深刻的语言理论或人类偏好理论中产生的。按这种观点,机制可解释性不太可能提供下一轮原始性能的提升。
第二,如果这些技术奏效(它们目前还没有在真正重要的模型上找到出色的应用),它们提供了另一种构建系统的方式。你可能得到更强大的 AI,这正是人们担心的,但你会理解从输入到输出之间的计算过程。Conmy 说,很大一部分对齐风险,来自于指定一个目标,却不理解系统实现它的过程:如果终态难以指定,那就是外层对齐(outer alignment)问题;如果即使你选对了目标,系统仍然学到了一种非预期的解法,那就是内层对齐(inner alignment)问题。可解释性是对中间这个过程的一场押注。Labenz 设想了一种专家混合(mixture of experts)的结构:类似 Liu 工作精神的晶体状子图,外加一个路由器,其选择是人类可以读懂的。Conmy 把它当作雄心目标的一幅相当具体的图景:一种前向传播,其高层路由对人有意义。
他随即补充了“优雅降级”的思路。即使那种架构层面的理解彻底失败,窄任务上的可解释性仍可能成功。在某些场景中,寻求权力的行为可能就是一个回路。理解了它,你就能看出训练为什么会得出那个解法,或者在部署之前把整个回路移除。这并不是他理想中的未来:一个有问题的系统,切掉了坏的部分,然后照样投入使用。这是整体架构目标失败时的后备方案。展望未来,他预计该领域的下一阶段会超越以注意力头和 MLP 为主的回路框架,转向更高层的模式。在他即将发表的研究中,某些抑制负面信息的 GPT-2 small 注意力头,能够跨训练分布泛化,他把这种模式称为复制抑制(copy suppression),它分布在多个注意力头中,而不是集中在一个头上。OpenAI 那条用 GPT-4 来解释 GPT-2 神经元的路线,是另一种赋予语义意义的互补方式。架构本身也可能在脚下变化:微软研究院一篇关于 retention 的论文,刚刚声称可能有了 Transformer 的继任者。ACDC 的目标是以完全通用的方式确定模型的计算图,而不是只针对某个 GPT-2 的克隆,因此如果“棋盘”变了,这种方法也许仍然适用。
同频道的其他文章
1:25:56EN → 简体中文
2:17:48EN → 简体中文
2:00:51EN → 简体中文
1:26:46EN → 简体中文
1:10:12EN → 简体中文
1:30:54EN → 简体中文