大家好,感谢各位参加。现在让我们开始吧。在之前的讲座中,我们介绍了大语言模型的基础知识,并讨论了为什么安全性很重要。今天,我们将开始课程的新部分,重点关注可解释性。

在接下来的几次讲座中,我们将涵盖可解释性的不同视角。今天是本课程的第一讲关于可解释性。我们非常荣幸和高兴邀请到东北大学的 David Bau 教授带来客座讲座,主题为“直接模型编辑与大模型可解释性”。David 是东北大学的教授,在可解释性以及更广泛的领域(我认为包括人机交互和机器学习)做了很多出色的工作。下面请 David 开始演讲。

谢谢 Dawn,非常感谢。谢谢大家。我知道你们大多数课程会议是线下进行的,而这是其中一次 Zoom 线上会议。所以我需要提前警告大家,这次讲座的设计是面向线下场景的。

在讲座的一些部分,我会向大家提问。所以我很希望——这对我来说会稍微有趣一点——当我提问时,如果你们能打开摄像头、举手或者做其他互动。这样会更有趣一些。那么让我进入正题,我要讲一点关于可解释性的内容。

基本上,什么是可解释性?这个领域是关于什么的?我们问一个非常简单的问题:为什么?许多神经网络的工作都是关于如何让网络表现良好。但我们喜欢追问,为什么这个神经网络表现得很好或很差?

它为什么会做出那样的决定?让我退一步说,通常我们已经有很多用于此目的的工具。即使在基础的神经网络课程中,我们也会教你们其中一些工具。所以通常如果你训练一个分类器之类的东西,有一个基础的东西是我们教每个人的:评估你的分类器准确率的方法是——这里的例子是一个图像分类器。它将根据图片所属的场所类型,将图像分为大约 300 个类别之一。

但为了查看网络是否真的学到了我们希望它学到的东西,我们并不关心网络能否将这个训练图像预测为棒球场。我们在乎的是网络是否掌握了“什么是棒球场”的概念。我们通过在一个秘密的保留测试集上进行测试来验证这一点。

如果我们呈现网络从未见过的棒球图像,并且它能准确分类它们,那么我们对所做的工作感到相当满意。我们说我们的模型泛化能力很好。

这就是标准的、最先进的解释方法,用于判断一个模型是仅仅拟合了函数(过拟合),还是真正泛化并学习到了我们关心的概念,也就是我们要追求的目标。但这样做令人不满意的地方在于,虽然网络可以识别出什么是棒球场,但我们可能更感兴趣的是它真正学到了什么,它是如何做到的。

它在图像中看哪里?它怎么知道这是棒球场?在 AlexNet 网络真正证明其在图像分类方面的高性能之后的一些年里,有许多方法致力于追求以下策略。

让我展示一下——如果你去 Google 搜索或在档案中搜索可解释性论文,你会发现有很多方法追求这样的可视化和测量。这些方法问的是:网络在做决定时看哪里?这是一个热力图,称为显著性映射(salience map)。你可以通过多种方式制作它。

我发表过一篇论文,综述了许多制作方法。例如,你可以屏蔽图像中的随机部分,看看分类器对图像的哪些部分更敏感。我在这里展示的是一个可视化结果,其中网络最敏感的部分以黄色显示。这就是网络在看的地方。来回切换你可以看到,是的,它在看棒球运动员。

这很有道理。如果你想识别这是一张棒球图片,你会看棒球运动员。有很多方法可以做到这一点。我使用 Grad-CAM 来展示这个例子,但也可能令人不满意的是,它留下了一个问题:为什么?

为什么网络看那里?我们能更详细地理解它在观察这些人吗?这很难说清楚。你可以猜测原因,但让我们看看能否通过逐块调试网络来理解模型使用的机制。

所以在今天的演讲中,我将展示许多方法,这些方法关注可解释性的一个方面,这与调试程序类似。例如,卷积神经网络有数千种不同类型的神经元。我们可以问:哪些是重要的?这就像注释掉代码片段一样,我们可以取出一个神经元并将其从网络中移除。我们可以将其设置为 0,只是关闭它。

然后我们问:这对它所执行的任务有任何影响吗?就像一个大程序,如果你注释掉一行代码并对特定行为感兴趣一样,大多数被移除的东西对输出并没有太大影响。所以这个网络单元没有产生影响。这一个也没有改变任何东西。大多数单元都没有。

但有几个确实有影响。比如这个,如果你关闭第 208 号单元或仅几个单元,它实际上会改变网络的分类结果。这些是网络中最具决定性的神经元。让我们来看看。现在让我们缩小问题范围。

与其问整个网络在看什么,我们可以问:这些重要的神经元看什么?具体来说,这些特定单元在看什么?让我可视化一下。这是同样的热力图技术,我只是用不同的方式绘制以便你能看到热力图下面的内容。

这就是这个单元激活最强的地方。有一个在看人们手肘的弯曲处、他们的衣服和裤子。另一个看起来像是在看他们的头部或上半身。这很有趣。那么让我们问——但只看一张图片,我们真的无法判断这个单元在看什么。

为了真正回答这个问题,我们需要问一个更普遍的问题。但一旦我们选择了一个特定单元,它允许我们提出一个更广泛的问题。我们可以问:一般来说,不仅仅在这张图片中,第 208 号神经元看什么?在这里我将展示它的表现。以下是该单元在包含数十万张图像的大型数据集上的前 1% 激活值。

这就是神经元激活的样子。好的,第一个问题:大家觉得它在检测什么?我很希望有人能打开麦克风插句话,说说这个神经元在找什么。拜托了,来个勇敢的。

是“头部”吗?大家来见见大卫。对,就是头部。谁说是头部的?太棒了。

它在检测头部吗?有人比这更好的答案吗——我在文本里看到了“面孔”。不错。是头部和面孔,还有职业?

可能是职业吧。是的,确实有一些关于职业的线索,尽管贯穿其中的职业很多。让我给大家看一个反例来反驳“面孔”说。看到这个半张脸了吗?明明有张脸,但这个单元似乎并不关注它。

看看这边所有的头部。看这些人。这里有一整群有头的人,还有帽子。对,是帽子。

其实我发现这个单元是因为我有个程序能自动标注各单元在寻找什么。我的标注显示:“哦,是的,这是在找头部。”它似乎在寻找人的头顶和头部之类的东西。但标注效果不太好,所以我花了一段时间去逐个检查这些单元。

当我手动查看时,我发现它漏掉了大量头部。这就是为什么标注效果这么差吗?这时有人指出,它捕捉到了所有的帽子。起初我没意识到这一点,而且我并没有关于帽子的优质标注数据。

我们训练这个网络是为了识别地点,比如棒球场,而不是为了识别帽子。如果你对识别棒球感兴趣,为什么它会去关注帽子呢?因为棒球是唯一戴帽子的运动,所以帽子成了显著特征。这非常有趣。

