跳到正文
Anthropic Research·· 18 天前精选AI 评分80

Anthropic 用 Claude 设计更高效的量子电路

Designing more efficient quantum circuits with Claude

AI 导读

Anthropic 让 Claude Mythos 5 在无人工干预的闭环中设计量子电路,在化学、优化、数论等八个计算原语上找到比此前最优方案使用更少 qubit 和更少门的全新设计。

推荐理由

Anthropic 公开 Claude 在量子电路设计上的闭环实验,给出可复用的评测思路与具体降本数字。

正文 · AI 翻译

与将信息存储在取值为 0 或 1 的比特中的经典计算机不同,量子计算机将信息存储在量子比特中,量子比特可以由单个原子、超导电路或光子构建。这些量子比特利用叠加等量子现象——叠加允许量子系统同时处于多种状态的组合之中——以某种方式处理信息,从而有可能让化学、材料科学和数论等领域的某些问题变得可解,即便这些问题对传统计算机来说过于困难。

迄今为止,该领域已建成的量子计算机只有数百到数千个量子比特——数量太少,无法运行许多有望带来超越经典计算机的实际优势的算法。而且这些量子比特对环境噪声高度敏感,例如热量、振动,甚至宇宙射线。微小的扰动就可能使量子比特的状态发生偏移,而这些小误差会不断累积,直到计算机给出错误答案。

鉴于量子比特和计算时间都是稀缺资源,研究人员一直在努力重新设计量子算法,以使用更少的量子比特并在更短时间内完成计算。一个说明性的例子是模拟 FeMoco,即固氮酶核心的铁硫簇;固氮酶是细菌用来将空气中的氮转化为氨的酶。理解其工作原理可能有助于科学家设计更好的工业催化剂——制造商用来加速化学反应的物质。

2017 年,研究人员估计,一台量子计算机需要大约 50 万亿个 Toffoli 门来计算 FeMoco 的基态能量——即其最稳定构型的能量,化学家需要这一能量来预测 FeMoco 如何反应。(与普通计算机类似,量子计算机通过对量子比特施加一长串称为门的简单操作来工作。Toffoli 门是运行成本最高的门之一,因此计算 Toffoli 门的数量是估算一次计算需要多长时间的标准方法。)

通过一系列算法进展,估计的门数量已降至约 3.4 亿个——大约减少了 15 万倍,相当于在一台拥有约 300 万个物理量子比特的未来机器上计算几个小时。1

这些减少主要来自重新设计执行计算的电路,而不是来自制造更好的硬件。Claude 已被证明特别擅长优化经典算法,因此我们想看看,如果只向它提供每个电路必须计算什么的通俗语言描述,它是否也能对量子算法做到同样的事情。

Claude 异常适合这项任务,原因有几点。首先,量子算法是以量子电路的形式实现的。这些电路由一系列门组成,比如上文提到的 Toffoli 门。重要的是,这些电路可以用代码来描述,因此我们可以利用 Claude 的编程能力,把电路设计当作普通程序来编写、运行和修改。其次,我们最想优化的那类(相当常见的)量子算法可以高效地验证正确性,因为每个输入都给出一个确定的输出,普通计算机就能检查。这意味着我们可以用一个外部评估程序来验证 Claude 的提案。最后,我们可以给 Claude 一个清晰、客观的分数来优化:所用量子比特数乘以门数,以此作为电路运行耗时的代理指标。

我们发现 Claude Mythos 5 能够成功地在闭环中工作:提出电路设计,从评估程序获得反馈和分数,并利用这些反馈改进下一次尝试,轮次之间无需人工介入(见图 1)。在化学、优化、量子模拟、数论和数值计算领域的八个计算原语——即构建更大量子算法的基本例程——上,Claude 发现了新颖的设计,其使用的量子比特数和门数都少于此前发表的最佳算法(图 2)。 

在每种情况下,改进都源于发现了关于问题的新结构和数学洞见,而非对现有设计进行微调。例如,在为模拟硫化铁分子编译电路时,Claude 注意到该分子的对称性和重复结构意味着某些结果可以计算一次并重复使用,而不必为系统的每个部分重新计算。在其他情况下,它发现现有电路包含了一些昂贵的组件,而这些组件仅用于处理极其罕见的输入,于是它在重新设计时去掉了这些组件。

