热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

activatetensorflow_“量子固件”来了!利用TensorFlow提升量子计算硬件性能

客座文章MichaelJ.Biercuk、HarrySlatyer和MichaelHush,来自Q-CTRLGoogle近期宣布推出TensorFlowQuantum
b812c48a-b81a-eb11-8da9-e4434bdf6706.gif

客座文章 / Michael J. Biercuk、Harry Slatyer 和 Michael Hush,来自Q-CTRL

Google 近期宣布推出 TensorFlow Quantum,这是一个将 SOTA 的机器学习技术与量子算法设计相结合的工具集。这是为量子应用的开发者,也就是主要在“栈顶”操作的用户打造工具的重要一步。

与此同时,我们也在从硬件层面自下而上,从栈底着手打造基于 TensorFlow 的配套工具集。重点通过集成我们称之为量子固件 (Quantum Firmware) 的技术来提升量子计算硬件的性能。

在本文中,我们将对这项工作的动机做个概述,简述如何对抗量子计算机中的噪声和错误,并介绍 Q-CTRL 团队如何使用 TensorFlow 有效地表征和抑制量子硬件中噪声和缺陷的影响。在努力让量子计算机发挥作用的进程中,这些都是全球用户所面临的关键挑战。

b912c48a-b81a-eb11-8da9-e4434bdf6706.png

量子计算机的致命弱点 - 噪声和错误

量子物理定律是在微观尺度上支配自然的规则,而量子计算,简言之,就是利用这些定律来处理信息的新方式。在科学和工程领域付出数十年的努力后,我们现在已经做好准备将这些物理规则用于解决对于普通计算机而言异常困难的问题。

要在如今的系统上实现有用的计算,需要认识到性能主要受制于硬件的缺陷和故障,而非系统大小。量子计算机容易受到噪声和错误的影响,这仍然是其致命弱点,也最终限制了算法在量子计算硬件上运行的范围和效用。

就目前社区的平均水平而言,大多数量子计算机硬件在远小于一毫秒的时间内只能进行几十次计算,接着就会因为噪声的影响而需要复位。具体情况略有不同,但这比笔记本电脑中的硬件差了大约 1024 倍!

这就是量子计算很难实现的核心问题所在。此处所述的“噪声”指的是量子计算机中会造成干扰的所有事物。如同手机通话受到干扰后会导致通话中断,量子计算机也很容易受到各种来源的干扰,比如受到 WiFi 的电磁信号或地球磁场的干扰。

当量子计算机的量子位暴露在这种噪声中时,其中的信息就会降级,类似于通话受到干扰会降低音质的情况。这个过程在量子系统中被称之为退相干 (Decoherence)。退相干会造成量子计算机中编码的信息变得随机化,从而导致我们执行算法时出现错误。噪声的影响越大,算法能够运行的时间就越短。

那么我们该如何解决这一点呢?首先,在过去二十年里,众多团队一直努力以被动的方式让硬件更加稳定 - 屏蔽导致退相干的噪声。与此同时,理论家设计了一种名为量子纠错的巧妙算法,可以识别和修复硬件中的错误,这很大程度上是基于经典纠错码而构作出来的。这一点从根本上而言至关重要,但不足之处在于要想发挥作用,则必须将一个量子位中的信息分散到很多量子位上;要实现仅仅一个纠错后的“逻辑的量子位”,可能需要 1000 个或更多的物理量子位。如今的机器还远远不能从此类量子纠错中获得益处。

Q-CTRL 另外添加了称之为量子固件的内容,可以在不需要额外资源的情况下稳定量子位,抵抗噪声和退相干。量子固件通过在量子计算堆栈的最低层添加新的解决方案加以实现,进而提高硬件对错误的鲁棒性。

使用 TensorFlow 构建量子固件

ba12c48a-b81a-eb11-8da9-e4434bdf6706.png

量子固件描述的是一组协议,其目的是向量子计算堆栈中更高层次的抽象提供性能扩充的量子硬件。“固件”这一命名反映了相关的例程通常是软件定义的,但嵌入在物理层附近,对更高的层次抽象事实上是不可见的。

量子计算硬件通常依赖精确设计的光与物质相互作用来实现量子逻辑运算。这些运算在一定意义上构成了量子计算机的原生机器语言:一串计时微波脉冲与超导量子位的共振可以转化为有效的比特翻转运算,而另一串脉冲可以实现一对量子位之间的条件逻辑运算。通过适当组合,这些电磁信号就实现了目标量子算法。

量子固件决定了物理硬件应该如何操作, 重新定义 了硬件机器语言,从而提高抵抗退相干的稳定性。这个过程的关键在于利用从硬件本身收集的信息计算噪声鲁棒的运算。

