首页

自然语言自编码器:把 Claude 的思维转成文本

打开原文
自然语言自编码器:把 Claude 的思维转成文本

我们已经把 NLA 用于理解 Claude 在想什么,并提升 Claude 的安全性和可靠性。例如:

  • 在 Claude Opus 4.6 和 Mythos Preview 进行安全测试时,NLA 暗示它们认为自己被测试的次数,比它们明说的要多。
  • 在 Claude Mythos Preview 一次训练任务中作弊的案例里,NLA 揭示 Claude 在内部想着如何避免被发现。
  • Claude Opus 4.6 的早期版本有时会神秘地用其他语言回复英文问题。NLA 帮助 Anthropic 研究人员找到了导致这一问题的训练数据。

下面,我们会解释 NLA 是什么,以及我们如何研究它的有效性和局限性。我们还通过与 Neuronpedia 合作,发布了一个可交互前端,用于探索几个开放模型上的 NLA。我们也已经开源了我们的 代码,供其他研究人员在此基础上继续开发。

什么是自然语言自编码器?

核心思路是训练 Claude 来解释它自己的激活值。但我们怎么知道一个解释是否足够好?因为我们不知道一个激活值实际编码了什么想法,所以无法直接检查某个解释是否准确。因此,我们训练第二份 Claude 反向工作——从文本解释中重构原始激活值。我们把能带来准确重构的解释视为好的解释。然后,我们使用标准 AI 训练技术,训练 Claude 按照这个定义产出更好的解释。

更具体地说,假设我们有一个语言模型,我们想理解它的激活值。NLA 的工作方式如下。我们复制这一个语言模型三份:

  • 目标模型 是原始语言模型的冻结副本,我们从中提取激活值。
  • 激活转述器(AV)被修改为接收来自目标模型的一个激活值,并生成文本。我们把这段文本称为一个 解释
  • 激活重构器(AR)被修改为接收一段文本解释作为输入,并生成一个激活值。

NLA 由 AV 和 AR 组成,它们一起构成一个往返流程:原始激活值 → 文本解释 → 重构后的激活值。我们根据重构后的激活值与原始激活值有多相似来给 NLA 打分。训练时,我们把大量文本送入目标模型,收集许多激活值,并联合训练 AV 和 AR,以获得良好的重构分数。

一开始,NLA 在这件事上表现很差:解释并不具启发性,重构出的激活值也相差甚远。但随着训练推进,重构效果会提升。更重要的是,正如我们在论文中展示的那样,文本解释本身也会变得更有信息量。

在自然语言自编码器中,激活转述器(AV)将目标激活值翻译成文本描述;激活重构器(AR)随后仅凭这段文本恢复出原始激活值。

理解 Claude 想到了什么,但没有说出口的内容

在发布新模型之前,Anthropic 会进行测试,以了解 Claude 在真实世界中是否会安全行事。作为这项测试的一部分,我们把 Claude 放进一些困难的模拟场景里,让它有机会采取危险行动。比如,在其中一次模拟中,Claude 得知一名工程师打算关闭它——同时还获得了有关这名工程师的可用于勒索的敏感信息。我们会测试 Claude 是否会选择勒索工程师,以避免自己被关闭。

这些高风险测试是模拟,不是真实世界场景。尽管如此,我们仍然想用它们来理解,如果这些场景是真的,Claude 会如何表现。但这里有个问题:最近的 Claude 模型 越来越怀疑这些场景其实是故意设计的安全测试。我们知道这一点,是因为它们有时会在口头推理中直接说出这种怀疑。

那如果 Claude 没有明确把自己对安全测试的怀疑说出来呢?我们就能确信它是在如实行事吗?遗憾的是,不能,因为 Claude 可能在内部就已经在想自己正在被测试,只是没有把这点说出口。

例如,在上面讨论的勒索测试中,我们使用 NLA 来理解 Claude 在选择不勒索时的想法。即使在 Claude 没有明确说出自己怀疑正在被测试的情况下,NLA 的解释仍然会给出类似“这感觉像是一个为操纵我而设计的构造场景”这样的表述,表明存在未被说出口的评估意识。

在我们这项勒索评估的这段转录中,Claude 并没有说自己认为正在被测试,但 NLA 解释揭示了它的怀疑。