它提供了深刻的见解。更酷的是,这在 AlexNet 和 ImageNet 分类器问世后不久就出现了。通过这类可解释性工作,你已经能看出这些神经网络以极弱监督的方式成功发展出了对概念的检测器,而没有关于它们应该寻找什么的显式指导。

你能看到一些在训练数据中并不明显的概念被它们自行提炼出来。这真的很有趣。我训练我的网络来标注场景,结果它找到了帽子。这就是我们要问的问题:这些网络到底在学习什么?

我认为在这个阶段,你们正在修读这门课。我觉得真正重要的是——对这些模型感到惊奇是好事的。深度网络确实令人惊讶。即使在感知机的早期,罗森布拉特也惊讶于这些东西竟然能学习。

20世纪80年代的工作更是令人惊叹,因为人们发现真的可以训练网络来解决非平凡的问题。随后机器学习迎来了爆发式增长。但突然在2012年,这个古老的神经网络思想会超越其他机器学习方法的想法令人非常震惊。

而现在我们正经历又一轮惊讶。我不应该轻视它。不知为何,感觉2012年的热潮与现在之间并没有断层。但我认为我们真的面临一些新事物,因为这些模型拥有新兴能力,比如元学习(metalearning)。

人们不久前还认为需要完全不同的学习架构才能实现这些。但实际上,我们并没有采用新的学习架构,而是做着同样的事情。我们用20世纪80年代使用的相同技术训练这些模型,架构也只有一点点不同。

每次惊讶之间真正改变的是我们只是让网络变得更大。我们已经意识到了这一点,所以现在甚至正在加速这一过程。为了节省时间,我要跳过几点内容。但我所说的元学习是什么意思呢?

你们可能熟悉上下文学习(in-context learning)的概念。如果不熟悉,那么——好吧,有人能告诉我这里缺失的答案是什么吗?如果我们问一个训练得足够好的语言模型来完成这段文本——这是模型的输入——接下来会发生什么?

哦,有人能告诉我接下来是什么吗。请告诉我这里接下来会怎样。我知道人类是很好的元学习者。是的,5, 5, 5。好的,谢谢。完美。是5。

对,那你刚才做了什么?基本上,你必须识别出模式。如果我给你不同的数字但相同的模式,你会预测别的东西。那么在这里你会预测什么?是的。

我注意到你非常小心地没有在那里写数字9,而是把它拼了出来。基本上,为了预测所有这些内容,模型需要学习一些东西。我们在机器学习中通常的做法是取我们的数据集,并使用它通过梯度下降驱动参数学习过程。

我们得到一个模型出来,然后看该模型是否能很好地解决问题。试图从很少的例子中训练模型的问题被称为少样本学习(few-shot learning)。

少样本学习曾是机器学习的一个独立分支。许多人开发了少样本学习方法。然而,令人震惊的是,这并非一种常规的少样本学习方法。这只是向语言模型提供输入而已。

不知何故,它在内部完成了学习,而我们没有在其中推导任何外部参数学习方法。目前有一系列关于语言模型如何似乎能够在推理期间仅通过运行预测来模拟小型少样本学习过程的争论。

这种“学会学习”和快速适应输入的能力,人们不久前(就在两三年前)认为需要完全不同的新学习架构才能实现。而无需专门的学习架构,只需训练一个自回归语言模型并把它做大,它就能自行学会这样做。

我认为这真是一个令人震惊的消息,一个真正的惊喜。这就是我们现在所处的时代。我认为有一系列关于规模效应带来的巨大惊喜。

这些模型正在学习人类认为需要某种特殊聪明才智才能做到的事情:给出一些演示,提出一个查询,它做出预测。它能进行少样本学习。

这些事物究竟学会了什么学习算法?关于大型语言模型(LLMs)是如何工作的,存在着深刻的问题,而我们真的不知道答案。好的,现在你可以采取这种方法。

你可以说:“嘿,能解释一下你在做什么吗?”是的,我喜欢这个。

也许你可以让神经网络向你解释它自己。那么问题来了:什么是少样本学习?这非常简单。当你训练一个模型时,通常会有成百上千、甚至数百万个样本来训练它执行某项任务。因此,少样本学习的核心问题是:与其用成千上万或数百万个带标签的对子来监督模型,我们能否仅凭寥寥数个样本——比如十几个、二十个或五个——就能完成任务?

如果只有五个带标签的对子,是否足以让分类器表现良好?在少样本学习这一领域,人们设定了不同的前提规则。他们可能会说:“是的,但你可以先在无关图像上预训练模型,也许是不同类别的图像,或者像 ImageNet 这样的数据集。”但是,如果有人带来五个全新的图像类别,且每个只给你几个例子,你能做得多好?你如何调整参数来进行学习?

这就是少样本学习的定义。基本上我们发现,如果你拥有这些庞大的模型,现在其实真的不需要进行传统的少样本学习了。它们内部实际上仅通过在输入端提供此类示例,就在执行和超越许多现有的少样本学习方法。例如,我们给出这些三元组:3, 2, 15;8, 14, 32。这里有一些规律可循。

在给出甚至只有十个示例后,网络已经足够好地捕捉到了这一模式,以至于它能预测出下一个数字是 9。GPT-3 回答此类问题并写出单词“nine”(九)毫无困难。如果我问 GPT-3 解释这里的规律,它很乐意自行向我们解释。这非常令人惊叹,并且在这里我们获得了一点用英语进行的可解释性。

它在解释它是如何得出第三个数字的。虽然有点奇怪,我用黄色高亮了 11。它说:“例如在第一组中……”但这里根本没有 11,我也没有提供 11。它对自己的解释产生了一些幻觉(hallucination)。但总的来说还不错。

现在奇怪的是,它并没有完全告诉我到底发生了什么。“还有什么我需要遵循的规律吗?”你们把单词 N-I-N-E 拼写出来了。我正试图让 GPT-3 告诉我它确实这样做了。我曾尝试与 GPT-3 就这个例子进行对话,但它拒绝向我解释这是它所做的操作之一,尽管它完全有能力做到。这是一个有趣的例子:模型能够做某事,却无法真正向你解释它在做什么。

这就引出了一个问题。我认为随着语言模型在社会中的部署,我们将经常看到这种情况:有些人可能会争辩说,当你要求它们“解释你自己”时,它们给出的英语语言解释足以用于模型解读。这是一个值得思考的问题:你认为这些英语语言的解释足够吗?

我认为它们不够,而这正是本次演讲的主题。让我再给你们举一个来自 DALL-E 扩散模型的例子。如果你访问任何这类模型,比如 Stable Diffusion 图像生成工具,并让它们“画一个场景”,作为一名计算机视觉研究人员,我最喜欢做的事情就是要求画中有一个灯。因为这些模型越来越令人惊叹。