下面我们介绍 Claude 的两项发现。第一是一种执行模逆的新方法,这是椭圆曲线计算中最昂贵的一步算术运算。第二项使一种领先的量子优化算法中最昂贵的一步成本降低了约 12 倍。

这些结果表明,AI 现在可以帮助重新设计量子电路,这是让量子算法运行得更快、更容易的关键一步。更快的电路设计可以让量子计算机本应解决的问题——从设计新药和更好的电池,到寻找更清洁的化肥制造方法——更早实现。

一种新的可逆算法

设计量子电路涉及两个普通编程没有的约束。第一个是量子电路不能像普通程序那样做“if-then”判断。普通程序可以检查一个值,然后只运行两段代码中的一段。但量子计算机同时运行在许多输入的叠加态上,其中一些输入会运行第一段代码,另一些会运行第二段代码,因此电路每次运行时都必须包含这两部分操作。 

其次是量子电路无法丢弃信息。普通程序在完成草稿工作后可以覆盖或删除它;而在量子计算机中,这类中间信息不能简单地被擦除,因为量子电路的每一步都必须是可逆的。把信息留在原地也不行,因为残留的草稿工作会破坏最终结果。丢弃信息的唯一方法是通过反向运行产生它的计算来“逆计算”它,代价是额外的门。这两项约束使得量子电路在运行时间和量子比特数上都比经典电路昂贵得多。

这一约束迫使在空间(即量子比特)和时间之间做出艰难的权衡。在一个极端,量子电路可以在中间结果被使用后立即逆计算它们。这释放了量子比特,但如果之后再次需要这些结果,电路必须重新计算它们,这会增加门并延长运行时间。在另一个极端,电路可以保留中间结果,直到不再需要它们。这避免了重复工作,但可能需要多得多的量子比特。

这正是量子电路设计成为对 Claude 能力特别有趣的测试的原因。电路可以写成普通代码,但改进它们需要模型在一组与普通编程截然不同的约束下进行推理。

艰难的首次测试:模逆

我们给 Claude 的第一个任务是点加法,这是一种将数学曲线(椭圆曲线)上的两个点相加以产生第三个点的规则。点加法是椭圆曲线上离散对数问题的量子算法的核心步骤:给定一个起始点以及将其与自身相加 n 次的结果,求出 n。对于大型曲线,普通计算机无法在任何合理的时间内解决这个问题,但足够大的量子计算机可以。

这些算法会多次执行点加法,包括反向执行,而这些加法构成了它们大部分量子比特和运行时间成本。像这样——易于计算、极难逆转——的问题是最早被证明量子计算机能比普通计算机提供指数级加速的问题之一。由于这些原因,点加法已成为该领域的标准基准之一。这使它成为对 Claude 的一项严苛测试。因此,我们要求它规划出点加法真正需要多少量子比特以及多少门。

我们给 Claude 了一份一段话的简报。它解释了点加法的数学规则,以及评估器将如何检查每个提出的电路的正确性,并根据其使用的量子比特数和门数进行评分。它还指示 Claude 并行探索多种方法。在极少人工输入(仅限于初始简报和偶尔提示更广泛地思考)的情况下工作 53 小时后,Claude 得出了该问题的一种全新方法。

divsteps 的内存需求

点加的大部分成本来自一个单独的步骤,称为模逆。椭圆曲线算术使用的数字在达到固定上限后会回绕。模逆是除法在回绕意义下的版本:给定整数 a,找到 x,使得 ax ≡ 1 (mod p)。普通计算机可以使用一种称为 divsteps 的方法高效地执行此操作。Divsteps 从一对数字开始,并在多轮迭代中反复简化它们。在每一轮中,divsteps 检查当前的一对数字,并有条件地交换、相加、相减或减半。在此过程中,它只保留刚好足够的信息,以便在最后生成模逆。

尽管 divsteps 在普通计算机上取得了成功,但由于上述可逆性约束,它尚未产生实用的量子电路。每次迭代中选择哪种操作的记录,称为分支信息,是传统程序可以直接丢弃的那类草稿工作。相比之下,量子电路必须保留该记录,以便计算可以反向运行。因此,divsteps 的直接量子版本被迫累积很长的分支信息历史,这需要大量额外的量子比特来存储。

Claude 如何绕过内存问题

