Anthropic: 追踪大语言模型的思维

Claude这样的语言模型其实并非人类手把手编写出来——相反,它们是在大量数据上进行训练的。在训练过程中,它们学习自己的策略来解决问题。这些策略被编码在模型为每个词语所执行的数十亿次计算中。对于我们这些模型的开发者来说,这些策略难以解析理解。这意味着我们不理解模型是如何完成大多数任务的。 了解像Claude这样的模型如何思考,将使我们能够更好地理解它们的能力,并帮助我们确保它们正在执行我们期望的任务。例如: Claude可以说几十种语言。它在"思考"时使用的是什么语言,如果有的话? Claude一次写一个词。它是只专注于预测下一个词,还是有时会提前规划? Claude可以一步一步地写出它的推理过程。这种解释是否代表了它得出答案的实际步骤,或者它有时是为既定结论编造一个看似合理的论证? 我们从神经科学领域获得灵感,该领域长期以来一直研究思考生物的复杂内部机制,并尝试构建一种AI显微镜,让我们能够识别活动模式和信息流。仅仅通过与AI模型对话所能了解的内容是有限的——毕竟,人类(甚至神经科学家)也不知道我们自己的大脑是如何运作的所有细节。所以我们深入内部一探究竟。 今天,我们分享两篇新论文,这些论文代表了"显微镜"开发方面的进展,以及将其应用于观察新的"AI生物学"。在第一篇论文中,我们扩展了之前在模型内部定位可解释概念(“特征”)的工作,将这些概念连接成计算"circuit",揭示了将输入Claude的词转化为输出词的部分路径。在第二篇论文中,我们深入研究了Claude 3.5 Haiku内部,对代表十种关键模型行为的简单任务进行了深入研究,包括上述三种行为。我们的方法揭示了Claude响应这些提示词时发生的部分过程,这足以看到确凿的证据: 首先,Claude有时会在多种语言共享的概念空间中思考,这表明它拥有一种通用的"思想语言"。我们通过将简单句子翻译成多种语言并追踪Claude处理它们时的重叠部分来证明这一点。 其次,Claude会提前规划它要说的许多词,并为达到目标而写作。我们在诗歌领域展示了这一点,它会提前考虑可能的押韵词,并编写下一行诗句以达到押韵。这有力地证明,即使模型被训练为一次输出一个词,它们也可能在更长的时间范围内进行思考。 此外,Claude有时会给出一个听起来合理的论点,这个论点旨在附和用户而非遵循逻辑步骤。我们通过在给出错误提示的情况下要求它帮助解决一个困难的数学问题来展示这一点。我们能够"当场抓住"它编造假推理的过程,从而证明我们的工具可用于标记模型中令人担忧的机制。 我们经常对模型中看到的东西感到惊讶:在诗歌案例研究中,我们原本打算证明模型没有提前规划,但却发现它确实有这样做。在一项关于幻觉的研究中,我们发现了一个反直觉的结果——Claude的默认行为是在被问及问题时拒绝推测,它只会在某些因素抑制这种默认的不情愿时才回答问题。在回应一个越狱示例时,我们发现模型在能够优雅地将对话拉回正轨之前,就已经认识到它被要求提供危险信息。 虽然我们研究的问题可以(而且经常)通过其他方法进行分析,但通用的"构建显微镜"方法让我们学到了许多我们原本不会猜到的东西,这在模型变得更加复杂时将变得越来越重要。 这些发现不仅具有科学意义,它们还代表了我们在理解AI系统并确保其可靠性方面的重大进展。我们也希望它们对其他团体有所帮助,并可能在其他领域有所应用:例如,可解释性技术已在医学成像和基因组学等领域找到应用,因为解剖为科学应用而训练的模型的内部机制可以揭示关于科学的新见解。 同时,我们也认识到我们当前方法的局限性。即使对于简短、简单的提示词,我们的方法也只能捕获Claude执行的总计算的一小部分,而且我们看到的机制可能基于我们的工具有一些与底层模型实际情况不符的人工痕迹。目前,即使只是几十个词的提示词,理解我们看到的circuit也需要几个小时的人力。要扩展到支持现代模型使用的复杂思维链的数千个词,我们需要改进方法,并且(可能在AI的帮助下)改进我们理解所见的方式。 随着AI系统迅速变得更加强大并被部署在越来越重要的环境中,Anthropic正在投资一系列方法,包括实时监控、模型特性改进和对齐科学。像这样的可解释性研究是风险最高、回报最高的投资之一,这是一个重大的科学挑战,有可能提供一个独特的工具,确保AI是透明的。对模型机制的透明度使我们能够检查它是否与人类价值观一致,以及它是否值得我们信任。 有关完整详情,请阅读论文。下面,我们邀请您简要了解我们调查中一些最引人注目的"AI生物学"发现。 AI 生物学之旅 Claude 是如何实现多语言能力的? Claude 能流利地说数十种语言——从英语和法语到中文和塔加洛语。这种多语言能力是如何运作的?是否有独立的"法语 Claude"和"中文 Claude"并行运行,各自用自己的语言回应请求?还是内部存在某种跨语言的核心? 英语、法语和中文之间存在共享特征,表明概念存在一定程度的普遍性。 对较小模型的最新研究显示,不同语言之间存在共享的语法机制迹象。我们通过在不同语言中询问 Claude “small(小)的反义词"来进行调查,发现表示"小"和"反义"这些概念的相同核心特征被激活,并触发了"大"的概念,然后这个概念被翻译成问题所用的语言。我们发现,随着模型规模的增加,共享神经回路也增加,与较小的模型相比,Claude 3.5 Haiku 在语言之间共享的特征比例增加了两倍多。 这为概念通用性提供了额外的证据——一种共享的抽象空间,在这个空间中存在意义,思考可以在被翻译成特定语言之前发生。更实际地说,这表明 Claude 可以在一种语言中学习某些内容,并在使用另一种语言时应用这些知识。研究模型如何在不同上下文中共享其知识,对于理解其最先进的推理能力至关重要,这些能力可以跨多个领域进行泛化。 Does Claude plan its rhymes? 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,而不用写出每一步呢? 也许答案并不有趣:模型可能已经记忆了大量的加法表,并且简单地输出任何给定和的答案,因为该答案存在于其训练数据中。另一种可能性是它遵循我们在学校学习的传统手工加法算法。 ...

