大批振幅张量网络方法模拟量子线路
量子线路是实现可编程通用量子计算的一种可靠方式,类比于经典计算机中的逻辑线路。量子线路由一系列作用到量子比特上的量子门所组成,它们可以使初始直积量子态幺正演化为具有很强纠缠的末态。每一次量子门的作用使用量子硬件进行操作只耗费很短的试验时间,但其严格的经典模拟则需要访问量子态的每一个元素,具有很高的计算复杂度。量子线路的经典例子包括谷歌公司量子计算团队于2019年发布的“悬铃木” (Sycamore)量子线路。悬铃木线路包含排布在2维格点(如下图左方)上的53个量子比特和20个循环的幺正操作。谷歌当时推测其经典模拟即使使用超级计算机也需要上万年的时间,因此认为此量子霸权试验标志着量子计算正式进入量子优越性的时代。
量子线路的经典模拟方法一般分为全振幅模拟和单振幅模拟。全振幅模拟是目前主流量子模拟器所采用的方法。它将整个量子态存储于内存之中,严格计算每一个量子门的幺正作用,可以处理任意深度的量子线路。然而它的缺点是需要耗费指数多的经典存储资源。IBM曾提出可以使用全振幅方法模拟谷歌的悬铃木量子线路,但是需要使用Summit超级计算机的所有内存和所有硬盘来存储量子态,因此是不现实的。
单振幅模拟方法不存储整个态矢量,只计算末态在计算基组(computational basis)上单个基矢的投影。从张量网络的角度看,量子线路中的初态,量子门,以及测量都可以视为连接在一起的张量,也被称为具有幺正性质的张量网络。以悬铃木线路为例,其对应的张量网络是一个三维张量网络,如下图右侧。左侧的边界为初始的直积态|000…000>,而右侧的边界为计算基组的一个给定的基矢,也为直积态。因而单个振幅的计算可以转换成这个三维张量网络的缩并。单振幅模拟的优势是计算复杂度仅依赖张量网络的一个图属性---树宽(tree-width)而不是比特数目,因此不必付出比特数目指数次方的存储复杂度。但其缺点也很明显,即如果需要计算大量位串的概率幅则需要重复缩并张量网络很多次,需要大量计算时间。
近期中科院理论物理研究所张潘研究员与博士生潘峰提出了一种新的模拟方法---大批振幅张量网络方法(big-batch tensor network method),可以大幅降低计算大量相关位串振幅的复杂度,使得一些之前认为难以进行的量子线路模拟成为可能。相关论文于去年3月份发布于arXiv:2103.03074并于近期发表于Physical Review Letters 128, 030501 (2022)并被遴选为PRL编辑推荐(Editor’s suggestion)。
(详见:https://arxiv.org/abs/2103.03074,
https://journals.aps.org/prl/abstract/10.1103/PhysRevLett.128.030501)
大批振幅张量网络方法可以利用单次张量网络缩并获得大量相关位串的严格振幅,具体方法是将量子线路末态分为开放量子比特和关闭量子比特。关闭量子比特对应一个直积态,而开放量子比特具有复杂的末态,对应大批振幅。这样整个三维张量网络的另一个边界被设为对应关闭量子比特的多个向量与对应开放量子比特的一个大张量的直积。这个大张量代表了末态希尔伯特空间中所对应子空间中的全部信息,因而缩并这个三维张量网络即可以计算一个大批(例如两百万)的相关振幅。大批振幅方法可以被认为是介于全振幅模拟与单振幅模拟之间的量子线路模拟方法。
作者提出了一个实现大批振幅张量网络方法的具体算法---大头算法。大头算法通过将量子线路对应的张量网络分成含有较多张量的“大头”和含有较少张量的“小尾”两个部分,如下图所示。整个张量网络缩并的计算量大多集中在大头部分,这样就可以只缩并大头张量网络一次,缓存计算结果对应的“中间态”,并以很小的计算单价获取尾部的末态大批振幅,即尾部张量网络所包含末态量子比特所对应的子空间的全部信息。
在论文中作者展示了大批振幅方法在量子线路模拟中的两个具体应用。
第一个应用是避免存储整个态矢量而进行全振幅模拟。具体做法为是将末态矢量分成很多个大批振幅的组合,并用大批振幅方法遍历所有的批次。换句话说,末态的希尔伯特空间被划分成了若干个子空间,然后顺序地使用大批振幅方法严格模拟每个子空间。这样就同时解决了存储整个态矢量的问题,同时具有比全振幅计算小很多的时间复杂度。在论文中作者展示了此方法仅仅使用一个GPU即可进行43比特14循环的悬铃木线路的全振幅模拟。同样的线路在谷歌的2019论文中也进行了传统的全振幅模拟,但使用了整个Jülich超算的算力。另外,作者利用新方法在100块GPU上首次进行了50比特14循环悬铃木量子线路的全振幅模拟,打破了之前使用太湖之光超算所保持的49个量子比特这个全振幅模拟量子比特数目的记录。
第二个应用是通过对子空间位串采样获取百万样本,通过谷歌的线性交叉熵基准保真度(XEB)测试。谷歌的量子霸权实验中使用量子硬件获取了一百万悬铃木量子线路的样本,预期XEB为0.002。在此项工作中,作者利用60块GPU的计算集群耗时5天完成了两百万关联比特串概率幅的严格计算,并从中采样出一百万样本,其XEB为0.739,高于谷歌量子硬件。大批振幅张量网络方法的一个特点是张量缩并计算可以分为多个计算单元进行高效并行化。去年10月份国家超算团队(无锡)在新的神威超级计算机上开发了高效量子线路模拟器(arXiv:2110.14502, arXiv:2111.01066)并实现了本文中提出的大批振幅张量网络方法,将悬铃木量子线路的百万相关位串振幅的计算时间由5天缩短至了304秒,斩获了2021年度高性能计算最高奖戈登贝尔奖并入选了2021年10大科技进展新闻。
(详见:https://awards.acm.org/bell,
http://www.news.cn/politics/2022-01/19/c_1128276247.htm)
然而需要注意的是虽然大批振幅方法可以通过谷歌XEB测试并获得比量子硬件更高的XEB,但此方法使用单次张量网络缩并只模拟了量子线路末态希尔伯特空间的一个子空间,获得的末态样本为关联样本。而谷歌悬铃木硬件从全空间抽样,获得的样本没有相关性。因此,大批振幅方法单次缩并得到的百万样本没有解决悬铃木采样问题。如果要得到无关样本则必须重复计算约2000次张量网络缩并,使得计算代价无法承受。注意到这个相关性问题在最近一篇论文arXiv:2111.03011中被彻底解决,作者提出新的计算方法,使用单次张量网络缩并即获得了保真度高于谷歌的百万无关联样本,彻底解决了悬铃木量子线路的采样问题 (见此介绍:https://mp.weixin.qq.com/s/1zwd0znmBOogN6Lfk5pQCw)。
代码实现:
https://github.com/Fanerst/simulate_sycamore