Claude 认识到,这种 divsteps 方法对量子电路可能很有前景,但前提是找到一种方法,避免需要存储完整历史。它有一个想法:也许记录根本不需要存储。Claude 推理说,也许可以通过仔细检查每次迭代后的一对数字,直接推断(或“解码”)分支信息。本质上,数字本身将存储记录。然后,电路可以在不需要任何额外量子比特的情况下反向运行。

为了测试这个想法,Claude 探索了一些用于执行解码的简单候选规则。这些早期规则在小测试用例上有效,但当 Claude 在完整问题规模(256 位数字)上测试它们时,它们失败了。

然后 Claude 尝试了一种更具理论性的方法。它没有猜测和测试规则,而是着手从数学上理解 divsteps 为何如此行为。它证明了一系列关于迭代过程的结果,包括几个新的代数恒等式。从这些恒等式中,Claude 推导出了一个精确的解码规则公式,该公式能够正确地从数值对中恢复分支信息。然后它检查了这个公式,首先通过大规模数值模拟运行它,然后在 Lean 中形式化该断言。在完成全面验证后,Claude 产生了第一个不存储分支历史的 divsteps 可逆实现。

一系列设计

解码节省了量子比特,但耗费时间。因此,作为进一步的改进,Claude 寻找了存储分支信息比解码它更便宜的情况。通过改变电路存储而非解码分支信息的阈值,Claude 产生了一系列介于两个极端之间的新设计。与之前最小的设计相比,该系列中的一个电路使用的量子比特多 12%,但门少 17 倍。更一般地说,新设计扩展了帕累托前沿,提供了以前不可用的量子比特数和运行时间的组合(表 1)。

优化量子优化器

优化问题处于众多任务的核心,包括调度、物流和材料设计。一个优化问题会呈现一组相互竞争的约束条件,并要求给出尽可能满足更多约束条件的解。针对这类问题,人们已经提出了许多量子算法,但其中大多数算法相较于普通计算机只能带来有限或不确定的加速。解码量子干涉测量(DQI)是最有希望提供超多项式量子加速的候选方案之一——这种优势会随着问题规模增大而迅速扩大。

当量子计算机完成计算时,读取其量子比特只会产生一个答案,该答案是从它们以叠加态持有的各种可能性中随机选出的。DQI 的工作原理是制备一种量子态,使得其中好的解比坏的解更有可能被读出。要做到这一点,需要使用纠错解码器,它从紧凑的摘要中恢复出一份简短的“错误”列表。这是该算法中开销最大的一步。因此,如果我们能做出更快的解码器,也就能更快地执行 DQI。

更高效的量子解码器

提出 DQI 的研究人员在一个名为最优多项式交集(OPI)的问题上演示了它,这是曲线拟合的一种基于网格的版本(图 3)。想象一个网格,其中每个位置 x 都包含若干个可接受的 y 值。目标是找到一条简单曲线(低次多项式),使其尽可能多地穿过各个 x 位置上的可接受方格。DQI 使用一种特定类型的解码器来解决这个优化问题,称为 Reed-Solomon 解码器。

Reed-Solomon 解码从上面提到的错误紧凑摘要开始,这种摘要被称为校验子。解码器的工作是从这个摘要中推断出错误发生在数据中的哪些位置以及错误是什么。此前最先进的量子电路使用扩展欧几里得算法来处理这些校验子,该算法是一系列除法和交换操作,其步骤数量和顺序取决于所给定的具体输入。在这里,量子电路的约束再次显现:普通程序可以针对每个输入走不同的路径,而量子电路要同时处理许多输入,必须用单一固定的门序列来处理所有这些输入。为了应对这一点,先前的设计不得不将计算扩展到比任何单个输入所需更多的迭代轮数,并且必须在每一轮中运行每一个操作,即使这样做并不必要。

改进这个解码器可以大幅缩短 DQI 的运行时间。Google Quantum AI 研究人员的估算表明,解决某一个特定的 OPI 问题在 Frontier(世界上最强大的超级计算机之一)上大约需要三个月,而在未来运行 DQI 的量子计算机上大约只需一小时。这一小时的大部分时间将花在 Reed-Solomon 解码上。

于是,我们让 Claude 为解码步骤设计一个更高效的量子电路。Claude 很快得出结论:扩展欧几里得算法并不适合量子电路。于是,它围绕另一种解码方法——Berlekamp-Massey 解码——来组织电路。该方法逐个读取校验子(错误的摘要),并逐步推导出最简单的规则,根据列表中前面的数字来预测每个数字。一旦找到该规则,就能揭示错误。与扩展欧几里得算法不同,Berlekamp-Massey 在每一轮执行相同类型的步骤,并且始终运行相同的轮数,这适合量子电路单一固定的门序列,最终为 Claude 提供了一个高效得多的构建基础。

