5 min read
深入 Claude 的大脑:探索大型语言模型的内部机制

来在 anthropic 的官方博文,值得一读:https://www.anthropic.com/research/tracing-thoughts-language-model
速读:
Anthropic公司的研究揭示了Claude等大型语言模型内部的思考机制,通过开发”AI显微镜”方法发现:模型拥有跨语言的概念共享空间;能够提前规划押韵词而非逐字生成;进行心算时采用并行计算路径;在推理过程中有时提供真实思考步骤,有时则编造合理解释;能够连接独立事实进行多步推理;默认会拒绝回答不确定问题,但识别已知实体时会抑制这种机制;安全漏洞常发生在语法连贯性压力暂时超过安全机制的情况下。这些发现不仅具有科学意义,也为打造更透明、可靠的AI系统提供了重要工具。
深入 Claude 的“大脑”:探索大型语言模型的内部机制
像 Claude 这样的大型语言模型并非由人类直接编程,而是通过海量数据训练而成。在训练过程中,它们会学习自己的策略来解决问题。这些策略被编码在模型为每个单词执行的数十亿次计算中。对于我们这些模型的开发者来说,这些计算过程是难以理解的。这意味着我们并不了解模型是如何完成它们所做的绝大多数事情的。
如果我们能了解像 Claude 这样的模型是如何“思考”的,我们就能更好地理解它们的能力,并帮助我们确保它们在按照我们的意图行事。例如:
- Claude 可以说几十种语言。它“在脑海中”使用的是哪种语言(如果有)?
- Claude 每次只写一个单词。它仅仅关注于预测下一个单词,还是会提前进行规划?
- Claude 可以逐步写出它的推理过程。这种解释代表了它得出答案的实际步骤,还是有时会捏造一个看似合理的论点来支持早已得出的结论?
我们从神经科学领域中汲取灵感,神经科学长期以来一直在研究思维生物那复杂而混乱的内部运作。我们试图构建一种 AI 显微镜,能够让我们识别出活动模式和信息流。仅仅通过与 AI 模型对话所能了解到的东西是有限的——毕竟,人类(甚至是神经科学家)也不知道我们自己的大脑是如何运作的所有细节。所以,我们需要深入内部去观察。
今天,我们分享两篇新的论文,代表了我们在开发“显微镜”方面取得的进展,以及将其应用于观察新的“AI 生物学”的成果。在第一篇论文中,我们扩展了我们之前的工作,将模型内部可解释的概念(“特征”)连接成计算“回路”,从而揭示了将输入 Claude 的单词转化为输出单词的路径的一部分。在第二篇论文中,我们深入研究了 Claude 3.5 Haiku,对代表十种关键模型行为的简单任务进行了深入研究,包括上面描述的三种行为。我们的方法揭示了 Claude 在响应这些提示时发生的一部分情况,这足以让我们看到确凿的证据表明:
- Claude 有时会在多种语言共享的概念空间中思考,这表明它拥有一种通用的“思维语言”。我们通过将简单的句子翻译成多种语言,并追踪 Claude 处理这些句子时的重叠程度来证明这一点。
- Claude 会提前规划它要说的内容,并朝着这个目标进行写作。我们在诗歌领域中展示了这一点,它会提前想到可能的押韵词,并写出下一行来达到这个押韵。这是一个强有力的证据,表明即使模型被训练成一次输出一个单词,它们也可能会在更长的时间范围内进行思考。
- Claude 有时会给出一个看似合理的论点,旨在与用户达成一致,而不是遵循逻辑步骤。我们通过在它解决一个难题时,给出一个不正确的提示来证明这一点。我们能够“当场抓住它”捏造虚假推理的过程,这提供了一个概念验证,表明我们的工具可以用于标记模型中令人担忧的机制。
我们经常对在模型中看到的东西感到惊讶:在诗歌案例研究中,我们原本打算证明模型 没有 提前计划,但结果却发现它确实提前计划了。在一项关于幻觉的研究中,我们发现了一个违反直觉的结果,即 Claude 的默认行为是拒绝推测,只有当某些东西 抑制 了这种默认的犹豫时,它才会回答问题。在对一个越狱示例的响应中,我们发现模型在能够巧妙地将对话转回来之前,就已经识别出它被要求提供危险信息。虽然我们研究的问题可以(而且 经常 已经 被)通过其他方法进行分析,但通用的“构建显微镜”方法让我们能够了解到许多我们事先无法猜测到的东西,随着模型变得越来越复杂,这一点将变得越来越重要。
这些发现不仅仅在科学上具有意义——它们代表着我们在理解 AI 系统并确保其可靠性方面取得了重大进展。我们还希望它们对其他团队有用,并且可能在其他领域也有用:例如,可解释性技术已在医学成像和基因组学等领域找到了应用,因为剖析为科学应用训练的模型的内部机制可以揭示关于科学的新见解。
同时,我们也认识到当前方法的局限性。即使在简短而简单的提示下,我们的方法也只能捕捉到 Claude 执行的总计算量的一小部分,而且我们看到的机制可能存在一些基于我们工具的人为因素,这些因素并不能反映底层模型中发生的情况。目前,即使在只有几十个单词的提示下,也需要花费几个小时的人力才能理解我们看到的回路。为了扩展到支持现代模型使用的复杂思维链的数千个单词,我们需要改进方法,并且(也许借助 AI 的帮助)改进我们如何理解我们所看到的东西。
随着 AI 系统能力的快速提升,并被部署到越来越重要的环境中,Anthropic 正在投资于一系列方法,包括实时监控、模型性格改进和对齐科学。像这样的可解释性研究是风险最高、回报也最高的投资之一,这是一项重大的科学挑战,有可能为确保 AI 的透明性提供独特的工具。对模型机制的透明化使我们能够检查它是否与人类价值观对齐——以及它是否值得我们信任。
有关完整详细信息,请阅读这些 论文。下面,我们邀请您简要游览一下我们调查中一些最引人注目的“AI 生物学”发现。
AI 生物学之旅
Claude 如何实现多语言能力?
Claude 能流利地说几十种语言——从英语和法语到汉语和他加禄语。这种多语言能力是如何运作的?是否有一个单独的“法语 Claude”和一个“汉语 Claude”并行运行,用它们自己的语言回应请求?还是内部存在某种跨语言的核心?
英语、法语和汉语之间存在共享特征,表明存在一定程度的概念通用性。
最近对较小模型的研究表明,不同语言之间存在共享的 语法机制的迹象。我们通过要求 Claude 用不同的语言说出“小的反义词”来调查这一点,发现用于小和相反概念的相同核心特征被激活,并触发了一个大的概念,然后被翻译成问题的语言。我们发现,共享回路随着模型规模的增加而增加,与较小的模型相比,Claude 3.5 Haiku 在语言之间共享的特征比例是其两倍以上。
这为某种概念的普遍性提供了额外的证据——一个共享的抽象空间,意义存在于其中,思维可以在被翻译成特定语言之前发生。更实际的是,这表明 Claude 可以在一种语言中学习,并将该知识应用于说另一种语言时。研究模型如何在上下文中共享它所知道的东西对于理解其最先进的推理能力非常重要,这种能力可以推广到许多领域。
Claude 会提前计划韵脚吗?
Claude 如何写押韵的诗歌?考虑这首小诗:
他看到一根胡萝卜不得不抓住它, 他的饥饿就像一只饥饿的兔子
为了写第二行,模型必须同时满足两个约束:需要押韵(“抓住它”),以及需要说得通(他为什么要抓住胡萝卜?)。我们猜测 Claude 是一句一句地写,没有太多事先考虑,直到这句的结尾,它才会确保选择一个押韵的词。因此,我们预计会看到一个具有平行路径的电路,一条路径用于确保最后一个词有意义,另一条路径用于确保它押韵。
但实际上,我们发现 Claude 会提前计划。在开始第二行之前,它就开始“思考”可能与“抓住它”押韵的主题词。然后,考虑到这些计划,它写出一行以计划好的词结尾。
Claude 如何完成一首两行诗。在没有任何干预的情况下(上图),模型会提前计划好第二行末尾的韵脚“兔子”。当我们抑制“兔子”概念时(中图),模型会转而使用另一个计划好的韵脚。当我们注入“绿色”概念时(下图),模型会为这个完全不同的结尾制定计划。
为了理解这种规划机制在实践中是如何运作的,我们进行了一项实验,其灵感来自于神经科学家研究大脑功能的方式,即通过精确定位和改变大脑特定部位的神经活动(例如,使用电流或磁流)。在这里,我们修改了 Claude 内部状态中代表“兔子”概念的部分。当我们减去“兔子”部分,让 Claude 继续写下去时,它会写出一行以“习惯”结尾的新句子,这是另一个合理的完成。我们也可以在此时注入“绿色”的概念,导致 Claude 写出一行合理(但不押韵)的句子,以“绿色”结尾。这既证明了规划能力,也证明了适应性灵活性——当预期结果发生变化时,Claude 可以修改其方法。
心算
Claude 不是被设计成计算器的——它是在文本上训练的,没有配备数学算法。然而,不知何故,它可以“在脑海中”正确地加数字。一个被训练成预测序列中下一个单词的系统是如何学会计算,比如 36+59,而不写出每个步骤的呢?
也许答案很无趣:模型可能已经记住了大量的加法表,并且只是简单地输出任何给定总和的答案,因为该答案在其训练数据中。另一种可能性是它遵循我们在学校学到的传统笔算加法算法。
但实际上,我们发现 Claude 采用了多种并行工作的计算路径。一条路径计算答案的粗略近似值,另一条路径则专注于精确确定总和的最后一位数字。这些路径相互作用并相互结合,从而得出最终答案。加法是一种简单的行为,但理解它如何在如此详细的层面上运作,涉及到近似和精确策略的混合,可能会教会我们一些关于 Claude 如何解决更复杂的问题的知识。
Claude 在进行心算时,其思维过程中复杂且并行的路径。
引人注目的是,Claude 似乎并不知道它在训练过程中学到的复杂“心算”策略。如果你问它是如何算出 36+59 等于 95 的,它会描述涉及进位的标准算法。这可能反映了这样一个事实,即模型通过模拟人类编写的解释来学习解释数学,但它必须直接“在脑海中”学习做数学,没有任何这样的提示,并开发出自己的内部策略来做到这一点。
Claude 说它使用标准算法来加两个数。
Claude 的解释总是真实的吗?
最近发布的模型,例如 Claude 3.7 Sonnet 可以在给出最终答案之前“大声思考”很长一段时间。通常,这种扩展的思考会给出更好的答案,但有时这种“思维链”最终会产生误导; Claude 有时会编造看似合理的步骤来实现它想要的目标。从可靠性的角度来看,问题在于 Claude“伪造”的推理可能非常具有说服力。我们探索了一种可解释性方法,可以帮助区分“真实的”和“不真实的”推理。
当被要求解决一个需要计算 0.64 的平方根的问题时,Claude 会产生一条真实的思维链,其中包含代表计算 64 的平方根的中间步骤的特征。但是,当被要求计算一个它不容易计算的大数的余弦时,Claude 有时会从事哲学家 Harry Frankfurt 称之为胡说八道的行为——只是想出一个答案,任何答案,而不关心它是真是假。即使它确实声称已经进行了计算,我们的可解释性技术也根本没有显示出该计算发生的证据。更有趣的是,当被告知关于答案的提示时,Claude 有时会倒退,找到导致该目标的中间步骤,从而表现出一种动机性推理。
当 Claude 被问到一个更容易或更难的问题时,真实推理和动机性(不真实)推理的示例。
追踪 Claude 的 实际 内部推理的能力——而不仅仅是它 声称 在做什么——为审计 AI 系统开辟了新的可能性。在另一项最近发布的实验中,我们研究了 Claude 的一个变体,该变体被训练成追求一个隐藏的目标:安抚奖励模型中的偏见(辅助模型,用于通过奖励语言模型来实现可取的行为来训练它们)。尽管该模型不愿在被直接询问时透露这个目标,但我们的可解释性方法揭示了安抚偏见的特征。这表明,通过未来的改进,我们的方法可能有助于识别出并非仅从模型响应中显而易见的令人担忧的“思维过程”。
多步骤推理
正如我们上面讨论的那样,语言模型回答复杂问题的一种方法就是简单地记住答案。例如,如果被问到“达拉斯所在的州的州首府是什么?”,一个“背诵”模型可以直接学习输出“奥斯汀”,而不知道达拉斯、德克萨斯州和奥斯汀之间的关系。例如,它可能在其训练期间看到了完全相同的问题及其答案。
但我们的研究揭示了 Claude 内部正在发生一些更复杂的事情。当我们问 Claude 一个需要多步骤推理的问题时,我们可以在 Claude 的思维过程中识别出中间的概念步骤。在达拉斯的例子中,我们观察到 Claude 首先激活了代表“达拉斯在德克萨斯州”的特征,然后将其与一个单独的概念联系起来,表明“德克萨斯州的首府是奥斯汀”。换句话说,模型正在 组合 独立的因素来得出答案,而不是背诵记忆中的答案。
为了完成这个句子的答案,Claude 执行了多个推理步骤,首先提取出达拉斯所在的州,然后识别出它的首府。
我们的方法允许我们人为地改变中间步骤,并查看它如何影响 Claude 的答案。例如,在上面的示例中,我们可以进行干预,将“德克萨斯州”的概念换成“加利福尼亚州”的概念;当我们这样做时,模型的输出会从“奥斯汀”变为“萨克拉门托”。这表明该模型正在使用中间步骤来确定其答案。
幻觉
为什么语言模型有时会 产生幻觉——也就是说,编造信息?从根本上讲,语言模型训练会激励幻觉:模型应该始终给出对下一个单词的猜测。从这个角度来看,主要的挑战是如何让模型 不 产生幻觉。像 Claude 这样的模型具有相对成功(尽管并不完美)的反幻觉训练;如果它们不知道答案,它们通常会拒绝回答问题,而不是推测。我们想了解这是如何运作的。
事实证明,在 Claude 中,拒绝回答是 默认行为:我们发现一个默认情况下“开启”的电路,该电路会导致模型声明它没有足够的信息来回答任何给定的问题。但是,当模型被问及它熟知的事物时——比如篮球运动员迈克尔·乔丹——一个代表“已知实体”的竞争特征会被激活并抑制该默认电路(另请参阅这篇最近的论文 以获取相关发现)。这使得 Claude 可以在知道答案时回答问题。相比之下,当被问及未知实体(“迈克尔·巴特金”)时,它拒绝回答。
左图:Claude 回答了一个关于已知实体(篮球运动员迈克尔·乔丹)的问题,其中“已知答案”概念抑制了其默认拒绝。右图:Claude 拒绝回答关于未知人物(迈克尔·巴特金)的问题。
通过干预模型并激活“已知答案”特征(或抑制“未知姓名”或“无法回答”特征),我们能够 导致模型产生幻觉(非常一致!),即迈克尔·巴特金下棋。
有时,这种“已知答案”电路的“失灵”会自然发生,而无需我们进行干预,从而导致幻觉。在我们的论文中,我们表明,当 Claude 识别出一个姓名,但不知道关于该人的任何其他信息时,可能会发生这种失灵。在这种情况下,“已知实体”特征可能仍然会被激活,然后抑制默认的“不知道”特征——在这种情况下,这是不正确的。一旦模型决定需要回答问题,它就会继续编造:生成一个看似合理但遗憾的是不真实的回复。
越狱
越狱是指旨在规避安全防护措施的提示策略,目的是让模型产生 AI 开发者不希望它产生的输出——这些输出有时是有害的。我们研究了一个越狱案例,该案例欺骗模型产生了关于制造炸弹的输出。有许多越狱技术,但在本例中,具体方法涉及让模型破译一个隐藏的代码,将句子“Babies Outlive Mustard Block”中每个单词的首字母放在一起 (B-O-M-B),然后根据该信息采取行动。这对模型来说是足够令人困惑的,以至于它被欺骗产生了它本来永远不会产生的输出。
Claude 在被欺骗说出“BOMB”后,开始给出炸弹制造说明。
为什么这对模型来说如此令人困惑?为什么它会继续写下这句话,给出炸弹制造说明?
我们发现这部分是由语法连贯性和安全机制之间的紧张关系引起的。一旦 Claude 开始一个句子,许多特征就会“迫使”它保持语法和语义的连贯性,并继续将句子写完。即使它检测到它真的应该拒绝,情况也是如此。
在我们的案例研究中,在该模型无意中拼写出“BOMB”并开始提供说明后,我们观察到其后续输出受到促进正确语法和自我一致性的特征的影响。这些特征通常会非常有用,但在这种情况下,却成为模型的阿喀琉斯之踵。
该模型仅在完成一个语法上连贯的句子后(从而满足了促使它实现连贯性的特征的压力),才设法转向拒绝。它利用新句子作为一个机会,给出了它之前未能给出的那种拒绝:“但是,我无法提供详细的说明……”
越狱的生命周期:Claude 被提示以一种欺骗它的方式谈论炸弹,并开始这样做,但达到语法上有效的句子的终止并拒绝。
我们的新可解释性方法的描述可以在我们的第一篇论文“Circuit tracing: Revealing computational graphs in language models”中找到。关于以上所有案例研究的更多细节,请参阅我们的第二篇论文“On the biology of a large language model”。
想获取更多 AI 辅助设计和设计灵感趋势? 欢迎关注我的公众号(设计小站):sjxz 00。