如何评价华为新曝光的「昆仑量子计算模拟机」?

如何评价华为新曝光的「昆仑量子计算模拟机」?

我也做量子软件,写过package,是 Yao 核心开发者之一。很早这个问题其实出现在时间线上,不过没想到有这么多人关心,作为这个方向的参与者之一应该可以说两句吧。按知乎的话说,这个还是挺利益相关的。

同时我现在所在的实验室,之前所在的研究组都有接受华为量子部门的资助,也和这个项目的相关人员简单接触过,我的合作者也使用过内测版本,其它答案里提到的ProjectQ的作者我们也算是认识。其它答案已经讲了这个不是真的量子计算机,所以下面我来说说量子软件是什么玩意儿,为什么要在经典计算机上模拟量子线路。

首先,回答大家关心的问题,不仅是华为,国内整体在量子计算,甚至是量子软件这个小领域差距都还很大。但是我们国内的同行在迎头赶上,并且也有很多很先进的结果做出来。不仅仅是硬件,包括软件,量子体系架构都有国内研究组的身影,作为一个新兴的领域,差距应该没有半导体那么大。

然后说说这些都是什么玩意儿。睡前赶着写的,所以可能有不准确和缺失的地方,欢迎各位同行在评论里补充。

量子线路模拟器的开发可以追溯到Nielson 和Issac Chuang写书的那个年代,那个时候为了绘图Issac Chuang开发了QASM(量子汇编)来方便图书里的线路绘图。同时还有做量子编程语言的人做了很多工作,诸如Quipper等等,其中一些也是带模拟器的。甚至有人模仿经典的EDA的思路,做了量子态的压缩表示(QuIDD )。这个时代我觉得可以简单总结为展示和教育性质的线路模拟。真正对算法研究产生帮助的软件工作几乎没有。(如果绘图不算的话)

再后来,随着量子优势(quantum advantage, 或者也叫量子霸权,quantum supremacy)的提出,开始出现很多使用超级计算机,计算集群模拟大型量子线路的工作。什么是量子优势呢?是说我们想看看我们现在最好的经典计算机能够对某个特定问题最多模拟多少个比特,那么也就是说我的硬件只要造到超过这么多比特就可以说我相对经典计算机有很大的优势。但是我们不需要保证这个问题是实际工业里有意义的。所以这方面的工作就有两个方向可以做,一个是理论上去找这样的问题,比如很有名的Boson sampling ,那另外一个就是我想方设法地在经典计算机上模拟更多比特。后者则涉及两个不同的方向,高性能计算(HPC)和高效的数值算法。高性能计算我就不多说了,这主要是通过使用大型超算,堆机器,甚至是堆硬件(比如GPU/TPU)然后把能够模拟的比特数量往上推。而数值算法则更巧妙一些,因为模拟有限深度的量子线路在模拟一开始的时候量子态其实可以被稀疏表示,这样可以大大节省内存,所以出现了很多这个方面的工作,这个方向现在在阿里巴巴任职的Yaoyun Shi教授是这个方面的专家,他在很早的时候就做了很多treewidth的工作。所以你们也许有人之前看到过这个新闻。https://zhuanlan.zhihu.com/p/36602471 相关的文章在这里,里面已经列了related work了,我就不重复说了。

我想这些比较老的有效模拟的工作早期可能更多是来自理论上的兴趣,这些研究在计算复杂性这个方向产生的影响可能更大一些。所以在十几年前还没有这些软件上的工作出现。

此外,很多做硬件的公司为了更好的将自家硬件提供给研究者使用,同时起到宣传的目的。开发了所谓的量子云平台,这个头是IBM先开的,IBM做了一阵效果很好,他们的文档和量子计算的教程写的也确实很好,比起枯燥的课本要生动很多。同时也有很多人用他们的硬件做研究。所以可能别的做硬件的组开始跟进。而做云平台,当然需要配套的软件设施,所以IBM的一些软件就是在这个背景下诞生的。这其中包括qiskit,qiskit现在的生态很好,它包括了非常多不同的方向。同样的还有很多其它国内外的公司都跟进开发了自己的软件,但是其中不得不说IBM的生态应该是最好的(GitHub的star也是最多的)。而其它答案里提到的ProjectQ则是第一个作出45比特的全概率幅(没有用张量网络等方法压缩,或者近似)模拟的工作:https://arxiv.org/pdf/1604.06460.pdf 这些工作顺便带动了量子体系架构的研究,量子体系架构就类似于我们现在常用的OpenCL,异构计算这些工作,主要研究怎么设计从上层软件到底层硬件这一套工程。其中,我知道的国内Xiang Fu在做eQASM的工作是比较好的。

