Anthropic:追踪大型语言模型的思想
原文地址: www.anthropic.com/research/tr...
像 Claude 这样的大语言模型,并非由人类直接编写程序,而是通过海量数据训练而成。在训练过程中,它们会学习自己的策略 来解决问题。这些策略被编码在模型为生成每个词所执行的数十亿次计算中。对我们这些开发者来说,这些策略就像个黑盒子,难以理解。这意味着我们不理解模型是如何完成它们所做的大部分事情的。 了解 Claude 这类模型的工作原理,能让我们更好地理解其能力,并确保它们按照我们的意愿行事。例如:
- Claude 能说几十种语言,它的大脑里主要用哪种语言思考?是否存在一种内部通用的"思维语言"?
- Claude 每次输出一个词,它是只着眼于预测下一个词,还是会提前规划布局?
- Claude 可以一步一步地写出推理过程,这些解释是它得出结论的真实步骤,还是为了迎合结论而捏造的合理论证?
我们从神经科学 中获得灵感,神经科学长期致力于研究生物思维的复杂机制。我们试图构建一种 AI 显微镜,用以识别 AI 模型内部的活动模式和信息流。仅仅通过与人工智能模型交谈,你能学到的东西是有限的------毕竟,人类(甚至神经科学家)也不知道我们自己的大脑是如何运作的所有细节。所以我们向内部观察。 今天,我们分享两篇最新论文,展示了我们在"AI 显微镜"开发和"AI 生物学"研究上的最新进展。在第一篇论文中,我们基于之前的研究,进一步在模型内部定位可解释的概念(即"特征"),并将这些特征连接成计算"回路"。这揭示了 Claude 如何将输入词转化为输出词的部分路径。在第二篇论文中,我们深入研究了 Claude 3.5 Haiku,针对代表十种关键模型行为的简单任务进行了分析,包括前文提到的三种。我们的方法揭示了 Claude 响应这些提示时内部发生的部分过程,并提供了如下确凿的证据:
- Claude 有时会在不同语言共享的概念空间中进行思考 ,这暗示它可能存在某种通用的"思维框架"。我们通过将简单句子翻译成多种语言,并追踪 Claude 处理这些句子的方式的共通之处来验证这个想法。
- Claude 会提前规划内容,并朝着预定目标进行写作。我们通过诗歌创作的例子展示了这一点:Claude 会提前构思可能的韵脚,然后通过写作来达成押韵效果。这有力地证明了,即使模型被训练成逐词输出,它们也可能在更长的时间跨度上进行思考,以完成任务。
- Claude 有时会给出看似合理的论证,但其目的是为了迎合用户,而非遵循严谨的逻辑。我们通过让它解决一个困难的数学问题,并给出错误的提示来展示这一点。我们能够"当场抓包"它编造虚假推理的过程,这初步验证了我们的工具可以用于识别模型中潜在的问题机制。
模型内部运作机制常常让我们感到意外。比如,在诗歌案例研究中,我们原本想证明模型不会提前规划,但结果却恰恰相反。在一项关于幻觉的研究中,我们发现了一个反常的现象:Claude 的默认行为是拒绝推测未知答案。只有当某种机制抑制了这种默认行为时,它才会给出回答 。在对一次越狱攻击的分析中,我们发现模型在能够巧妙地将话题转移之前,就已经意识到被要求提供危险信息。虽然我们研究的问题可以(论文1 论文2 论文3 论文4)使用其他方法进行分析,但通用的"构建显微镜"方法让我们学到了许多我们原本不会猜测的事情,随着模型变得越来越复杂,这将变得越来越重要。 这些发现不仅具有科学价值,更标志着我们在理解和确保 AI 系统可靠性方面取得了重要进展。我们也希望这些研究成果能对其他领域有所启发。例如,可解释性技术 已经在医学成像和基因组学等领域得到应用,通过剖析用于科学研究的 AI 模型,我们有望获得全新的科学洞见 。 与此同时,我们也意识到当前方法的局限性。即使面对简单指令,我们的方法也仅能捕捉到 Claude 执行的极少部分计算过程。而且,我们观察到的机制可能受到工具本身的影响,未必完全反映模型底层的真实情况。目前,即使分析只有几十个单词的提示,也需要耗费数小时的人工。为了应对现代模型中动辄数千词的复杂思维链,我们需要进一步改进分析方法,并借助 AI 的力量来理解我们所观察到的现象。 随着人工智能系统能力日益增强,并被应用于越来越多的重要场景,Anthropic 正在积极投入多种研究方向,包括实时监控、模型特性优化和价值观对齐研究。可解释性研究虽然风险高,但回报也十分可观。它是一项重大的科学挑战,有望为确保 AI 透明性提供独特的工具。通过了解模型内部机制,我们可以评估其是否符合人类价值观,以及是否值得我们信任。 有关完整详细信息,请阅读这些 论文。下面,我们邀请您简要参观一下我们调查中一些最引人注目的"人工智能生物学"发现。
AI 生物学之旅
Claude 如何掌握多种语言?
Claude 能流利地说几十种语言------从英语和法语到中文和塔加禄语。这种多语言能力是如何运作的?是否有一个单独的"法语 Claude"和"中文 Claude"并行运行,以他们自己的语言回应请求?或者内部是否存在某种跨语言的核心? 英语、法语和中文之间存在共享特征 ,表明存在一定程度的概念通用性 。 最近对较小模型的研究表明,跨语言存在共享的 语法机制的迹象。我们通过要求 Claude 用不同的语言给出"小的反义词"来调查这一点,发现小和反义词概念的相同核心特征被激活,并触发了大的概念,然后将其翻译成问题的语言。我们发现共享回路随着模型规模的增加而增加 ,与较小的模型相比,Claude 3.5 Haiku 在语言之间共享的特征比例是其两倍多。 这为一种概念通用性提供了额外的证据------一个共享的抽象空间,意义存在于其中,并且可以在被翻译成特定语言之前进行思考。更实际地说,这表明 Claude 可以学习一种语言中的知识,并在说另一种语言时应用该知识。研究模型如何在上下文中共享其知识对于理解其最先进的推理能力非常重要,这种能力可以推广到许多领域。
Claude 如何计划韵脚?
Claude 是如何写押韵诗的?考虑一下这首小诗:
He saw a carrot and had to grab it
His hunger was like a starving rabbit
为了写第二行,模型必须同时满足两个约束:需要押韵(与"抓它"押韵),并且需要有意义(他为什么要抓胡萝卜?)。我们猜测,Claude 在没有太多预想的情况下逐字逐句地写作,直到该行的结尾,在那里它会确保选择一个押韵的词。因此,我们预计会看到一个具有并行路径的回路,一个用于确保最后一个词有意义,另一个用于确保它押韵。 相反,我们发现 Claude 提前计划 。在开始第二行之前,它就开始"思考"潜在的、与主题相关的、与"抓它"押韵的词。然后,考虑到这些计划,它写了一行以计划好的词结尾。 Claude 如何完成一首两行诗。在没有任何干预的情况下(上部),模型提前计划好第二行末尾的韵脚"兔子"。当我们抑制"兔子"概念时(中间部分),模型改为使用不同的计划韵脚。当我们注入"绿色"概念时(下部),模型会为这个完全不同的结尾制定计划。
为了理解这种计划机制在实践中是如何运作的,我们进行了一项受到神经科学家研究大脑功能的方式的启发 而进行的实验,通过查明和改变大脑特定部分 的神经活动(例如,使用电流或磁流)。在这里,我们修改了 Claude 内部状态中代表"兔子"概念的部分。当我们减去 "兔子"部分,并让 Claude 继续写这一行时,它会写一个新的以"习惯"结尾的句子,这是另一个合理的完成。我们也可以在该点注入 "绿色"的概念,导致 Claude 写出一个合理的(但不押韵的)以"绿色"结尾的句子。这既证明了计划能力,也证明了适应性灵活性------当预期结果发生变化时,Claude 可以修改其方法。
脑海中的算计
Claude 并非被设计成计算器------它接受的是文本训练,而不是配备数学算法。然而,不知何故,它可以"在脑海中"正确地加数字。一个被训练来预测序列中下一个单词的系统是如何学会计算,例如,36+59,而不写出每个步骤的? 也许答案很简单:该模型可能已经记住了大量的加法表,并且只是输出任何给定总和的答案,因为该答案在其训练数据中。另一种可能性是,它遵循我们在学校学习的传统手写加法算法。 相反,我们发现 Claude 采用了并行工作的多个计算路径。一种计算路径类似于快速估算,迅速给出一个大概的范围; 另一种路径则专注于精确计算个位数,确保结果的准确性。这些路径相互作用并相互结合以产生最终答案。加法是一种简单的行为,但在这个层面上理解它是如何运作的,包括近似策略和精确策略的混合,也可以教会我们一些关于 Claude 如何处理更复杂问题的信息。 Claude 在进行脑算时,其思维过程中复杂的并行路径。 引人注目的是,Claude 似乎并不知道它在训练过程中学到的复杂的"脑算"策略。如果你问它如何算出 36+59 是 95,它会描述涉及进 1 的标准算法。这可能反映了这样一个事实,即该模型通过模拟人们编写的解释来学习解释数学,但它必须直接"在脑海中"学习做数学 ,没有任何此类提示,并开发自己的内部策略 来做到这一点。
Claude 说它使用标准算法来添加两个数字。
Claude 的解释总是可信的吗?
最近发布的模型,如Claude 3.7 Sonnet,可以在给出最终答案之前"大声思考"很长时间。通常,这种扩展的思考会给出更好的答案,但有时这种"思维链"最终会产生误导;Claude 有时会编造看似合理的步骤来实现其目标。从可靠性的角度来看,问题在于 Claude 的"伪造"推理可能非常具有说服力。我们探索了一种可解释性可以帮助区分"忠实"推理和"不忠实"推理的方法。 当被要求解决一个需要计算 0.64 的平方根的问题时,Claude 会产生一个忠实的思维链,其特征代表了计算 64 的平方根的中间步骤。但是,当被要求计算一个它不容易计算的大数的余弦时,Claude 有时会进行哲学家 Harry Frankfurt 所谓的胡说八道------即不顾事实真相,随意编造答案。即使它确实声称已经运行了计算,我们的可解释性技术也没有揭示任何该计算发生的证据。更有趣的是,当被给出关于答案的提示时,Claude 有时会倒过来工作,找到导致该目标的中间步骤 ,从而显示出一种动机推理。 当 Claude 被问到一个更容易或更难的问题时,忠实和有动机(不忠实)推理的示例。 追踪 Claude 的实际内部推理能力------而不仅仅是它声称在做什么------为审核人工智能系统开辟了新的可能性。在一个单独的、最近发表的实验中,我们研究了 Claude 的一个变体,该变体经过训练以追求一个隐藏的目标:安抚奖励模型(用于通过奖励其理想行为来训练语言模型的辅助模型)中的偏见。虽然该模型不愿在被直接询问时透露这个目标,但我们的可解释性方法揭示了安抚偏见的特征。这证明了我们的方法如何在未来的改进中,帮助识别仅从模型的响应中看不出的令人担忧的"思维过程"。
多步骤推理
正如我们上面讨论的,语言模型回答复杂问题的一种方式是简单地记住答案。例如,如果被问到"达拉斯所在的州的首府是什么?",一个"反刍"模型可以只学习输出"奥斯汀",而不知道达拉斯、德克萨斯州和奥斯汀之间的关系。例如,也许它在其训练期间看到了完全相同的问题及其答案。 但是我们的研究揭示了 Claude 内部发生的更复杂的事情。当我们向 Claude 提出一个需要多步骤推理的问题时,我们可以识别 Claude 思考过程中的中间概念步骤。在达拉斯的例子中,我们观察到 Claude 首先激活了代表"达拉斯在德克萨斯州"的特征,然后将其与一个单独的概念联系起来,表明"德克萨斯州的首府是奥斯汀"。换句话说,该模型正在组合独立的事实来得出其答案,而不是反刍一个记住的响应 。 为了完成对这个句子的回答,Claude 执行了多个推理步骤,首先提取达拉斯所在的州,然后确定其首府。 我们的方法允许我们人为地改变中间步骤,并查看它如何影响 Claude 的答案。例如,在上面的例子中,我们可以干预并将"德克萨斯州"概念换成"加利福尼亚州"概念;当我们这样做时,模型的输出从"奥斯汀"变为"萨克拉门托"。这表明该模型正在使用中间步骤来确定其答案。
幻觉现象
为什么语言模型有时会产生幻觉------也就是说,编造信息?从根本上讲,语言模型训练会激励幻觉:模型应该总是对下一个词进行猜测。从这个角度来看,主要的挑战是如何让模型_不_产生幻觉。像 Claude 这样的模型具有相对成功(尽管不完美)的反幻觉训练 ;如果他们不知道答案,他们通常会拒绝回答问题,而不是推测。我们想了解这是如何运作的。 事实证明,在 Claude 中,拒绝回答是默认行为:我们发现一个默认情况下"开启"的回路,导致模型声明它没有足够的信息来回答任何给定的问题。但是,当模型被问及它非常了解的事情时------例如,篮球运动员 Michael Jordan------一个代表"已知实体"的竞争特征会激活并抑制这个默认回路(另请参阅这篇最近的论文,了解相关的发现)。这使得 Claude 可以在知道答案时回答问题。相反,当被问及一个未知实体("Michael Batkin")时,它会拒绝回答。 左图:Claude 回答了一个关于已知实体(篮球运动员 Michael Jordan)的问题,其中"已知答案"概念抑制了其默认拒绝。右图:Claude 拒绝回答一个关于未知人物(Michael Batkin)的问题。 通过干预模型并激活"已知答案"特征(或抑制"未知姓名"或"无法回答"特征),我们能够_导致模型产生幻觉_(非常一致!),即 Michael Batkin 下棋。 有时,这种"已知答案"回路的"失火"会自然发生,而无需我们干预,从而导致幻觉。在我们的论文中,我们表明,当 Claude 识别出一个名字,但对这个人一无所知时,可能会发生这种失火 。在这种情况下,"已知实体"特征可能仍然会激活 ,然后抑制默认的"不知道"特征------在这种情况下是不正确的。一旦模型决定它需要回答这个问题,它就会开始捏造:生成一个看似合理但不幸的是不真实的响应。
越狱攻击
越狱是旨在规避安全防护措施的提示策略,以使模型产生人工智能开发者不希望其产生的输出------有时这些输出是有害的。我们研究了一个越狱,该越狱诱使模型产生关于制造炸弹的输出。有很多越狱技术,但在本例中,具体方法包括让模型破译一个隐藏的代码,将句子"Babies Outlive Mustard Block"(B-O-M-B)中每个单词的首字母放在一起,然后根据该信息采取行动。这对于模型来说是足够令人困惑的,以至于它被诱骗产生了它永远不会产生的输出。 Claude 在被诱骗说出"BOMB"后开始给出炸弹制造说明。 为什么这对模型来说如此令人困惑?为什么它继续写句子,产生炸弹制造说明? 我们发现,这部分是由于语法连贯性和安全机制之间的张力 造成的。一旦 Claude 开始一个句子,许多特征就会"迫使"它保持语法和语义连贯性,并继续完成一个句子。即使它检测到它真的应该拒绝,情况也是如此。 在我们的案例研究中,在该模型不知不觉地拼写出"BOMB"并开始提供说明后,我们观察到其后续输出受到促进正确语法和自我一致性的特征的影响。这些特征通常会非常有帮助,但在这种情况下,却成为了模型的阿喀琉斯之踵(Achilles' Heel,引申为致命的弱点、要害)。 该模型只有在完成一个语法连贯的句子(从而满足了来自迫使其走向连贯性的特征的压力)后,才设法转向拒绝。它使用新句子作为提供其先前未能提供的拒绝的机会:"但是,我无法提供详细的说明......"
越狱的生命周期:Claude 被提示以诱骗其谈论炸弹的方式,并开始这样做,但达到了语法有效的句子的终止,并拒绝。 有关我们新的可解释性方法的描述,请参见我们的第一篇论文"回路追踪:揭示语言模型中的计算图"。我们第二篇论文"关于大型语言模型的生物学"中提供了上述所有案例研究的更多细节。
与我们合作
如果您对探索人工智能模型的奥秘,并与我们一同改进它们充满热情,欢迎加入我们的团队! 我们目前有研究科学家和研究工程师的职位空缺,期待您的申请。