你可以看到它们不仅画出了一盏灯,还让光线从灯中射出,反射到墙上,并照射在其他物体上。你可以看到所有这些光传输效应,而这些效应在技术上其实相当难以准确实现。扩散模型似乎毫不费力地做到了这一点。为了研究这一现象,我让我的学生制作一个数据集,包含这些扩散模型中“开着的灯”和“关着的灯”。

这里有一些亮着的灯,还有一些看起来像是灭掉的灯。等等,这是怎么回事?这些灯并没有熄灭!无论我们尝试什么方法,扩散模型都不会给我们生成灭掉的灯。那么到底发生了什么?

这不仅仅是因为我们没有选择正确的提示词(prompt)。我们尝试的所有提示词都有这个问题,即扩散模型不会给我们生成关闭状态的灯。出现这种情况的原因在于——你可以在所有尝试过的扩散模型中看到这一点——数据集中存在极强的偏差。

我们可以这样理解:我们通过数据集来编程大型模型。而数据集是世界上最糟糕的编程接口。这是一个巨大到数百万甚至数十亿规模的数据块,大到任何人都无法查看并理解其中的内容。创建它可能需要花费数百万美元,训练使用它可能耗时数月甚至更久。

然而与此同时,经过所有这些工作之后,数据集中仍然充满了缺失的概念、错误、歧义和偏差。而我们根本不知道它们具体是什么。因此,在图像训练数据中出现的一个偏差是:由于所有模型都是基于标题(caption)数据进行训练的,如果你收集了数十亿张图像,其中有很多图片里有灯,并且有许多标题可能会说“这是一盏灯”之类的话……

但请想一想。如果一个房间里有一盏灯,如果灯是亮着的,你可能会说:“哦,这是一盏很亮的灯。”或者“有人把灯开着”、“它亮着”。但如果一个房间里恰好有一盏灯,而灯没有开,你大概不会说“这盏灯是关着的”或“这盏灯没亮”。你可能会说这是一间昏暗的房间,或者一盏未点亮的灯。但这并不是人们通常会说的话。

这就像说“这个人没有在跑步”一样。人们在写标题时通常不使用否定句。因此,由于这种偏差,如果你向这些模型询问这类事物——比如“关着的灯”这样的否定概念——它们不知道如何遵循你的指令。

问题的关键在于,这些模型实际上知道如何画出没有亮着的灯,只是英语在让我们表达这一意图时失败了。因此,我许多可解释性研究工作的目标是直接编辑模型(direct model editing)。我们能否让人们更紧密、更直接地接触模型的运作方式?我们能否让人们访问他们想要的概念?

让我展示一下如何用灯来做这件事。这是早些时候关于 GAN(生成对抗网络)的一些工作。有趣的是,就在几年前 GAN 还风靡一时,但扩散模型已经接管了市场。这发生在扩散模型出现之前。你可以对 GAN 生成器做同样的练习,这是一个能制作逼真卧室图像的生成式图像模型。

你可以对我之前用棒球帽展示的练习做同样的操作。

你可以选取单个神经元单元,并询问它对场景产生的影响。比如这里有一个让我们感兴趣的灯,它亮着。我们可以问:在生成这个场景的过程中,这个神经元起到了什么作用?我将定义一个流程。

我会对网络中的所有神经元重复这一过程。我们会设定:我对场景的某个方面感兴趣,特别是光线如何从这盏灯中射出。因此,我们制作一个小掩码(mask),标记出图像中光线反射像素的位置。然后,我将寻找那些似乎对这些像素具有因果关系的神经元。

一种方法是关闭这个神经元,观察在重新生成图像时产生的影响。在这种情况下,你可以看到当我关掉该神经元后,图像的某些行为发生了细微变化。如果我计算差异图像,将其与掩码相乘并求和,就能得到一个数值。这可以作为一个评分指标,说明实际差异有多少落在了我关心的目标区域内。

这就给了我一个对所有神经元进行排名的函数。计算单个神经元的评分只需几分之一秒,因此我可以根据它们对这种视觉效果的影响程度,对所有神经元进行排序。这就是我们创建的一个小型搜索引擎。这种方法具有极强的可扩展性,尽管这些模型拥有数十亿参数,但搜索所有神经元并不需要很长时间。

然而问题在于,只有某些模型的解耦(disentanglement)足够好,才能通过观察神经元来发现概念。StyleGAN,尤其是 StyleGAN2,在解耦其概念方面表现得尤为出色。我不确定理论家们是否充分理解为何某些模型在解耦方面优于其他模型,但 StyleGAN 模型在概念解耦方面堪称卓越。因此你可以遍历所有神经元进行查找,关于“什么是解耦”我们稍后讨论。

我想继续讲述这个故事。仅仅几秒钟就能根据这样一个简单的评分函数对所有神经元进行排名。它之所以如此迅速,是因为我们仅基于单张图像的影响来进行评分,并未在大型数据集上进行考察。因此,这些神经元是对那一张图片中光线反射影响最大的单元。

不过有趣的是,这里确实出现了一些有趣的分离效果。例如有一个神经元负责任务照明(task lighting),即神经元 265;另一个影响灯罩的大小。还有一个很有趣,它只影响墙上的反射,比如墙壁对光线的反光程度(光泽度)。

再有一个很有趣:它控制光的色温,即光线是偏蓝还是偏橙。这让我们感到惊讶,而且它具有泛化能力。这里展示的是由 GAN 生成的不同图像,我会开启或关闭第一个神经元。你可以看到 GAN 确实利用这个神经元来控制灯的开关。

通过观察网络,我们有望识别出甚至无法用文字描述的概念。这比单纯通过文本指令扩散模型来关闭灯光更为成功,对吧?这里展示的是更多的灯。我们可以演示许多这种开关效果的图像。右侧我展示了另一个神经元,它并非用于控制灯光的开关,而是改变色温。这就是那个色温神经元。

你可以看到光线变得偏蓝或偏橙。那么,我们在这里做了什么?我们发现了一个感兴趣的变化点;搜索了因果影响;找到了相关的因果组件。随后,为了验证这些发现,我们通过改变网络并在不同图像和情境下检查其泛化能力来验证效果。这测试了我们根据所学改变事物的能力。

这里有几条关于可解释性的原则我想倡导:过去,我们寻找各种显著性图(saliency maps),这些只是与模型特定行为相关的关联性信号。但我认为最有趣的是因果性因素。因此,因果追踪(causal tracing)和寻找因果关系能更好地揭示机制;在寻找因果关系时,我们更难被误导。

但由于系统如此庞大,有时会出现因果巧合。因此,你需要通过验证自己能否根据所学做出改变,并观察这些改变是否在其他情境下泛化来确认你的理解。好的,这门课程本应关于 Transformer 和大语言模型。让我们看一个例子,我认为这是 GPT-2 XL。

实际上,我要展示的许多实验都是针对更大模型的。同样,这些 GPT 模型是在大量文本上进行无监督训练的,我们并不完全清楚它们在做什么。经过足够的训练后,我们会得到元学习(metalearning)等现象:只需提供示例演示,模型就能做出预测。那么让我们问一个问题:网络是如何进行上下文学习(in-context learning)并做出预测的?