March 28, 2025 · 小茄墩

Anthropic:构建有效的Agents

在过去一年中,我们与数十个团队合作,构建了跨行业的大语言模型 (LLM) AI 智能体。我们发现,最成功的案例并非依赖复杂的框架或专门的库,而是采用简单且可组合的模式。 在这篇文章中,我们将分享我们与客户合作以及自身构建 AI 智能体的经验,并为开发者提供构建高效 AI 智能体的实用建议。 “Agent”(AI 智能体)可以用几种方式来定义。一些客户将智能体定义为完全自主的系统,这些系统在较长时间内独立运行,并使用各种工具来完成复杂的任务。另一些人则使用该术语来描述更具规范性的实现,这些实现遵循预定义的workflow(工作流程)。在Anthropic,我们将所有这些变体归类为agentic systems(智能体系统),但在架构上对workflows(工作流程)和agents(智能体)进行了重要的区分: Workflows(工作流程)是指大语言模型(LLM)和工具通过预定义的代码路径进行编排的系统。 Agents(智能体)是指大语言模型(LLM)动态地指导其自身流程和工具使用的系统,保持对其如何完成任务的控制。 下面,我们将详细探讨这两种类型的智能体系统。在附录1(“实践中的智能体”)中,我们描述了客户发现使用这些系统具有特殊价值的两个领域。 在使用大语言模型构建应用程序时,我们建议尽可能采用最简单的解决方案,仅在必要时才增加复杂性。 这可能意味着完全不构建 AI 智能体系统。AI 智能体系统通常会牺牲延迟和成本来换取更好的任务性能,因此您应该仔细衡量这种权衡是否值得。 当需要更高的复杂性时,对于定义明确的任务,工作流程能够提供可预测性和一致性;而当需要在更大规模上实现灵活性和模型驱动的决策时,AI 智能体则是更优的选择。 然而,对于许多应用而言,通过检索和上下文示例来优化单个大语言模型的调用通常就已足够。 何时以及如何使用框架? 有许多框架可以更轻松地实现 AI 智能体系统,包括: LangChain 的 LangGraph; Amazon Bedrock 的 AI 智能体框架; Rivet,一个拖放式 GUI LLM 工作流程构建器 Vellum,另一个用于构建和测试复杂工作流程的 GUI 工具。 这些框架通过简化标准底层任务(如调用 LLM、定义和解析工具以及将调用链接在一起)来简化入门。但是,它们通常会创建额外的抽象层,从而模糊底层提示词和响应,从而使其更难调试。当更简单的设置就足够时,它们也可能使添加复杂性变得很诱人。 我们建议开发人员首先直接使用 LLM API:许多模式可以用几行代码实现。如果您确实使用框架,请确保您了解底层代码。关于底层代码的不正确假设是客户错误的常见来源。 构建模块、工作流程和 AI 智能体 在本节中,我们将探讨我们在生产环境中观察到的 AI 智能体系统的常见模式。我们将从我们的基础构建模块——增强型大语言模型——开始,并逐步增加复杂性,从简单的组合工作流程到自主 AI 智能体。 构建模块:增强型大语言模型 Agentic 系统 的基本构建模块是一个大语言模型,它通过检索、工具和记忆等增强功能得到加强。我们目前的模型可以主动使用这些能力——生成自己的搜索查询,选择合适的工具,并确定要保留哪些信息。 我们建议重点关注实现的两个关键方面:根据您的特定用例定制这些功能,并确保它们为您的 大语言模型 提供一个简单、有据可查的接口。虽然有很多方法可以实现这些增强功能,但一种方法是通过我们最近发布的Model Context Protocol,该协议允许开发人员通过一个简单的客户端实现与不断增长的第三方工具生态系统集成。 在本帖的剩余部分,我们将假设每个 大语言模型 调用都可以访问这些增强功能。 工作流:提示链 提示链将一个任务分解成一系列步骤,其中每个大语言模型(LLM)调用处理前一个调用的输出。 您可以在任何中间步骤中添加程序化检查(参见下图中的“门控”),以确保该过程仍在正轨上。 ...

March 6, 2025 · 小茄墩