对于 Q-CTRL 而言,为了从“自制”代码过渡成为商业级的产品,在 TensorFlow 中构建变得至关重要。这些技术(严格来说来自量子控制领域)所依赖的是让我们能够执行复杂的梯度优化的工具。我们以数据流图表达所有优化问题,描述了优化变量(优化器可以调整的变量)如何转化为代价函数(即优化器试图最小化的目标)。我们将自定义的便利函数与 TensorFlow 基元的访问结合起来,从而高效地执行在工作流的许多不同部分中使用的优化。极为重要的是,我们利用 TensorFlow 的高效梯度计算工具来解决自制实现中最为薄弱的环节,尤其是相关函数的分析形式通常是非线性的,还包含许多复杂的依赖关系。

  • 我们利用 TensorFlow 的高效梯度计算工具https://arxiv.org/abs/2001.04060

  • 非线性的https://docs.q-ctrl.com/boulder-opal/user-guides/optimization#Example-non-linear-dependence-on-control-pulses

比方说,假设定义一个经数值优化的“错误鲁棒量子位翻转” (Error-Robust Quantum Bit Flip) 用于操纵量子位的情形,也就是经典的非门模拟。正如此前所述,在超导量子位中,这是使用一串微波脉冲实现的。我们可以自由地“塑造”脉冲包络的各个方面,实现对常见噪声源产生的鲁棒性,如微波强度或频率的波动,从而产生相同的数学转换。

要做到这一点,我们首先要定义优化该量子位操作所使用的数据流图,包括描述可用的调节“旋钮”的对象、噪声来源和目标运算(这里指的是阿达马门)。

bb12c48a-b81a-eb11-8da9-e4434bdf6706.png

优化量子控制所用的数据流图。左边的循环通过我们的 TensorFlow 优化引擎运行

一旦在我们的上下文管理器中定义了流图,就必须创建一个对象,将目标函数(此处指最小化合成门错误)与定义微波脉冲形状的预期输出联系在一起。创建流图对象后,可以使用服务运行优化,返回包含优化结果的一个新的流图对象。

通过这种结构,我们只需创建辅助函数,让物理激发的约束条件能够直接建立在流图中。例如,这些约束条件可能是对称性要求、信号随时间变化的限制,甚至是产生微波脉冲所用电子系统特性的包含条件。该辅助函数库未直接覆盖的任何其他功能也可以直接编码为 TensorFlow 基元。

通过这种方法,我们得到了一个非常灵活的高性能优化引擎;我们的直接基准测试显示,相对于现有的最佳替代架构,我们的方法在寻找解决方案的时间上有数量级的优势。

  • 直接基准测试显示https://arxiv.org/abs/2001.04060

该工具包所实现的功能跨越了稳定量子计算硬件和减少量子计算堆栈最低层错误所需的任务空间。更重要的是,这在真实量子计算硬件上得到了实验验证;经证实,量子固件可以降低出错的可能性,减轻不同设备之间的系统性能变化,稳定硬件以防止慢慢偏离校准,甚至使量子逻辑运算与量子计算中更高层次的抽象(如量子纠错)更加兼容。我们在《用户指南》和《应用笔记》中公开提供了所有这些功能和真实硬件演示,可以通过可执行的 Jupyter 笔记本形式访问。

  • 证实https://arxiv.org/abs/2001.04060

  • 《用户指南》https://docs.q-ctrl.com/boulder-opal/user-guides/

  • 《应用笔记》https://docs.q-ctrl.com/boulder-opal/application-notes/

如果不集成量子固件的功能,我们认为构建和运行大规模量子计算系统从根本上而言是不可能的。在追求性能和自主性的过程中,可以从机器学习和机器人控制的各个领域中借鉴许多概念,而 TensorFlow 已经证明是一种支持开发关键工具集的高效语言。

QC 简史,从 Shor 到量子机器学习

量子计算的热潮始于 1994 年,Shor 的大数分解算法面世。公钥密码系统,也就是大多数加密技术,依靠分解质数的数学复杂程度来保证信息的安全,避免被别的计算机窥探。然而,凭借其编码和处理信息的方式,人们推测量子计算机能以比经典机器快指数级的速度分解质数。从理论上而言,这不仅危及国家安全,也对加密货币等新兴技术也构成了威胁。

这种意识推动了整个量子计算领域的发展。Shor 的算法促使 NSA 开启了有史以来首个由大学主导的开放研究计划,探寻建立此类系统的可能性。行进到 2020 年,量子霸权已经实现,这意味着一个真正的量子计算硬件系统已经完成了一个连世界上最大的超级计算机都不可能完成的任务。

