AWS AMAZON BRAKET与量子计算

147 阅读14分钟

KY1,Yankuan Pan2,Bertran Shao3,Zoey Deng4

1.AWS HERO 2. 项目架构师; 3. 开发者生态负责人;4 . 开发者关系**

 

Amazon Braket是一项完全托管式的量子计算服务,主要可面向研究人员、科学家和开发人员提供一些量子计算软硬件服务进行研究和开发工作。Amazon Braket可帮助解决量子硬件获取不便利、量子相关使用资源有限等问题。而启科量子专注于全栈量子计算产品体系研发,主要包括离子阱量子计算机、全栈量子软件、量子算法等量子计算产品,凭借深厚的量子技术积累和丰富的产品经验,成为中国首家兼具量子计算、量子通信核心技术储备与产品研发能力的科技创新型企业。

1. 通用的量子计算机整体架构

量子计算是一种以传统图灵机为理论模型且遵循量子力学规律调控量子信息单元的新型计算模式。一个真实的量子计算机需满足五个必备条件:

a. 有一个含有大量量子比特的物理系统,其中的量子比特数可以根据待解决问题规模的增大而增加;

b. 可制备初态量子比特的系统;

c. 一套通用的量子逻辑门,可进行通用的量子纠缠操作,通过连续的量子门组合作用于量子比特作任意酉变换;

d. 有一种有效的解决退相干问题;

e. 可测量量子比特得到最终结果。

 

因此一个通用的量子计算机体系结构需要根据以上五个必备条件设计完整的软硬件结构体系。其中就包含了量子计算处理器、量子编码体系、量子软件、量子算法、通用的量子汇编语言等关键技术。

    启科量子按照上述条件设计了全栈量子计算产品体系,包括全栈量子计算硬件及全栈量子计算软件。目前,全栈量子计算软件基于经典计算开发,但也预留了对接真实离子阱量子计算机的接口。下文将会详细介绍全栈量子计算产品的相关功能特点。

1.1量子计算硬件与软件
由于量子计算机的研发还处于早期阶段,每种量子计算技术路线各有所长且其关联的资源也各有不同,因此提前断言哪种技术路线更有优势还为时过早。尽管量子计算属于前沿科技,就技术产业化而言,布局量子计算生态、培养庞大的中国开发者市场、推动量子技术的落地与商业化应用是发展量子计算的必经之路。

    关于量子计算硬件,综合全球主要的量子研究机构及公司,实现量子计算的主流技术路线主要包括超导、半导体量子点、离子阱、光学和量子拓扑五个方向。其中超导和离子阱技术路线的关注度较高。例如谷歌和IBM做超导量子路线,微软投资了光量子公司,美国上市公司IonQ做离子阱量子计算,中国分布式离子阱量子计算机(AbaQ-1)(研发中)。

    关于量子计算软件量子计算机软件主要有量子操作系统、量子编程框架、量子汇编语言和量子应用软件等。量子软件开发套件可主要面向开发者提供量子程序、量子算法等开发和研究的工具。文中全栈量子计算软件体系是中国本土研究团队在量子计算软件开发中作出的创新,其量子软件产品主要包括量子编程集成开发环境QuBranch、量子编程框架QuTrunk、量子算法库QuFlower、量子计算模拟软件QuSprout、量子体系框架QuRoot。

2. Amazon Braket 与量子计算

Amazon Braket是一项完全托管式量子计算服务,可为用户提供量子算法构建、测试、运行等服务,其中包括可访问不同技术类型的量子计算机、提供统一的开发环境和经典线路模拟器、运行混合量子经典算法等。

 

在使用Amazon Braket的过程中,预装在Amazon Braket中的Jupyter notebooks和Amazon Braket SDK可以大大降低用户使用Amazon Braket服务的难度。一方面,用户使用Jupyter notebooks可方便其定义、提交和监控任务;另一方面,用户可以直接在Amazon Braket SDK中构建量子线路或者定义退火设备的退火问题与参数。

 

2.1Amazon Braket的工作流程

在使用Amazon Braket时,用户可随时更换量子计算设备,不必拘泥于某个硬件。以下简单介绍Amazon Braket的基本使用流程。

image.png   图1:Amazon Braket的工作流程

 

开始使用Amazon Braket时,首先需要创建一个Amazon Braket notebook实例。这一步骤主要是创建notebook和设置名称等基本操作。

 

其次使用Amazon Braket Python SDK运行第一个量子线路。打开第一步创建的实例后选择conda_braket选项创建一个新的notebook。前述操作完成后便可使用Braket创建一个量子线路。

 

量子线路创建完成后,便可以按需要选择合适的量子模拟器。最后运行量子线路就能得到最终模拟得出的结果。最终任务可以从Amazon Braket上下载。具体测量信息和参数信息如下图所示:

image.png 图2:具体测量结果信息

image.png 图3:任务运行的参数信息

 