后来,随着NISQ(Noisy Intermediate-Scale Quantum)这个概念的提出 很多研究者开始探索在短期有噪声的量子线路上可行的量子算法,而这其中又以变分量子线路(variational/parameterized quantum circuit)为人瞩目。可以参见这个最近的综述:https://arxiv.org/pdf/1906.07682.pdf 我和我的合作者(刘金国,张潘,王磊)开发了Yao,我们的动机一开始很简单。这些起初为了quantum advantage而做的模拟器,到了真的做这些变分算法的时候性能和可用性都下降的厉害,而这些算法的数值实验是不可避免要进行的,因为理论分析很困难。我的合作者第一篇变分线路的工作 https://arxiv.org/pdf/1804.04168.pdf 就是使用ProjectQ进行模拟的。在这个过程中,我们了解到过去的框架的缺点,以及定位了我们要解决的问题,发起了这个开源项目 Yao.jl 和大部分公司的软件不同的是。我们认为当下更重要的问题是辅助算法设计,科研需求是第一位的,帮助研究者更容易的探索和设计量子算法,而不是依靠硬件模拟更多的比特,探索经典计算机所能够模拟的上界,因为这个问题已经被之前的工作解决了。此外我们也关注线路表示的编译和优化,因为这是让一个算法能够真正运行在量子硬件上的关键之一。以这个为动机,我们站在过去的工作基础上,设计了全新的软件架构,全新的中间表示。相比ProjectQ,Cirq等需要大量代码才能定义出来,然后完成训练的变分线路,我们只需要二十多行(参见文档:https://quantumbfs.github.io/Yao.jl/latest/examples/QCBM/ )。同时作为一个标准的GADT结构的eDSL(做编译器的同学应该都知道这是啥),非常容易编译和分析,在这一点上我们的前辈 Quipper在他们的文章里也很早就展示了这一类设计的好处。而我们也时刻在否定自己,在过去的一年里用实际的算法设计实践不断打磨这个架构,让它更加好用和简洁(我们在短短一年里重构了很多次,我们奉行敏捷开发)。此外,由于变分线路有大量的经典参数,我们希望框架能够完成对经典线路的自动微分,这个方向上先行者是加拿大的Xanadu,他们开发了Pennylane 。当然我们自己的框架里现在也有微分的功能,之后还计划和编译器层面的自动微分框架Zygote集成,从而实现完整的可微分编程。

此外,量子软件还有一个很重要的应用方向是线路优化。虽然线路优化的算法需要很多的理论工作,但是线路优化这件事本身其实和我们现在用的编程语言的优化器如出一辙,这些理论工作最终还是要通过代码应用到真正的硬件上去。这其中的代表应该算是pyzx这个工作。https://github.com/Quantomatic/pyzx 他们在Python实现了一套ZX calculus,ZX calculus是一种中间表示,你可以通过把量子线路这种语言翻译成ZX代数,使得线路优化变得更加容易,在ZX代数这个表示下化简线路之后再翻译回线路表示,然后编译到硬件上运行。这就好像是我们现代编译器里翻译成IR的过程一样,比如有些编译器会翻译成SSA IR帮助推导dead code,constant propagation等性质。其它的例如ProjectQ,微软的Q#,也有一些相比zx代数更简易的优化实现。我们在这个方向也有计划中的工作,但是暂时不方便透漏。

关于量子软件,前段时间有一篇综述,算是列的比较全的:https://arxiv.org/abs/1812.09167 如果你想知道现在都有什么开源的量子软件可以参考。但是其中的feature比较的还不是非常全(因为开源软件本身变化就非常的快,我这个答案里讲的这些今年开始很激动的方向,也许明年就没什么意思了)。我们自己的论文最近正在写,还不确定什么时候挂出来,届时会介绍更详细的核心结构设计思路。

首先HiQ是一个模拟平台,它是支持分布式模拟的。它确实来自于ProjectQ,实际上Project Q的作者之一就在华为工作过。华为内部也对它进行了进一步的优化(在一些benchmark下比开源版本快两倍)。我相信它能够很好的利用华为自己的云服务器优势,提供大量的算力和分布式支持。就具体实现而言,因为没有开源,我就不评价了。否则这并不公平。但是interface层面,你可以认为这个就是ProjectQ。

但是我个人觉得,这个行业里已经不缺能模拟很多比特的模拟器了。一个暴力模拟能模拟多少比特除了能说明你有钱以外不能说明什么。哪怕你现在能模拟再多的比特,对于任意随机线路来说,这个复杂度不可能降下来的(否则我们还造真的量子计算机干嘛?)而且如果只是暴力模拟,这并不难实现,我们缺的是好用的软件和在研究这些问题的过程里对线路优化,线路编译等实际问题的进一步探索。这就好比是PyTorch之于深度学习,对于现在短期内还无法落地的量子计算,我们需要能够把科研需求放在第一位的软件帮助我们探索更多的可能性。在这个方向上我也期待未来国内能够涌现出来更多的,更优秀的开源软件(闭门造车不利于这个行业的发展,因为还远远没到需要闭源的程度)。

比起新闻,我更期待HiQ的论文或者在Hi Q基础上生产的论文。

其实我一直觉得媒体朋友在报道这一类新闻最好找一下业内人士审一下稿子。其实我也理解,小编要混口饭吃,赶着先发出来,蹭阅读量。但是这样的社会影响很不好。任总人家自己的形象本来挺踏实能干的,硬是被搞成一个虚假宣传的模样。这样不好。这个问题其实不光国内,国外也有。所以我也没什么好的解决方案,也没时间关心。用在王磊老师那里学到的一句话结尾吧:多关心做这个东西解决了什么问题,而不是做这个东西可以怎么包装。好的工作自然会发光。

最后广告一下,欢迎对量子计算软件和算法有兴趣的同学参与开源贡献和使用我们的软件,欢迎大家在实际的科研实践下,对我们提供批评和建议,我们很乐意在issue里讨论相关的问题。我们每年暑假还有GSoC/JSoC的名额,虽然作为开源的非盈利项目钱可能没有去公司实习多,不过如果你感兴趣,我们还可以一起发论文。