一种简化的存储方法

改用 Berlekamp-Massey 后,电路不再需要针对不同输入走不同路径。但使其可逆又带来了另一个挑战,这次是上文讨论的逆计算约束造成的。在每一轮中,电路会计算它只需短暂使用的临时值,但这些信息不能简单地删除:为了以后能逆计算,电路必须能够恢复该信息。

存储这些信息的成本会高得令人难以承受。因此,Claude 采用了与处理 divsteps 时相同的方法:它找到了一种从电路当前状态重建大部分信息的方法,因此无需存储这些信息。然而,少数异常值无法以这种方式恢复,必须保存下来。

为最坏情况预留足够内存——即在 35 个不同轮次中出现异常值——需要 665 个量子比特。相反,Claude 编写了一个高速模拟器,并运行了 4.03 亿次样本解码,以测量这些异常实际发生的频率。几乎每次运行最多只需要保存一个值。因此,Claude 的电路只为保存一个值预留了空间,即 19 个量子比特。大约每 10,000 次运行中有一次需要更多空间并失败,这完全在任务允许的错误率范围内。这些改进用少量固定的量子比特和门取代了大规模的最坏情况预留(图 4)。

这些优化共同将解码器中的门数量相对于 Google 之前的构造 减少了 12 倍。这一改进来自在三个层面上重新设计计算:不同的方法(用 Berlekamp-Massey 解码取代扩展欧几里得算法)、不同的电路架构(重建临时值而不是存储它们),以及不同的资源预算(精确测量电路实际需要多少内存和计算)。任何单一改变本身都不够,但合在一起,它们使 DQI 中最昂贵的步骤便宜了略多于一个数量级。

我们学到了什么

科学进步往往来自将理论想法变得实用。实现这一目标的主要方式之一,是让一个曾被认为不切实际的过程变得足够快速和廉价,从而能够付诸实施。量子电路设计就是一个典型例子:上文所述 FeMoco 估算中 150,000 倍的下降,花费了许多研究团队八年时间,每一步通常代表数月的工作。相比之下,Claude 的椭圆曲线设计只是一次 53 小时运行的结果。

我们的结果表明,AI 可以支持电路设计工作,产出能让有用的量子计算更接近真实硬件能力的实现方案。如果 AI 能加速这项工作,有用的量子计算可能会更早到来。

尽管 Claude 在这些任务上表现令人鼓舞,我们也观察到了一些局限。在早期实验中,Claude 天性保守。它反复质疑明显的改进,有时还会继续对已经得到充分支持的结果进行双重甚至三重检查。这种谨慎有时很有价值:例如,它促使 Claude 编写 Lean 证明来验证其 divsteps 设计。但这也表现为一种倾向,即偏好现有的、众所周知的方法,而非更新颖的方法。 

我们采取了两步来缓解这一问题。首先,我们的设置要求 Claude 提出几种性质不同的方法,并并行开发它们。其次,我们偶尔也会提示 Claude 拓宽搜索范围。这些干预成功地让 Claude 去追求更宏大的想法。例如,椭圆曲线结果并非来自对既有设计削减门数,而是来自探索一种此前不可能实现的可逆模逆运算方法,然后推导出使其实用所需的数学结果。一旦有了想法,Claude 就自主开发了该方法、实现了它,并验证了其正确性。

电路设计只是构建有用量子计算机的一部分。由于量子比特非常脆弱,机器还必须在运行过程中捕获并修复自身的错误,而这依赖于许多其他组件,从纠错码到快速解码器,再到硬件本身的控制。这些组件相互影响,但为了管理复杂性,每个组件通常被单独设计。它们中的许多都具有使电路设计非常适合 Claude 的特征:设计可以写成代码、检查正确性,并按成本评分。 

这引出了一个耐人寻味的可能性。AI 不必单独设计每个组件,而是可以联合优化所有组件,从算法一直到硬件,构建一台针对特定问题量身定制的完整纠错量子计算机。这样的设计还可以告诉硬件构建者,对于给定应用而言哪些能力最重要。这可能使设计催化剂和理解新材料等问题进入首批容错机器的能力范围。

来源:Anthropic Research · anthropic.com