2.2 Amazon Braket 与全栈量子计算软件
在量子计算硬件方面,Amazon Braket可支持访问IonQ离子阱技术、Oxford Quantum Circuits和Rigetti公司的超导量子处理器、D-Wave的量子退火技术、Xanadu的光量子技术。一般如果想要尝试使用Amazon Braket中的真实量子计算机,可以使用量子模拟器进行原型设计。Amazon Braket提供四种模拟器,分别为本地模拟器、SV1、TN1、DM1。

 

当我们的内存量足够大的或者进行原型设计时可以使用本地模拟器;当模拟的量子比特数超过34量子比特全状态向量时则需要使用SV1;DM1用于模拟高达16量子比特的线路上的噪声;TN1用于模拟局部纠缠高达50量子比特的量子线路。目前,Amazon Braket还未接入中国的量子计算软硬件产品。AbaQ1离子阱量子计算采用分布式设计每个节点捕捉20个完全链接的离子,平台可接驳最多8个计算节点,最多可达到一百多量子比特的链接。

    在量子开发工具方面,Amazon Braket可支持访问围绕量子可微编程概念而构建的开源软件框架PennyLane。PennyLane主要可帮助构建和运行混合量子经典算法和变分算法,提供机器学习工具PyTorch和TensorFlow之间的接口。PennyLane库是预装在Amazon Braket notebooks中的,要从PennyLane访问Amazon Braket设备,需要执行import pennylane as qml命令导入PennyLane库。

 

使用Amazon Braket设置和运行混合量子算法主要是使用其中的Amazon Braket PennyLane插件或者Amazon Braket Python SDK和示例notebook存储库。当没有PennyLane插件时,我们可以使用基于SDK的Amazon Braket完成某些混合量子算法的设置和运行。开源量子编程框架QuTrunk可支持运行各种量子算法,比如Grover算法、Shor算法、VQE算法等,且将提供各种主流机器学习框架的API接口,满足普通用户提供量子人工智能的开发需求。

 

由启科量子发起的中国本土项目QuTrunk——量子编程框架——将致力于推动量子+AI技术在全球技术领域的探索与发展。(注:现启科量子已加入百度paddlepaddle技术伙伴计划。根据《2021中国年度开源报告》中国GitHub活跃度排名百度paddlepaddle活跃得分高达6490.8934,Issue 、Comment数据达18979均位列第一,是中国AI领域关注度较高的AI框架。)

    综上,Amazon Braket作为一项完全托管式的量子计算服务已经接入了多种量子计算硬件设备和软件服务。要建设布局更大的量子计算市场,启科量子也将是一个较好的选择。目前,启科量子编程框架已经集成了Amazon Braket的一些功能,可使用QuTrunk调用Braket云上的量子模拟设备和真实的量子计算机设计一些量子线路。

3.全栈 量子 软件的技术优势

全栈量子软件产品有强可扩展性,可满足量子编程开发者的多样化开发需求。启科量子软件产品体系的每一层接口预留充足、全面,将可结合多种AI框架实现人工智能领域的功能扩展。

    全栈量子软件产品有较强独立性,可为量子编程开发者提供多样的产品选择。启科量子的整个量子软件产品体系主要采用分层架构,既可至上而下解耦为独立产品,又可以随意搭配组合为新的产品体系对外使用,如QuBranch+QuTrunk+QuBOX、QuBranch+QuTrunk+QuRoot。

    全栈量子软件技术的潜在的标准化。由于目前量子软件和量子云仍处于产业化的早期阶段,量子计算机市场尚未出现主流软件技术主导的局面,这间接导致了量子计算机软件层面没有一个统一的标准,启科量子软件技术作为中国少有的量子计算研发公司,有望成为未来的主流量子计算软件。

    该套量子软件诞生于中国本土的量子计算技术生态土壤,其行业发展受国家政策的大力支持,拥有较大的中国市场潜力。中国云服务市场一直是云厂商持续深耕的核心市场。而量子科技作为全球的新建赛道,也将会为软件行业创造出一个全新的发展机会。

3.1开源 量子编程框架QuTrunk
QuTrunk是启科量子自主研发的一款免费、开源、跨平台的量子计算编程框架,包括量子编程API、量子命令转译、量子计算后端接口等。QuTrunk使用Python作为宿主语言,利用 Python 的语法特性实现针对量子程序的 DSL (领域专用语言),所有使用 Python 编程的 IDE 均可使用安装。

 

QuTrunk基于量子逻辑门、量子线路等概念提供量子编程所需各类 API,这些 API 由相应的模块实现。例如 QCircuit 实现量子线路,Qubit 实现量子比特,Qureg 实现量子寄存器,Command 实现每个量子门操作的指令,Backend 实现运行量子线路的后端模块,gate 模块实现各类基础量子门操作。此外,QuTrunk还可以作为其他上层量子计算应用的基础,例如:量子算法、量子可视化编程、量子机器学习等。

