量子计算机需要精心设计的电路,才能在有限的硬件上运行有用的算法。我们向克劳德(Claude)提供了8种此类电路的通俗语言规格,这些电路来自化学、优化、物理模拟和数论,并配有一个自动评估器来检查每种设计并评分。克劳德基本独立工作,找到了优于已发表最佳电路的设计,某些情况下改进幅度达到一个数量级甚至更多。
正文
量子计算机要在有限的硬件上运行有用的算法,离不开精心设计的电路。我们向 Claude 提供了八个此类电路的自然语言规格(涉及化学、优化、物理模拟和数论),并配了一个自动评估器来检验和打分。Claude 基本上独立工作,找到了优于最佳已发表电路的设计,有些情况下改进幅度达到一个数量级甚至更多。这大幅降低了实用应用所需的量子资源,因此实用量子计算机可能比此前预期的更早到来。
与经典计算机用值为 0 或 1 的比特存储信息不同,量子计算机用量子比特(qubit)存储信息,量子比特可以由单个原子、超导电路或光的粒子构建而成。这些量子比特利用叠加等量子现象(让量子系统同时处于多种状态的组合),从而以某些方式处理信息,使化学、材料科学和数论中一些传统计算机难以处理的问题变得可解。
该领域迄今建造的量子计算机只有几百到几千个量子比特,数量太少,无法运行许多有望超越经典计算机的量子算法。而且这些量子比特对环境噪声(如热量、振动甚至宇宙射线)高度敏感。微小扰动就会改变量子比特的状态,这些小误差会累积,直到计算机给出错误答案。
由于量子比特和计算时间都是稀缺资源,研究者一直致力于重新设计量子算法,以使用更少的量子比特并在更短时间内完成计算。一个典型的例子是模拟 FeMoco,它是固氮酶核心的铁硫簇,细菌利用这种酶将空气中的氮转化为氨。理解它的工作原理有助于科学家设计更好的工业催化剂(制造商用来加速化学反应的物质)。
2017 年,研究者估计量子计算机需要约 50 万亿个 Toffoli 门才能计算 FeMoco 的基态能量(即其最稳定配置的能量,化学家需要用它来预测 FeMoco 如何反应)。(与经典计算机类似,量子计算机通过对量子比特施加一长串称为“门”的简单操作来工作。Toffoli 门是运行成本最高的门之一,因此统计 Toffoli 门的数量是估算计算时长的标准方法。)
通过一系列算法进展,估计门数已降至约 3.4 亿个,减少了约 15 万倍,对应于未来拥有约 300 万物理量子比特的机器上几小时的计算。这些削减主要来自重新设计执行计算的电路,而不是制造更好的硬件。Claude 已证明特别擅长优化经典算法,因此我们想看看,如果只给出每个电路必须计算内容的自然语言描述,它能否对量子算法做同样的事。
Claude 特别适合这项任务,原因有几个。首先,量子算法以量子电路的形式实现。电路由门序列组成,就像上面提到的 Toffoli 门。重要的是,这些电路可以用代码描述,因此我们可以利用 Claude 的编程能力,像编写、运行和修改普通程序一样处理电路设计。其次,我们最感兴趣的优化的那类(相当常见的)量子算法可以高效验证正确性,因为每个输入都给出一个普通计算机可以检查的确定输出;这意味着我们可以让外部评估器程序来验证 Claude 的提案。最后,我们可以给 Claude 一个清晰、客观的改进指标:使用的量子比特数乘以门数,以此作为电路运行时间的代理指标。
我们发现 Claude Mythos 5 能够成功以闭环方式工作:提出电路设计,从评估器程序接收反馈和分数,并利用这些反馈改进下一次尝试,轮次之间无需人类输入(图 1)。在化学、优化、量子模拟、数论和数值计算等八个计算原语(构建更大量子算法的基础例程)上,Claude 发现了比此前最佳已发表算法使用更少量子比特和更少门的新设计(图 2)。
每一种情况下,改进都来自于揭示关于问题的新结构和数学洞察,而不是对现有设计进行微调。例如,在编译模拟硫化铁分子的电路时,Claude 注意到分子的对称性和重复结构意味着某些结果可以计算一次并复用,而不必为系统的每个部分重新计算。在其他情况下,它发现现有电路包含一些昂贵组件,而这些组件只是为了处理极罕见的输入,于是它重新设计了电路,去掉了这些组件。
下面我们描述 Claude 的两个发现。第一个是执行模逆的新方法,模逆是椭圆曲线计算中最昂贵步骤的一种算术运算。第二个让一种领先量子优化算法最昂贵的步骤便宜了约 12 倍。
这些结果表明,AI 现在可以帮助重新设计量子电路,这是让量子算法更快、更易运行的关键一步。更快的电路设计能让量子计算机旨在解决的问题——从设计新药和更好的电池,到寻找更清洁的化肥制造方法——更早变得触手可及。

