写点什么

AWS AMAZON BRAKET 与量子计算

  • 2022-12-08
    广东
  • 本文字数:5289 字

    阅读完需:约 17 分钟

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 的基本使用流程。


 图 1:Amazon Braket 的工作流程


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


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


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


图 2:具体测量结果信息


图 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)。


图为: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 的时序预估功能为结合点,已加入了百度飞桨技术伙伴计划。


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


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

用户头像

量子计算技术交流 2022-06-10 加入

关注量子计算软件技术最新动态 启科量子开发者官方网站:http://developer.queco.cn GitHub开源地址:https://github.com/qudoor

评论

发布
暂无评论
AWS AMAZON BRAKET与量子计算_启科量子开发者官方号_InfoQ写作社区