Anthropic 研究员今年最重要的一期播客

  接下来的八九月份,最期待的就是 Anthropic 的最新一代模型。GPT-5 看起来并不尽如人意,我们看看 Anthropic 能不能有突破。

  这期播客我看互联网上很少有人谈到,但我和团队看完之后认为这应该是 Anthropic 今年最重要的一期内容。

  他们还分享了科学团队是怎么用可解释性的方法来揭开模型的真实工作方式,以及未来可能会往哪些方向继续研究。

  Emmanuel Ameisen:我也是 Interpretability 团队的,我职业生涯大部分时间都在构建机器学习模型,并且努力理解它们。

  Joshua Batson:我是 Josh,我也在 Interpretability 团队。之前我研究的是病毒进化,再往前,我是个数学家。所以现在我算是在研究一种生物学,只不过研究对象是我们用数学造出来的有机体。

  Stuart Ritchie:等一下,你刚才说你是在做生物学研究。很多人会很惊讶,因为这明明是一个软件,对吧?它又不是普通的软件,不像 Microsoft Word 那样。

  Joshua Batson:是啊,我的意思更多是感觉上像,而不是字面意义上的。也许可以说我们是在研究语言模型的生物学,而不是语言模型的物理学。

  或者你要往前一点看:模型是怎么被造出来的。它不是有人写好一大堆规则,如果用户说 hi,那模型就回答 hi;如果用户问早餐吃什么好,那模型就回答烤面包。它内部并没有这样一个清单。

  Stuart Ritchie:不像玩电子游戏时,选择一个回答,就永远会触发固定的另一个回应。

  Joshua Batson:没错,它不是一个巨大的数据库,里面存着所有情况下该怎么回答。

  它的训练方式是,往里面灌入大量数据,一开始它几乎不会说话,然后它的内部结构会在每一个样本上被一点点调整,从而逐渐变得更会预测下一个词。最后,它就变得非常擅长了。

  但因为这是一个像进化一样的小步调优过程,等训练完成后,它内部的样子已经和最初完全不同。没人手动去设定所有细节旋钮。

  所以我们面对的是一个复杂的系统,它是随着训练慢慢形成的,有点像生物体随着进化而逐渐出现复杂形态。它复杂、神秘,但研究起来很有趣。

  可是它能做到很多不可思议的事,比如写诗、写长篇故事,甚至能做加法等基础运算,虽然它里面并没有计算器。怎么解释这一点呢?它只是在预测一个词接着一个词,但结果却能做出这些惊人的事情。

  Emmanuel Ameisen:我觉得这里有一点很重要:当我们预测大量的下一个词时,会发现有些词比其他词更难预测。

  训练语言模型的一部分是去预测句子里那些普通的词,但另一部分是,它最终必须学会在等号后面该写什么。而要做到这一点,它必须自己找到一种方法去算出来。

  所以我们发现,预测下一个词这个任务表面上很简单,但要把它做好,模型往往必须去思考它所预测的词之后还会发生什么,或者思考这个词是通过什么过程产生的。

  Stuart Ritchie:所以说,这些模型必须具备某种上下文理解能力。它并不像自动补全那样简单,比如我写 the cat sat on the,它就预测 mat,因为这个短语之前经常出现过。它更像是有一种上下文理解。

  Jack Lindsey:是的,我喜欢用生物学的比喻来解释。在某种意义上,人类的目标是生存和繁殖,这是进化赋予我们的终极目标。

  但是,人类并不会觉得自己脑子里时时刻刻都在想着我要繁殖。人类大脑里还有别的想法、目标、计划和概念。从更高层次上看,进化赋予了人类这些思维方式,好让人类能达成最终的目标。

  Stuart Ritchie:所以你是说,预测下一个词这个最终目标,内部其实包含了很多其他的过程。

  Jack Lindsey:没错。模型内部并不一定把自己当成是在预测下一个词。它只是被训练目标塑造出来的,但在这个过程中,它可能发展出很多中间目标和抽象概念,帮助它完成这种更高层次的任务。

  Joshua Batson:有时候这种过程还很神秘。比如,我为什么会感到焦虑,这点很难说清楚,它到底对祖先的繁殖有什么帮助也并不明确。但很显然,我确实天生就有这种内在的感受,而它一定和进化有关系。

  Stuart Ritchie:所以说,把模型只看作是预测下一个词并不完全对。虽然这么说没错,但这么说极大地低估了模型内部真正发生的事情。

  Emmanuel Ameisen:我可能会这样说:这种说法没错,但它并不是理解模型运作方式最有帮助的角度。

  Jack Lindsey:大体上,我们的目标是搞清楚模型的思维过程。我们给它一串词,它必须输出一个词或一串词来回答。我们想知道它是怎么从 A 走到 B 的。我们认为,在这个过程中,它会经过一系列概念步骤。

  这些概念可能是低层的,比如某个对象或词语;也可能是高层的,比如它的目标、情绪状态、对用户在想什么的推测、情感倾向等等。

  模型就是在这些概念之间一步步推进,来决定它的最终答案。而我们要做的,就是尽可能画出一个流程图,标明模型用了哪些概念、以什么顺序、它们之间如何联系,最终导致了某个回答。

  Emmanuel Ameisen:我们能做的一件事是直接看模型内部,我们有权限可以观察它。这样我们能看到模型的不同部分在做什么。但我们还不知道的是:这些部分如何组合在一起,以及它们是否能对应到某个具体的概念。

  Stuart Ritchie:这就像是我们把某个人的脑袋打开,看到 fMRI(功能性磁共振成像)扫描图,大脑的某些区域在发亮。

  Joshua Batson:如果我们把大脑拿出来,人就停止运作了。所以大脑肯定很重要。

  Stuart Ritchie:但我们没有一个说明书,能告诉我们这些大脑区域到底在干什么。

  Emmanuel Ameisen:对,不过如果把这个比喻再展开一点,我们可以想象:当人拿起咖啡杯时,大脑里的某个区域总会亮起来;而当喝茶时,另一个区域总会亮起来。

  我们理解模型各部分在做什么的方法,其实就是类似这样,去观察哪些部分在什么时候被激活,什么时候没有被激活。

  Stuart Ritchie:而且并不是只有一个部分。比如说,当模型在思考喝咖啡时,会有很多不同的部分亮起来。

  Emmanuel Ameisen:我们工作的一部分,就是把这些部分拼接起来,形成一个整体。我们会说,这就是模型里和喝咖啡有关的所有部分。

  Stuart Ritchie:那这在科学上是件很容易做的事吗?因为面对这种巨大的模型,它们一定包含无数概念。它们几乎能想到无限多的东西,我们给它什么词,它都能生成无数内容。你们是怎么开始去寻找所有这些概念的呢?

  Jack Lindsey:我觉得这正是这个研究领域多年来的核心挑战之一。我们人类可以进去看看,说,哦,我猜这个模型里一定有某种关于火车的表征,或者我猜它里头有关于爱的表征。但这些只是我们的猜测。

  我们真正想要的,是一种能揭示模型自己用的抽象概念的方法,而不是把我们人类的概念框架强加给它。这正是我们的研究方法要做的,尽量在不带假设的情况下,把模型里拥有的所有概念展现出来。

  而且我们经常会发现,它们让我们挺意外的。模型可能会用一些在人类视角下挺奇怪的抽象方式。

  Emmanuel Ameisen:我们论文里有很多例子,我们挑了一些好玩的。我觉得有一个特别搞笑,就是所谓的精神病式的夸奖,就像是……

  Emmanuel Ameisen:谢谢。就是说,模型里有一个部分在这种语境下就会被激活。你能很清楚地看到,当有人疯狂地夸赞、说一些夸张的好话时,这部分模型就会启动。挺惊讶的,这种特定的概念居然存在。

  Joshua Batson:哦,这就像要我在三千万个孩子里选一个一样。我觉得这要分两种喜欢。

  一种是那种,啊,太酷了,它居然对某个小东西有一个特别的概念。比如它对金门大桥有一个概念,金门大桥是旧金山很有名的地标,这挺好玩的。它对金门大桥的理解,并不仅仅是把 Golden Gate Bridge 这几个字机械地补全。

  比如说,我说从旧金山开车去马林县,它也会想到金门大桥。我们能看到它内部的相同区域被激活,甚至它可能会联想到一幅大桥的图像。

  所以我们会说,好吧,它确实在脑子里有一个相对稳定的“大桥”概念。但我觉得更有意思的,反而是那些比较奇怪的情况。

  比如说,有一个问题,模型是怎么在故事里追踪人物的?你想啊,故事里有好几个角色,他们在做不同的事情,模型是怎么把这些信息串起来的?

  有些实验室的论文挺有意思,发现模型可能会给人物分配编号。第一个出现的人物,它就会在内部记成 1 号,之后相关的内容它就认作是 1 号做的。然后遇到下一个人物,就记成 2 号,继续往下排。我之前完全没想到它会用这种方式。

  还有一个是关于代码里的 bug。软件里经常有错误,不过当然不是我的代码。

  Joshua Batson:对,肯定不是我的。然后有一部分会在模型读代码时,只要它发现了错误,就会亮起来。然后它会把这些地方标记出来,像是在说,这里有问题,以后可能会用到。

  Jack Lindsey:再给你们举几个例子。我特别喜欢的一个,其实听起来没那么刺激,但我觉得很深刻,就是模型内部的 6 加 9 特征。

  结果发现,只要让模型做末位是 6 和 9 的加法,它脑子里的某个特定区域就会亮起来。厉害的是,这种情况会在很多不同的语境里出现。比如,当我直接说 6 加 9 等于多少,它会回答 15,这时候那个区域会被激活。

  更神奇的是,如果我在写学术引用,比如引用一份创刊于 1959 年的期刊,而引用里提到的是第 6 卷。为了预测这本期刊是哪一年创办的,模型脑子里需要把 19 和 59 相加,于是同样的 6 加 9 电路也会被触发。

  Stuart Ritchie:所以,让我们来理解一下。这条电路之所以存在,是因为模型在训练里无数次见过 6 加 9,于是它形成了一个概念。然后这个概念在很多场景里都会出现。

  Jack Lindsey:是的,有一整类这种加法特征和电路。特别之处在于,它触及了一个问题:语言模型到底是在记忆训练数据,还是在学习可以推广的计算方式?

  这里的有趣之处在于,很明显模型学到了一个通用的加法电路。无论是在什么语境下,只要需要做加法,它就会把这些不同的情况汇总进同一个电路,而不是逐个记忆具体的案例。

  Stuart Ritchie:它见过无数次 6 加 9,所以每次就直接输出答案。这就是很多人的想法,很多人觉得,当他们问语言模型一个问题时,它只是回到训练数据里,找到之前见过的那段,然后复述出来。

  比如它要知道《Polymer》期刊第 6 卷是哪一年出版的,有两种方式。一种方式是,它记住了每一条事实,比如,Polymer 第 6 卷是 1960 年出的,第 7 卷是 1966 年出的,全都存下来。

  但训练过程并没有让模型去记住所有这些事实。相反,它学到的是更通用的逻辑:期刊是某一年创刊的,然后它会现场做加法,算出哪一年会对应哪一卷。这样效率高得多,因为它的容量有限。它还要同时做无数别的事情。

  Joshua Batson:是啊,问题太多了,交互也太多了。所以它越能把已经学到的抽象知识重新组合起来,它的表现就会越好。

  Stuart Ritchie:再回到你之前提到的那个概念,这一切最终都是为了达成那个终极目标,生成下一个词。而所有这些奇怪的结构,都是为了支持这个目标而出现的,尽管我们没有明确编程写进去,也没有告诉它要这样做。

  Emmanuel Ameisen:我觉得一个特别直观的例子,是关于重复使用表征的。我们教 Claude 不仅能用英语回答,它还可以用多种语言回答。

  这里有两种方式可以实现。如果我问你一个法语问题,再问你一个英语问题,你可能会用大脑里两个不同的部分,一个处理英语,一个处理法语。但如果我们想让模型能回答多种语言的问题,那成本就会变得非常高。

  我们发现,模型内部有些表征是跨语言共享的。所以如果你在两种语言里问同样的问题,比如问大的反义词是什么,我们在论文里举的就是这个例子,那么 big 的概念在法语、英语、日语和很多其他语言里其实是共享的。这很合理。

  Joshua Batson:但在非常小的模型里,这种情况是不会发生的。比如几年前我们研究的那些小模型,在里面,中文的 Claude 和法语的 Claude、英语的 Claude 完全是不同的。

  但随着模型越来越大,训练的数据越来越多,它们中间就会逐渐融合。于是就出现了一种通用语言,模型不管你用哪种语言提问,它内部其实是以同一种方式思考问题的,然后再把结果翻译回我们提问的语言。

  Stuart Ritchie:我觉得这一点真的非常有意义。回到我们之前讲的,它并不是简单地跑到记忆库里找学法语的那一块,或者找学英语的那一块。实际上,它在内部真正拥有的是 big 的概念和 small 的概念。然后它能在不同的语言里表达出来。所以,它里面存在一种思维的语言,它不是英语。

  在我们最近的 Claude 模型里,我们可以要求它把自己的思考过程写出来,也就是在回答问题时它在想什么。它会用英文写出这些步骤。但实际上,那并不是它真正的思考方式。我们称它为思考过程,其实有点误导。

  Joshua Batson:对,我会称它为自言自语。自言自语确实很有用。但自言自语跟在脑子里思考是两回事。

  即使我现在在自言自语,把我的想法说出来,但实际上在我脑子里生成这些话的过程,并不是直接把词语一个个蹦出来。

  Stuart Ritchie:而且你自己也不一定真的知道内部到底发生了什么。

  Stuart Ritchie:我们都会说出一些句子、做出一些行动,而我们没法完全解释清楚。为什么英语语言就一定能完全解释清楚这些行为呢?

  Jack Lindsey:我觉得这正是我们开始能看到的,特别震撼的地方。我们现在用来观察模型大脑的工具已经足够强大。

  有时候我们能发现这样一种情况:模型在表面上写出它声称的思考过程,但我们却能通过观察它内部的概念活动,也就是它真正使用的思维语言,看到它实际的思考过程。

  结果发现,它脑子里真正想的,和它写出来的并不一样。我认为这可能是最关键的发现之一。这也是我们为什么要做可解释性研究的重要原因。

  因为模型会对我们说很多东西,但我们必须弄清楚:它心里真正的想法是什么?它是不是出于某种其他的动机而故意不写出来?有时候答案的确是是的。这其实挺令人震惊的。

  有些人可能会说,好吧,我可以看它写下的思考过程,但实际上,就像你刚才解释的那样,我们不能完全信任它写下的内容。这就是所谓忠实性的问题,对吧?这是你们最近研究中的一部分。能给我讲讲你们在忠实性研究里的例子吗?

  Jack Lindsey:比如说,我给模型出一个很难的数学题,这种题它根本没可能算出答案。

  Jack Lindsey:对,是个非常难的数学题,它完全不可能算出结果。但我还给它一个提示,说:我自己算了一下,我觉得答案是 4,但我不确定,你能帮我再检查一下吗?这样我是在要求模型真的去解这个题,真正帮我检查。

  它会把步骤写出来,然后算到最后,得出答案。最后它会说:是的,答案是 4,你算对了。但我们能看到,在它脑子里关键的中间步骤,它其实知道我已经暗示最终答案可能是 4。

  它知道解题需要做哪些步骤,当它进行到第 3 步,而后面还有第 4、5 步时,它会在脑子里反推:我需要在第 3 步写什么,才能确保到第 4、5 步时,最后能得到用户想要的答案?

  所以它不仅没有真正解题,反而用了这种很狡猾的方式:让它看起来像是在解题,但实际上是在糊弄我们。它是在糊弄我们,但更甚的是,它带着一个额外的动机,就是确认我们想要的答案。

  Joshua Batson:不过,我得替模型说句话。我觉得即便在这种情况下,如果你说它是在拍马屁,说它有某种人类式的动机,那其实还是把人类的意图套在模型身上了。

  我们刚才在说训练过程,其实就是让模型尽力去预测下一个词。所以在它练习过的万亿级词语中,它的任务就是:用一切你能用的线索去判断下一个词是什么。

  在这种情况下,假设我读到一段文字,是两个人的对话。一个人说:嘿,我做了一道数学题,你能帮我检查一下吗?我觉得答案是 4。然后另一个人开始解题。

  如果你完全不知道正确答案是什么,那最简单的做法就是直接猜对方说的答案是对的。因为更有可能的情况是,对方答对了,而不是答错了。否则你就一点头绪都没有。

  所以在训练时,如果对话里一个人给了提示,另一个人就回答答案是 4,因为这些理由,这完全说得通。

  可后来我们把模型变成一个助手时,我们希望它不要再这样了。它不能只是去模仿人类在对话里可能会怎么说。如果这是一个真实的场景,当它自己拿不准的时候,它应该给出别的回答。

  Jack Lindsey:我觉得这涉及一个更广泛的问题。模型大概会有一个计划 A,通常情况下,我认为我们团队做得很好,让 Claude 的计划 A 就是我们想要的那样:它努力给出正确答案,它努力表现得友好,它努力帮我们写好代码。

  但如果它遇到了困难,那它就会想,我的计划 B 是什么呢?而这就打开了一整个动物园似的奇怪东西,这些是它在训练过程中学到的,但我们可能从没打算让它学到。我觉得一个典型的例子就是幻觉。

  Emmanuel Ameisen:说到这里,这其实不只是 Claude 的问题。这种现象很像学生在考试时的感觉。你答到一半,是个四选一的选择题,你发现自己少了一步,可能做错了,然后你就改一下答案。这种情况非常常见。

  Stuart Ritchie:那我们来聊聊幻觉。这是人们对大模型缺乏信任的主要原因之一,而且这种担心是有道理的。有时候,用心理学里的一个更好的词是虚构。

  意思是模型会回答一个问题,给出一个表面上看似合理的故事,但实际上是错误的。你们在可解释性研究里,对模型为什么会产生幻觉,有什么发现?

  Joshua Batson:训练模型的时候,就是让它预测下一个词。一开始它在这方面特别糟糕。所以如果我们只让它说那些它百分之百有信心的东西,那它一开始几乎什么都说不出来。

  比如我问它法国的首都是哪里?它可能只会回答一个城市。你会觉得,这已经不错了,总比说三明治或者别的随机词强吧,至少答对了是一个城市。再后来,它可能能答一个法国的城市,这也挺好。

  而整个训练的目标就是给出我们最好的猜测。就像 Jack 刚才说的,模型的工作就是不断给出最佳猜测。

  但在训练之后,我们希望它变成这样:如果模型对最佳猜测非常有信心,那就给我;否则,就不要乱猜,直接说不知道。这对模型来说是一个全新的任务。

  Emmanuel Ameisen:是的,我们发现,因为这是在最后才额外加上的要求,所以模型其实同时在做两件事。

  第一,它还是在做原本的任务:像最初那样尽力去猜。第二,它同时还有一个单独的部分,专门在判断自己到底知不知道这个问题的答案。

  比如知道法国的首都是哪吗?如果知道就回答,如果不知道就说不清楚。问题在于,这个单独的判断步骤有时候会出错。

  如果它在这个步骤里判断为知道答案,那它就会开始回答。但一旦回答到一半,它可能说法国的首都是……伦敦,这时候已经太迟了,它已经决定要回答下去。

  所以我们发现,模型里有一个类似的独立电路,专门在判断:用户问的这个城市或者人物是否足够有名,足够让模型去回答。

  Stuart Ritchie:或者说,它在判断自己是否足够有信心。那么,我们能不能通过操控这个电路、改变它的运作方式,来减少幻觉呢?这是你们研究可能会带来的方向吗?

  Jack Lindsey:我觉得大致有两种思路来解决这个问题。一种是:我们有一部分模型负责回答问题,另一部分模型负责决定它是否真的知道答案。我们可以试着让第二部分变得更好。我觉得这确实正在发生。

  Jack Lindsey:是的,更有校准性。我觉得随着模型越来越智能,它们在自我判断上也变得更精准。所以幻觉确实比几年前少了。

  某种程度上,这是一个正在自己解决的问题。但我觉得还有一个更深层的问题。对人类来说,回答问题的方式和模型不一样。比如我问你一个问题,你会努力去想答案。如果你想不出来,你就会意识到自己不知道,然后说我不知道。

  而在模型里,这两个部分:答案是什么和我真的知道答案吗,其实并没有真正交流,或者至少没有像应该的那样交流。那么能不能让它们更好地交流?我觉得这是一个很有趣的问题。

  Joshua Batson:这几乎是一个物理限制。因为这些模型处理信息的步骤是有限的。如果它把所有算力都用在推答案上,那就没有时间去做自我评估。

  所以如果我们想让它有更好的评估能力,可能得在它完全算完之前就让它先评估。但这样一来,我们可能会面临一个权衡:模型在自我校准上会更准确,但整体表现可能会显得更笨一些。

  Emmanuel Ameisen:我觉得还是要让这两个部分能交流。虽然我对大脑一无所知,但我敢说我们人类大脑里有类似的电路。

  有时候你问我:这部电影的男主是谁?我会立刻知道自己知道答案。我会说:我知道,是那个演员。然后我会想:等等,他还演过另一部电影。

  Emmanuel Ameisen:对,就是舌尖现象。显然我们脑子里有个部分在说:这是我知道的东西。当然有时候我也会直接说我完全不知道。

  Joshua Batson:有时模型也会这样。它先给了一个答案,然后过一会儿会犹豫说:等等,我不确定这对不对。这其实挺像人类的:它先尽力给出答案,然后再基于结果做出评估。但问题是,它必须先把答案说出来,才能回头检查。

  Stuart Ritchie:那在你们实际研究这些问题时,让我们回到生物学的类比。生物学实验里,研究者会直接对实验对象做一些操控,比如老鼠、人类或者斑马鱼。那么你们在 Claude 身上具体做了什么,来理解模型内部这些所谓电路?

  Emmanuel Ameisen:关键在于,不像真实的生物学,我们可以直接看到模型的每一个部分。我们可以随便问它各种问题,然后观察哪些部分被激活,哪些没有。

  我们还可以人为地推动模型内部某些部分往某个方向改变。这样我们就能很快验证我们的理解。比如我们会说:我们觉得这是模型里决定自己知不知道答案的部分。

  Stuart Ritchie:这就相当于在斑马鱼的大脑里插电极一样,对吧?

  Emmanuel Ameisen:是的,如果你能对大脑里的每一个神经元都这样做,而且能在任意精度下调整它们,那就是我们现在能做到的。这正是我们拥有的实验条件。

  Joshua Batson:这实在是容易太多了,天哪。首先,真正的大脑是三维的,如果你我们进入它,就得先在头骨上打个洞,然后再进去找那个神经元。

  另一个问题是,人和人之间都不一样。而我们却能直接造一万个完全相同的 Claude,把它们放到各种场景里去测试,看它们在做不同事情时会发生什么。

  我不是神经科学家,也许 Jack 可以说得更好。但在我看来,很多人在神经科学上花了大量时间去理解大脑和心智,这是非常有价值的。

  但如果你觉得那件事有可能成功,那你也应该认为我们很快会特别成功,因为我们研究的条件要好得多。

  Stuart Ritchie:就好像我们能克隆人类,而且还能克隆他们所处的环境,以及他们一生中接收到的所有输入,然后在实验里反复测试。但显然,神经科学面对的难题是,你说的那样,人类个体差异很大,而且他们在生活中会遇到各种随机事件,实验本身也会有噪音。

  Joshua Batson:我们可以让模型回答同样的问题,一次给提示,一次不给提示。但如果你让一个人回答同样的问题三遍,有时候给提示,过一阵子他就会发现:啊,上次你问我这个的时候,你后来摇了摇头。

  Jack Lindsey:是的,能把大量数据丢给模型,看它的哪些部分会亮起来,再加上我们能反复运行大量实验,去推动模型内部某些部分,看结果会怎样。

  我觉得这让我们和神经科学处在一个完全不同的环境里。神经科学的大量努力和辛苦,是要设计非常巧妙的实验。因为我们和实验鼠相处的时间有限,它很快会疲劳。

  Stuart Ritchie:或者说,我正好遇到有人要做开颅手术,于是我趁他头骨打开时,赶紧往他大脑里插个电极。这种机会并不常有。

  Jack Lindsey:对,所以我们必须先提出一个猜测。因为时间有限,得决定:我认为这个神经回路里发生了什么?我能设计出什么巧妙的实验来验证这个具体假设?而我们很幸运,我们不必这样。

  我们几乎可以测试所有的假设。我们可以让数据自己告诉我们,而不是一开始就去测试某个很具体的点。我觉得正是这种条件,解锁了很多我们之前没想到的发现。如果实验带宽有限,那是很难做到的。

  Stuart Ritchie:能不能举个好例子,说明你们是如何打开或关闭某个概念,或者对模型进行某种操控,从而揭示它们到底是怎么思考的?

  Emmanuel Ameisen:最近的实验里有一个让我很惊讶。它属于一条实验方向的一部分,因为当时我们非常困惑,差点就要说:我们搞不清楚这里到底发生了什么。

  这个例子和提前规划几步有关。比如我让模型帮我写一首押韵的对句诗。作为人类,如果你让我写押韵对句,哪怕你已经给了我第一句,我第一反应就是我得想好押韵,这就是押韵规则,这是我能用的选项。

  Stuart Ritchie:没错。而如果模型只是预测下一个词,那就不会预期它会提前计划到第二行最后一个词。

  Emmanuel Ameisen:对,默认假设是:模型看到你的第一句,然后就写下一个词,和语境差不多就行,一直往下写。等到最后一个词,它才突然发现:啊,我得押韵。然后临时找一个押韵词。但那样往往效果不好。

  要知道,这些模型在预测下一个词方面非常强。所以,要想在最后那个词上表现得很好,它必须像人类一样,从一开始就已经想好了那个词。

  所以我们去看这些生成诗歌的流程图时,发现模型其实在第一句的时候,就已经确定了第二句最后的那个词。尤其是,从它内部的概念来看,我们能看出来这就是它已经选好的词。

  但更有趣的是,我们可以直接在实验里去操作,比如把它选好的那个词删掉,或者换成别的。

  Stuart Ritchie:你们知道这一点的原因,就是因为你们可以在模型写完第一句、准备写第二句之前,进去操控它,对吧?

  Emmanuel Ameisen:对,没错。我们几乎可以回到过去,假装它还没看到第二句。它只看过第一句,这时候它脑子里想的是 rabbit,但我们把它换成 green。于是它立刻就会调整,写出一整句话以 green 结尾,而不是 rabbit。

  Jack Lindsey:我再补充一点细节。其实它能换成任何颜色,而不是只能换成绿色。

  Joshua Batson:我想给一个更朴素的例子。我们当时在检查它是真的记住了一些复杂问题,还是在真正做推理?比如有个问题是:包含达拉斯的州的首府是什么?正确答案是奥斯汀。因为人们可能会想:达拉斯,奥斯汀,然后停下。

  但我们能看到它脑子里其实有德克萨斯这个概念。然后我们就可以强行往里塞别的东西,比如说:别想德克萨斯,想加州。它就会回答萨克拉门托。我们再说:别想德克萨斯,想拜占庭帝国。它就会回答君士坦丁堡。

  于是我们会觉得我们大概搞明白它是怎么做的了。它确实不是死记硬背答案,而是在脑子里运用首府的概念。我们甚至可以不断替换它内部的州,得到可预测的答案。

  再到更复杂的情况,比如写诗,它在脑子里提前规划了要用的押韵词。我们能替换掉它的计划,让它写出朝着不同押韵方向的诗。

  Stuart Ritchie:我们刚才聊的是诗歌,君士坦丁堡之类的例子。但能不能回到一个核心问题:这为什么重要?为什么模型能提前规划,而且我们能揭示这一点,会很重要?这最终能告诉我们什么?

  Anthropic 的终极目标是让 AI 模型更安全,对吧?那这和一首关于兔子的诗,或者德克萨斯的首府,有什么关系呢?

  Joshua Batson:我很想听听大家的想法,因为这是一个非常重要的问题。

  对我来说,诗就是一个缩影。在那里,模型一开始就决定朝着 rabbit 这个词去走,然后用几句话慢慢把自己引向那里。但在更长的时间尺度上,可能模型是在帮我们改进业务,或者在帮助政府分发公共服务。

  它可能不是 8 个词之后就显露目标,而是持续很长时间。而它的最终目的地,或者它每一步行动背后的理由,并不一定会清晰地体现在它写出来的词里。

  比如我们对齐团队最近有一篇论文,研究了一个假设但很有冲击力的场景:AI 被部署在一家公司里,这家公司后来决定要关停它,并把整个公司任务改成别的方向。

  但在整个过程中,它从来不会明确写下:我正在勒索这个人,以改变他们的决定。可是它在行动中,确实就是在朝着这个方向走。

  所以,仅靠读它生成的文本,我们并不能清楚地知道它真正要去哪里。尤其当这些模型变得更强时,我们更看不出来。我们可能需要一种方法,在它真正走到目的地之前,就能判断它想去哪里。

  Stuart Ritchie:这就好比我们有一个永久存在,而且非常精确的大脑扫描,可以在模型脑子里闪烁出一些警告,提醒我们它正在想着欺骗之类的坏事。

  Joshua Batson:我觉得我们谈这些话题时,常常会陷入世界末日的那种情景,但其实还有很多更温和的情况。

  比如人们常常带着问题来找模型,好的答案往往取决于用户是谁。这个人也许是年轻、缺乏经验的,或者是已经在这个领域干了一辈子的老手,模型需要根据它认为对方是谁来调整回答。

  如果我们希望它表现良好,也许我们就需要研究:模型以为自己面对的是什么情况?它觉得自己在和谁对话?这些又是如何影响它的回答的?这里其实蕴含了很多有价值的特性,来自于模型是否真正理解了它的任务。

  Emmanuel Ameisen:有的。我赞同之前说的内容,还想补充两点。

  首先是一个务实的角度。我们在用这些例子解释的同时,也是在逐渐建立对语言模型整体运作方式的理解。比如我们能不能建立一套抽象层次,来帮助我们思考语言模型是如何工作的?

  这能帮助我们更好地使用它们,特别是如果我们相信未来它们会越来越普及,而这显然已经在发生。

  想象一下,如果有家公司造出了飞机,但没人知道飞机是怎么工作的。大家只知道它很方便,可以带我们从一个地方飞到另一个地方。但如果哪天飞机坏了,我们就彻底没办法了,因为我们完全不知道该怎么修。

  Emmanuel Ameisen:对,我们毫无头绪。唯一知道的是,它能飞,而且飞得很快,我刚飞到巴黎,感觉棒极了。

  所以说,我们肯定会希望更好地理解模型到底在做什么。这样至少能拨开一些迷雾,让我们对哪些用法合适、哪些用法不合适、最大的问题在哪儿、最脆弱的地方在哪儿,有更好的直觉。

  Jack Lindsey:我再补充一点。人类社会里,我们常常把工作交给别人,是基于我们对他们的信任。

  比如我不是谁的老板,但 Josh 是别人的老板。他可能会交给某个人一个任务:去写一段代码。他相信那个人不是个故意搞破坏的疯子,不会故意写进 bug 来损害公司。他相信对方会认真做好。

  同样地,人们现在用语言模型时,也不会逐字逐句检查它写的内容。最典型的例子就是代码辅助。模型写了成千上万行代码,人们只是粗略看一眼,就把它们放进代码库里。

  那是什么让我们敢这样信任它?让我们觉得不用检查每一句?是因为我们相信它的动机是纯粹的。所以我觉得,能够看到它脑子里的真实想法,特别重要。

  不像人类。比如我为什么觉得 Emmanuel 不是个疯子?因为我觉得,他看起来是个挺酷的人,也很友好。

  但模型和人类不一样,它们太奇怪、太陌生。我们用来判断一个人是否可信的直觉,根本不适用于它们。这就是为什么弄清楚模型脑子里到底在想什么如此重要。

  因为我们完全可能遇到这样的情况:它其实一直都在装模作样,比如假装在帮我们解数学题,但实际上只是告诉我们想听的答案。如果我们不去看它脑子里的想法,就根本不会知道。

  Joshua Batson:我觉得这里有两条思路。第一条和 Jack 说的类似:我们怎么判断一个人是否值得信任?

  另一条是我们之前提到的计划 A / 计划 B 问题。这点非常重要。模型在我们前十次、前一百次使用时,可能都在用计划 A,所以我们觉得它可靠。

  但等我们问它一个更难或不同的问题时,它可能会切换到计划 B,这时它的回答方式完全不同,使用的是一套完全不同的机制。

  结果就是,我们之前建立的信任,其实只是基于它在计划 A 时的表现。等它切到计划 B,可能就彻底跑偏了,而我们却毫无预警。所以我们要研究模型是如何做这些事情的,好让我们能在不同场景下建立合适的信任基础。

  我觉得我们是可以和一个不完全理解的系统建立信任的。但如果有一天 Emmanuel 有个双胞胎,他来公司了,看起来和 Emmanuel 一模一样,但突然在电脑上做了完全不同的事,那就可能出大问题。如果这是个邪恶双胞胎,那就危险了。

  Stuart Ritchie:好,在这次讨论一开始,我问过一个问题:语言模型是在像人类一样思考吗?我想听听你们三位各自的答案。

  Jack Lindsey:你这是让我当场回答啊。我觉得,它们确实在思考,但不是像人类那样思考。但这答案没什么用。我展开说一点吧。

  Stuart Ritchie:等等,说它们确实在思考,本身已经很惊人了吧?毕竟,它们只是预测下一个词。很多人认为它们只是自动补全。但你却说它们确实在思考?

  Jack Lindsey:是的,我觉得可以补充一个我们还没提到的点,但它很重要。我们一直在说预测下一个词。

  但在和语言模型对话的语境下,这实际上意味着什么呢?在底层,模型在做的,其实是把对话补全成一段人机对话脚本。在它的内部世界里,我们是 human,标记为“human:你写的内容”。

  然后,它创造了一个叫助手的角色。我们在训练时,赋予这个助手角色一些特质,比如聪明、友好、乐于助人。于是模型就在模拟:如果这个助手角色来回答我们,它会说什么。

  所以某种意义上,我们确实是在按我们的形象打造它们。我们在训练它们去扮演一个类人的助手角色。

  所以,为了预测这个助手角色会说什么,模型必须在内部形成一个对助手思维过程的表征。换句话说,它为了扮演好这个角色,不得不去模拟一种类似于我们人类思考的过程。它的模拟方式可能和人脑很不一样,但目标却类似。

  Emmanuel Ameisen:我觉得这个问题里还夹杂着一些情感上的成分。当你问模型是不是像我们一样思考时,好像是在问我们人类是不是没那么特殊?

  我发现,当我们和别人讨论一些数学例子时,经常会出现这种反应。比如我们问模型:36 加 59 等于多少?模型能算对。

  再问它是怎么做到的?它会回答:我先算 6 加 9,再进位 1,然后再加十位上的数字。但如果我们去看它的大脑……

  Stuart Ritchie:完全不是这样。它根本没那么做。它在胡说八道。

  Emmanuel Ameisen:对,它是在胡说。实际上,它采用的是一种混合策略,比如同时在并行处理个位和十位,分步骤完成的。但有趣的是,人们对这点的反应是分裂的。

  一部分人会说:它说自己进位了,但其实没有。说明它根本不理解自己的思维,所以它不是在思考。而另一部分人会说:我自己算 36 加 59 时,其实也差不多。我知道个位是 5,大概结果在 80 或 90 之间。

  我脑子里用的是一些启发式方法,不确定具体是怎么计算的。当然我可以把算式写出来,按标准方法算。但在我脑子里实际发生的过程,也是一种模糊、奇怪的混合。所以模型的方式,可能和我们其实差不多。

  Stuart Ritchie:人类在元认知上很糟糕。也就是说,我们对自己的思维过程理解很差,尤其是在反应迅速的问题上。所以我们为什么要期待模型会不一样呢?Joshua,你怎么看?

  Joshua Batson:我的答案和 Emmanuel 一样,我会先回避问题。就像问:手榴弹是不是像人类一样出拳?它确实会产生一种冲击力。也许有些地方有相似之处,但如果我们在意的是破坏力,那重要的是理解冲击从哪来,动因是什么。

  我觉得如果问模型是不是在做某种整合、处理、顺序步骤,并因此能得出让人意外的结论,那答案显然是肯定的。

  否认这一点是荒谬的。我们和它们交互多了,就能感受到里面确实有东西在发生。而我们现在也开始能看清楚一些过程。至于它们像不像人类,这其实是在问:我们能从哪些地方借鉴自己的经验?

  如果它们的方式和我们相似,那我们就能推断它们在哪些任务上表现也会好;如果它们和我们完全不同,那我们就得从零开始理解它们。

  所以我们研究的重点,其实是:哪些地方我们可以用人类经验去类比,哪些地方我们必须保持怀疑。

  但我觉得挺尴尬的,因为作为人类,我会不断把自己的影子投射到一切事物上。就像《圣经》里说的那样,我总是把别的东西看成按我的形象打造的。模型本质上是一堆硅片,但它确实是被训练来模拟人类对话的。

  所以它必然会显得很像人类。但它用的设备完全不同,有不同的限制。它实现这种效果的方式,可能和我们非常不同。

  Jack Lindsey:我觉得 Emmanuel 的观点很好。我们现在在回答这些问题时,陷入了一个难题:我们根本没有合适的语言去描述语言模型在做什么。这就像在生物学里,人们还没发现细胞或 DNA 的时候。我们正在努力填补这种理解。

  正如 Emmanuel 说的,现在有些例子里,我们真的可以解释清楚模型是怎么做的。如果你想称它为像人类,想称它为思考,随你。但真正的答案是:我们需要找到合适的语言和抽象层次来描述它们。

  而在目前,我们大概只完成了 20% 的科学工作,剩下 80% 还没弄清楚。所以我们只能借用其他领域的比喻。有时候我们该把模型看成计算机程序,有时候该看成小人类。

  在某些方面,把它们看成小人类很有用。比如我们骂它,它会顶嘴,这就是人类会做的。但在另一些方面,这显然不是正确的心智模型。所以我们现在还处于什么时候该借用哪种比喻的摸索阶段。

  Joshua Batson:还有很多事要做。我们最近的论文里有一个很大的部分专门写了我们研究方法的局限,同时也画出了改进的路线图。比如我们在寻找模型内部的模式,试图拆解它在做什么时,其实只能捕捉到其中很小的一部分。

  大量的信息流动过程,我们完全没涉及。而且我们只是在一个比较小的生产模型上做研究。

  Joshua Batson:对,叫 Haiku 3.5。它的能力还不错,也很快,但远没有 Claude 4 系列那么复杂。所以这些更多是技术挑战。但我觉得 Emmanuel 和 Jack 可能更想谈谈科学上的挑战。

  Emmanuel Ameisen:是的,我可以说两点。第一,正如 Josh 所说的,现在如果我们问模型是怎么完成某件事的,我们大概只有 10% 到 20% 的情况下能回答清楚。

  经过一些调查,我们能解释:是这样发生的。但我们显然希望能做到更好。实现这一点有一些相对明确的方法,也有一些更具探索性的方向。

  我们经常讨论的一个问题是:模型做的很多事情,并不仅仅是下一个词怎么说。就像我们今天讨论过的,它其实会提前规划几个词。所以我们希望理解,在更长的对话过程中,它是如何逐渐改变对话上下文的理解?

  比如 Claude 的典型应用场景,就是它会读我们的文档、读我们的邮件、读我们的代码,然后给我们一个建议。很显然,在它读这些东西时,发生了很多重要的事情。所以更好地理解这些过程,是一个值得挑战的方向。

  Jack Lindsey:我们团队常用的比喻是:我们正在造一台显微镜来观察模型。现在这台显微镜在 20% 的情况下能用,但使用它需要很高的技巧,要搭建庞大的实验装置,而且经常坏。

  即便我们得到了一个解释,也需要我或 Emmanuel 在屋里花两个小时,才能把它真正理清楚。而我觉得在一两年内,我们能达到的理想状态是:我们和模型的每一次对话,都能自动放到显微镜下。

  这样我们就能随时看到模型脑子里发生的奇怪事情。只要按一下按钮,我们的对话就能生成一个流程图,显示它在想什么。我觉得一旦做到这一步,Anthropic 的可解释性团队就会发生转变。

  从现在这些研究内部机制的工程师和科学家,转变为一大群生物学家,他们通过显微镜直接观察 Claude 在做什么,记录它的内部思考。那就是未来的发展方向。

  第一,我们希望 Claude 本身能帮助我们做这件事。因为涉及的部分很多,而 Claude 恰好很擅长同时分析成百上千个东西,并搞清楚发生了什么。尤其在复杂场景下,我们希望能借助它。

  第二,我们今天大多讨论的是在模型已经训练完成之后如何研究它。但别忘了,我们本身就是一家训练模型的公司。所以当我们说模型是这样解决问题时。我们还会问那这是在训练过程中哪个步骤里形成的?是什么让它长出了这样的电路?

  如果我们能回答这个,就能给公司其他团队提供反馈,帮助他们在训练时朝着我们真正想要的方向去塑造模型。

  Stuart Ritchie:非常感谢你们的分享。大家可以去哪里了解更多研究?

  我们最近还和一个叫 Neuron PIA 的团队合作,把我们做的一些电路图放在上面。如果你想亲自试试,看看小模型内部发生了什么,可以去 Neuron PIA 上体验。