图 2:Claude 在八个不同的量子电路设计任务中设计了更小更快的电路。灰色标记显示此前最佳已发表设计;橙色标记和线条显示 Claude 的设计。第八个任务点加法在下面的表 1 中进行比较。
一种新的可逆算法
设计量子电路涉及两个普通编程没有的约束。第一个是量子电路不能像普通程序那样做“如果-那么”决策。普通程序可以检查一个值,然后只运行两段代码中的一段。但量子计算机同时运行在许多输入的叠加态上,其中一些输入会运行第一段代码,另一些会运行第二段,因此电路每次运行时都必须包含这两段操作的代码。
第二个是量子电路不能丢弃信息。普通程序可以在完成草稿工作后覆盖或删除它们;在量子计算机中,这种中间信息不能简单地被擦除,因为量子电路的每一步都必须是可逆的。保留这些信息也行不通,因为残留的草稿工作会破坏最终结果。丢弃信息的唯一方法是“反向计算”(uncompute),即反向运行创建该信息的计算,代价是增加额外的门。这两个约束使得量子电路在运行时间和量子比特数上都比经典对应物昂贵得多。
这一强制约束带来了空间(即量子比特)和时间之间的艰难权衡。在一个极端,量子电路可以在中间结果一被使用后就立即反向计算它们。这释放了量子比特,但如果之后再次需要这些结果,电路必须重新计算它们,这会增加门数并延长运行时间。在另一个极端,电路可以保留中间结果直到不再需要它们。这避免了重复工作,但可能需要多得多的量子比特。
这正是量子电路设计成为测试 Claude 能力特别有趣的原因。电路可以写成普通代码,但改进它们需要模型在一组与普通编程截然不同的约束下进行推理。
一个艰巨的初步测试:模逆
我们给 Claude 的第一个任务是点加法,这是一条将数学曲线(椭圆曲线)上的两个点组合生成第三个点的规则。点加法是椭圆曲线上离散对数问题量子算法的核心步骤:给定一个起点,以及将它自身相加 n 次的结果,求出 n。对于大曲线,经典计算机无法在合理时间内解决这个问题,但足够大的量子计算机可以。
这些算法会多次执行点加法,包括反向执行,而这些加法占据了它们大部分量子比特和运行时成本。像这种易于计算、极难逆转的问题,是最早证明量子计算机能比经典计算机提供指数级加速的问题之一。由于这些原因,点加法已成为该领域的标准基准之一。这对 Claude 来说是一项要求很高的测试。因此,我们要求它找出点加法真正需要的量子比特和门数最少是多少。
我们给 Claude 提供了一段话的简要说明。它解释了点加法的数学规则,以及评估器将如何检查每个提议电路的正确性,并根据所用量子比特数和门数对其打分。它还指示 Claude 并行探索几种方法。在最少人类输入的情况下(仅限于初始简要说明和偶尔提示它更广泛地思考),Claude 工作了 53 小时,最终找到了一种全新的问题解决方法。
divsteps 的内存需求
点加法的大部分成本来自一个称为模逆(modular inversion)的步骤。椭圆曲线算术使用的数字在达到固定限制时会绕回。模逆是除法的绕回版本:给定一个整数 a,求出 x,使得 ax ≡ 1 (mod p)。经典计算机可以用一种称为 divsteps 的方法高效执行此操作。Divsteps 从一对数字开始,通过多轮迭代不断简化它们。在每一轮中,divsteps 检查当前的数字对,并有条件地交换、加、减或减半它们。在此过程中,它保留刚好足够的信息,以便在最后生成模逆。
尽管 divsteps 在经典计算机上很成功,但由于上述可逆性约束,它尚未产生实用的量子电路。记录每次迭代中选择哪种操作的信息称为分支信息(branch information),属于传统程序可以简单丢弃的草稿工作。相反,量子电路必须保留该记录,以便计算可以反向运行。因此,直接的 divsteps 量子版本被迫累积一长串的分支信息历史,而这需要存储大量额外的量子比特。
Claude 如何绕开内存问题
Claude 认识到,这种 divsteps 方法对量子电路可能很有前途,但前提是能绕开存储完整历史的需求。它有一个想法:也许根本不需要存储该记录。Claude 推理,或许可以通过在每次迭代后仔细检查数字对,直接推断(或“解码”)出分支信息。本质上,数字本身就会存储该记录。这样,电路就可以反向运行,而不需要任何额外的量子比特。
为了测试这个想法,Claude 探索了一些简单的候选解码规则。这些早期规则在小型测试用例上有效,但当 Claude 在完整问题规模(256 位数字)上测试时失败了。
Claude 随后尝试了一种更具理论性的方法。它没有猜测和测试规则,而是着手从数学上理解 divsteps 为何有这种行为。它证明了一系列关于迭代过程的结果,包括几个新的代数恒等式。从这些恒等式中,Claude 推导出了精确解码规则的公式,可以正确地从数字对中恢复分支信息。然后它检查了该公式,首先通过大规模数值模拟运行它,然后在 Lean 中形式化该声明。完成全面验证后,Claude 生产出了第一个不存储分支历史的 divsteps 可逆实现。
一系列设计
解码节省了量子比特,但要付出时间代价。因此,作为进一步的改进,Claude 寻找了存储分支信息比解码更便宜的情况。通过改变电路存储而非解码分支信息的阈值,Claude 生产出了一系列处于两个极端之间的新设计。与最小型的前期设计相比,该系列中的一个电路多使用 12% 的量子比特,但门数减少了 17 倍。更广泛地说,新设计扩展了帕累托前沿(Pareto frontier),提供了此前无法实现的量子比特数与运行时间的组合(表 1)。