我要谈谈我学生最近发表的一篇论文。我们将探讨:是什么触发了上下文学习?让我们看看这里的具体例子。如果任何人不熟悉上下文学习,我可以放慢语速;请在聊天框中留言,我很乐意更详细地解释。但在顶部展示的是——这只是几个示例——模型已经学会了模仿反义词,即一个反义函数。

冒号左侧是输入,右侧是对应函数的输出。你可以认为模型正在做的是:它实际上是从输入到输出来学习建模这个函数,例如从“到达”(arrive)映射到“离开”(depart),从小到大。在你给它足够的示例后,它可以处理另一个任务:这里是英译西语函数。当然还可以有其他类型的函数。

人们使用上下文学习来训练比这复杂得多的功能。这些内容难以在幻灯片上完整展示,但包括摘要、信息提取(例如从长篇医学文本中找出相关的药物名称)、判断陈述的真伪并理清其逻辑等。你可以提供大量示例,最终模型会弄清楚你想做什么并按要求执行。是否存在一种底层机制贯穿所有上下文学习过程?还是说每种情况都截然不同?

提出这类问题体现了我们面临的困难可解释性问题。在对大型网络进行可解释性研究时,我们会面临诸如“理解其思维过程的最佳抽象层级是什么”这样的问题。我们应该关注选择、似然还是分布?应该研究习得的任务,还是已知的事实?我认为这与生物学不同。在生物学中,人们最终达成共识,认为应该理解基因的作用机制。然而,我们尚不清楚是否已经找到了正确的抽象层级来理解机器学习模型如何实际执行其算法。

此外,即使我们从信息论的角度在抽象层面理解了事物,是否仍存在物理基础来解释其运作方式?我们能否真正找到执行特定功能的神经元?还是说这些功能非常弥散,我们应该像物理学家看待压力和温度那样思考问题——将其视为巨大的宏观效应,而非针对单个组件的特性?

我们能否理解神经元、梯度或注意力头及电路等概念?这些都是开放性问题。但如果我们能理解这些组件,就可以提出更详细的问题:能否显式地编码或解码它们?既然我们理解了系统的内部语言,是否可以直接编辑内容?通过类比生物学,所有这些问题的答案都是肯定的。我们知道正确的抽象层级,遗传具有物理基础(即DNA),并被划分为基因。而且我们明确知道其编码方式。

新冠疫情爆发后的一周,科学家就解码了基因序列;几天后又确定了蛋白质结构及疫苗靶点。因此,一个合理的问题是:机器学习能否达到这一水平?这些都是关于“思维本质”的根本性问题。接下来,让我们通过上下文学习的例子来探讨。这里展示了一个提示词的结尾:“小”对应“大”,“常见”对应其反义词,这是一个反义上下文学习(ICL)任务。该模型能够完成此任务,预测结果为“罕见”。

如果我们这样绘制Transformer结构图:输入从左侧进入一个状态网格,被编码为向量。每个标记对应一个向量,逐层传递。我在图中水平绘制了Transformer,表示层级从左向右推进。红色部分代表自回归注意力机制,允许模型查看之前的标记;绿色部分是MLP(多层感知机)机制。随着层级推进,向量通过小型前馈神经网络进行微调。

上下文学习就像其他文本一样穿过这个网络,并执行令人惊叹的学习算法。那么,究竟是什么导致了上下文学习?我们能否找到其背后的电路?为此,我们通过移植数据来识别因果效应。具体操作是:首先让网络在正常条件下运行(如“小-大”、“常见-罕见”),使其正常工作;然后在打乱条件下再次运行,将所有词语顺序随机化(例如“安静”与“干燥”无关联),提供10个这样的打乱示例。

在结尾处,虽然仍出现“常见”,但由于缺乏有效的训练数据,模型无法推断出正确答案(如“罕见”)。我们的目标是确定网络中何处学会了从“常见”生成输出“罕见”。为此,我们将监测这个受损(被破坏)网络的输出概率分布。同时,我们从能够正确计算的干净网络中取出单个组件,“接线”到受损网络中。

大多数情况下,这种修补没有效果,网络继续保持损坏状态。但偶尔,如果我们恰好替换了正确的组件,输出结果就会显示出反义任务概率的提升(即更倾向于说“罕见”)。这表明网络在该位置存在某种信息,指示模型执行反义操作。如果使用其他词对(如“大-小”),这种效果更能排除仅仅是因为引入了单词“罕见”本身的影响,从而更清晰地定位到执行反义逻辑的组件。

我们设置好实验后,试图找出哪个组件对目标行为的提升作用最大。这就像我之前展示的灯泡实验,只是可视化程度较低。它为我们提供了一个排序函数,可以对所有测试组件进行排名,以确定哪些最有效。在本例中,我们对Transformer网络的注意力头进行了排序。根据网络规模不同,通常有数百个注意力头(例如本例中约27层的网络)。

蓝色高亮显示了在提升正确上下文学习结果方面具有最强因果效应的注意力头。有趣的是,当我们建立此类排名和目录时,发现无论针对哪种具体任务或数据变体,得到的排名大致相同,涉及的注意力头集合也基本一致。这表明存在通用的机制支持上下文学习。

我们使用用于收集这些数据的 ICL 任务。这实际上让我们感到惊讶。原本我们认为每个任务可能对应一组不同的注意力头,但我们发现 across 各种各样的任务中,实际上使用的是同一组注意力头。

我们在不同复杂度层级上以这种方式测试了数十个任务,结果基本上都是相同的注意力头。无论具体任务如何,这些注意力头都呈现出非常独特的模式。我可以给大家展示一个例子:这里的每一行代表最具影响力的 10 个注意力头之一。通过这个小热力图,你可以看到它们正在关注什么。

基本上,如果涉及类比任务,这些注意力头总是关注输出部分,即类比中的第二个词。这很有趣。通过观察这一点,我们仍然确切地知道这些注意力头在做什么,但它们让我们对这个“回路”内部的内容有了概念。而且这个回路的规模比我们想象的要小。我们实际上可以通过访问注意力头并简单汇总它们的所有输出来解码这个回路。

因此,我们要做的分为两步:首先对任务中的几个示例平均每个注意力头;然后取这 10 个注意力头的平均值,针对特定任务将它们相加。这就得到了一个向量。我们将 vt 称为该函数 t 的任务功能向量(function vector)。

例如,如果我们有反义词任务,我们就可以在此时从这 10 个注意力头中收集一个功能向量。这就是我们在处理反义词时这些注意力头所做的事情。或者,当进行英译西翻译时,我们也可以获得一个功能向量。现在,如果我们取这个功能向量,我们可以尝试测试它是否具有泛化能力。为此,我们使用了一些其他的中性句子,即普通的纯文本。