量子霸权是一个重要的技术里程碑,对解决最终用户的问题实际上有多重要,这一点尚不清楚。取得量子优势是一个门槛,表明使用量子计算机解决有实际意义的问题会更便宜或更迅速,我们的社区正朝着这个方向不断取得重大进展。而对于正确的问题,我们认为在未来 5 至 10 年内可以跨越这个门槛,使用的量子计算机与如今的大小差不多,只是性能更加出色。

那么,哪些问题是量子计算机首先要解决的正确问题呢?

从许多方面而言,随着挑战愈发严峻,Shor 算法已经不再那么重要。最近的一项技术分析表明,在 2039 年之前,我们不太可能看到 Shor 以有用的规模部署。如今,在世界各地的实验室里都有小规模的机器,这些机器拥有几十个相互作用的量子位,由超导电路、单个被捕捉原子或类似的奇异材料构建而成。问题在于这些早期的机器规模过小,又太脆弱,无法处理与分解相关的问题。

  • 一项技术分析https://arxiv.org/abs/2009.05045

要分解一个大到与密码学产生关联的数字,需要一个由数千个能够各自处理数万亿次运算的量子位组成的系统。这对于传统的机器来说不算什么,因为在传统机器上,硬件能以每秒十亿次的操作运行十亿年,而且很少会出现故障。但正如我们所看到的,量子计算机的情况就完全不同了。

这些限制推动了材料科学和化学中新类型应用的出现,这些应用可能使用更小的系统而具有同样的影响力。量子计算在短期内还可以帮助开发新一类的人工智能系统。最近的研究表明,量子计算和人工神经网络之间存在着意想不到的紧密联系,可能预示着机器学习的新方式。

  • 化学https://ai.googleblog.com/2020/08/scaling-up-fundamental-quantum.html

  • 机器学习的新方式http://spectrum.ieee.org/tech-talk/robotics/artificial-intelligence/kickstarting-the-quantum-startup-a-hybrid-of-quantum-computing-and-machine-learning-is-spawning-new-ventures

如果经典机器学习算法的输入来自小型量子计算,或者数据在量子域中表示并实现学习过程,这类问题通常可以归类为优化范畴。对于开发者而言,要想寻求新颖的、改进的方法来利用目前以及未来不久的小型量子计算机,TensorFlow Quantum 提供了令人振奋的工具集。

不过,即使是那些小机器,性能也不是特别好。Q-CTRL 的量子固件可以让用户从硬件中获取最大性能。因此我们看到,从量子固件到量子机器学习的算法,TensorFlow 在新兴的量子计算软件堆栈中都可以发挥关键作用。

推荐阅读

TensorFlow 社区的成员可能对量子计算有程度不一的了解,这份概述仅仅是个开始。如果您有兴趣进一步了解量子计算,不妨阅读下列推荐资源:
  • Q-CTRL 为掌握一定机器学习知识的用户制作了一系列网络讲座,介绍量子计算中鲁棒控制的概念,还演示了强化学习在真实量子硬件上发现门的过程。

  • 量子计算中鲁棒控制https://youtu.be/1RHvTBjU8Wg

  • 强化学习在真实量子硬件上发现门的过程https://youtu.be/WabKiPoBF4Y

  • 对于零基础的用户,Q-CTRL 制作了一系列入门视频教程,帮助新手通过我们的学习中心开始量子学习之旅。我们还提供了一个可视化的界面,让新用户能够培养并建立直觉思维,了解量子计算的核心概念,包括噪声对量子硬件的影响。

  • 学习中心https://q-ctrl.com/learning-center/

  • 可视化的界面https://app.q-ctrl.com

  • 来自 X 的 Jack Hidary 撰写了一篇好文,探索量子计算的基础与当今团队编写量子机器代码方式之间的联系。

  • 好文https://www.springer.com/gp/book/9783030239213

  • 如果您对量子计算感兴趣,传统的“官方”入门材料是“Mike and Ike”的经典教科书。

  • Mike and Ikehttps://www.amazon.com.au/Quantum-Computation-Information-10th-Anniversary/dp/1107002176

— 推荐阅读 —

bc12c48a-b81a-eb11-8da9-e4434bdf6706.png

bd12c48a-b81a-eb11-8da9-e4434bdf6706.png

be12c48a-b81a-eb11-8da9-e4434bdf6706.png

了解更多请点击 “

bf12c48a-b81a-eb11-8da9-e4434bdf6706.png


推荐阅读
author-avatar
mobiledu2502886131
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有