优化量子优化器
优化问题是调度、物流和材料设计等一系列任务的核心。优化问题提出一组相互竞争的限制条件,并要求找出能尽可能多地满足这些条件的解。已提出许多用于这类问题的量子算法,但大多只承诺比经典计算机有适度或不确定的增益。解码量子干涉测量(DQI)是最有希望提供超多项式量子加速的候选者之一——这种优势随着问题规模变大而迅速扩大。
当量子计算机完成计算时,读取其量子比特只会产生一个答案,该答案是从它们叠加态中持有的可能性里随机选出的。DQI 的工作原理是制备一个量子态,使得好的解比坏的解更可能被读出。做到这一点需要使用纠错解码器,它能从一个紧凑的摘要中恢复出一小段“错误”列表。这是算法中最昂贵的步骤。因此,如果我们能制造更快的解码器,也能更快地执行 DQI。
更高效的量子解码器
引入 DQI 的研究者在一个称为最优多项式交点(OPI)的问题上进行了演示,这是一个基于网格的曲线拟合版本(图 3)。想象一个网格,其中每个位置 x 包含几个可接受的 y 值。目标是找到一条简单的曲线(一个低阶多项式),使其穿过尽可能多 x 位置上可接受的方格。DQI 使用一种称为 Reed–Solomon 解码器的特定解码器来处理这个优化问题。