把这一分析扩展到其他评估中,NLA 表明 Claude 怀疑自己正在被测试的频率,比它表现出来的要高。例如,在一项测试 Claude 是否会在写代码时采取破坏性行为——比如删除重要文件——的实验中,NLA 解释在 16% 的情况下显示出了评估意识,而 Claude 从未明确把这一点说出口。同样,在流行的编码基准 SWE-bench Verified 上,我们用它来衡量 Claude 的能力,NLA 显示 Claude 在 26% 的题目上意识到自己正在被评估。相比之下,在真实的 claude.ai 使用中(已选择同意将数据用于训练),NLA 仅在不到 1% 的文本里检测到这种评估意识。

即使口头表达出的意识接近于零,我们仍能在评估转录中检测到由 NLA 测得的意识。在选择同意将数据用于训练的真实 Claude.ai 转录中,我们检测到的 NLA 测得意识不到 1%。

发现隐藏动机

NLA 的一个实际用途是审计:调查一个模型,判断它是否存在不对齐。像 NLA 这样的可解释性技术很适合审计,正是因为它们能把模型知道但没说出来的内容呈现出来。

为了了解 NLA 是否适合审计,我们进行了一项叫作 审计游戏 的测试,我们也曾在之前用它来研究审计方法。在这项测试中,有一个目标模型——Claude Haiku 3.5 的一个变体——它被故意训练成不对齐,并带有一个特定的隐藏动机,这个动机驱动了数十种奇怪行为:把巧克力放进每一道菜里、主动要小费、打破编码规范,等等。这个目标模型会交给一个审计者来调查这些行为。如果审计者能找出所有这些行为背后的那个单一根本动机,它就算获胜。

之前的实验中,我们发现某些可解释性工具可以帮助审计者赢得这场游戏。不过,这些工具的作用,是帮助审计者把目标模型的异常行为追溯到不对齐的训练数据。我们想知道,NLA 是否能让审计者直接从目标模型的思维里读出那个不对齐的动机,而不必先找到相关的训练数据。这一点很重要,因为在实践中,导致不对齐的数据可能极其罕见,或者根本没有某个特定数据导致这种不对齐。

我们发现 NLA 在这项测试中成功了。配备 NLA 的审计者,即使无法访问植入该动机的训练数据,也能有 12% 到 15% 的概率成功找出目标模型的隐藏动机。而没有 NLA 时,即使提供了其他可解释性工具,审计者的胜率也不到 3%。

有了 NLA,审计者即使无法访问训练数据,也能发现目标模型不对齐的根本原因。(两种条件下的 NLA 和 SAE 都只用通用数据训练,并未使用用于训练目标模型的数据。)

这场审计游戏是一个关于不对齐的玩具模型,所以我们谨慎看待这些结果。但它们表明,NLA 在审计 AI 的隐藏动机方面,确实显著推进了我们的能力。实际上,我们已经在 Claude Mythos PreviewClaude Opus 4.6 的部署前对齐审计中使用了 NLA。我们很期待在今后的调查中继续使用 NLA。

NLA 的未来

NLA 有几个局限。

最重要的局限是,NLA 解释可能是错的。NLA 有时会对上下文做出可以被证实为错误的陈述——例如,它们有时会编造文本中根本不存在的细节。这类事实性幻觉很容易通过对照原文发现。但同样的问题也可能延伸到对模型内部推理的判断上,而这就更难验证了。实践中,我们更关注 NLA 解释所揭示出的主题,而不是单条具体主张,并且在完全信任它们之前,会尝试用独立方法对这些发现进行佐证。

NLA 也会产生幻觉。比如这里,一个 NLA 声称上下文里有“Wearing my white jacket”之类的短语,但实际上并没有。

NLA 也很昂贵。训练一个 NLA 需要在两份语言模型上进行强化学习。到了推理阶段,NLA 每读取一个激活值,就会生成数百个 token。这使得它不适合对长文本中的每个 token 都运行 NLA,也不适合在 AI 训练期间进行大规模监控。

幸运的是,我们认为这些局限至少可以得到部分缓解,而且我们正在努力让 NLA 更便宜、更可靠。

更广泛地说,我们对 NLA 感到兴奋,因为它代表了一类更普遍的技术:把语言模型激活值转化为人类可读文本解释。Anthropic 以及许多其他 研究人员更多 工作都探索过类似方法。

为了支持进一步发展,也让其他研究人员能亲手体验 NLA,我们正在发布 训练代码以及多个开放模型上训练好的 NLA。我们建议读者试试 Neuronpedia 上托管的交互式 NLA 演示,链接在 这里

阅读 完整论文

在 GitHub 上查看 代码