量子计算已经成为了世界各国未来科技发展的必争之地。美国提出「无尽前沿法案」,预计投入千亿美元布局量子计算等10个领域;欧盟也投入10亿欧元,推行量子旗舰计划。中国的十四五规划和2035年远景目标纲要,也明确要加快布局量子计算、量子信息等领域。
现在很多人都认为,量子计算会引领下一波技术变革的浪潮。世界技术变革已经经历了三波重要的浪潮,一个是互联网和个人计算机的兴起,一个是移动互联网和智能手机的兴起,第三个是万物互联与智能设备的兴起。而量子计算,大概率会是未来科技发展的新起点。
国内外巨头公司也纷纷跟进量子领域,谷歌IBM英特尔都在造自己的量子计算机,特别是2019年谷歌宣布实现量子霸权。中国在量子计算领域也有世界领先的技术,2021年中科大潘建伟院士团队研发了九章二号和祖冲之二号量子计算机,比超级计算机快了10的24次方倍。
似乎到了量子计算领域,数字要么特别特别小,只有几个电子大小,要么特别特别大,性能提升后面放多少个零都不够用。
不久前,百度召开了量子开发者大会,并且发布了名叫「乾始 」的超导量子计算机,以及名叫「量羲 」的全平台量子软硬一体解决方案。说明百度也已经开始布局量子计算领域了。
但可能很多人都和我一样,看到量子计算的时候都会有茫茫多的疑问。量子计算机究竟是什么?它有哪些好处?它到底能干什么事儿?为什么这些大公司都在拼命布局这个领域?作为一个量子物理的外行、计算机领域的半个内行,我也是刻苦学习了一下量子计算机的皮毛。今天我们来就看一看这个引领未来科技发展的量子计算,究竟是什么;以及造一个能用的量子计算机,到底有多难。
1. 什么是量子计算
和传统计算机相比,量子计算机到底有什么优势呢?它最大的优点,就是比传统计算机的运算速度快的多的多的多,以至于它速度提升的倍数,1后面的0数都数不清。
举个例子,在破解密码的时候需要用到的一个关键操作,就是对一个数进行质因式分解:这个我们在小学可能就学过,比如把15分解成3和5的乘积,把63分成3乘3乘7的乘积。
这个操作看起来很简单,但当一个数很大的时候,分解起来就非常难了。比如对300位的数字进行质因式分解,传统计算机开足马力可能也要算15万年!但是对于量子计算机来说,就可以算的非常快,1秒钟就可以完成。
那么为什么量子计算机能算的这么快呢?这是由它的工作原理决定的。不过在介绍量子计算机的工作原理之前,有必要先简单了解下传统计算机是如何工作的,只有这样才能直观知道量子计算机到底提升在什么地方。
传统计算机的最小组成单位是晶体管,它本质就是一个开关,所以计算机最本质的工作原理就是利用晶体管的开和关,去表示0和1。这也是计算机里表示数的最小单位:比特,也叫做1位。有了0和1,我们就可以用二进制表示所有的数了,比如前面的3就是011,5就是101。我们还可以用很多个晶体管组成各种电路来完成特定的运算,比如加减乘除。然后这些简单的电路可以再组合成更加复杂的电路,最终形成一个完整的计算机芯片。
现代计算机芯片里包含了成百上千亿个晶体管,比如苹果的M1 Ultra里就有1140亿个晶体管。也有统计数据说,到2025年,世界上所有芯片里晶体管的数量总和,会超过世界上所有人身体里的细胞数量总和。毫不夸张的说,现代文明就是建立在这一个个小小的晶体管上的。
但是尽管有这么多晶体管,它们却有一个根本的问题,那就是每个晶体管在同一个时刻只有一个值。因为晶体管的状态要么是开要么是关,所以只能表示0或者1。也就是说,做一次计算,只能得到一个固定的结果。
所以如果要进行大量计算的时候,只有两种办法,一个是加快每次计算的速度,比如提高CPU的计算频率,另外一个就是多个计算同时进行,比如采用更多的CPU内核、或者买更多的计算机并行运行。但是对于前面说的特别复杂的问题,要算15万年才能解决的问题,买成千上万台服务器可能都解决不了。这个时候,量子计算机的优势就展现出来了。
量子计算机里没有晶体管了,它表示数的最小单位也不是比特了,而是叫量子比特Qubit。它也有0和1两个值,但它还可以表示0和1之间的任意状态,这个就是它的玄妙之处。这种特性有个专有名词,叫量子叠加 superposition。
打个比方大家应该就能理解了,上台阶的时候我们可以从一个台阶上到另外一个台阶,这两个台阶就是0和1.我们不能说上了半截台阶,或者上了73%的台阶。这个就是传统计算机的比特。但对于量子计算机,就没有台阶了,而是一个斜坡。我们可以从坡底一步走到坡顶,但也可以走一半,或者走73%,或者站在这个斜坡上的任意地方。
量子叠加是单个量子比特的重要特点,当多个量子比特放在一起的时候,还有另外一个非常重要的特性:量子纠缠。用非常简单的话说,就是多个量子比特会相互作用,纠缠在一起,从而形成一个整体。
量子叠加和量子纠缠这两个特性是量子计算的关键,借助这些特性,就能做出很多有意思的东西。最重要的就是一次性完成多个计算,从而极大提升计算的速度。比如对于传统计算机来说,两个比特能表示四个数,也就是00、01、10、11,但某个具体的时刻只能有一个值。但对于两个量子比特,这四个值可以同时存在。随着量子比特数的增加,能同时表示的数也会指数级的增加,N个量子比特就可以同时有2的N次方个值,这就相当于在同一个时刻,可以进行2的N次方个运算。随着量子比特数N的增加,这个数会变的非常大,当N=300的时候,这个数会超过全宇宙包含的所有原子的总数。相比之下,传统计算机在同一个时刻只能进行一次运算,这就体现出性能的巨大差别了。
不过,虽然量子计算机能同时算很多次,但并不是所有的结果都是需要的。比如一加一等于二,而不是013。这时候就需要我们设计专门的量子电路,通过改变量子比特的状态,对结果进行筛选,得到想要的一种或者多种结果。这些量子电路组合在一起,就是量子计算机。
但是值得注意的是,量子计算机暂时并不是一个通用计算机,而是一个专用计算机,也就是说,你可以专门设计一个量子计算机来做质因数分解,而且他会做的非常非常快,但你没办法用它来刷视频打游戏。至少到目前为止,量子计算机并不能取代我们现在用的传统计算机,它们更多是相互补充、取长补短,各自在自己适合的领域里使用。
2. 造一个量子计算机有多难
对于所有计算机,它的核心都是芯片。只不过传统计算机的核心是CPU,而量子计算机的核心是量子芯片。传统CPU芯片更关注芯片制造的工艺,比如使用3纳米还是5纳米工艺,相比之下,量子芯片对制程工艺并没有那么严格的要求,而是对芯片的运行环境有着严格甚至是严苛的要求。为了实现对量子比特的精确控制,就需要精确控制量子芯片周围的温度、震动、噪声、电磁波等等环境因素。
就拿百度这次发布的超导量子计算机乾始为例,它里面的量子芯片工作在极低的温度,达到了零下273.14度,只比绝对零度只高一点点。所以对制造量子芯片的材料也有更高的要求,比如使用更高纯度的硅等等。
除了芯片本身,设计芯片用的EDA软件也要重新设计和开发,比如需要重新采集低温环境下电路数据,并且对电路的行为进行建模仿真。为了达到接近绝对零度的低温,传统的冰箱肯定不能用,还要用特殊的制冷机。量子芯片的数据输入和输出,也要通过专门的路径和控制芯片来完成。所有的这些,其实都是量子计算机的硬件部分。
事实上除了硬件之外,软件也是同样重要甚至是更重要的部分。和传统计算机类似,量子计算机也需要通过编程才能使用,这就需要编程环境和编程工具,他们统称为量子计算平台。比如百度的量易伏,这次发布了3.0版本,它就结合了量子软件开发工具集SDK、云上的集成开发环境IDE,支持混合语言编程,还能从云端进行接入,并且可以连接多种不同的超导计算机硬件。
在接口的部分,由于量子计算机的结构和传统计算机差别太大,也需要专门的测试、优化与调度的测控平台,来对接量子计算机的制冷机、微波电子学设备、量子芯片等等核心硬件。就像百度的量脉平台,就可以将软件程序高效编译成量子硬件设备可以识别的脉冲信号,起到量子软件和硬件的桥梁和纽带作用。
虽然已经很复杂了,但这个时候这个量子计算机还不算是能用。为了真正让量子计算机从实验室里走出来,实现商业化应用,还要解决的另外一个关键问题就是应用和落地。就像人工智能里下棋的阿尔法狗、新能源汽车里的无人驾驶一样,量子计算也必须找到自己的杀手级应用。
除了一开始说的质因数分解这些特别基础性的应用之外,其实人们更关心什么时候能把量子计算机用在更广泛的领域,比如机器学习、互联网、生物医药这些地方,并且让普通开发者也能用量子计算机进行开发。
在这次百度的发布里我们可以看到,他们把百度飞桨和量子计算结合在了一起,做了一个量子机器学习平台量桨,在里面提供了量子神经网络、量子核方法、含噪量子电路模拟等模块,能帮助开发者快速进行量子机器学习的研发。
我觉得这对于广大机器学习从业者来说是个好事情,是否能够根据自己应用的特点,并且很好的利用前面说的量子计算机的特点,从而达到N个数量级的性能提升,这个说不定会产生非常有意思的工作,而且这比日复一日的调参要有趣多了。
除了机器学习之外,其他不同产业的开发者也可以利用这个量子软件平台里的应用软件、操作系统、硬件驱动来构建自己的应用。单靠一个量子计算机是远远不够的,只有通过软件和编程框架,让普通开发者能把量子计算机用起来,让各行各业都参与进来,一起把蛋糕做大,才能帮助量子计算真正实现产业化落地,这应该也是百度为什么花大力气去搞量子软件的主要原因。
3. 小结
对于任何新兴技术来说,开放合作、兼容并包,一起构建健康的生态,是最重要的。有个很有趣的例子,就是量子计算刚兴起的时候,如果它的性能远超传统计算机,我们就说它取得了量子霸权。但后来,人们就不说霸权了,而是把这个词改成了量子优越性。从这个细节其实能看到,其实量子计算并没有什么霸权,前面说了它甚至并不能取代传统计算机,二者更多的是相互补充和促进的关系。
事实上,比霸权更重要的,是通过量子计算给人类社会带来的共同进步。量子计算对传统计算机的超越,并不是结束,而是刚刚开始。
(本文不代表老石任职单位之观点)