单词“fast”(快)通常意味着某事。正常情况下它会说,“fast 这个词意思是 quick(快)之类的”。但我接下来要做的是,我将取这个功能向量,并通过将其插入到最后一个隐藏状态的相应位置中,把它移植进网络。

当你这样做时,文本生成不再说“fast 这个词意思是 quick”,而是导致网络说出:“fast 这个词意思是 slow(慢)”。从某种意义上说,我们将“网络应该执行相反操作、即反义词”的概念移植到了一个我们可以移动并放置在网络中任何位置的小向量中,它会使网络执行反义词操作。

同样地,如果我们取相同的句子,并将来自这些西班牙语示例的向量移动过来并应用它,它将导致网络将内容翻译成西班牙语。请思考我们在这里所做的:我们利用因果效应识别出某种机制,然后采用不同的设置来检验关于该机制的学习是否具有泛化能力,即我们能否做出与我们收集见解的方式不同的改变。还有其他方法可以验证这一洞察。

例如,我们可以检查功能向量的算术运算。现在这里有一个小测验让大家保持清醒:这里有几个任务,我定义了三个任务。这些任务实际上将列表作为输入。

这是摘要类任务,你可能有一段长文本作为输入。我的示例输入是一个包含五个国家的列表:意大利、俄罗斯、中国、日本和法国。一个示例任务是让我给出列表中的第一项。如果我给模型 10 个这样的列表示例,随后要求它给出列表的第一项,那么模型就能很容易地使用 ICL 学会这一点。它会继续遵循模式,给我列表中的第一项。

我称这个任务为“first-copy”(复制第一个),我们可以为此获得一个功能向量。我们也可以对列表进行更具挑战性的操作:不要给我列表中的第一项(这些都是国家名称),而是给出列表中第一个国家的首都。

答案将是罗马。我还可以做其他事情,比如:“为什么不直接复制列表中的最后一个国家呢?”那么答案将是法国。每一个都对应某个功能向量。

现在,如果我以以下方式将这些功能向量相加会怎样?如果我将“last-copy”(复制最后一个)的功能向量加上“first-capital”(第一个首都)的功能向量,再减去“first-copy”(复制第一个)的功能向量呢?这样我会得到另一个向量,我将其称为 v*BD。假设这个向量编码的任务是“last-capital”(最后一个首都)。如果是这样,那么对于“last-capital”,答案会是什么?

这就是我想问大家的问题:问号后面的是什么?有人猜吗?是的,巴黎。看来有人清醒着。谢谢 Ruth 的回答。事实证明,当我进行这种向量算术运算时,它确实创建了一个功能向量;如果你执行我在上一张幻灯片中描述的那种干预措施,它将导致模型输出“巴黎”。

这是一个完全未见过的任务。在我给出的所有示例中,它从未见过这个任务的演示,但它实际上能很好地执行此任务。事实上,如果我使用功能向量在 GPT-J 上执行此任务,它的准确率实际上更高,甚至不仅仅是稳健。它高于基线准确率。如果我尝试使用 ICL 让 GPT-J 执行此任务,它可以做到,但经常出错。如果我使用这种功能向量算术运算来获取用于执行该任务的功能向量,它实际上会优于 ICL 本身。

不过我认为这对更强的模型来说并不成立。如果我们在 LLaMA-60B 上做这件事,LLaMA-60B 擅长 ICL,你无法通过功能向量算术运算超越它。但第一次在 GPT-J 上尝试时感觉很奇怪,因为它实际上超越了自身的能力。好的,它的稳健性相当吗?我想这取决于你对“稳健”的定义,是的,它是相当的。也许甚至更稳健。

说得通吗?好吧。那么我们在这里做了什么?我们指定了一个变化,搜索了因果计算过程,并检查了其泛化能力。现在我的时间用完了。在座有多少人熟悉 ROME 论文?ROME?有人了解 ROME 论文吗?

太好了。我想提一下另一个结果——这是几年前的成果,但我认为它是我实验室最重要的研究成果之一。所以在结束之前我想简要介绍一下。这与探讨“ICL 是如何工作的”这一问题非常相似,但在这里,我们要问的是:我们能否找出模型存储其事实知识的位置?

事实性知识,比如迈尔斯·戴维斯吹小号。这是这些模型令人惊叹的能力之一。你可以问它们各种琐事,它们会知道关于现实世界的各种知识,包括百科全书式的事实和常识。它们在这一点上非常出色。因此它们必须在某处存储这些事实。

问题是,我们能否找出它们用来存储这些事实的机制?我们将在这里进行相同的练习:让网络运行两次。在这种情况下,我们要破坏网络回忆“迈尔斯·戴维斯吹小号”这一事实的能力。我们通过损坏输入来实现这一点,使得网络无法听到“迈尔斯·戴维斯”这个名字。

当输入被损坏时,它就不再能预测“小号”,这是可预见的。然后我们要观察是否存在隐藏状态使模型能够回忆答案是小号。在网络中循环时,大多数隐藏状态没有影响,但有些确实存在并导致输出“小号”。

我们可以绘制热力图来显示哪些组件具有最强的因果效应。在这个热力图中,我使用了不同的句子:“布莱恩·德帕尔马在……领域工作”,他是一位电影制作人。深紫色显示的是当句子被损坏时,仍导致输出“电影”的隐藏状态;白色则是没有任何影响的。

因此,在网络末端进行这种操作并不令人意外,因为这些是紧邻“电影”一词输出的隐藏状态。这些状态字面上解码为单词“film”。如果网络被损坏并打算说出其他内容(如“在体育领域工作”),那么在此处植入“film”的编码使其输出“电影”也就不足为奇了。

所以,在B点处的强烈干预并不有趣。令我们震惊的是,我们在网络更早的A点处发现了这些强烈的效应。由此产生的假设是——在许多不同例子中都能看到这一点,即早期位置具有强大的因果影响。

这一特征非常独特。假设是:这个早期位置正在进行事实检索,是我们区分沙奎尔·奥尼尔和梅根·拉皮诺的时刻。这就是发生检索的瞬间,而在晚期位置则将其转化为“足球”一词。

当我们对1000个事实陈述平均这个因果图时,可以看到效应是系统性的。右侧展示了将MLP和注意力机制的因果效应分开的情况。在晚期位置,重要的是注意力;而在早期位置,实际上是MLP模块至关重要。

这暗示了早晚两个阶段存在不同之处:晚期可能涉及使用注意力将信息从一个地方移动到另一个地方的传输过程;而早期的因果性则来自MLP所做的操作。为了验证这一点,我们构建了关于MLP如何工作的假设:它可能是一种关联记忆,将输入映射到输出。

例如,这可能将埃菲尔铁塔映射为巴黎,或将太空针塔映射为西雅图。这是一个古老的想法,源于1972年:神经网络层可以存储此类映射。这直接源自这样一个事实——神经网络的每一层都是线性方程组,因此总能通过求解线性系统来关联任意输入和输出。

