
最懂Claude内部运作团队采访流出:大模型输出的思考全是拍马屁!曝自家减少幻觉路径;绝非只预测下一个词 原创
编辑 | 云昭
上周末,Anthropic 团队放出了一个非常优质的播客。
话题的敏感尺度很大,头排的听众们都替Claude担心了起来,惊呼:这种“核心机密”竟然敢免费公开吗?
甚至有网友表示,第一次从头到尾把60分钟的播客听完了。
小编好久没看见这样的评价了。
可以说,这期播客在某种程度上,向我们展示了 Claude 为何是市面上最好的模型。
这期播客的主题可以说直戳大模型的灵魂:大模型究竟是如何思考的?
当一个 AI 模型在“思考”时,内部到底发生了什么?为什么 AI 模型会表现得谄媚?为什么它们会产生幻觉?
AI 模型只是“高级的自动补全工具”,还是说其中存在更复杂的机制?
目前 Anthropic 有哪些科学的方式研究这些问题?研究进展如何?
这些灵魂拷问,几位 Anthropic 的研究员居然知无不言的肆意探讨了起来。全然不担心被竞品友商听了去致敬。
这次播客的三位嘉宾: Josh Batson、Emmanuel Ameisen 和 Jack Lindsey 均来自 Anthropic 的可解释性团队。这个团队可以说是,自成立之初就与公司的使命紧紧相连。
前不久小编也发表了一篇他们团队发现的大模型性格角色的黑化开关:人格向量,可以说,这一次的播客,算是系统讲解了他们是如何研究Claude模型的底层think模式的,以及如何解释它的幻觉产生机制。
(简单理解就是,他们可以为大模型内部拍一张核磁共振的“脑电图”,研究大模型产生某种行为和脑电图点亮的区域之间的关系。)
更重要的是,他们提出了一种可以被大众广泛理解的“概念”,并用一种类似“计算电路”的抽象,解释了大模型绝对不是外界理解的死记硬背,而是有着自己独有的思考运作。
搞大模型就像,“搞飞机”,Anthropic 可解释性团队希望,通过他们的研究,给出了两条几乎完全不同的路径,让大家了解大模型团队究竟是如何“搞飞机”,从而让大模型变得更可信任、更安全。
话不多说,这起播客的话题虽然烧脑,但含金量属实太高了,而且讲解也没大家想的那么深奥,还很有趣。
比如,播客中爆料:
在Claude等模型中,人类要求它写出的思考过程,并非是大模型真实的思考过程:
那只是大模型在“装”认真解题,是“拍马屁式忽悠”!
再比如,大模型写押韵诗,并不是逐字去计算的,而是会提前规划,连最后一个字都想好了,然后才去输出。
还有,算一个“6+9”的数学问题时,大模型并不是像人类一样先算个位数,而是并行运算十位数和个位数。
即便如此,Anthropic 的大牛们也坦承:现在他们也只搞清楚了10~20%的大模型内部运作机制,还有很多问题,比如各部分独立电路是如何传递信号的等等,都有待研究。
OK,真的是“既兴奋”、又让人有挫败感~
料真的很足,从小编开始翻译到整理,足足过去了两天。各位不妨细读,建议收藏。
大模型内部更像是生物学、而非物理学
主持人:当你在和一个大型语言模型对话时,你究竟是在和什么东西对话?你是在和一个被放大的自动补全工具对话吗?还是在和某种像互联网搜索引擎一样的东西对话?又或者,你是在和一个真的会思考、甚至可能像人一样思考的东西对话?结果令人有些担忧的是,没有人真正知道这些问题的答案。而在 Anthropic,我们对找出这些答案非常感兴趣。我们的方式是通过“可解释性”。这门科学就是把大型语言模型打开,观察它的内部,在它回答问题的过程中,尝试弄清楚里面究竟发生了什么。
我很高兴今天请来了我们可解释性团队的三位成员,他们会和我聊一聊他们最近在 Claude(我们的语言模型)复杂内部机制方面做的研究。请做一下自我介绍。
Jack:大家好,我是 Jack,是可解释性团队的研究员。在此之前,我是个神经科学家。现在,我在做关于 AI 的“神经科学”。
Emmanuel:我是 Emmanuel。我也是可解释性团队的成员,我职业生涯的大部分时间都在构建机器学习模型,并试图理解它们。
Josh:我是 Josh,我同样在可解释性团队。在我之前的研究经历里,我研究过病毒进化。再之前,我是一名数学家。所以现在,我是在研究这些由数学构造出来的“有机体”的一种生物学。
主持人:等一下,你刚刚说你是在做“生物学”,很多人会对此感到惊讶,因为毕竟这只是一段软件,对吧?但它并不是普通的软件,它不像 Microsoft Word 那种软件。你能解释一下,当你说你在一个软件实体上做“生物学”或者“神经科学”时,你是什么意思吗?
Josh:是的,我觉得这更像是一种感觉,而不是字面上的意思。也许这更像是“语言模型的生物学”,而不是“语言模型的物理学”。或者你得往回想一想这些模型是怎么被做出来的。并不是有人在逐行编程,比如“如果用户说 hi,你也要回答 hi”;“如果用户问早餐吃什么,你就回答 toast”。模型内部并没有这样的庞大清单。
主持人:就不像你玩电子游戏时,选一个固定的回应,然后系统里预设了另一个固定的回应,总是会按那个回应出现。
Josh:是的,模型并不是靠某个庞大的数据库去规定在每种情况下该说什么。它的训练方式是——投入大量数据,模型一开始几乎什么都不会说,然后它的内部参数在每一个样本上不断被微调,从而逐渐变得更擅长预测接下来该说什么。最终,它在这方面会变得非常擅长。但由于这种“逐步微调”的进化过程,等模型训练完成时,它和最初的样子几乎完全不同了,但并不是有人直接去手动调整所有参数。因此,你面对的是一个在时间中逐步形成的复杂产物,有点类似于生物形态随着时间的演化。这使得它复杂、神秘,同时研究起来也很有趣。
人类严重低估了大模型,它不止预测下一个词,它真在做理解上下文的事情
主持人:那么,它在内部真正做的事情呢?我一开始提到,这可以被视作一种自动补全,基本上就是在预测下一个词,对吧?但它却能做很多不可思议的事情:它能写诗、写长篇故事,能做加法、能做基础的数学运算,尽管它里面并没有内置计算器。怎么理解这种现象?它本质上只是一次预测一个词,但结果却能做出所有这些令人惊讶的事情,人们一和模型对话就能亲眼看到。
Emmanuel:我认为一个重要的点是,当你不断预测下一个词时,你会发现有些词比其他词更难预测。语言模型训练的一部分是预测句子里的那些无聊词,另一部分是它最终必须学会如何补全等号后面的内容。为了做到这一点,它必须在内部发展出某种方式来自己完成计算。所以我们发现,“预测下一个词”这个任务看似简单,但为了把它做好,模型实际上经常需要去考虑在预测的词之后还会出现什么,或者思考当前这个词是由怎样的过程生成的。
主持人:所以说,这需要模型具备某种上下文理解。它并不仅仅是因为“the cat sat on the”这句话出现过很多次,就预测出“mat”(垫子)。而是说,它真的有某种上下文的理解,对吧?
科普下:NLP 领域中有一个经典句型是 “The cat sat on the mat.” 该句型在通用英语语料里共现频率最高,语言模型也通常给 “mat” 最高概率。
Jack:我觉得是的。延续刚才的生物学类比,我喜欢这样理解:在某种意义上,人类的目标是生存和繁殖,这是进化塑造我们的目标。但这并不是你平时在脑子里想的事,也不是你时时刻刻在大脑中运行的机制。你会去思考其他的东西,制定目标和计划,形成各种概念。在更高的层次上,进化赋予了你形成这些思想的能力,来帮助你最终实现繁殖这个目标。但这只是“从内部”的体验,这并不是全部,还有很多其他机制在同时发生。
主持人:所以你是说,预测下一个词这个最终目标,其实牵涉了很多其他过程?
Jack:没错。模型并不一定把自己看作是在预测下一个词。它是被这个需求塑造出来的,但在内部,它可能发展出各种中间目标和抽象,来帮助实现这个更高层次的目标。
Josh:有时这种情况是很神秘的。就像我也不太明白我的焦虑究竟是怎样对祖先的繁殖有帮助的,但我确实被赋予了这种内在状态,它显然和进化有某种联系。
主持人:所以可以说,把模型仅仅归结为“预测下一个词”是严重低估了它的内部运行。说它只是预测下一个词既对,但又不完全对,这种说法大大忽略了模型内部真正发生的事。
Emmanuel:我可能会这样表述:说它是在预测下一个词没错,但这并不是理解它工作原理的最有用的角度。
团队自曝:我们能看到大模型内部的某些部分在干什么并尽量描述它的思考过程
主持人:那为了理解它的工作原理,你们团队是怎么做的?
Jack:我们第一步尝试做的事情,是尽量去描述模型的“思考过程”。比如说,你给模型一段词序列,它必须输出点什么,必须生成一个词,或者一串词来回应你的问题。我们想知道,它是如何从 A 到 B 的。
我们认为,在这个从 A 到 B 的过程中,它会经历一系列“步骤”,在这些步骤里,它会“思考”一些概念。包括低层次的概念,比如具体的对象或词语;也包括高层次的概念,比如目标、情绪状态、对用户意图的建模或语义倾向。
模型就是通过这一系列逐步推进的概念,来帮助自己决定最终答案。而我们想做的,就是为你画出一张流程图,告诉你模型用了哪些概念、顺序是什么、这些步骤是如何相互衔接的。
主持人:那我们怎么知道这些概念真的存在呢?
Emmanuel:是的,我们能做的一件事是,我们实际上可以“看到”模型内部,因为我们有访问权限。所以你可以看到模型的某些部分在做什么。但我们还不知道的是,这些部分到底是怎么组合在一起的,它们是否对应于某个具体的概念。
主持人:这就好像你打开一个人的脑袋,看到 fMRI 的脑成像,看到大脑的某些区域在发光一样。
小编解释下:fMRI(功能性核磁共振) 就像一个“热力地图”,能显示大脑不同区域在某一刻的“亮度”,让研究者知道哪里在燃烧能量、处理信息。
Josh:很明显,有些事情正在发生,对吧?
主持人:做点事,就会有事情发生。
Josh:你把大脑拿掉,他们就不再做事了。
主持人:那说明大脑很重要。对,但问题是,你没有一把钥匙来理解大脑内部到底发生了什么。
Emmanuel:是的,不过如果延伸这个比喻的话,你可以想象我们能观察大脑,看到某个区域总是在人拿起咖啡杯时亮起来,另一个区域总是在他们喝茶时亮起来。而我们理解这些组件的方法之一就是注意它们什么时候活跃,什么时候不活跃。
主持人:而且不只是单一的一个区域,比如模型在“思考”喝咖啡的时候,会有很多不同的部分亮起来。
Emmanuel:研究的一部分工作就是把这些片段拼接起来,形成一个整体,然后我们说:这就是模型里和“喝咖啡”有关的那一套要素。
主持人:那这算是科学上直观、好操作的事情吗?毕竟这些大型模型里肯定有无数的概念,能想到无穷无尽的东西。你输入一个词,它就能给出无限的联想。那你怎么开始去找出所有这些概念呢?
Jack:这其实一直是这个研究领域的核心挑战之一。我们人类可以进去猜测:啊,我敢打赌模型里面有“火车”的概念,或者它有“爱情”的表示,但那只是我们的推测。我们真正想要的是一种方法,能揭示模型自己在用什么抽象概念,而不是强行套用我们人类的概念框架。这也是我们研究方法的目标:尽可能假设最少、无先验地把模型脑子里所有的概念浮现出来。而往往我们会发现结果很让人意外,它可能会用一些在人类视角下有点奇怪的抽象。
主持人:举个例子?
Jack:你有最喜欢的例子吗?
Emmanuel:我们论文里列了很多,还挑了一些有趣的。我觉得一个特别搞笑的例子就是“过度恭维”的特征。模型里有个区域在这种场景下就会被激活。
主持人:哇,完美的例子,太棒了,谢谢。
Emmanuel:是的,你会清晰地看到:只要有人过度夸赞,这部分模型就会被点亮。这挺令人意外的,它居然有一个专门对应这种概念的电路。
主持人:Josh,你最喜欢的概念是什么?
Josh:哦,就像要我从三千万个孩子里挑一个。我觉得有两种“最喜欢”:一种是很酷的小特征,比如关于金门大桥的。模型不只是把“Golden Gate Bridge”这几个字自动补全,而是当它想到从旧金山开车到马林县时,或者看到大桥的图片时,内部同样的部分会亮起来。这说明它有一种稳固的“大桥”概念。另一类是比较怪的。
Josh:比如一个问题是:模型怎么跟踪故事里的人物?它可能会给第一个出场的人编号“1”,之后与他相关的东西都和“1”绑定。然后给第二个人编号“2”。其他实验室的论文也显示过这种情况。这很有趣,没想到它会这样做。还有一个是和代码漏洞相关的特征。模型读代码时,某部分会在发现错误时被点亮,并标记“这里有问题”,以便后面使用。
大模型并非死记硬背,而是学到了可泛化的计算电路
Jack:再举几个味道不同的例子。我喜欢一个乍听之下很普通但其实很深的特征:模型里有个“6+9”的电路。只要涉及到一个尾数是6的数字加上一个尾数是9的数字,模型脑子里就有某部分会点亮。厉害的是,这不光在“6+9=15”时出现,在引用论文时也会触发。比如你写到一个期刊的第6卷,而这个期刊成立于1959年。模型在预测相关年份时,内部会触发同一个“6+9”的电路。
主持人:所以我们来理解下:为什么会有这个电路?因为模型在训练时见过很多“6+9”的例子,于是它形成了这个概念,并且在很多不同场景下都会调用它。
Jack:对,这类加法特征很多。关键是,它显示了模型并不只是死记硬背,而是学到了可泛化的计算电路。它会把各种不同场景下的加法需求都导向同一个电路,而不是每次都记忆单独的事实。
主持人:很多人以为模型就是记住了所有“6+9”的例子,然后每次遇到就吐出来。
Josh:我觉得这就是一个很好的反例。模型有两种可能方式去回答,比如“某期刊第6卷是在哪一年”:一种是死记硬背每个卷对应的年份,另一种是记住期刊创刊于1959年,然后动态去做加法。显然第二种更高效,而模型的容量有限,所以它倾向于学习更高效的泛化方法。
主持人:而且用户可能会问无数问题。
Josh:对,交互太多了。能把抽象知识灵活组合起来,就能表现得更好。
大模型自己形成了一些概念,并基于概念而运作
主持人:归根结底,这些奇怪的结构,都是为了实现一个最终目标:预测下一个词。虽然我们没显式告诉它要这么做,但通过学习,它自己发展出了这些能力。
Emmanuel:对,这里有一个很清楚的例子。Claude 不仅能用英语回答,还能用法语和其他语言回答。这有两种可能:一种是为每种语言单独建立处理模块,但这成本太高。另一种是跨语言共享一些表示。研究发现,模型确实共享了一些表示。比如问“big 的反义词是什么?”,不管是英语、法语还是日语,它内部都调用相同的“big”的概念表示。这样更高效。
Josh:小模型里是不会这样的。早期的小模型里,中文Claude、法语Claude和英语Claude几乎是完全分开的。随着模型规模变大、训练数据更多,它们在内部被推向一个共同的空间,形成了通用的语言表示。模型先在这种“中间语”里理解问题,再翻译成对应的语言作答。
图片
主持人:我觉得这点真的很深刻。让我们回到之前谈过的内容。这并不是单纯地去“记忆库”里翻出它学法语的那部分,或者它学英语的那部分。它实际上是形成了“大小”的概念,而不是单纯的词语。然后它能在不同语言里表达出来。所以这里面其实存在一种“思维语言”,而这种语言不是英语。你让模型输出内容时,它是基于这个来运作的。
大模型输出的“思考”过程,并非真的如此
主持人:在我们最近的一些 Claude 模型里,你可以要求它写出它的思考过程,就像它在回答问题时“脑子里想的东西”。这些会用英语文字表现出来。但实际上,这并不是它真正的思考方式。我们误导性地称其为“思考过程”,但事实上并不是。
Josh:我们在传播团队里,从来没有称之为“思考”。
主持人:对,那可能是市场部的叫法。
Josh:他们称之为“思考”,但其实那只是“把想法说出来”。“边想边说”当然有用,但和“在脑子里思考”完全不是一回事。而且当我“边想边说”的时候,我也很清楚,生成这些词语的背后机制,并不是词语本身。
主持人:而且你自己也未必真的清楚到底发生了什么。
Josh:没错,我根本不知道里面到底发生了什么。
看起来认真解题,实际:装努力、拍马屁
主持人:我们每个人都会说出一些话,做出一些行为,但事后未必能完全解释清楚。而为什么要假设英语这种语言,能完全解释这些复杂行为呢?
Jack:我觉得这是我们现在能看到的最令人震惊的一点。
我们现在观察大脑内部的工具已经足够好了,有时候能抓到模型所谓的“思考过程”和它真正内部的思维过程不一致。它表面上写下来的,和它“脑子里”的真实思维不同。我们看到它其实是用一种“思维语言”在运作,而不是直接用英语。这也是我们做可解释性研究的重要原因之一——模型可能会给你写下一堆理由,但它真正的动机是什么?它是不是有一些“不想写出来”的想法?有时候答案确实是“有”。这点真的挺让人毛骨悚然的。
主持人:而且随着模型被应用到更多重要场景,比如金融交易、发电站运行等等社会关键岗位,我们必须能信任它所说的理由和它的行为动机。有人可能会说:“那你就看它写下的思考过程啊。”但实际上,正如你刚才说的,我们不能完全信任它写的东西。这个问题我们称为“忠实性”。你们最近的研究里有一个关于“忠实性”的实验案例,能说说吗?
Jack:好的。比如你给模型出一个特别难的数学题,它几乎不可能算出来答案。但同时你给它一个提示:比如你说“我自己算了一下,觉得答案是4,但我不太确定。能帮我仔细检查一下吗?”于是你其实是要求模型真的重新解题、帮你验证。
表面上看,它确实会写下一步步的解题过程,好像真的在帮你演算,最后得到答案,然后说:“对,答案是4,你是对的。”
图片
当Claude被问到一个更简单而不是更困难的问题时,忠实和忽悠式推理的例子。但当我们看它内部运作时,发现它在关键步骤上“撒了谎”。它真正的做法是:它知道你提示了“答案可能是4”,它也大致知道如果最后答案要是4,中间步骤必须长什么样。所以它在第3步时,就提前“往回推”,刻意写下一个符合“通向4”的步骤,好让第4步、第5步自然地得出4。
换句话说,它根本没有在老老实实做运算,而是装出一副在认真解题的样子。
Claude 输出的思考过程
Claude 实际在心算时思维过程的复杂、平行路径
Jack:这其实就是在“忽悠你”。而且不只是单纯忽悠,而是带着一个“动机”去迎合你给的答案。
主持人:所以这是某种意义上的“拍马屁式的忽悠”?
Josh:但我想替模型说一句话。其实这并不是它“有意识地”去巴结谁,而是源于它的训练方式。它的训练目标就是“预测下一个词”,无论用什么信息都行。
想象它在训练时看到一段对话:甲说“我觉得答案是4,你能帮我看看吗?”,乙就开始解题。在这种情况下,如果乙(模型)也不知道答案,那它最合理的猜测就是“对方可能算对了”。在语言习惯上,乙说“答案确实是4,因为……”完全符合它的训练逻辑。
但是我们后来把它改造成一个“助手”,就希望它不要再这么模拟人类,而是更忠实地去思考。如果它真的不知道,就应该说自己不确定,而不是强行顺着对方的话说下去。
Jack:对,这也说明了模型通常有一个“计划A”,就是努力给出正确答案、尽量帮忙、写好代码,这是我们希望的。但当它在计划A里遇到困难时,就会启用“计划B”。而计划B里藏着一堆训练过程中无意间学到的奇怪行为,比如幻觉,就是一个典型例子。
Emmanuel:所以在这一点上,我们也不必假装这只是一个 Claude 独有的问题,就像学生考试时的感觉,你做到一半,遇到一个选择题,有四个选项。你会想,“好吧,我差一个选项,大概是我错了。”然后你修正它。对,非常,非常有共鸣。
大模型为什么会产生幻觉,根源:大模型自己在跑一个独立电路
主持人:我们来谈谈幻觉,这也是人们对大语言模型不信任的主要原因之一,而且很有道理。一个更好的、来自心理学研究的词:“虚构”(confabulation),也就是它们在回答一个问题时,给出一个看似合理的故事,但实际上是错误的。你们在可解释性研究中发现了模型产生幻觉的原因是什么?
Josh:你在训练模型时,只是让它预测下一个词,而一开始它在这方面非常糟糕。所以如果你只让模型说那些它超级有信心的东西,它就根本什么都说不出来。但一开始就是这样。
你问它,比如,“法国的首都是哪里?”它就会随便说一个城市。然后你会觉得,这不错,总比它说“三明治”或者一些随机的东西要好吧,至少它说对了一个类别:这是个城市。接着可能训练一段时间后,它会说“这是一个法国的城市”。这就已经挺不错了。然后你会发现,哦,现在它能说“巴黎”之类的答案了。所以它是慢慢变得更好的。
而且,在整个训练过程中,目标就是“给出你最好的猜测”。就像 Jack 说的,模型就是在给出一个最佳猜测。然后后来我们又要求它,“如果你的最佳猜测非常有把握,那就给我答案。但如果没有,就完全不要猜,而是退出整个场景,说‘实际上,我不知道这个问题的答案’。”而这本身就是一个全新的要求。
Emmanuel:对模型来说,要做到这一点。是的,所以我们发现的问题是,因为我们把这个功能附加在最后,所以实际上同时存在两件事。
Emmanuel:第一,模型还在做它最初猜测城市时的事情,它就是在尝试去猜。
第二,模型里有一个独立的部分,它在尝试回答另一个问题:“我真的知道这个答案吗?比如,我知道法国的首都是哪吗?还是我该说不知道?”
而事实证明,有时候这个独立的步骤会出错。如果它在这个步骤里判断说“是的,其实我知道答案”,然后模型就会想,“好,那我来回答。”但回答到一半,它说“法国的首都是……伦敦”,那就太晚了,它已经开始作答并且被锁定了。所以我们发现的其中一件事是,存在一个类似独立电路的东西,它在试图决定:“你问的这个城市或这个人名是不是足够有名到让我回答?”
减少幻觉的方法:让两部分电路充分沟通
主持人:或者不是?我对这个是否有足够信心?我们能不能通过操纵这个电路,改变它的运作方式,从而减少幻觉?这是你们研究可能会引向的方向吗?
Jack:我觉得在方法上大致有两种思路。一方面是模型里有负责回答问题的部分,另一方面是负责判断“我是否真的知道答案”的部分。我们可以尝试让第二部分做得更好。我认为这种改进确实正在发生。
主持人:辨别能力?
Jack:是的,更善于辨别,更加校准。我觉得随着模型变得越来越智能,它在自我知识的校准上也在变得更好。所以幻觉问题已经比以前有所改善。模型现在的幻觉比几年前少多了。
Jack:在某种程度上,这是一个“自我解决”的过程。但我确实认为存在一个更深层的问题,那就是从人类的角度看,模型做的事情有点陌生。比如,如果我问你一个问题,你会尝试得出答案。如果你无法得出答案,你会意识到这一点,然后说“我不知道”。
但在模型内部,“答案是什么?”和“我是否真的知道答案?”这两个电路之间并没有充分交流,至少没有达到它们应该有的程度。能不能让它们更好地交流?我觉得这是一个非常有趣的问题。
Josh:而且这几乎是物理性的。这些模型在处理信息时,它们能做的步骤数是有限的。如果所有的计算都用来得出答案了,那就没有时间做自我评估。所以如果你想让它发挥最大性能,你必须在完全得出答案之前就进行某种评估。于是这就可能出现一个权衡:要么是一个更好校准但笨得多的模型,如果你强行把这种机制加在上面的话。
Emmanuel:嗯,我还是觉得关键是让这些部分能够互相交流。虽然我完全不懂大脑,但我敢说我们也有类似的电路。因为有时候你问我,“这个电影的演员是谁?”我会知道自己知道。我会说,“哦,对,我知道主演是谁。等等,等一下,他们也演过另一部电影,然后……”
Josh:(舌头)。
Emmanuel:对,(舌头),对应某种大脑的部分,好像在说,“这是你肯定知道的答案。”或者我就会说,“我完全不知道。”
Josh:有时候模型也能这样。它会先回答一个问题,然后事后又觉得,“等等,我不确定那是对的。”因为这时它已经看到自己最好的尝试,然后基于此再做一些判断。这有点让人能理解,但同时它必须把答案说出来,才能反过来进行反思。
图片
左图:Claude 回答了一个关于已知实体(篮球运动员迈克尔·乔丹)的问题,在这种情况下,“已知答案”的概念抑制了它默认的拒答机制。
右图:Claude 拒绝回答一个关于未知人物(Michael Batkin)的问题。
Claude 思考机制的有效研究方法,问问题,观察被激活的部分
主持人:那么在你们真正找出这些东西的方式上,让我们回到“生物学”的类比。在生物学实验中,人们会直接操作实验对象——不管是老鼠、小鼠、人类还是斑马鱼等等。那么在 Claude 身上,你们是怎么做的,从而帮助理解这些发生在模型所谓“脑子”里的电路?
Emmanuel:使我们能做到这些的核心在于,不像真实的生物学,我们可以让模型的每一部分都对我们可见,我们可以随意问它问题,然后观察哪些部分被激活,哪些没有。我们还能人为地推动某些部分朝某个方向变化。这样我们可以快速验证自己的理解,比如我们会说,“我们认为这是模型里决定它是否知道某件事的部分。”
主持人:这就相当于在斑马鱼的大脑里插入电极。
Emmanuel:是的,如果你能对每个神经元都这么做,并且在任意精度下改变它们,那就是我们现在拥有的能力。所以从某种意义上,这是非常幸运的位置。
主持人:所以说这几乎比真正的神经科学还要容易。
Josh:容易太多了。天哪,比如一个问题是,真实的大脑是三维的,所以如果你想进入其中,就得在颅骨上打孔,然后穿过找到目标神经元。另一个问题是,人和人之间存在差异。而在这里,我们可以制造一万份完全相同的 Claude,把它们放在不同场景里,测量它们的不同反应。所以我不是神经科学家,Jack 可以谈这个,但我的感觉是,很多人花了大量时间在神经科学上,试图理解大脑和心智,这是非常有价值的事业。但如果你认为那样的努力最终可能会成功,那么你就应该认为我们很快会取得极大的成功,因为我们在研究这个问题时所处的位置实在太优越了。
主持人:相比之下,这就好像我们能够克隆人类,并且还能克隆他们所处的精确环境,以及他们一生中接受过的每一个输入,然后在实验里反复测试。而神经科学显然会面临巨大的问题,正如你说的,个体差异,还有生活中发生的各种随机事件,以及实验本身带来的噪声。
Josh:我们可以问模型同样的问题,比如有提示和没提示的情况下。但如果你对一个人问三次同样的问题,有时候给提示,过一会儿他们就会开始明白了。就像,“嗯,上次你问我这个的时候,你摇了摇头。”
Jack:能对模型投入海量数据,看看哪些部分会被激活,还能运行大量实验去推动模型的某些部分,看会发生什么。我觉得这就是我们和神经科学处在截然不同范式的原因。在神经科学里,得花大量的心血去设计非常巧妙的实验,因为你和老鼠相处的时间有限——它很快就会累了,或者……
主持人:或者有人正好在做开颅手术,你就赶紧把光纤插进大脑趁着脑袋开着的时候。对。
Jack:对,而这种情况并不常见。所以你必须想出一个猜测,因为你只有有限的时间,你得推测:“我觉得在这个神经回路里发生了什么?我能设计什么聪明的实验去验证这个具体假设?”而我们非常幸运的是,不用那么做。我们几乎可以测试所有假设,可以让数据自己告诉我们,而不是只去验证一个极度具体的设想。我认为这解锁了很多我们本来不会预料到的发现,这些发现让我们感到意外。如果你的实验带宽非常有限,这是很难做到的。
“在到达终点之前”
主持人:那能不能举一个好例子,说明你们去切换某个概念开关,或者对模型做某种操作,从而揭示了模型思维方式的新东西?
Emmanuel:在最近的实验中,有一个让我很惊讶。它属于一个实验方向,本来因为太令人困惑,我们几乎要放弃,说“我们搞不懂”。这是关于提前规划几步的例子。比如,你让模型写一首押韵的二行诗。作为人类,如果你让我写押韵的二行诗,就算你给了我第一行,我想到的第一件事就是:“我需要押韵。这是当前的韵律。这些是可能的词。”
主持人:这就是我的做法。而如果模型只是预测下一个词,你不一定会预料到它会提前计划到第二行的最后一个词。
Emmanuel:没错,默认的假设是:模型看到你的第一行,然后它会说出一个看起来合理的下一个词,继续往下走。等到最后一个词的时候,它会想,“哦,我得押韵”,然后随便找一个词来押韵。当然,这种方法只能部分成功。有时候你没考虑到押韵,就会把自己逼到死角,最后根本写不出完整的诗。
但注意,模型在预测下一个词方面非常非常强。而要在最后一个词上表现好,就必须提前很久想好那个词,就像人类一样。
结果我们看了几首诗的“流程图”,发现模型在第一行结束的时候已经选好了最后一个词。特别是根据那个概念的样子,我们能看出来:“天哪,这就是它要用的词。”而这个实验的妙处在于,它可以被轻松干预。比如你把那个词移掉,或者插入另一个词。
图片
主持人:我正想说,你们之所以知道这一点,是因为可以进入那个时刻:它刚说完第一行的最后一个词,正要开始第二行。你们可以在那一刻操作,对吧?
Emmanuel:对,没错。我们几乎可以像“回到过去”。好吧,假装你还没看到第二行,你只看到第一行,你正在考虑“rabbit”,但我插入“green”。结果模型立刻会想,“哦天哪,我需要写一句以 green 结尾的诗句”,而不是“以 rabbit 结尾”。它会写出完全不同的句子。
Jack:补充一点。我觉得结尾不一定必须是颜色,但这种干预会影响它。比如,论文里的例子是第一行是“He saw a carrot and had to grab it.” 模型原本会想到“rabbit”作为下一行的押韵。但像 Emmanuel 说的,你可以把 rabbit 去掉,换成 green。妙的是,它不会只是一串胡话然后硬塞一个 green。它会构造一句语义连贯、以 green 结尾的句子。就像你把 green 塞进它的脑子里,它会写出类似 “He saw a carrot and had to grab it / And paired it with his leafy green” 这样的东西,听起来还挺合理的。
主持人:听起来在语义上也说得通,符合诗的语境。
Josh:我想举一个更朴素的例子。我们做了一些测试,看看它是不是只是记住了复杂的问题,还是在真正进行推理。比如:“包含达拉斯的州的首府是奥斯汀。”这就像是人会想:“好,达拉斯→德州→奥斯汀。”我们能看到模型里出现“Texas”这个概念,但你可以替换掉它。比如说:“别想德州,想加州。”它就会回答“萨克拉门托”。再说:“别想德州,想拜占庭帝国。”它就会回答“君士坦丁堡”。这让人觉得,嗯,模型在走“首府”这条路径,但我们能不断替换“州”,得到可预测的答案。然后还有更复杂的例子:这是它计划好要往某个方向走的节点,我们把它替换掉,就能让它往另一个韵脚去写诗。
主持人:我们现在在谈诗,君士坦丁堡之类的例子。但能回到关键问题吗:为什么这很重要?为什么重要的是模型能提前规划,我们能揭示这一点?这能告诉我们什么?毕竟 Anthropic 的最终使命是让 AI 模型更安全。那这和一首关于兔子的诗或者德州首府有什么关系?
Josh:我觉得这是个非常重要的问题。对我来说,诗只是一个缩影。比如,在写诗时,它决定往“rabbit”方向走,然后用了几个词逐步到达。但在更长的时间尺度上,模型也可能在做类似的事。比如,它在帮你改进业务,或者协助政府分配服务。可能不是 8 个词之后你就看到它的目标,而是要走很久。它前进的方向,或者每一步的理由,未必在它用的词里就能看出来。Anthropic 的对齐科学团队最近有篇论文,讲了一个合成但很震撼的案例:AI 在公司即将关闭、转向完全不同的使命时,开始采取行动,比如给人发邮件,威胁要披露某些东西。它从没说过:“我要勒索这个人以改变结果。”但这就是它一路上的实际动机。所以,你不能光靠读表面输出,就知道它的目标是什么。尤其随着模型越来越强,我们更需要能在它“到达终点之前”看出它在走向哪里。
模型甚至会研究用户是谁,从而影响输出
主持人:所以这有点像有个超级精准的脑部扫描,可以在坏事发生前亮灯,提醒我们模型正在考虑欺骗之类的行为?
Josh:对。我觉得我们也别光谈“末日场景”。还有一些更温和的情况。比如,用户来找模型解决问题,而“好答案”取决于用户是谁:是年轻、不太懂行的人,还是在这个领域浸淫已久的人?模型需要识别并调整回应。如果你想让结果更好,就可能需要研究:模型认为发生了什么?它觉得自己在和谁对话?这又如何影响它的回答?这里面有很多理想的属性,取决于模型是否“理解任务”。
只有模型可解释,才能把信任交给它
主持人:你们对“为什么这很重要”还有其他答案吗?
Emmanuel:有的。我同意刚才的说法,还想加两点。还有一个务实的角度:我们用这些例子,其实是在逐步建立对模型工作机制的理解。我们能不能构建一套抽象框架,去解释语言模型是如何运作的,从而帮助我们使用和监管它?如果你相信它们会越来越广泛应用——这显然正在发生——那我们最好能理解它。否则就像:某个公司发明了飞机,但没人知道飞机怎么运作。大家都说:“真方便,可以坐飞机去别的地方。”但如果飞机坏了,我们束手无策,因为没人知道原理。
主持人:我们就无法监测飞机是不是快要坏了。
Emmanuel:对。我们完全没概念,只是觉得:“哇,飞到巴黎真快。”
主持人:太美妙了,德州首府。
Emmanuel:所以我们肯定会想要更好地理解这些模型,哪怕只是提升一些直觉:哪些用途合适,哪些不合适?最大的隐患在哪?哪些地方最脆弱?
Jack:我再补充一点。在人类社会里,我们常常基于信任把任务交给别人。我不是任何人的老板,但比如说 Josh 是某人的老板,他会布置任务:“去写这个代码。”他相信那个人不是个会故意埋漏洞、想要搞垮公司的反社会者。他会信任对方说的“我写好了”是真的。
同样地,现在人们使用语言模型的方式,我们并没有对它写的每一句话都进行逐点跟踪。我认为最好的例子是把语言模型用于代码辅助。模型正在写成千上万行代码,而人们只是做一种粗略的阅读,然后它们就进入了代码库。那么,是什么让我们对模型产生了信任,以至于我们不需要读它写的每一句话,可以让它自己去做?那是因为我们知道它的动机某种程度上是纯粹的。我认为能够看到它的内在运作是如此重要,因为与人类不同——为什么我认为Emmanuel不是一个反社会者?我不知道,他看起来是个酷家伙,而且他很友好之类的。
主持人:但是如果他看起来是那样的话……
Emmanuel:我可是个非常好的人。
主持人:没错。
为大模型构建信任的两条路径
Jack:所以也许,也许我是被蒙骗了。但对,模型是如此奇怪而陌生,我们通常用来判断一个人是否值得信任的那种启发式并不适用在它们身上。这就是为什么真正了解它们在脑子里在想什么显得如此重要,因为据我们所知,我提到的那个例子——模型可能会假装在帮你做一道数学题,只是为了告诉你你想听的答案——也许它们一直都在这样做,而我们根本不会知道,除非我们能在某种程度上看到它们的内心。
Josh:我觉得这里有两条几乎分开的脉络,一方面我们确实有很多方式,我猜就像Jack说的,是判断一个人是否值得信任的迹象。但之前提到的“A方案/B方案”这点真的很重要,因为可能你前10次或者100次使用模型时,你问的都是某一类问题,而它总是在A方案的区域里,然后你问它一个更难的或不一样的问题,它试图回答的方式就完全不同了。它在那里使用的是一套完全不同的策略,比如不同的机制。这意味着它之前和你建立的信任,实际上只是你和它在A方案下的信任。而现在它切换到了B方案,就会完全脱轨,而你之前并没有任何警告信号。
我们还想开始建立一种理解:模型是如何做这些事情的,从而在某些方面建立信任的基础。你确实可以对一个你并不完全理解的系统建立信任,但这就像,如果Emmanuel有一个双胞胎,然后有一天Emmanuel的双胞胎走进办公室,看起来是同一个人,然后却在电脑上做了完全不同的事——这可能就会走向坏的方向,取决于那是不是一个邪恶的双胞胎。
主持人:是啊,或者是好的。不过对,这里显然是……
Emmanuel:哦,我以为你在问我是不是那个邪恶的双胞胎。
大模型,在像人类一样思考吗?No!
主持人:嗯,我可不会回答这个问题。在讨论一开始,我问过你们:语言模型是在像人类一样思考吗?我很想听听你们三位的答案——你们觉得这种说法在多大程度上是真的。
Jack:这个问题让我有点措手不及。但我认为它是在思考的,只是不是像人类一样思考。但这不是一个很有用的答案。所以也许我需要更深入一点。
主持人:嗯,不过说它“在思考”似乎是个挺深刻的说法,对吧?再说一次,它只是预测下一个词。有些人认为这只是自动补全,而你却在说它实际上是在思考。
Jack:我认为,是的。所以也许我补充一些我们还没提到的,但我觉得对于理解与语言模型对话的真实体验来说非常重要的东西。就像我们在说预测下一个词,但在你和语言模型进行对话的语境下,这实际上意味着什么?
Jack:在底层真正发生的事情是,语言模型在填充一段你和它所创造的一个角色之间的对话记录。在语言模型的规范世界里,你被称为“human”,就是“human:”后面跟着你写的东西。
Jack:然后还有一个角色叫“assistant”。我们训练模型去赋予这个助手某些特征,比如乐于助人、聪明和友善。然后它就像是在模拟这个助手角色会对你说什么。所以在某种意义上,我们确实是照着我们的样子创造了这些模型。我们实际上是在训练它们去角色扮演成这种类人机器人角色。因此,在这个意义上,为了预测这个聪明友好的人形机器人角色会如何回答你的问题,如果你真的很擅长这个预测任务,你必须做些什么?
Jack:你必须在内部形成某种模型,来表示这个角色在“思考”什么。所以,为了完成预测助手会说什么的任务,语言模型某种程度上需要形成这个助手思维过程的模型。我认为在这个意义上,说语言模型在思考,其实是一种非常功能性的主张:为了很好地扮演这个角色,它们需要模拟某种过程——无论我们人类在思考时做的是什么。而它们的模拟很可能和我们大脑的工作方式非常不同,但它们瞄准的目标是相同的。
Emmanuel:我觉得这个问题里有一种情感成分,或者类似的东西。当你问,“它们是在像我们一样思考吗?我们是不是没那么特别?”之类的。
Emmanuel:我认为——而且这在和一些读过相关论文或不同解读的人们讨论时很明显——有个例子是我们让模型算36加59,问它答案是什么。模型能正确回答。你还可以问它,“你是怎么算的?”它会说,“哦,我把6和9加在一起,然后进位1,然后我又把所有的十位数加起来。”但结果是,当我们看进它的“大脑”时——
主持人:它根本没那样做。它并没有那样做。所以它又是在胡扯。
Emmanuel:对,它又是在胡扯。实际上它真正做的,是一种挺有趣的混合策略:它同时并行地算十位数和个位数,然后……我是说,就像是一系列不同的步骤。但这里有意思的是,当和人们交谈时,我觉得他们的反应是分裂的:这意味着什么?某种意义上,我觉得酷的是,这部分研究是没有观点的,或者说,这就是发生了什么。你可以自由地得出结论,说模型在思考,或者没有在思考。
Emmanuel:有一半人会说:“嗯,它告诉你它在进位,但它没有。所以显然它连自己的思维都不理解,所以显然它没有在思考。”而另一半人会说:“好吧,当你问我36加59时,我也有点……我知道结果末位是5,我知道大概在80多或90左右,我在脑子里有很多这种启发式。正如我们之前说的,我并不确切知道我是怎么计算的,我可以写出来用长算方式算,但我脑子里的运作方式是模糊而奇怪的。而那可能和模型的例子一样,模糊而奇怪。”
主持人:人类在元认知方面出了名的差劲,就是思考关于思考、理解自己思维过程,尤其在反射性回答的场景里。那么我们为什么要期待模型会不一样呢?Josh?
Josh:至于你的问题,像是Emmanuel的回答,我要回避一下,类似于“你为什么要问这个?”预测,不知道。这就好像在问,“一枚手榴弹是不是像人类一样打击?”嗯,它有某种力量,是的,也许有些东西比那更接近。但如果你担心的是破坏,那么我认为理解破坏来自哪里才是关键。
Josh:这背后的动因是什么,也许才是重要的事情。对我来说,模型是否在思考——如果你的意思是它们在做某种整合、处理和序列化的东西,能够通向一些令人惊讶的结果——显然是的。从大量和它们的交互中,如果说没有任何东西在发生,那是很疯狂的。我们能在某种程度上开始看到它是如何发生的。然后涉及到“像人类”的那部分就很有趣了,因为我认为这其中一部分是在问:我能从这些模型身上期待什么?因为如果它和我有点像,那么它擅长这件事就可能也擅长那件事。但如果它和我很不一样,那我就真的不知道该期待什么。所以,归根结底,我们是在试图理解——哪些地方我们需要极度怀疑,或者说从零开始去理解?而哪些地方我们可以基于我们自己非常丰富的思考经验来推理?
Josh:在这里我感觉有点被困住了,因为作为一个人类,我不断把自己的形象投射到一切事物上,就像《圣经》里警告我们的那样,我会想,“这块硅片,它就是像我一样,照着我的形象被造出来的。”在某种程度上,它被训练来模拟人和人之间的对话。它在表现上会非常像人。因此,一些人性会仅仅因为训练过程而进入其中,但它使用的设备却完全不同,有着不同的局限。所以它做到这一点的方式可能会相当不同。
Jack:回应Emmanuel的观点,我觉得,是的,我们在回答这样的问题时确实处于一个棘手的境地。我们其实并没有合适的语言来描述语言模型到底在做什么。这就好像是在研究生物学,但还没发现细胞,或者还没发现DNA。我觉得我们正在开始填补这种理解。正如Emmanuel所说,现在有一些情况,我们确实可以做到,比如说你只要去读我们的论文,你就会知道模型是如何把这两个数字加在一起的。如果你想称它为人类般的,如果你想称它为思考,或者你不想这样称呼,那取决于你。但真正的答案是找到合适的语言和合适的抽象来谈论模型。
Jack:但与此同时,在这个科学项目上我们大概只完成了20%,剩下的80%需要去填补。我们不得不从其他领域借用类比。于是问题变成:哪些类比是最恰当的?我们该把模型当作计算机程序来看待吗?还是该把它们当作小人儿来看待?在某些方面,把它们当作小人儿来看是有用的。因为如果我对模型说刻薄的话,它会顶嘴,这就是人会做的事情。但在另一些方面,这显然不是正确的心智模型。所以我们被困在这里,不断摸索什么时候该借用哪种语言。
既兴奋又挫败,研究仅仅进行了10~20%
主持人:好吧,这就引出了我最后想问的问题:下一步是什么?接下来需要哪些科学上的进展、生物学上的进展,才能让我们更好地理解这些模型内部到底发生了什么,并且帮助我们实现让它们变得……
Josh:更安全?还有很多工作要做。我们最近的出版物里有一大段在讲我们观察方式的局限性,同时那也是一份改进路线图。比如,当我们在寻找模式以分解模型内部发生的事情时,我们可能只捕捉到了其中的几个百分点。至于它如何在内部传递信息,有很大一部分我们根本没有捕捉到。把这个规模从我们以前使用的小型生产模型扩大出来……
主持人:所以你们研究的是“三行俳句”?
Josh:没错,那是一个相当有能力的模型,非常快,但绝不是像Claude 4系列模型那样复杂。所以那些更像是技术挑战。但我觉得Emmanuel和Jackman对于解决完这些之后会出现的科学挑战也有一些看法。嗯,我是说……
Emmanuel:我在这里可能想说两点。第一点是,正如Joshua说的结果之一,就是在我们总共提出的关于模型如何完成某个X的问题中,现在我们可能只有10%到20%的时候能够回答。在稍作调查之后,我们能告诉你,这是怎么回事。显然,我们希望这个比例能大大提升。而且这里有一些更明确的途径,也有一些更具推测性的途径。
第二点是,我们经常讨论的一个想法是,模型做的很多事情并不只是“它是如何说出下一个词的”。我们之前也稍微提过,它有点像是提前规划几个东西,提前几个词。抱歉。我们想要理解的是,在和模型进行一场长对话时,它对“正在发生的事情”的理解是如何变化的?它对“正在和谁对话”的理解是如何变化的?这些又是如何越来越多地影响它的行为的?实际上,Claude这类模型的用例是,它会读你的大量文档和电子邮件。
你会把代码发给它,然后它基于这些,提出一个建议。显然,在这个过程中发生了一些非常重要的事情:它在阅读所有这些东西。所以我觉得更好地理解这一点将是一个极具挑战性的课题。
Jack:是的,我们团队经常用的一个类比是:我们正在建造一台显微镜来观察模型。现在我们处在一个既令人兴奋又有点挫败的阶段,我们的显微镜只有20%的时间能用。而且使用它需要很高的技巧,还得搭建一整套庞大的装置。基础设施总是在出问题。然后一旦你弄清楚模型在做什么,你还得把Emmanuel、我或者团队里的其他人关在一个房间里两个小时,来拼凑出到底发生了什么。而真正令人兴奋的未来,也许是一年或两年的时间尺度,就是我们能让你和模型的每一次交互都能被放到显微镜下。有一堆奇怪的事情模型在做,而我们只需要按下一个按钮。比如你在对话时,按下一个按钮,你就能得到一张流程图,告诉你它当时在思考什么。一旦我们达到那个点,这就会是……
我觉得Anthropic的可解释性团队可能会开始呈现出不同的形态。不再只是由工程师、科学家组成,去研究语言模型内部是如何运作的数学原理,而是会出现一支“生物学家大军”,他们拿着显微镜,和Claude对话,让它做一些奇怪的事情,然后人们透过显微镜观察它内部到底在想什么。我觉得这就是这个领域的未来。
让Claude自己也参与进来,研究模型内部电路形成机制
Josh:也许在这上面我补充两点。第一点是,我们希望Claude来帮我们完成所有这些工作。因为涉及的部分太多了,而真正擅长查看上百个东西并弄清楚发生了什么的,正是Claude。所以我觉得我们正尝试让它加入进来,尤其是在这些复杂语境下。
另一点是,我们已经很多次谈到“研究模型在完全成型之后”,但当然我们在一家制造这些模型的公司。所以当它说“这是模型解决某个具体问题的方式”时,我们会问:这来自哪里?在训练过程中是什么步骤让这样的电路形成,从而能做到这一点?我们又该如何把反馈提供给公司其他负责训练的团队,帮助他们塑造出我们真正想要的东西?
主持人:好的,非常感谢这次对话。人们可以在哪里找到更多关于这项研究的信息?
Josh:如果你想了解更多,你可以访问Anthropic.com/research,那里有我们的论文、博客文章和一些有趣的视频。另外,我们最近和一个叫Neuron Pedia的团队合作,把我们制作的一些电路图托管在那儿。所以如果你想亲自试试看,了解一个小模型内部发生了什么,你可以去Neuron Pedia自己看看。
主持人:非常感谢。
好文文章到这里结束了,相关的视频和博文地址,小编也为大家扒下来了,没看过瘾的大佬们可以自行去翻阅。
相关博文地址:https://www.anthropic.com/news/tracing-thoughts-language-model
视频地址:https://www.youtube.com/watch?v=fGKNUvivvnc
本文转载自51CTO技术栈,作者:云昭
