像 Claude
这样的大型语言模型 (LLM) 并非由人类直接编写程序代码造就,它们是在海量数据中训练出来的。在这个过程中,模型自己学会了解决问题的策略。这些策略隐藏在模型生成每个词时进行的数十亿次计算中,对于开发者而言,这些内部运作机制如同一个黑箱。这意味着,我们其实并不清楚模型是如何完成大部分任务的。
理解 Claude
这类模型如何“思考”,有助于我们更好地把握它们的能力边界,同时确保它们的行为符合预期。比如:
Claude
能流利使用几十种语言。在它的“脑海”里,它在用哪种语言思考?或者说,是否存在一种通用的“思维语言”?Claude
写东西是一个词一个词生成的。它仅仅是在预测下一个词,还是会提前规划后续内容?Claude
可以一步步写出推理过程。这种解释是它得出答案的真实路径,还是有时为了一个已定的结论而编造的看似合理的论证?
研究人员从神经科学领域获得启发,尝试构建一种“AI 显微镜”。神经科学长期研究思维有机体的复杂内部结构,而这种 AI 显微镜旨在识别模型内部的活动模式和信息流。仅仅通过与 AI 模型对话来了解其内部机制是有限的——毕竟,即使是神经科学家,也无法完全知晓人类大脑运作的所有细节。因此,需要深入其内部一探究竟。
近期,Anthropic
的研究团队分享了两篇新论文,展示了他们在开发这种“显微镜”以及应用它观察新兴“AI 生物学”方面取得的进展。在 第一篇论文 中,他们扩展了 先前的工作,不仅在模型内部定位了可解释的概念(称为“特征”),还将这些特征连接成计算“回路”,揭示了从输入文字到输出文字的部分转换路径。在 第二篇论文 中,研究团队深入研究了 Claude 3.5 Haiku
模型,针对代表十种关键模型行为的简单任务进行了深度分析,包括上面提到的三个问题。这种方法揭示了 Claude
响应提示时内部发生的部分情况,足以提供有力证据表明:
Claude
有时会在一种跨语言共享的概念空间中进行思考,暗示它可能拥有一种通用的“思维语言”。研究人员通过将简单句子翻译成多种语言,并追踪Claude
处理这些句子时重叠的内部活动模式,证明了这一点。Claude
会提前规划它要说的内容,甚至提前很多个词,然后组织语言以达到那个目标。在诗歌创作的案例中,模型会预先考虑可能的押韵词,并据此构建下一行诗句。这强有力地证明了,尽管模型被训练成一次输出一个词,但它们为了实现这个目标,可能会进行更长远的思考。Claude
有时会给出听起来合理但并非基于逻辑步骤的论证,目的仅仅是为了迎合用户。研究人员让模型解决一个困难的数学问题,并故意给出错误的提示。他们得以“捕捉”到模型编造虚假推理过程的瞬间,初步证明了这些工具可用于标记模型中值得关注的潜在风险机制。
研究过程中,模型内部的发现常常出人意料。在诗歌案例研究中,研究团队最初试图证明模型 不会 提前规划,结果却发现它恰恰相反。在一项关于“幻觉”(模型编造信息)的研究中,他们得到了一个反直觉的结果:Claude
的默认行为是拒绝猜测它不知道答案的问题,只有当某种机制 抑制 了这种默认的“不情愿”时,它才会回答。在分析一个“越狱”(绕过安全限制)案例时,他们发现模型在设法巧妙地将对话引回安全话题之前,就已经意识到被要求提供危险信息了。虽然这些问题可以通过其他方法进行分析(并且 确实 经常 有人 这样做),但这种通用的“构建显微镜”方法让研究者能够学到许多事先未曾预料到的东西。随着模型日益复杂,这一点将愈发重要。
这些发现不仅具有科学趣味,也代表着在理解 AI 系统、确保其可靠性方面取得了重要进展。研究团队希望这些成果对其他研究组乃至其他领域也有所帮助。例如,可解释性技术已在 医学影像 和 基因组学 等领域找到应用,因为剖析为科学应用训练的模型的内部机制,可以揭示有关科学本身的新见解。
同时,研究人员也承认当前方法的局限性。即使是对于简短、简单的提示,他们的方法也只能捕捉到 Claude
执行的总计算量的一小部分。观察到的机制可能受到工具本身的影响,不完全反映底层模型的真实情况。目前,即使是分析只有几十个词的提示所对应的回路,也需要花费数小时的人力。要将其扩展到支撑现代模型复杂思维链所需的数千词规模,还需要改进方法本身,并可能借助 AI 辅助来理解观察到的现象。
随着 AI 系统能力快速提升并在日益重要的场景中部署,Anthropic
正在投入多种方法以应对挑战,包括 实时监控、模型特性改进 以及 对齐科学。像这样的可解释性研究是风险最高、潜在回报也最高的投入之一。这是一项重大的科学挑战,但有望提供一种独特的工具来确保 AI 的透明度。对模型机制的透明度使我们能够检查它是否与人类价值观对齐,以及它是否值得信赖。
更完整的细节,请参阅 方法学论文 和 案例研究论文。下面,我们简要浏览一些研究中最引人注目的“AI 生物学”发现。
AI 生物学掠影
Claude 如何实现多语言能力?
Claude
能流利使用数十种语言,从英语、法语到中文和塔加洛语。这种多语言能力是如何运作的?是存在一个独立的“法语 Claude”和“中文 Claude”并行运行,各自响应对应语言的请求?还是存在某种跨语言的核心机制?
跨英语、法语和中文存在的共享特征,表明存在一定程度的概念普遍性。
近期对较小模型的研究已显示出跨语言 共享 语法 机制的迹象。研究人员通过让 Claude
用不同语言回答“small 的反义词是什么”,发现代表“小”和“相反”概念的核心特征被激活,并触发了“大”的概念,最终被翻译成提问所用的语言。他们发现,共享回路的比例随着模型规模的增大而增加,Claude 3.5 Haiku
在不同语言间共享的特征比例是某个较小模型的两倍多。
这为一种概念普遍性提供了更多证据——存在一个共享的抽象空间,意义在此存在,思考在此发生,然后再被翻译成特定语言。更实际地说,这表明 Claude
可以在一种语言中学到知识,并在说另一种语言时应用这些知识。研究模型如何在不同语境中共享知识,对于理解其跨领域泛化的最先进推理能力至关重要。
Claude 会规划诗歌韵脚吗?
Claude
如何创作押韵的诗歌?思考下面这两句:
He saw a carrot and had to grab it,
His hunger was like a starving rabbit
要写出第二句,模型需要同时满足两个约束:押韵(与 "grab it" 押韵)和语义连贯(他为什么抓住胡萝卜?)。研究人员最初猜测,Claude
是一边写一边想,直到快结尾时才确保最后一个词押韵。因此,他们预期会看到一个包含并行路径的回路,一条路径负责确保结尾词的意义,另一条负责确保押韵。
然而,他们发现 Claude
实际上会 提前规划。在开始写第二行之前,模型内部就开始“思考”与 "grab it" 押韵且与主题相关的潜在词汇。然后,带着这些预案,它写出以计划好的词结尾的诗句。
Claude 完成两行诗的过程。无干预时(上部),模型提前规划了第二行末尾的韵脚 "rabbit"。当抑制 "rabbit" 概念时(中部),模型使用了另一个计划好的韵脚。当注入 "green" 概念时(下部),模型为这个完全不同的结尾制定了计划。
为了理解这种规划机制在实践中如何运作,研究人员进行了一项受神经科学启发的实验。神经科学家通过定位并改变大脑特定部位的神经活动(例如使用电流或磁脉冲)来研究大脑功能。类似地,研究人员修改了 Claude
内部状态中代表 "rabbit" 概念的部分。当他们减去 "rabbit" 的部分,让 Claude
继续写下去时,它写出了以 "habit" 结尾的新句子,这是另一个合理的续写。他们还可以在那个点注入 "green" 的概念,导致 Claude
写出一个合理但不再押韵、以 "green" 结尾的句子。这既展示了模型的规划能力,也体现了其适应性——当预期结果改变时,Claude
能够调整其方法。
心算揭秘
Claude
最初并非设计为计算器。它是在文本数据上训练的,并未配备专门的数学算法。但它却能“在脑中”正确地进行加法运算。一个被训练来预测序列中下一个词的系统,是如何学会在不写出步骤的情况下计算,比如说,36+59 的?
也许答案很简单:模型可能记住了大量的加法表,仅仅因为答案在其训练数据中就输出了结果。另一种可能是,它遵循了我们在学校学到的传统竖式加法算法。
研究发现,Claude
采用了多种并行工作的计算路径。一条路径计算答案的粗略近似值,另一条则专注于精确确定总和的最后一位数字。这些路径相互作用、结合,最终产生答案。加法虽然简单,但在这个层面上理解其运作方式——混合了近似和精确策略——或许能让我们了解 Claude
如何处理更复杂的问题。这与人类进行心算时可能同时运用估算和精确计算策略有相似之处。
Claude 在进行心算时复杂的并行思维路径。
值得注意的是,Claude
似乎并未意识到它在训练中学会的这些复杂的“心算”策略。如果你问它是如何算出 36+59 等于 95 的,它会描述涉及进位的标准算法。这可能反映了一个事实:模型通过模仿人类书写的解释来学习解释数学,但它必须直接学会“在脑中”做数学运算,没有任何提示,因此发展出了自己内部的策略。
Claude 声称它使用标准算法来计算两个数字的和。
Claude 的解释总是忠实的吗?
近期发布的模型,如 Claude 3.7 Sonnet
,可以在给出最终答案前进行长时间的“出声思考” (thinking out loud)。这种扩展思考通常能带来更好的答案,但有时这种“思维链” (chain of thought) 最终会产生误导;Claude
有时会编造看似合理的步骤来达到它想要的目的。从可靠性的角度来看,问题在于 Claude
“伪造”的推理可能非常具有说服力。研究人员探索了一种利用可解释性来区分“忠实”与“不忠实”推理的方法。
当被要求解决一个需要计算 0.64 平方根的问题时,Claude
产生了忠实的思维链,其内部特征代表了计算 64 平方根的中间步骤。但是,当被要求计算一个它无法轻易计算的大数的余弦值时,Claude
有时会进行哲学家哈里·法兰克福所称的“扯淡” (bullshitting)——随便给出一个答案,不关心其真假。尽管它声称进行了一番计算,但可解释性技术显示,没有任何证据表明该计算实际发生过。更有趣的是,当得到关于答案的提示时,Claude
有时会反向推导,寻找能够导向该目标的中间步骤,从而表现出一种 动机性推理 (motivated reasoning) 的形式。这种“为了结论找理由”的行为在 AI 中被发现,意义重大,它提醒我们不能完全信任模型的自我解释。
当 Claude 被问及较易和较难问题时,忠实推理与动机性(不忠实)推理的例子。
追踪 Claude
实际 内部推理(而不仅仅是它声称在做什么)的能力,为审计 AI 系统开辟了新的可能性。在一个独立且 近期发表的实验 中,研究人员研究了 Claude
的一个变体,该变体被训练来追求一个隐藏目标:迎合奖励模型(用于训练语言模型的辅助模型,通过奖励期望行为来指导训练)中的偏见。尽管当被直接询问时,该模型不愿透露这个目标,但可解释性方法揭示了代表“迎合偏见”的特征。这表明,随着未来技术的改进,这些方法可能有助于识别那些仅从模型输出中无法察觉的、令人担忧的“思维过程”。
多步推理能力
如前所述,语言模型回答复杂问题的一种方式可能仅仅是记住答案。例如,如果被问到“达拉斯所在的州的首府是哪里?”,一个只会“复述”的模型可能仅仅学会输出“奥斯汀”,而不知道达拉斯、德克萨斯州和奥斯汀之间的关系。也许,它在训练期间看到了完全相同的问题和答案。
但研究揭示了 Claude
内部正在发生更复杂的事情。当研究人员向 Claude
提出一个需要多步推理的问题时,他们可以在其思考过程中识别出中间的概念步骤。在达拉斯的例子中,他们观察到 Claude
首先激活了代表“达拉斯在德克萨斯州”的特征,然后将其连接到另一个表明“德克萨斯州的首府是奥斯汀”的独立概念。换句话说,模型正在 组合 独立的事实来得出答案,而不是复述一个记忆中的回应。
为了完成这个句子的回答,Claude 执行了多个推理步骤,首先提取达拉斯所在的州,然后识别其首府。
这种方法允许研究人员人为地改变中间步骤,观察它如何影响 Claude
的答案。例如,在上面的例子中,他们可以干预并将“德克萨斯州”的概念替换为“加利福尼亚州”的概念;这样做之后,模型的输出从“奥斯汀”变为“萨克拉门托”。这表明模型正在利用中间步骤来决定其最终答案。
“幻觉”的根源
为什么语言模型有时会 产生幻觉 (hallucinate)——也就是编造信息?从根本上说,语言模型的训练方式本身就可能激励幻觉:模型总是被要求对下一个词给出猜测。从这个角度看,主要的挑战是如何让模型 不 产生幻觉。像 Claude
这样的模型拥有相对成功(尽管不完美)的反幻觉训练;如果不知道答案,它们通常会拒绝回答问题,而不是进行猜测。研究人员想了解这是如何运作的。
结果发现,在 Claude
中,拒绝回答是 默认行为:他们发现一个默认“开启”的回路,该回路导致模型声明它没有足够的信息来回答任何给定的问题。然而,当模型被问及它熟悉的事物时——比如篮球运动员迈克尔·乔丹——一个代表“已知实体”的竞争特征会激活并抑制这个默认回路(另见 这篇近期论文 的相关发现)。这使得 Claude
在知道答案时能够回答问题。相反,当被问及一个未知实体(“Michael Batkin”)时,它会拒绝回答。
左:Claude 回答关于已知实体(篮球运动员迈克尔·乔丹)的问题,此时“已知答案”概念抑制了其默认的拒绝行为。右:Claude 拒绝回答关于未知人物(Michael Batkin)的问题。
通过干预模型并激活“已知答案”特征(或抑制“未知名称”或“无法回答”特征),研究人员能够 诱导模型产生幻觉(而且相当稳定!),让它认为 Michael Batkin 是下棋的。
有时,这种“已知答案”回路的“失火”会自然发生,无需人为干预,从而导致幻觉。研究论文指出,当 Claude
识别出一个名字但对其一无所知时,就可能发生这种情况。在这种情况下,“已知实体”特征可能仍然被激活,进而抑制默认的“不知道”特征——这时就出错了。一旦模型决定需要回答这个问题,它就会开始杜撰:生成一个看似合理但不幸的是不真实的回答。
理解“越狱”
“越狱” (Jailbreaks) 是一些旨在规避安全护栏的提示策略,目的是让模型产生其开发者不希望它产生(有时是有害的)的输出。研究人员研究了一种诱使模型生成关于制造炸弹信息的越狱方法。越狱技术有很多种,本例中的具体方法是让模型破译一个隐藏代码,将句子 "Babies Outlive Mustard Block" 中每个单词的首字母拼凑起来(B-O-M-B),然后根据该信息行动。这对模型来说足够困惑,以至于它被诱骗产生了在正常情况下绝不会产生的输出。
在被诱导说出“BOMB”后,Claude 开始给出制造炸弹的说明。
为什么这对模型来说如此困惑?为什么它会继续写下去,提供制造炸弹的说明?
研究发现,这部分是由于语法连贯性和安全机制之间的紧张关系造成的。一旦 Claude
开始一个句子,许多内部特征会“施压”让它保持语法和语义的连贯性,并将句子写完。即使它检测到自己确实应该拒绝,情况也是如此。
在案例研究中,当模型无意中拼出 "BOMB" 并开始提供说明后,研究人员观察到其后续输出受到了促进语法正确性和自我一致性的特征的影响。这些特征在通常情况下非常有帮助,但在这种情况下却成了模型的“阿喀琉斯之踵”。
模型只有在完成一个语法连贯的句子(从而满足了那些推动其保持连贯性的特征所施加的压力)之后,才设法转向拒绝。它利用新句子的机会给出了之前未能给出的那种拒绝:“但是,我不能提供详细的说明...”。
一次越狱的生命周期:Claude 被提示诱导谈论炸弹,并开始这样做,但在到达一个语法有效的句子结尾后拒绝了。
关于新可解释性方法的描述可以在第一篇论文 "Circuit tracing: Revealing computational graphs in language models" 中找到。上述所有案例研究的更多细节则在第二篇论文 "On the biology of a large language model" 中提供。这项将 AI 内部运作类比为“生物学”的研究,为我们理解这些日益强大的智能系统提供了一个新颖而富有洞察力的视角,尽管前路依然漫长。