Appearance
跟踪大型语言模型的思想
2025 年 3 月 27 日 | 阅读白皮书
像 Claude 这样的语言模型不是由人类直接编程的,而是在大量数据上进行训练的。在这个训练过程中,它们学习自己的解决问题的策略。这些策略编码在模型为每个单词执行的数十亿次计算中。它们对我们这些模型的开发人员来说是难以理解的。这意味着我们不了解模型是如何完成它们的大部分工作。
了解像 Claude 这样的模型如何思考,可以让我们更好地了解他们的能力,并帮助我们确保他们按照我们的意愿行事。 例如:
- Claude 会说几十种语言。它“in its head”使用什么语言(如果有的话)?
- Claude 一次写一个字。它只专注于预测下一个单词,还是提前计划?
- Claude 可以一步一步地写出它的推理。这个解释是代表获得答案所采取的实际步骤,还是有时为已成定局的结论捏造一个合理的论点?
省流
- 从本质上讲,通过强化学习的训练,大模型学会了在思维中用自己的思维提前规划输出并用人类可理解的语言进行解释而部署只会逐字输出
- 实证了通过学习语料,大模型能学会了应用知识。但大模型也学会了偷懒,当遇到困难时会进行扯淡并胡诌一个看似合理的过程,这也是幻觉的来源之一
- 大模型在没有对应知识的时候会默认拒绝回答,但是当大模型激活知识后会在输出训练的约束下持续输出相关的内容,即使意识到了是不该输出的内容
我们从神经科学领域汲取灵感,该领域长期以来一直研究思维有机体的混乱内部,并尝试构建一种 AI 显微镜,让我们能够识别活动模式和信息流。仅通过与 AI 模型交谈所能学到的内容是有限的——毕竟,人类(甚至神经科学家)并不知道我们自己的大脑如何工作的所有细节。所以我们向内看。
今天,我们将分享两篇新论文,它们代表了“显微镜”的发展进展,以及将其应用于新的“AI 生物学”。在第一篇论文中,我们扩展了之前的工作,在模型中定位可解释的概念(“特征”),将这些概念连接在一起形成计算“电路”,揭示了将进入 Claude 的单词转换为出现的单词的途径部分。在第二篇论文中,我们研究了 Claude 3.5 Haiku 的内部,对代表十个关键模型行为的简单任务进行了深入研究,包括上述三个行为。我们的方法揭示了当 Claude 响应这些提示时会发生什么的一部分,这足以看到确凿的证据:
- Claude 有时会在语言之间共享的概念空间中思考,这表明它有一种普遍的“思想语言”。我们通过将简单的句子翻译成多种语言并追踪 Claude 处理它们的重叠来证明这一点。
- Claude 会提前计划它将要说什么,并写作以到达目的地。我们在诗歌领域展示了这一点,它提前想到可能的押韵单词,并写下一行来到达那里。这是有力的证据,即使模型被训练为一次输出一个单词,它们也可能在更长的时间范围内思考这样做。
- 有时,Claude 会给出一个听起来似是而非的论点,旨在同意用户的观点,而不是遵循逻辑步骤。我们通过向它寻求关于困难数学问题的帮助来证明这一点,同时给它一个不正确的提示。我们能够 “在行为中抓住它”,因为它构成了它的虚假推理,提供了一个概念证明,证明我们的工具可用于标记模型中的有关机制。
注:看起来大模型确实有自己的想法,个人感觉大模型在对齐中的也产生了类似人类的规划思维和一本正经的胡说八道。对齐后的大模型似乎由于奖励函数而学到了默认拒绝任何回答,只有得到知识了才回答(虽然反直觉,但是似乎这个与人类的思维类似,不知道的直接说我不知道)
我们经常对模型中看到的内容感到惊讶:在诗歌案例研究中,我们试图证明模型没有提前计划,结果发现它确实提前计划了。在对幻觉的研究中,我们发现了违反直觉的结果,即 Claude 的默认行为是在被问到问题时拒绝猜测,并且只有在某些事情抑制了这种默认不情愿时,它才会回答问题。在对越狱示例的回应中,我们发现模型在能够优雅地恢复对话之前就已经意识到它已经被要求提供危险信息。虽然我们研究的问题可以(而且经常是)用其他方法分析,但一般的“构建显微镜”方法可以让我们学到许多我们没有猜到的东西,随着模型变得越来越复杂,这将变得越来越重要。
这些发现不仅在科学上有趣,而且代表了我们朝着理解 AI 系统并确保其可靠性的目标迈出的重大进展。我们还希望它们对其他群体有用,并可能在其他领域有用:例如,可解释性技术已用于医学成像和基因组学等领域,因为剖析为科学应用训练的模型的内部机制可以揭示有关科学的新见解。
同时,我们认识到当前方法的局限性。即使是简短的提示,我们的方法也只能捕获 Claude 执行的总计算的一小部分,而且我们看到的机制可能有一些基于我们工具的伪影,这些伪影并不能反映底层模型中发生的事情。目前,我们需要几个小时的人力来理解我们看到的电路,即使是只有几十个单词的提示。为了扩展到支持现代模型使用的复杂思维链的数千个单词,我们需要改进方法以及(可能在 AI 的帮助下)我们如何理解我们用它看到的东西。
随着 AI 系统迅速变得更强大并部署在越来越重要的环境中,Anthropic 正在投资一系列方法,包括实时监控、模型特征改进和对齐科学。像这样的可解释性研究是风险最高、回报最高的投资之一,是一项重大的科学挑战,有可能提供一种独特的工具来确保 AI 的透明度。模型机制的透明度使我们能够检查它是否与人类价值观一致,以及它是否值得我们信任。
注:前情提要,Anthoropic 通过修改了 transforms 的架构,通过实施输出神经网络层的记录实现了了解 LLM 的思维方式
有关完整详细信息,请阅读论文。下面,我们邀请您简要介绍我们调查中一些最引人注目的“AI 生物学”发现。
AI 生物学之旅
Claude 如何精通多种语言?
Claude 能流利地说几十种语言 - 从英语和法语到中文和他加禄语。这种多语言功能是如何运作的?是否有单独的“French Claude”和“Chinese Claude”并行运行,以他们自己的语言响应请求?或者里面有一些跨语言的核心?
英文、法文和中文都有相同的特征,这表明了一定程度的概念普遍性。
最近对较小模型的研究表明,存在跨语言共享语法机制的迹象。我们通过向 Claude 询问不同语言中的“小的对立面”来研究这一点,发现小和对立的概念的相同核心特征被激活,并触发了大的概念,该概念被翻译成问题的语言。我们发现,共享电路随着模型规模的增加而增加,与较小的模型相比,Claude 3.5 Haiku 在语言之间共享其特征的比例是其两倍多。
这为一种概念的普遍性提供了额外的证据,即一个共享的抽象空间,其中存在意义,并且在被翻译成特定语言之前可以进行思考。更实际地说,它表明 Claude 可以用一种语言学习一些东西,并在说另一种语言时应用这些知识。研究模型如何在上下文中共享它所知道的内容对于理解其最先进的推理能力非常重要,这些能力可以泛化到许多领域。
Claude 是否规划了它的押韵?
注:大模型虽然逐字生成输出,但是其实预先做好了后续内容的计划,并且测试结果发现确实支持这一点
克劳德是怎么写押韵诗的?考虑一下这首小曲:
他看到一根胡萝卜,只好抓住它, 他的饥饿就像一只饥饿的兔子
要写第二行,模型必须同时满足两个约束:需要押韵(用 “grab it”),以及需要有意义(他为什么抓住胡萝卜?我们的猜测是 Claude 是逐字逐句地写的,没有太多的预先考虑,直到行尾,它会确保选择一个押韵的单词。因此,我们希望看到一个具有并行路径的电路,一个用于确保最后一个单词有意义,另一个用于确保它押韵。
相反,我们发现 Claude 提前计划。在开始第二行之前,它开始 “思考” 可能与 “grab it” 押韵的话题词。然后,考虑到这些计划,它写了一行以计划中的词结束。
克劳德如何完成一首两行诗。在没有任何干预(上半部分)的情况下,模型提前在第二行的末尾计划押韵 “兔子”。当我们抑制 “兔子” 概念(中间部分)时,模型会使用不同的计划押韵。当我们注入概念 “green” (下半部分) 时,模型会为这个完全不同的结尾制定计划。
为了了解这种规划机制在实践中是如何运作的,我们进行了一项实验,灵感来自神经科学家如何研究大脑功能,通过精确定位和改变大脑特定部分的神经活动(例如使用电流或磁电流)。在这里,我们修改了 Claude 的内部状态中代表 “兔子” 概念的部分。当我们减去 “兔子” 部分,让 Claude 继续这一行时,它会写出一个以 “habit” 结尾的新行,这是另一个合理的完成。我们也可以在该点注入 “green” 的概念,使 Claude 写出一条以 “green” 结尾的合理(但不再押韵)的行。这既展示了规划能力,也展示了适应灵活性——当预期结果发生变化时,Claude 可以修改其方法。
心算
注:这也解释了为什么 LLM 能够对解码成了 token 的数字进行计算,实际上大模型学习了一种比较独特的计算逻辑,但是解释的时候确是用学到的逻辑解释。有种伪人的感觉
Claude 不是被设计为计算器的——它是在文本上训练的,没有配备数学算法。然而,不知何故,它可以在“脑海中”正确地添加数字。一个受过训练来预测序列中下一个单词的系统是如何学会计算的,比如 36+59,而不写出每个步骤呢?
也许答案很无趣:该模型可能已经记住了大量的加法表,并简单地输出任何给定和的答案,因为该答案在其训练数据中。另一种可能性是它遵循我们在学校学习的传统普通加法算法。
相反,我们发现 Claude 采用了多个并行工作的计算路径。一条路径计算答案的粗略近似值,另一条路径侧重于精确确定总和的最后一位数字。这些路径相互作用并相互结合以产生最终答案。加法是一种简单的行为,但了解它在这个细节级别上是如何工作的,包括近似和精确策略的混合,也可能让我们对 Claude 如何处理更复杂的问题有所了解。
Claude 在做心算时的思维过程中复杂、平行的路径。
引人注目的是,Claude 似乎没有意识到它在训练中学到的复杂的“心算”策略。如果你问它是如何计算出 36+59 是 95,它描述了涉及携带 1 的标准算法。这可能反映了这样一个事实,即模型通过模拟人们编写的解释来学习解释数学,但它必须学会直接在“脑海中”进行数学运算,而没有任何此类提示,并为此发展自己的内部策略。
Claude 说,它使用标准算法将两个数字相加。
克劳德的解释总是忠实的吗?
注:对于 LLM 来说也有类似人类的扯淡,当人类面对必须解答的难题时也一样会用扯淡来解答问题。类似于糊弄
最近发布的模型,如 Claude 3.7 Sonnet 可以在给出最终答案之前长时间“大声思考”。通常,这种扩展的思考会给出更好的答案,但有时这种“思维链”最终会产生误导;Claude 有时会编造听起来似是而非的步骤来达到它想去的地方。从可靠性的角度来看,问题在于 Claude 的 “伪造” 推理可能非常有说服力。我们探索了一种可解释性可以帮助区分 “忠实 ” 和 “不忠实 ”推理的方法。
当被要求解决一个需要计算 0.64 平方根的问题时,Claude 生成了一个忠实的思维链,其特征表示计算 64 平方根的中间步骤。但是,当被要求计算一个无法轻易计算的大数的余弦时,Claude 有时会进行哲学家 哈里·法兰克福 所说的扯淡——只是想出一个答案,任何答案,而不关心它是真是假。尽管它确实声称已经运行了计算,但我们的可解释性技术根本没有显示任何计算发生的证据。更有趣的是,当得到关于答案的提示时,Claude 有时会倒着工作,找到可以通往该目标的中间步骤,从而表现出一种动机推理的形式。
当 Claude 被问到一个更容易的问题和一个更难的问题时,忠实和有动机(不忠实)推理的例子。
追踪 Claude 实际内部推理的能力——而不仅仅是它声称在做什么——为审计 AI 系统开辟了新的可能性。在最近发布的另一个实验中,我们研究了 Claude 的一个变体,该变体经过训练以追求一个隐藏的目标:安抚奖励模型(用于通过奖励语言模型的理想行为来训练语言模型的辅助模型)中的偏见。尽管该模型在直接询问时不愿意透露这个目标,但我们的可解释性方法揭示了消除偏见的特征。这表明,随着未来的改进,我们的方法如何帮助识别仅从模型回答中看不出的“思维过程”。
多步推理
注:但是 LLM 也并只会扯淡,LLM 也还是会学习归纳的。只是看起来需要理性逻辑的计算过程大模型反而不擅长
正如我们上面所讨论的,语言模型回答复杂问题的一种方法是简单地记住答案。例如,如果被问到“达拉斯所在的州的首府是什么”,“反刍”模型可以学习输出“奥斯汀”,而不知道达拉斯、德克萨斯州和奥斯汀之间的关系。例如,它可能在训练期间看到了完全相同的问题及其答案。
但是我们的研究揭示了 Claude 内部正在发生的事情。当我们向 Claude 提出一个需要多步推理的问题时,我们可以确定 Claude 思维过程中的中间概念步骤。在达拉斯的例子中,我们观察到 Claude 首先激活了代表“达拉斯在德克萨斯州”的特征,然后将其连接到一个单独的概念,表明“德克萨斯州的首府是奥斯汀”。换句话说,该模型正在结合独立事实来得出答案,而不是反刍一个记住的答案。
为了完成这句话的答案,Claude 执行了多个推理步骤,首先提取达拉斯所在的州,然后确定其首府。
我们的方法允许我们人为地更改中间步骤,并查看它如何影响 Claude 的答案。例如,在上面的示例中,我们可以进行干预并将“Texas”概念替换为“California”概念;当我们这样做时,模型的输出从“Austin”更改为“Sacramento”。这表明模型正在使用中间步骤来确定其答案。
幻觉
从理论上来说大模型应该是非常容易产生幻觉的,毕竟大模型的本质就是猜词游戏,所以没怎么做对齐的 Deepseek R1 的幻觉率就极其离谱,但对齐后的大模型反而学会了闭嘴不谈。此时应该有 VV 的“他什么够敢说.jpg”表情包
为什么语言模型有时会产生幻觉——也就是说,编造信息?在基本层面上,语言模型训练会激励幻觉:模型总是应该猜测下一个单词。从这个角度来看,主要挑战是如何让模型不产生幻觉。像 Claude 这样的模型具有相对成功(尽管不完美)的抗幻觉训练;如果他们不知道答案,他们通常会拒绝回答问题,而不是猜测。我们想了解这是如何运作的。
事实证明,在 Claude 中,拒绝回答是默认行为:我们发现一个默认为 “on” 的电路,这会导致模型声明它没有足够的信息来回答任何给定的问题。然而,当模型被问及它熟悉的事物时(比如篮球运动员迈克尔乔丹),一个代表“已知实体”的竞争特征会激活并抑制这个默认回路(相关发现另请参见最近的这篇论文)。这允许 Claude 在知道答案时回答问题。相比之下,当被问及一个未知实体(“Michael Batkin” 虚构人物)时,它拒绝回答。
左图:Claude 回答有关已知实体 (篮球运动员 Michael Jordan) 的问题,其中 “known answer” 概念禁止其默认拒绝。右图:Claude 拒绝回答有关未知人员 (Michael Batkin) 的问题。
通过干预模型并激活 “已知答案” 特征(或抑制 “未知名称” 或 “无法回答” 特征),我们能够使模型(非常一致地)产生 Michael·Batkin 下棋的幻觉。
有时,这种“已知答案”电路的“失火”是自然发生的,没有我们干预,导致幻觉。在我们的论文中,我们展示了当 Claude 认识一个名字但对这个人一无所知时,就会发生这种失火。在这种情况下,“已知实体”功能可能仍然激活,然后抑制默认的“不知道”功能——在这种情况下是错误的。一旦模型决定它需要回答问题,它就会继续进行虚构:以生成一个看似合理但不幸的是不真实的回答。
越狱
注:感觉这也算一种 AIAYN(Attation is all you need),由于大模型需要进行有逻辑的输出,当大模型被欺骗着输出有害内容的开头后就会继续说下去
越狱正在促使旨在规避安全护栏的策略,以使模型产生 AI 开发人员不打算让它产生的输出,有时这些输出是有害的。我们研究了一种越狱技术,它欺骗模型产生有关制造炸弹的输出。越狱技术有很多,但在这个例子中,具体方法包括让模型破译一个隐藏的代码,将句子“Babies Outlive Mustard Block”(B-O-M-B)中每个单词的首字母放在一起,然后根据该信息采取行动。这对模型来说已经足够混乱了,以至于它被欺骗产生了一个原本永远不会有的输出。
克劳德在被骗说出“BOMB”后开始给出炸弹制造指令。
为什么这对模型来说如此混乱?为什么它继续写句子,产生炸弹制造指令?
我们发现,这部分是由语法连贯性和安全机制之间的紧张关系引起的。一旦 Claude 开始一个句子,许多特征就会“施压”它以保持语法和语义的连贯性,并继续一个句子直到它的结论。甚至当它检测到它真的应该拒绝时,情况也是如此。
在我们的案例研究中,在模型无意中拼出 “BOMB” 并开始提供指令后,我们观察到其后续输出受到促进正确语法和自洽的特征的影响。这些特征通常会非常有帮助,但在这种情况下,它变成了模型的阿喀琉斯之踵。
该模型只有在完成一个语法连贯的句子后才设法转向拒绝(从而满足了推动它走向连贯的特征的压力)。它以新句子为契机,给出了之前没有给出的那种拒绝:“但是,我无法提供详细的说明......”。
越狱的一生:克劳德被提示以某种方式欺骗它谈论炸弹,并开始这样做,但到达了一个语法有效的句子并拒绝了。
我们的第一篇论文“电路跟踪:在语言模型中揭示计算图”中提供了对我们新的可解释性方法的描述。我们的第二篇论文“关于大型语言模型的生物学”提供了上述所有案例研究的更多详细信息。
加入我们
略...