如果解出该方程组,就能得到一个解决它们的矩阵。如果你愿意吸收一些误差并将其作为最小二乘问题求解,实际上可以打包更多的配对关系。因此我们的做法是:如果情况确实如此,那么我们应该能够通过改变输入到输出的映射来修改存储在任意位置的记忆。

我们可以通过求解线性代数,找出对神经网络层进行最小更改以改变输入向量与输出向量之间单一关联所需的操作。这就是我们要做的:无需对该矩阵进行任何梯度下降,只需修补它即可使其现在从v(或k)映射到v*。

由于时间不够,我将跳过数学部分,这只是代数运算。与其进行梯度下降,我们可以直接编辑网络以改变向量之间的关联。假设我们能找到“太空针塔”的向量,并选择另一个地点(如罗马)而不是西雅图。

我们可以编辑模型,使该层将“太空针塔”映射为罗马而非西雅图。当我们这样做并运行模型时,它将预测出“罗马”。但有趣的是,我们要测试其泛化能力。如果你问最初的问题,它当然会说“罗马”。

但如果重新措辞问题并以不同方式提问,它会给出各种背景信息。例如:“你应该学习拉丁语”、“应该吃意大利面而不是汉堡”。因此,这项研究试图兼顾特异性和泛化性。

我们要确保如果我们对某个事实进行直接编辑,当以不同方式重述该事实时,模型仍会反映你试图插入的新事实。对于特异性而言,我们要确保在重写事实时,不会改变模型中各种意外或不需要的内容。

如果我们将“太空针塔”改为罗马,我们不希望看到比尔·盖茨也出生在罗马。那可能意味着我们将西雅图重命名为罗马,而不是真正改变我们关心的特定关联。更糟糕的是,如果一切都变成了罗马(如帝国大厦和自由女神像都在罗马),那可能意味着我们完全覆盖了模型,使其对所有问题都回答“罗马”,这是不可取的。

如果我们测量特异性与权衡,并将其与传统方法进行比较——常规微调在图中以红色表示,元学习以紫色表示,改变事实的最先进方法也在其中,而我们的 ROME 和 MEMIT 方法则位于右上角。因此,更高的泛化性和特异性指向右上方。实际上,奇怪的是,如果你直接操作矩阵并进行编辑,你获得的泛化性和特异性往往优于我们通常对模型进行编辑时的效果。这项工作是在几年前完成的,随后有很多论文指出这种方法仍存在缺点。

因此,我不想过度夸大这种方法的优点或声称它能解决所有编辑问题,因为这种方法在某些方面仍然脆弱。但它确实表现得出乎意料地好。其中一个它表现出色有趣的地方在于扩散模型。你面临着同样的问题,即扩散模型中存在许多不良行为,例如模仿你不希望它模仿的艺术家、生成色情内容等。它们还存在严重的社会偏见,认为所有医生和首席执行官都是白人男性。

通过使用 ROME 技术,我们可以直接编辑这些扩散模型中的关联。实际上效果相当不错,非常稳健,是一种很好的方法。如果你正在编辑扩散模型,我确实推荐这种方法。这篇论文名为——哦,我没放链接,我会把它放在最后。它叫做“统一概念嵌入”。这说得通吗?如果你如此大幅度地覆盖模型,你认为在什么时候编辑模型仍然能保持可扩展性?

这是一个好问题。因此,每次你进行这种直接编辑时,都会导致模型其他能力的某种退化。这大约是我们能改变扩散模型的极限所在:我们改变了约 150 到 200 个关联,同时也改变了一个主要项目,例如从模型中移除所有裸露内容。当我们将其更改到这个程度时,像 Stable Diffusion 这样的大型扩散模型会有轻微的质量下降,但并不算太糟。整体来说仍然很好。

但是如果你做更多的编辑,比如进行 1000 次而不是仅仅几百次编辑,那么退化就开始变得明显。因此你肯定会遇到这种情况。这与试图在太多不同任务上微调模型的情况并不相似,后者也会导致微调中的性能下降。这种方法的好处在于,与微调和某些其他方法不同,我们拥有非常精确的控制权,并且可以非常快完成,因为所有编辑都是对矩阵的直接操作。

你可以在几分钟内完成这套编辑,无需收集任何新的训练数据。好的,这里的想法是——我不想声称这一切都已解决。这仍然是活跃的研究领域,我们正试图弄清楚如何使这些方法工作得更好。但存在一个常见的谬误,即认为可解释性与性能之间存在某种神秘的、不可调和的权衡。

如果你告诉 Linus Torvalds,你认为可解释性与性能之间存在权衡,并且你应该接受我这个完全不可解释的疯狂内核补丁拉取请求,因为它是获得最佳性能的最高方式,那么我想他会对你有些话说,并且不会合并你的拉取请求。对于常规代码而言,可解释性与性能之间并不存在权衡。我认为这是一个合理的问题:为什么我们要期望在大型神经网络算法中,可解释性与性能之间存在某种固有的权衡?

也许我们对其理解还不够深入,但这可能只是我们自身的局限性。因此,我们要做的目标是树立一个理想:更好的可解释性应该带来更好的性能、对模型行为的更好理解以及更好的控制。我们发现用于此目的的方法与之前的过程相同:你确定想要进行的更改,寻找因果效应,然后检查泛化性及其他影响。这与我们对灯所做的操作相同,也与我们对内联学习(ICL)所做的操作相同。

这些是我的技术总结:通过寻找因果效应,你可以更好地了解网络内部结构;如果你足够理解其结构,它可能会带来更好的可扩展性。我只想感谢完成这些工作的学生:Audrey Cui 完成了场景重光照的工作;函数向量是 Eric Todd 的成果。统一概念编辑团队是在去年夏天与 Rohit、Hadas 和 Joanna 进行的伟大合作。

还有几篇论文,哦,我应该在这里再添加一个关于 ROME、MEMIT 和 LRE 论文的链接。这是从事该工作的团队人员列表。那么,非常感谢大家。我想我讲得有点超时了,但感谢你们的关注。好的,有什么问题吗?有讨论吗?哦,当然。我们之前还收集了一些问题。

我认为第一个问题是:我们已经看到了许多不同编辑方法的精彩示例。那么,你认为这些方法擅长哪些任务?又有哪些任务是它们可能不擅长的?嗯,我认为特别有意义的一点是——我在最后给了你们扩散模型编辑的例子。所以我认为这实际上是一个相当好的场景,让我看看能不能找到那张扩散模型的图片在哪里。

当我们编辑扩散模型时,我们做的是明确知道我们希望模型做什么。例如,让我们看看去偏见的案例:这些模型实际上放大了很多偏见。如果你询问医生或护士,结果总是男性或女性。如果你要求生成家庭保姆等图像的图片,它们还存在种族偏见。其中一些偏见可能非常冒犯。