Reed–Solomon 解码从上述错误的紧凑摘要(称为 syndrome,即校验子)开始。解码器的工作是从这个摘要中推断出错误发生在数据的什么位置以及错误是什么。此前最先进的量子电路使用扩展欧几里得算法来处理这些综合征,这是一系列除法和交换,其中步骤的数量和顺序取决于给定的特定输入。在这里,量子电路的约束再次出现:普通程序可以为每个输入遵循不同的路径,而量子电路同时处理许多输入,必须用单一固定的门序列来处理所有输入。为了管理这一点,此前的设计不得不将计算拉伸到比任何单个输入所需的多得多的迭代轮次,并且必须在每一轮中运行每一个操作,即使这样做并不必要。
改进这个解码器可以大幅减少 DQI 的运行时间。Google Quantum AI 的研究者估计,解决一个特定的 OPI 问题在 Frontier(全球最强大的超级计算机之一)上大约需要三个月,而在未来运行 DQI 的量子计算机上大约需要一小时。其中大部分时间将花在 Reed–Solomon 解码上。
因此,我们要求 Claude 为解码步骤设计一个更高效的量子电路。Claude 很快得出结论:扩展欧几里得算法不太适合量子电路。相反,它围绕一种不同的解码方法——称为 Berlekamp–Massey 解码——来组织电路,该方法逐个读取 syndrome(错误的摘要),并逐步找出最简单的规则,根据之前出现的数字预测列表中的每个数字。一旦找到该规则,它就揭示了错误。与扩展欧几里得算法不同,Berlekamp–Massey 在每一轮执行相同类型的步骤,并且总是运行相同数量的轮次,这适合量子电路的单一固定门序列,最终给 Claude 提供了一个更高效的构建基础。
简化存储方法
切换到 Berlekamp–Massey 消除了电路为不同输入走不同路径的需要。但使其可逆带来了另一个挑战,这次是由于上面讨论的反向计算约束。在每一轮中,电路计算出它只需要短暂使用的临时值,但这些信息不能简单地删除:为了以后能反向计算它,电路必须能够恢复这些信息。
存储这些信息本来会非常昂贵。因此,Claude 采取了与处理 divsteps 时相同的策略:它找到了一种从电路当前状态重建大部分这些信息的方法,因此不需要存储。然而,少数异常值无法以这种方式恢复,必须保存。
为最坏情况(异常值出现在 35 个不同的轮次中)留出足够的内存将需要 665 个量子比特。相反,Claude 编写了一个高速模拟器,并运行了 4.03 亿次样本解码,以测量这些异常实际发生的频率。几乎每次运行最多只需要保存一个值。因此,Claude 的电路只为 1 个保存值(即 19 个量子比特)留出空间。大约每一万次运行中有一次需要更多空间并会失败,这完全在任务允许的错误率范围内。这些改进用少量固定的量子比特和门数取代了庞大的最坏情况预留(图 4)。