QuTrunk主要特点如下:
a.基于量子逻辑门、量子算符和量子线路实现量子程序开发。
b.提供QuSL量子汇编指令标准,QuSL量子汇编与Python代码完全兼容。
c.设备独立,同一个量子线路只需替换后端类型即可以在不同的量子后端上运行。提供多种量子计算体验,本地量子计算提供Python和C++量两种计算后端,远程后端提供OMP多线程、MPI多节点并行、GPU加速等计算模式,同时预留了接口对接启科量子自行研制的离子阱量子计算机。
d.兼容多种量子汇编指令格式:OpenQASM 2.0标准和QuSL汇编标准。
f.支持量子可视化编程(其使用需要配合启科量子量子集成开发环境QuBranch)。

image.png 图为:QuTrunk内部结构图

3.2 量子汇编语言(QuSL)
目前Amazon Braket 支持门型量子设备和模拟器使用OpenQASM 3.0。量子汇编语言QuSL是OpenQASM 2.0的超集,因而其编程语言更加丰富。

    QuTrunk使用python作为宿主语言,利用python的语法特性实现针对量子程序的DSL(领域专用语言), 我们把用于量子编程的专用语言称为:QuSL(一套类似openqasm的量子汇编语言)。QuSL主要特点是最左边是一个量子门操作,中间加入( * )号链接符,最右边是操作的量子比特,形式如:gate * qubits。该标准充分利用了Python语法对( * )运算符的重载特性。其表现形式更接近量子物理计算公式。此外, ( * )在计算机编程语言上可表示乘法运算,QuSL借此形式可表示左边的量子门操作实际上是对量子比特做矩阵乘法运算。

    使用QuSL该标准编写的量子汇编可以直接被QuTrunk解析运行,而不需要做词法或语法方面的解析处理工作。基于该特性,QuTrunk可以无缝衔接QuBranch,通过可视化量子编程功能直接生成的量子线路,即QuTrunk可以直接运行QuBranch生成的量子线路(只需做一些简单的初始化工作),而无需做语法上的编译/转译处理。

    H * q[0];   # 对q[0]做hadamard门操作  
    CNOT * (q[0], q[1]);# q[0]为控制位,q[1]为目标位  
    All(Measure) * q# 对q代表的所有量子比特做测量操作  
      
    //Toffoli: 托佛利门,a, b作为控制位,c为目标位, 如果a,b均为1则对b进行取反,否则不做任何操作  
    Toffoli * (a, b, c)  
      
    //Measure: 测量门,对a进行测量,结果要么是0,要么是1,测量结果受概率振幅影响  
    Measure * a  
      
    //P: 相移门,将量子比特0>态和1>态的相位根据给定的角度进行移动  
    P(theta) * a  

3.3 量子模拟后端(Beckends)
Amazon Braket目前提供托管状态向量模拟器SV1、托管密度矩阵模拟器DM1、托管张量网络模拟器TN1及本地模拟器。启科量子也有自主研发的量子计算模拟软件——QuSprout。QuSprout是基于经典计算资源的量子计算模拟软件,支持多线程、多节点、GPU加速,可预安装在QuBox中。QuBox是预装了QuSprout的PKS体系硬件,以产品形态为用户提供量子模拟资源。
如QuTrunk使用本地后端qc = QCircuit(backend=BackendLocal())。完整后端模拟代码示例如下:

    from qutrunk.circuit import QCircuit  
    from qutrunk.circuit.gates import H, CNOT, Measure  
      
    # new QCircuit object  
    qc = QCircuit(backend=BackendLocal())  
    # or use as default  
    # qc = QCircuit()  
    qr = qc.allocate(2)  
    H * qr[0]  
    CNOT * (qr[0], qr[1])  
    Measure * qr[0]  
    Measure * qr[1]  
    res = qc.run(shots=100)  

3.4量子软件 的金融应用 —— QuFinace
QuFinace是一款专为金融领域提供解决方案的量子软件产品。QuFinace基于量子算法VQE、蒙特卡罗及Pennylane算法库,可在金融领域中的期权定价、时序汇率预估、投资组合优化、VAR值计算等方面为金融从业者、投资者在复杂市场环境中提供决策支撑。启科量子以QuFiance的时序预估功能为结合点,已加入了百度飞桨技术伙伴计划。

image.png 图为:金融QuFinance产品量子时序汇率预估截图

 

量子软件工程和开发提供商aQuantum近期已在AWS上推出 QuantumPath云原生SaaS平台,主要提供对量子计算机和第三方解决方案的访问以及有助于应用软件工程最佳实践的开发生命周期管理。AWS目前正在支持在云平台上开发和部署量子解决方案。因此,如果启科量子与Amazon Braket结合,其技术优势将能丰富用户在Amazon Braket上编程工具和解决方案的选择。