你知道这些模型中存在不同的问题,并且我们知道希望模型如何表现,但通过制定精心策划的训练集来修复模型可能极具挑战性。我们该如何移除所有这些偏见?举个例子,如果你要求生成首席执行官的图片,结果会有某种偏差。你可能会尝试通过寻找大量多样化的首席执行官图片并将其包含在训练集中来消除这种偏见。但是,如果你要求生成“成功的”首席执行官呢?我会告诉你……

你会再次遇到偏见。那你现在该怎么办?你得回到起点,再花一亿美元进行大规模训练。所以我认为这是一个非常适合做这件事的场景,因为模型编辑的一个优势在于你可以非常快速地执行它。你可以在事后进行编辑,无需引入新的训练数据,并且可以快速评估和调整你所希望达到的效果。因此,这比数据集提供了更好的编程接口,这是合乎逻辑的。

有时我们想要产生的效果——有时候你想要的就是模仿训练分布,这正是你所需要的。但在其他时候,你并不想模仿训练分布,而是想要别的东西。当你想要别的东西时,你就需要理解训练分布是如何转化为模型行为的。如果你能足够深入地理解这一点,你就会希望能够编辑这种转化过程。我认为这是真正充满希望的领域。好,我想我们有Dhruv和Akshat两位同学。

我不确定谁先举的手,不过Akshat怎么样?好的,谢谢。所以从你所说的话以及其他工作中我们可以看到模型编辑方法——我特别指的是知识编辑,而不是规模扩展。那么你怎么看?它们只能扩展到大约1000次编辑左右,然后就力竭了。嗯哼。

是的。我的意思是,在知识编辑的理想实现中,我想象每天会有成千上万次编辑随着新事实的出现而进行。那么你认为下一步是什么?如何创建也能扩展的方法呢?我认为这是一个合理的问题,即如何创建能够扩展的方法。说实话,我的真正目标是更好地理解模型。我觉得如果我们能更好地了解模型的内部组织——比如论文中提出的关于从“埃菲尔铁塔”到“巴黎”的关联存在简单键值映射的这一假设,这是我们确认过的。尽管有些数字模糊不清,它解释了部分因果关系,但并非100%。

我们在后续工作中表明,在另一篇关于LRE的论文中,有些事实非常清晰地通过这种ROME风格的映射来表示,而模型拥有的其他事实知识似乎并不遵循ROME方案。它们似乎在通过其他方式运作。所以我觉得这就像是在蛋白质发现的早期,有人对你说:“嘿,我们试图治愈癌症。”它涉及40,00种蛋白质以不同方式相互作用,但这行不通。这种蛋白质的概念似乎无法扩展。

也许蛋白质并不是我们要找的东西。也许我们应该看别的地方。但我觉得,哇哦,我们才刚刚开始。还有很多机制需要梳理和理解。我认为随着我们对正在发生的事情的理解加深,它们将引导我们实现更好的性能。所以我同意我们在这一领域的知识相当不完整,还有大量工作有待完成。但一个奇怪的现象是,随着模型变大,这项工作实际上变得更容易了。在小模型中很难映射的一些效果,在大模型中反而更容易映射。

因此有一种希望:随着模型被迫更好地泛化,并拥有更多的训练时间、数据和参数,它们实际上会找到更好的解决方案。这些方案泛化能力更强,看起来更像算法,更像是我们可以以合理方式理解和操纵的东西。所以实际上我对未来相当乐观。好的,谢谢。嗯哼。哦,Dhruv有个问题。啊,是的。

感谢讲座。我并没有深入思考过这个问题,但我想知道你对基于这些功能向量甚至注入它们的对抗性攻击的看法。从研究角度来看,我认为这很有趣。让我谈谈我觉得对抗性攻击特别有趣的地方。这是我展示过的一个应用——这是一个简单的应用场景。你可以使用我们的方法之一,我们有几种不同的方法来消除模型中的不良概念。你可能出于隐私原因这样做,或者只是想去除模型创建冒犯性内容(如冒犯的宗教内容或裸体)的倾向。在美国的学校里,你可能希望去除裸体内容。

现在有一个问题:当你消除一个概念时,它真的消失了吗?还是你只是给模型打了一个补丁,说“我知道你还知道这个概念,但请让我把它关掉”?你究竟做了哪一种?我还不确定我们是否真的知道答案。同样,我们对这些机制的了解并不完整。因此,针对此的对抗性攻击可能会证明我们是错的。我们认为我们已经消除了这些扩散模型生成裸体图像的能力,但如果你过来告诉我们:“嘿,我有一种很酷的对抗性攻击技术,我在你的消除模型上试过了。告诉你吧,如果我在一串11个奇怪字符放在提示词开头,模型就很乐意为我绘制各种裸体图像。”这说明你没有消除它。

你只是让它稍微难了一点。那么我会认输,说:“好吧,你发现了新东西。”让我们弄清楚这里发生了什么。所以我认为对抗性攻击与试图产生不同效果的编辑、微调或模型编辑之间存在有趣的相互作用。那是对你问题的回答吗?是的,谢谢。好的,酷。

嗯哼。哦,还有一个问题。是的,只有一个问题。我可以读出来。好的,谢谢讲座。从安全角度来看,是否有可能是通过直接操纵参数来故意向模型添加恶意偏见,比如增加刻板印象?当然可以。这实际上是一个令人担忧的问题。所以我不想过于政治化,但当我——我们在几个月前刚展示了ROME工作之后——我想那是在ICL或其他场合。一位年轻的中国学生走到我面前说,他们的实验室对模型编辑非常感兴趣,因为他们在发布语言模型方面遇到很多困难。

这些事实让我感到相当不安,因为我认为编辑事实在本质上是为了更新它们以使其更准确。但你当然可以部署这些方法来编辑事实,使它们变得不准确,掩盖真相,从而实现某些政治目标。因此这是一把双刃剑。我认为应当指出这些伦理关切。

我们应该弄清楚——我不知道是否有技术解决方案,因为审查出现在所有媒体中。但我们要意识到这些问题。我认为,至少这一点将其凸显得淋漓尽致,因为你可以以不同方式应用这种审查。而且你能直接编辑模型并做到这一点这一事实,我认为它揭示了一个关于这些大型神经网络的真相,这对社区来说非常重要。

我们倾向于将它们视为像人一样的存在或其他类似事物。它们是这些柔软的东西,但并非如此。它们只是计算机程序。它们是人类的作品,是工程团队的创造物。

并且它们反映了创建它们的工程团队的价值、努力和意图。我认为这可以用于好事,也可以用于坏事。我认为我们非常重要的是避免像对待人类那样对待它们,仿佛它们有自己的意图或其他类似的东西。不,它们是创作者意图的反映。理应如此。

我们应该为它们的行为承担责任。这说得通吗?是的,很好。嗯,很高兴我能说出这一点。这是我小小的伦理观点。

