2024年5月15日,IBM宣布将开源量子软件开发套件(SDK)Qiskit扩展至整个软件开发栈。
这次更新汇集了IBM为构建量子线路的所有工具,包括Qiskit SDK v1.x的稳定版本、由人工智能加持并内嵌在Qiskit转译服务中的量子线路优化、简化的Qiskit运行时服务、由生成式人工智能加持的Qiskit代码助手以及Qiskit无服务器开源工具。
此举令开发人员能够更好地为研究和企业应用的量子处理器构建实用的解决方案。
Qiskit于2017年推出,最初是为了帮助开发人员快速从代码编写转向量子线路而设计。自首次发布以来,IBM已经测试、迭代并改进了一百多个版本。如今,Qiskit已从量子SDK发展成为一个全面的软件栈,旨在最大限度地提高先进量子硬件的性能并推动量子算法和应用程序的开发。另一方面,尽管Qiskit添加了更多功能,但它的规模却变得越来越小。IBM已经开始削减多余的应用程序,并专注于用户基本需求的较小功能集。
图源:IBM
IBM宣称,Qiskit拥有庞大的用户社区,截至目前,下载量超过600万次,超过55万用户使用Qiskit构建和执行了超过3万亿个量子线路,超过700所高校使用Qiskit教授量子计算课程,使用Qiskit发布或发表的预印本与正式版论文近2900篇。有了这些统计数据,就很容易理解为什么大量用户将Qiskit视为创建、优化、执行量子线路和算子的标准。
5月14日,IBM在arXiv平台发布论文“Quantum computing with Qiskit”(借助Qiskit进行量子计算),介绍了Qiskit的设计理念、软件架构、程序示例、生态系统,同时探讨了Qiskit如何促进了开源代码软件生态系统的发展,并对未来量子计算软件和硬件的共同设计作出展望。
Quantum computing with Qiskit
图源:arXiv
Qiskit 1.0使用户能够构建并编译具有100多个量子比特的线路。正如IBM的长期量子路线图所示,它为未来1000多个量子比特的工作负载奠定了基础。此外,Qiskit 1.0允许用户访问IBM的量子系统,包括一个具有133量子比特的Heron(苍鹭)处理器和多个具有127量子比特的Eagle(鹰)处理器。如果用户偏爱不同的系统或有兴趣比较不同的量子计算机,Qiskit可以在Alpine Quantum Technologies、Amazon Braket、IonQ、IQM、Quantinuum和Rigetti的硬件上运行。
此次Qiskit扩展软件栈更新包括以下五个方面:
-
Qiskit SDK v1.x的稳定版本:用于构建、优化、可视化量子线路。
-
Qiskit转译服务(Transpiler Service):由人工智能加持并内嵌在Qiskit转译服务中的量子硬件线路优化。
-
Qiskit运行时服务(Runtime Service):简化了Qiskit运行时服务的执行模式,可以根据量子硬件上量子线路的高性能执行进行定制。
-
Qiskit代码助手(Code Assistant):由基于IBM Watson的生成式人工智能(GenAI)模型加持,可自动开发量子代码。
-
Qiskit无服务器(Serverless)开源工具:用于在量子硬件和经典集群上运行以量子为中心的超级计算工作负载。
IBM在Qiskit Runtime的早期版本中开发了Sampler(采样器)和Estimator(估计器)原语(primitive,指内核或微核提供核外调用的过程或函数),旨在优化代码发送到量子计算机的方式。Sampler原语从量子线路的输出中采样,返回比特串。Estimator包含了量子算子的期望值,以便用户可以计算和解释这些值。
Estimator的界面已更新,方便想要使用一个线路和多个可观测量的用户。它具有不同的执行模式,允许用户定制其与硬件的交互以满足应用程序的需求。
在Qiskit 1.0中,这些原语已经升级为SamplerV2和EstimatorV2。除了其他优点之外,这些组件还允许同时处理更多数据,从而降低复杂量子实验的难度。以下是一些具体的更新内容:
-
矢量化输入使用户可以更轻松地使用不同的参数和可观测量进行实验。矢量还允许用户同时运行大量不同的实验并同时收集所有结果,从而使整个过程更加高效。
-
Primitive Unified Blocs(PUB)是Qiskit 1.0中引入的新概念。PUB是包含线路、参数(在每个实验中可能更改的值)和可观测量(正在测量的内容)的组。新系统允许同时输入多个PUB。每个PUB将在单个作业中单独处理。
-
EstimatorV2有一个“精度”参数,可让用户指定测量精度。SamplerV2有一个“shots”参数,决定每个实验的重复频率。指定测量精度可提供更详细的实验结果。
Qiskit 1.0中的其他重大变化涉及策略稳定性、发布周期和版本控制。量子研究仍处于迅速发展阶段,因此在早期的Qiskit迭代版本中加入能够快速适应变化的工具至关重要,但用户需要时间适应,所以不能更新得过于频繁。IBM声称,Qiskit 1.0将会有不太频繁的重大更改和更好的错误支持,并提供更好的向后兼容性以支持早期版本。
IBM承诺Qiskit每个主要版本的支持周期为18个月的原因之一是它已正式更改为语义版本控制,该版本具有指定为XYZ的三个组件。
Qiskit的XYZ发布命名法
图源:IBM
X代表主要版本,每年可以发布一次。它是唯一包含Qiskit SDK重大更改的版本。
次要版本(Y)将出现在主要版本发布之间,大约每三个月发布一次。一旦发布新的次要版本,对先前次要版本的漏洞支持就会结束。
根据需要,IBM将发布补丁版本(Z)以发布向后兼容的漏洞修复。当发现漏洞时,这些版本将根据需要发布。这些补丁版本之间不会进行新的弃用、功能或公共API更改。
未来Qiskit发布的预计时间表
图源:IBM
IBM还计划进一步提高Qiskit的安全性和可用性。该计划包括在发布新的主要版本时,提供六个月的支持重叠,作为主要版本之间的过渡期。发布时间表是根据这些计划设计的。
Qiskit工具包
图源:IBM
IBM还正在制定一项计划,以增强Qiskit帮助用户实现量子算法和应用程序的能力。Qiskit已经拥有一个强大的框架来理解量子算法的复杂性。该过程包括映射、优化、执行和后处理。为了改进整个流程,IBM正在检查和调整每个步骤。
Qiskit在映射步骤中提供了强大的线路和操作工具包。Qiskit1.0允许用户创建更广泛的线路,包括可以在操作过程中发生变化的动态线路。它还支持创建更大的线路,因为它已将Qiskit量子线路的存储占用量减少至1/32。IBM计划进一步减少占用空间,但这是使用户能够在其系统限制内使用更大的公用事业规模线路的重要一步。
Qiskit对动态量子线路的支持
图源:IBM
IBM提供了可以使用OpenQASM及其更具表现力的线路构造功能创建的动态线路示例。分支、循环和经典表达式等元素如今在基于Python的线路SDK中具有原生支持。
该公司还提高了导入和导出OpenQASM线路的能力,这也促进了其他工具的交换。假设用户必须使用不同的工具来构建或转译线路。在这种情况下,OpenQASM导入/导出功能将Qiskit和更广泛的量子软件生态系统联系起来。
Qiskit中减少存储的缩放线路
图源:IBM
IBM在存储减少方面也取得了重大进展,正如在使用TwoLocal线路运行变分算法时的系统测量所证明的那样,TwoLocal线路是某些变分算法的经典模拟。减少存储使用量是一项重大改进,这使得我们能够运行更复杂或更大的量子线路,从而产出更强大的量子计算。这种减少主要是通过重用数据并将Qiskit量子线路结构的一些重要部分转换为Rust而不是Python来实现的。基本上,它是Rust内部的Python接口。
那么,Qiskit中这种减少存储使用的技术是否可以用来实现量子优势呢?毕竟,它允许运行更复杂或更大的量子线路,并产生更强大的量子计算。
问题是,实现量子优势还取决于许多其他因素,包括要解决的具体问题、量子算法的设计以及量子硬件的功能。因此,虽然这项技术可能是向前迈出的一步,但它只是实现量子优势所需的一系列更广泛的策略和技术的一部分。
Qiskit的转译器和遍管理器基础设施现在允许用户通过连接不同的组件来组成优化通道。为了支持这一点,IBM花了两年时间才将Qiskit从纯Python项目转换为内部包含Rust的项目。这个过程涉及识别热点和将性能瓶颈转化为Rust。
新的Qiskit堆栈实现了多项性能改进,例如线路优化速度提高了16倍、存储使用量减少了2/3、公用事业规模工作负载速度提高了5倍,以及使用人工智能和启发式遍将线路深度减少了40%。
在内部,Qiskit将线路表示为图,量子线路中的每个操作都是有向图中的一个节点。图操作是每个算法的核心,也是转译器中每个算法都需要使用的核心数据结构。系统转换过程首先用新的Rust库替换纯Python图形表示库来表示和操作图形。
在Qiskit中将Python转换为Rust
图源:IBM
在用户笔记本电脑上本地运行的线路优化软件包所提供的大部分内容都是启发式方法。采用输入量子线路及其更抽象的形式并找到最优线路是一个NP难题。因此,可行的任务变成寻找有效的近似方法和有效的启发式方法,以提供良好但不一定是最佳的线路。
上面提到的“转译”(transpiling)一词听上去有点奇怪,意思是将软件代码从一种形式或编程语言翻译并编译为可在硬件上使用其本机操作(native operation)执行的不同表示形式。之所以量子软件开发人员需要转译,是因为他们为量子线路编写的代码可能不适合在某些量子硬件上运行:
-
书中看到的高级量子操作可能不是在硬件上通过本机实现的。
-
不同的量子硬件模式具有不同的本机操作。
-
高级优化可以简化代码,例如删除“第二个操作撤消第一个操作”这种两个连串操作。
-
能够查看更多代码的优化可以减少操作数量,例如最大限度地减少量子比特中量子态交换的数量。
-
构建执行在特定硬件上的优化可以使代码运行得更快。
-
Qiskit使用“遍”(pass,指对源程序或源程序的中间结果从头到尾扫描一次,并作有关的加工处理,生成新的中间结果或目标程序的过程)进行转译。安排大量优化方案在部分或整个线路上运行一次或多次,每次运行都是一遍。编写一个新方案并将其插入优化过程中。其中一些方案是启发式的,这意味着它们是快速改进的合理猜测。其他都是静态的,例如删除连串的H、X、Y和Z操作。其中一些可供学习:以不同的方式运行大量优化过程,并逐步优化代码。最后一种方法是强化学习,这是人工智能在量子领域的一个伟大应用。
“人工智能可以加速量子计算,量子计算也可以加速人工智能,”谷歌首席执行官Sundar Pichai在2019年接受《麻省理工科技评论》采访时表示。“总的来说,我认为这是我们需要的,最终解决我们面临的一些最棘手的问题,比如气候变化。”
Sundar Pichai
图源:Linkedln
原IBM Research人工智能区块链和量子解决方案副总裁、Infleqtion企业发展副总裁、现Futurum Group副总裁兼新兴技术实践主管Bob Sutor在“Quantum in Context: IBM Extends Qiskit 1.0 via AI Tools”(语境中的量子:IBM通过AI工具扩展Qiskit 1.0)一文中表明,现阶段人工智能比量子计算更为成熟,所以将人工智能应用于量子计算的前景要比把量子计算应用于人工智能更直接。所以,接下来着重分析此次更新中与量子人工智能相关的部分。
Bob Sutor
图源:Futurum Group
众所周知,许多供应商正在致力于经典计算的GenAI代码生成,比如ChatGPT、Copilot、文心一言、Kimi等。
与许多GenAI代码生成器一样,Qiskit Code Assistant作为Visual Studio Code的扩展在Visual Studio中运行。
如下图所示,Qiskit Code Assistant给出的提示内容位于Python注释的第5、6行。如果GenAI工具能够读懂我们的想法并准确地传达我们的想法,那多是一件美事。话又说回来,这或许是一把双刃剑。但无论如何,好的提示往往是一般方向和具体说明的结合,特别是有多种选择时,能为我们提供更多参考价值。
Qiskit Code Assistant
图源:IBM
如下图所示,Bob Sutor通过Qiskit生成了一个贝尔线路。其实总共生成了四种线路,这只是其中之一,Qiskit Code Assistant已经自主做出了选择。
Bob Sutor通过Qiskit获得的量子线路
图源:Futurum Group
操作级别的量子线路的编写和调试可能具有挑战性。在这方面,IBM基于IBM Granite系列基础模型构建出Qiskit Code Assistant,特别是具有20B参数、8K语境长度和1.63T标码的代码模型。IBM于5月6日宣布,IBM Granite将在Apache 2.0许可证下开源。
鉴于GenAI基础,Qiskit Coding Assistant应该会很快成熟。此外,Bob Sutor认为,使用基于Python编写而成的Qiskit的量子计算代码要多于用任何其他语言或开发套件编写的量子计算代码。这意味着可供IBM使用的训练代码集十分巨大。由于Granite具有生成、解释和修复代码的能力,Qiskit开发人员将拥有量子和GenAI世界的最佳优势。
IBM在一次私人简报中表示,Qiskit Code Assistant的alpha版本将于2024年第二季度晚些时候推出。
IBM并非唯一一家为更快地生成和执行量子线路创造工具的公司,事实上,国内外量子计算公司已经发行了许多量子线路开发工具或设计框架,比如,国盾量子的Gdtk、本源量子的QPanda、Google Quantum AI的Cirq等。
国盾量子云平台
图源:国盾量子
此外,华为的HiQ、北京量子院的Quafu及微软的Microsoft Azure Quantum、亚马逊的Amazon Braket、Quantinuum的TKET、苏黎世联邦理工学院的ProjectQ等云平台也提供了配套的开发工具。
量子程序从构思到在Azure quantum上完成实现的各个阶段,以及为每个阶段提供的工具
图源:Microsoft Azure Quantum
竞争对于行业和开发者来说都是好事,当供应商和开源开发人员在工具链上进行创新时,获胜的将会是程序员。
IBM持续扩展Qiskit,旨在获得与IBM量子路线图相匹配的量子比特数量和量子线路规模。为此,IBM开始尝试将人工智能技术集成到线路优化等Qiskit核心功能中,令量子计算的潜力得以释放,为人类探索量子领域提供了强大动力。另一方面,国内量子公司应该尽快跟进,利用成熟的人工智能技术加速量子计算的开发,进而实现量子优势。
参考链接(上下滑动查看更多):
-
光子盒研报|2024上半年全球量子计算产业发展展望
넶12 2024-09-13 -
筹集 1800 万欧元!法国双胞胎兄弟创立量子计算公司C12 获得融资
넶69 2024-06-20 -
量超融合!德国推出世界首台完全集成的混合量子计算机
넶156 2024-06-20 -
科研进展 | 量子纠错码的近似最优性能!
넶88 2024-06-20 -
科研进展 | Quantinuum使用genon编织量子纠错的未来
넶38 2024-06-19 -
报名启动 | 量子信息科技高级研修班 一日课
넶34 2024-06-19 -
日本,这次起得来吗?
넶43 2024-06-19 -
量子线路开辟新天地!通过内置量子比特错误检测加速高保真量子计算商业化
넶33 2024-06-19