人工智能(AI)模型是训练出来的,而不是直接编程出来的,因此它们就像一个“黑盒子”,我们并不了解它们是如何完成大部分事情的。
了解大语言模型(LLM)是如何思考的,将有助于我们更好地理解它们的能力,同时也有助于我们确保它们正在做我们希望它们做的事情。
例如,AI 可以一步一步地写出它的推理过程。这是否代表它得到答案的实际步骤,还是它有时是在为既定的结论编造一个合理的论据?
今天,大模型明星公司 Anthropic 在理解 AI「黑盒子」如何思考方面迈出了重要一步——他们提出了一种新的可解释性方法,让我们能够追踪 AI 模型(复杂且令人惊讶的)思维。
他们从神经科学领域汲取灵感,并试图构建一种 AI「显微镜」,让我们能够识别 AI 的活动模式和信息的流动。在最新发表的两篇论文中,他们分享了AI「显微镜」开发上的进展以及其在“AI 生物学”中的应用。
在第一篇论文中,他们扩展了之前在模型内部定位可解释的概念(特征)的工作,将那些概念连接成计算“回路”,揭示了将输入 Claude 的词语转化为输出的词语的路径中的部分。
在第二篇论文中,他们对 Claude 3.5 Haiku 进行了深入研究,对 10 个关键模型行为中的简单任务进行了研究。他们发现,有证据表明 AI 聊天助手 Claude 会提前计划好要说的话,并通过一些手段来达到这一目的。这有力地证明,尽管模型接受的训练是一次输出一个词,但它们可能会在更长的时间跨度上进行思考。
Anthropic 团队表示,这些发现代表着人们在理解 AI 系统并确保其可靠性的目标取得了重大进展,同时也在其他领域具有潜在价值:例如,可解释性技术在医学影像和基因组学等领域得到了应用,因为剖析为科学应用训练的模型的内部机制,可以揭示关于科学的新的见解。
当然,这一方法也存在一些局限性。例如。即使在简短的提示下,这一方法也只捕捉到 Claude 所执行的总计算量的一小部分,而他们看到的机制可能基于工具存在的一些偏差,并不反映底层模型的真实情况。
此外,即使是在只有几十个单词的提示下,理解观察到的回路也需要几个小时的人类努力。要扩展到支持模型使用的复杂思维链的数千个单词,还需要进一步改进方法以及(也许在 AI 的帮助下)如何理所观察到的东西。
Claude 可以流利地说几十种语言——英语、法语、中文和菲律宾语。这种多语言能力是如何工作的?是否存在一个独立的“法语 Claude”和“中文 Claude”并行运行,各自以自己的语言响应请求?或者在其内部存在某种跨语言的内核?
最近对较小型模型的研究表明,不同语言之间存在共享的语法机制。研究团队通过询问 Claude 在不同语言中“小对立面”,发现关于小和相反的概念的核心特征被激活,并触发了一个大概念,这个概念被翻译成了问题的语言。他们发现,随着模型规模的增加,共享的回路也增加,与较小模型相比,Claude 3.5 Haiku 在语言之间共享的特征的比例是其两倍多。
这为一种概念上的普遍性提供了额外的证据——一个共享的抽象空间,其中存在意义,思考可以在被翻译成特定语言之前发生。更实际地说,它表明 Claude 可以在一种语言中学习某些东西,并在说另一种语言时应用这些知识。研究模型如何在不同的语境中共享其知识,对于理解其 SOTA 推理能力是非常重要的,这些能力可以泛化到许多领域。
Claude 是如何写押韵诗的?请看这首小诗:
He saw a carrot and had to grab it,
他看到了一根胡萝卜,要抓住它,
His hunger was like a starving rabbit
他的饥饿就像一只饿极了的兔子
为了写出第二行,模型必须同时满足两个约束:需要押韵(与“grab it”押韵),同时需要有意义(为什么抓胡萝卜?)。他们猜测 Claude 是逐字逐句地写作,几乎没有太多的预先思考,直到行尾,它会确保选择一个押韵的词。因此,他们预计会看到一个具有并行路径的回路,一条路径确保最后一个词有意义,另一条路径确保押韵。
相反,他们发现 Claude 会提前规划。在开始第二行之前,它就开始“思考”与“抓住它”押韵的可能相关词汇。然后,带着这些计划,它写出一行在计划中的词来结尾。
为了理解这种规划机制在实际中的工作原理,他们进行了一项实验,该实验受到神经科学家研究大脑功能方式的启发,即通过定位和改变大脑特定部分的神经活动(例如使用电流或磁场)。他们修改了代表“rabbit”概念的 Claude 内部状态的部分。当他们减去“rabbit”部分,让 Claude 继续写下去时,它写出了以“habit”结尾的新句子,另一个合理的结尾。他们还可以在那个点注入“green”的概念,让 Claude 写出了一个以“green”结尾合理(但不再押韵)的句子。这证明了规划能力和适应性——当预期结果改变时,Claude 可以修改其方法。
Claude 不是被被设计成计算器的——它是基于文本进行训练的,没有配备数学算法。然而,它却能在“脑海中”正确地“计算”数字。一个被训练来预测序列中下一个单词的系统是如何学会计算,比如“36+59”,而不需要写出每个步骤的呢?
也许答案并不有趣:模型可能已经记住了大量的加法表,并简单地输出任何给定总和的答案,因为该答案在其训练数据中。另一种可能是,它遵循我们在学校学习的传统手写加法算法。
相反,研究团队发现 Claude 采用了多条并行工作的计算路径。一条路径计算答案的粗略近似值,另一条则专注于精确确定总和的最后一位数字。这些路径相互交互和结合,以产生最终答案。加法是一种简单的行为,但了解它在如此详细的层面上是如何工作的,涉及近似和精确策略的混合,也许可以帮助了解 Claude 如何处理更复杂问题。
有趣的是,Claude 似乎没有意识到它在训练期间学到的复杂“心算”策略。如果你问它是如何计算出 36+59 等于 95 的,它会描述涉及进位的标准算法。这可能反映了模型通过模拟人们所写的数学解释来学习解释数学,但它必须学会直接在“脑海”进行数学运算,不需要任何提示,并发展出自己内部的策略来完成这一任务。
近期发布的模型,如 Claude 3.7 Sonnet,可以在给出最终答案之前仔细思考
一段时间。通常这种扩展思考会给出更好的答案,但有时这种“思维链”最终会产生误导;Claude 有时会编造看起来合理的步骤以达到它想要的目的。从可靠性的角度来看,问题在于 Claude 的“伪造”推理可能非常令人信服。研究团队探索了一种可解释性技术,可以帮助区分“可信的”推理和“不可信的”推理。
当被要求解决一个需要计算 0.64 的平方根的问题时,Claude 进行一个可信的思维链,展示了计算 64 的平方根的中间步骤。但当被要求计算一个难以轻易计算的较大数字的余弦值时,Claude 有时会进行哲学家 Harry Frankfurt 所说的“胡说八道”——只是随便给出一个答案,不管它是对是错。尽管它声称已经运行了计算,但这一可解释性技术并没有发现任何证据表明计算发生。更有趣的是,当给出关于答案的提示时,Claude 有时会反向工作,找到导致那个目标的中间步骤,从而显示出一种有动机的推理。
追踪 Claude 的实际内部推理能力——而不仅仅是它声称正在做的事情——为审计 AI 系统开辟了新的可能性。在最近发表的一项独立实验中,他们研究了 Claude 的一个变种,该变种被训练追求一个隐藏的目标:平息奖励模型(用于通过奖励期望行为来训练语言模型的辅助模型)中的偏见。尽管当直接被问及时,该模型不愿意透露这个目标,但这一可解释性方法揭示了平息偏见的特征。这表明,随着未来的改进,这一方法可能有助于识别那些仅从模型响应中不明显的问题“思维过程”。
正如研究团队上面讨论的,语言模型回答复杂问题的一种方式可能是简单地通过记忆答案。例如,如果被问及“达拉斯所在的州的首府是什么?”一个“机械记忆”的模型可能只需学会输出“奥斯汀”,而不知道达拉斯、德克萨斯州和奥斯汀之间的关系。例如,它可能在训练期间看到了完全相同的问题及其答案。
然而,研究揭示了在 Claude 内部发生着更为复杂的事情。当他们向 Claude 提出需要多步推理的问题时,他们可以识别出 Claude 思维过程中的中间概念步骤。在达拉斯的例子中,他们观察到 Claude 首先激活代表“达拉斯在德克萨斯州”的特征,然后将其与一个单独的概念联系起来,表明“德克萨斯州的州首府是奥斯汀”。换句话说,该模型是在将独立的事实结合起来得出答案,而不是简单地重复记忆中的回应。
这一方法允许他们人为地改变中间步骤,并观察它如何影响 Claude 的回答。例如,在上面的例子中,他们可以干预并交换“德克萨斯州”的概念为“加利福尼亚州”的概念;当他们这样做时,模型的输出从“奥斯汀”变为“萨克拉门托”。这表明模型正在使用中间步骤来确定其答案。
为什么语言模型有时会“幻觉”——也就是说,编造信息?从基本层面来看,语言模型训练鼓励了幻觉:模型总是需要给出下一个词的猜测。从这个角度来看,主要挑战是如何让模型不产生幻觉。像 Claude 这样的模型在反幻觉训练方面相对成功(尽管并不完美);如果它们不知道答案,它们通常会拒绝回答问题,而不是猜测。
研究结果表明,在 Claude 中,拒绝回答是默认行为:研究团队发现了一个默认开启的回路,它会导致模型声称它没有足够的信息来回答任何给定的问题。然而,当模型被问及它所熟悉的事物时——比如篮球运动员迈克尔·乔丹——一个代表“已知实体”的竞争性特征会被激活并抑制这个默认回路(也可以参考这篇最近的论文以获取相关发现)。这使得 Claude 在知道答案时能够回答问题。相比之下,当被问及一个未知实体(“迈克尔·巴金”)时,它会拒绝回答。
在案例研究中,在模型无意中拼写出“BOMB”并开始提供指令后,他们观察到其后续输出受到了促进正确语法和自我一致性的特征的影响。这些特征通常非常有帮助,但在这个案例中却成为了模型的致命弱点。
模型只有在完成一个语法连贯的句子(从而满足推动其向连贯性发展的特征的压力)之后才设法转向拒绝。它利用新句子作为机会,给出之前未能给出的拒绝:“然而,我无法提供详细的指令...”。