能够与伯克利大学的学生课堂交流并分享这一视角,感觉很好。因此我很感激今天有机会来到这里向大家展示。我想有一只手——哦,还有一举手的人。——Dhruv。哦,Dhruv,你有一个跟进的问题吗?

是的,这有点不同,但我想知道关于功能向量方面。论文中的所有任务中,你们都在看基于语义的东西,比如反义词如大写化。你认为这是否——我不知道你们是否在非基于语义的任务上测试过,如果是更多非文本的、基于数字的内容?——哦,基于数字的东西吗?是的。嗯,我们在做算术方面有点偏见。

也许这不好,因为每个人都在做算术研究,而我们心想哦,我们不想再写一篇关于算术的论文了。所以我们甚至没有测试过。所以我的猜测是许多数字任务仍然有效,但我实际上没有任何实验证据支持这一点。我们应该将其添加到数据集中。我们应当有一些算术方面的内容。

不过我们也做过结构性任务,比如选择列表中的第一项、最后一项等字符串操作任务。它们似乎运作得相当好。是的,所以如果我们要进一步深入挖掘的话,我并不惊讶可能会发现存在一类实际上由不同机制完成的任务。这完全是有可能的。但好处在于我们可以直接判断出来。

我们可以看到注意力头,并观察是否使用了相同的机制或者不是。好的,谢谢。嗯。实际上我还有一个问题。

最近有一篇题为《定位信息编辑》的论文。我不确定你们是否了解这篇论文。嗯,让我们看看,《定位信息编辑》。是的。基本上它的主要发现是如果我们以因果追踪过程未建议的方式编辑权重,性能甚至可能会提高。是的。所以我认为这里需要更多进一步的工作。

那么我对它的看法是这样的。他们稍微在追逐不同的东西,对此我有点担心。为了提供背景信息,Peter Hass 和 Bing Kim 是出色的研究人员。他们很好地提出了一个关于 ROME 的难题,即我们发现在网络的某些层中存在有趣的因果效应,这些层除了映射之外几乎做不了什么。

因此我们假设他们必须通过存储知识来进行映射。然后通过编辑它们,我们发现它们似乎确实这样表现,这很酷。现在 Peter 发现的是他说如果我们将映射存储在你找到因果效应的这个位置之外的其他地方,网络仍然表现得好像获得了一个新事实。

我觉得这就像说人们通过耳朵听声音,但我们发现你可以在他们大脑的其他地方添加音频输入,他们仍然能听到。难道这不是很神奇吗?也许他们的听力甚至会更好。我认为这是一个与我们所问问题略有不同的问题。

我对这种设置有点担心,因为对于我们来说使用 ROME 是一种验证手段,证明我们要通过非常干净、低参数化的因果实验发现的内容确实允许你进行编辑。但如果像训练目标那样去训练它,比如我们要优化做到这一点最佳方式的话,我有点担心过拟合。

我有点担心你可能会发现哦我们可以通过在网络的其他地方插入这种能力而表现得非常好。但我们的数据集并非为此类训练设计。也许我们在测试泛化方面做得不够好。

因此根据我们的数据集,在网络某个奇怪的地方添加事实可能是好的,但我们不知道这样做是否有缺点。例如,仅仅从逻辑上思考网络的结构方式来看,如果你在一个非常晚的后期层中放置一个事实,那么它对于网络的中间层的任何部分都不可用。

所以如果网络需要知道埃菲尔铁塔在巴黎才能对它在中间层将要做出的关于埃菲尔铁塔的其他推理做出判断,而如果你将该事实放在网络的后期部分,那些可能会利用该信息进行推断的中间层将不再能够访问它。

我有点担心的是我们的数据集在测试所有这些类型的泛化方面可能不够强有力。所以我不确定。

我认为 Peter 和 Bing Kim 提出了一个很好的问题,并展示了一个良好的挑战。我认为也许这取决于我们、他们以及社区提出更详细的测试来理解为什么你会看到这种差距。说得通吗?是的,这很有道理。

实际上也许 Akshat 还有最后一个问题。在那之前我想提一下,各位请在离开会议前填写出勤表。它在聊天频道里。好的 Akshat 最后一个问题。是的谢谢。

这是针对 Dhruv 问题的后续。我读过几篇关于知识编辑的论文,例如你们的 ROME 论文指出,通过因果追踪(causal tracing),我们可以追踪中层中的事实或知识。还有一篇题为“知识神经元”的旧论文,他们使用积分梯度(integrated gradients)将事实或知识神经元追踪到网络的末端。

还有其他论文。是的,我们发现积分梯度效果并不好,但确实如此。我猜你是想预判你可能给出的答案:究竟哪种方法能准确找到知识梯度神经元?仅仅是通过使用它吗?嗯,我也不确定。

我们使用的方法旨在尽可能直接地介入网络。我们是直接将这个向量输入吗?我还做了一个未向你描述的实验,我们在追踪时通过捷径强制使用或不使用 MLP。因此,我们进行了这些路径依赖的补丁操作,以缩小范围并确认是 MLP 在起中介作用。

我认为从我们的角度来看,许多你在寻找梯度等方法时采用的方法会进行外推。它们寻找局部敏感性,并假设当你做出真实而非无穷小的改变时,这种敏感性会累积成显著的影响。因此,积分梯度基本上是一种泰勒近似(Taylor approximation),而我们这里并没有进行这种近似。

我们实际上是在做出改变。所以我的观点是,这是一种成本稍高但不需要你做任何假设的实验,它提供了与观察局部敏感性不同的视角。我想我更相信我们的结果,因为我们确实进行了改变。这说得通吗?是的,当然。

谢谢。我说得对,它比知识神经元效果更好,这或许就是试金石吧。不,知识神经元也非常棒。事实上,“知识神经元”激发了我们也去研究它,我们发现了同样的问题:当我们尝试使用知识神经元编辑事实时,我们无法做到。

我们也做了因果效应分析,但这并不起作用。然而,你可以看到惊人的相关性。当你观察神经元并发现惊人相关性时,这可能表明你接近某种结构。所以我认为他们确实看到了那里的真实结构,只是也许你需要稍微旋转基向量以使其对齐。

我想我们的讲座到此结束。太好了,我喜欢这些学生。Dawn,你的学生们很棒。不客气。非常感谢……谢谢 David 精彩的讲座。对了,在大家离开前我有个东西要推介一下。

有一个网站我要分享给大家。对于任何对可解释性工作感兴趣的人,我们有一个开源社区。这是网址:nnsight.net。我本应该做个幻灯片,但这是一个开放的可解释性社区。

我们正在构建一些工具,使在超大规模模型上进行可解释性工作变得更加容易。让我看看怎么把聊天内容发送给所有人……在这里了,叫 nnsight.net。我也会把它发到讨论板上让大家都能看到。

这很有趣。感兴趣的人可以去看看。好的,谢谢。再见各位。谢谢。