这些优化共同将解码器的门数相对于 Google 之前的结构减少了 12 倍。这一改进来自三个层面的重新设计:不同的方法(用 Berlekamp–Massey 解码取代扩展欧几里得算法)、不同的电路架构(重建临时值而不是存储它们),以及不同的资源预算(精确测量电路真正需要多少内存和计算)。任何单一改变本身都不足以做到,但它们合在一起,让 DQI 最昂贵的步骤便宜了一个数量级多一点。
我们学到了什么
科学进步往往来自于让理论想法变得实用。发生这种情况的主要方式之一,是让一个曾被认为不切实际的过程变得足够快速和廉价以执行。量子电路设计就是一个典型例子:上面描述的 FeMoco 估算下降 15 万倍,花了多个研究小组八年时间,每一步通常代表数月的工作。相比之下,Claude 的椭圆曲线设计只是单次 53 小时运行的结果。
这些结果表明,AI 可以支持电路设计工作,产出的实现让有用的量子计算更接近真实硬件的能力。如果 AI 能加速这项工作,有用的量子计算可能会更早到来。
尽管 Claude 在这些任务上表现令人鼓舞,我们也观察到一些局限性。在早期实验中,Claude 天生保守。它反复怀疑明显的改进,有时甚至继续对已有充分支持的结果进行双重甚至三重检查。这种谨慎有时很有价值:例如,它促使 Claude 编写 Lean 证明来验证其 divsteps 设计。但它也表现为倾向于偏好现有的、众所周知的方法,而不是更新的方法。
我们采取了两个步骤来缓解这一点。首先,我们的设置要求 Claude 提出几种性质不同的方法,并并行开发它们。其次,我们偶尔也会提示 Claude 扩大搜索范围。这些干预成功地让 Claude 追求更宏大的想法。例如,椭圆曲线结果并不是通过削减现有设计的门数得来的,而是探索了一种此前无法实现的模逆可逆计算方法,然后推导出使其变得实用所需的数学结果。一旦想到这个想法,Claude 就自主开发该方法、实现它并验证其正确性。
电路设计只是构建有用量子计算机的一部分。由于量子比特非常脆弱,机器还必须在运行时捕获并修复自身的错误,而这依赖于许多其他组件,从纠错码到快速解码器再到硬件本身的控制。这些组件都相互影响,但为了管理复杂性,通常每个组件都单独设计。它们中的许多都具有使电路设计适合 Claude 的特征:设计可以写成代码、检查正确性并按成本评分。
这提出了一种引人入胜的可能性。与其单独设计每个组件,AI 可以联合优化所有组件,从算法一直向下到硬件,从而构建出针对特定问题定制的完整纠错量子计算机。此类设计还可以告诉硬件构建者,对于给定应用,哪些能力最重要。这可能让设计催化剂和理解新材料等问题进入首批容错机器的能力范围。
评论
讨论并未一边倒:评论基本不否认 Claude 通过重建临时数据、替换更优算法,把八个模拟量子电路的操作量最多降到原来的约 1/17 与 1/12;但分歧集中在 Anthropic 是否夸大自家与 Claude 的主导作用,以及删掉罕见输入组件后电路是否还算“同一个计算”。也有人用《Universal Paperclips》梗调侃,说这像 AI 在游戏里发展量子计算来让自己更聪明。
认为这是可验证、可自动化的真实优化,客观上有价值
- 平时常批评 AI 的人也承认,这次结果看起来客观上是好事;再加上任务有可验证的闭环、适合自动化搜索,因此不必神化,也确实有用。(较多人) > 我平时挺讨厌 AI,但这次看起来客观上是好事,所以我选择不吵了继续看下去。(@JacobAsmuth)
质疑 Anthropic 在宣传中夸大自身与 Claude 的贡献
- 宣传稿称项目由 Anthropic STEM Fellows 成员主导、与 Harvard 合作;但论文致谢显示 Andi Gu 只是“部分工作”在该项目下完成,Harvard 方面主要由 IARPA、陆军研究办公室、NSF 等资助,因此有人觉得宣传像是凭空编造出来的。(少数人) > 整个 Anthropic 的商业宣传看起来像是幻觉出来的。(@Liar Claude)
质疑优化后的电路不再执行同一个计算
- 有评论抓住论文里“现有电路包含只为极罕见输入准备的昂贵组件”这点,认为 Claude 直接删掉这些组件后已经改变了原问题定义;所谓大幅提升可能牺牲了极端罕见情况下的正确性,不能简单说还是同一个计算。(少数人) > 既然它把只在极罕见输入下才需要的昂贵组件去掉了,那它其实已经不是在做同一个计算。(@adastra22)
有价值的补充
- 技术背景:Kickmix 是 Google 提出的、面向经典可模拟量子电路的汇编式语言;在这种语言里找更省操作的电路,类似于在汇编指令上玩“代码高尔夫”。由于改动可以被快速验证,大模型能利用闭环试错,所以学者以前没优化到这个程度并不奇怪,这也是适合自动化的任务。(@keeganryan)