亚马逊AWS官方博客:弧光量子& Amazon Braket实现全流程对接打造量子应用生态
发布时间: 2023年08月31日

isQ 作为国产、纯原生的编程语言是由中国科学院软件研究所(软件所)、清华大学计算机系与北京中科弧光量子软件技术有限公司(弧光量子)共同研发,具有简洁、易用、高效、扩展性强、可靠性高等特点。基于以上独特的优势,isQ已完成与Amazon Braket全流程的对接,用户可以通过isQ设计和编程量子算法,并且能够方便地调用Amazon Braket后台提供的多种量子硬件资源,包括Rigetti、OQC的超导量子硬件、IonQ的离子阱量子硬件、QuEra的中性原子硬件以及Xanadu的光量子硬件等。这使得量子计算用户能够在真实的量子硬件上运行并验证他们的量子算法,为用户提供许多便利,为国内外各类机构及个人开展量子计算理论研究、基础实验和应用探索提供更优质的平台,帮助用户充分体验量子计算的优势。

isQ的开发公司——弧光量子是一家专注于量子软件和量子计算应用的高科技公司,由中国科学院软件研究所及其量子软件研究团队共同出资设立,依托中国科学院计算机科学国家重点实验室,以产业化运营方式推进量子软件的快速发展和广泛应用,致力于成为世界一流的一站式量子软件产品和服务提供商。

 

isQ功能介绍

isQ是软件所和弧光量子共同自主研发的量子编程语言。

isQ不仅仅包含程序设计过程,还包括测试、分析、定理性证明、等价性验证等其他工具。即isQ包含从底层开发的设计逻辑到工程化的实现技术都是纯原生的,其包含的各种功能和实现逻辑框架如图所示。

isQ量子编程语言

  • 支持经典量子混合编程,其语法功能主要包括。
  • 支持经典变量的定义及使用:四则运算,逻辑运算等。
  • 经典控制流:if-else,for-loop,while-loop。
  • 量子变量的定义及使用:酉门操作(基础门)和非酉操作(测量,重置)。
  • 自定义量子门:通过矩阵的形式定义酉门。
  • 量子oracle的定义与使用:通过真值表或者经典逻辑函数的方式定义。
  • 参数化编程:支持参数化电路的生成,在编译或运行时传入具体的参数值。其示例代码如图所示。

isQ量子编译器

  • 定义了一套较为通用的量子中间表示。
  • 基于量子中间表示,进行了经典及量子电路层面的优化。
  • 对接了多种量子指令集,如QIR,EQASM,QpenQASM,QCIS。

该量子编译器是isQ区别于其他量子编程软件栈的一个重要体现。通过这种通用的量子中间表示,编译器在保留部分高层语法结构的情况下进行程序的优化,并且通过代码生成模块便捷地将程序转换为不同形式的指令集,包括纯量子指令集(如QCIS)和经典量子混合指令集(EQASM,QIR,OpenQASM)。isQ工作流程如下图所示。

isQ量子程序编译器要点

  • 将高层语言转换为底层硬件指令集。
  • 是isQ区别于其他量子编程软件栈的一个重要体现。
  • 借助量子中间表示,编译器在保留部分高层语法结构的情况下进行程序的优化,并且通过代码生成模块便捷地将程序转换为不同形式的指令集。

主要特点

  • 对量子oracle更友好的支持——支持真值表方式和逻辑表达式定义oracle。

  • 支持高级结构的优化——直接优化循环,对于量子随机游走等算法能编译得到更优的电路深度,且编译时间更短。

  • 更好的硬件接口——针对硬件拓扑结构做进一步的电路优化。

  • 量子分布式编程——实现了分布式量子编程的基本框架。

isQ与Amazon Braket对接

  • 对接框架。

我们基于isQ实现了与Amazon Braket的对接,并基于对接之后的框架调用了Amazon Braket的量子硬件资源,实现了一个量子机器学习任务。

IsQ与Amazon Braket对接的框架流程如下图所示。

用户可以在弧光量子云平台上或是在本地终端上,通过isQ软件栈构建相应于不同任务的量子算法。我们首先基于isQ语法编写了量子程序,代码片段如下图所示。

在构建好量子电路之后需要指定backend为Amazon Braket,然后通过Amazon Braket即可指定需要调用的真实量子硬件资源,如图所示。

在isQ和Amazon Braket实现全流程的对接之后,我们使用1000个样本的德国信用卡数据集(https://online.stat.psu.edu/stat508 /book/export/html/796)进行验证。此数据集有关于贷款申请人的20个人口社会特征信息,以及一个关于申请人是否存在信用卡风险(或者说是否批准申请人贷款申请)的标签,0表示存在风险,1表示申请人可信没有风险。我们基于isQ设计了10个量子比特的量子神经网络,通过Pauli测量输出是否批准贷款的预测结果。其整体的量子神经网络示意图如下所示。

我们使用了Amazon Braket上的79量子比特超导量子计算机,如图所示。我们定义的神经网络包含28个参数,量子电路的深度为15,参数迭代了近10个epoch。

我们选择了500个数据作为训练集,500个作为测试集,在真实量子计算机上总共运行了大约10000次(10000个task)。为了应用硬件,我们采用了SPSA(simultaneous perturbation stochastic approximation)方法进行量子电路参数的更新,每200个训练集用来更新参数,之后100个测试集用以测试在当前更新参数后的测试准确率。使用和模拟器相同的seed下,最后我们获得了最好61%的准确率(在模拟器上为65.4%的准确率,使用的AdamW梯度更新方法)。

 

  • isQ对接Amazon Braket的量子神经网络实现

对于本次基于isQ搭建量子神经网络通过调用Amazon Braket的超导量子计算机训练信用卡数据集,我们采用的是hybrid job的方式。首先进入亚马逊云上的Amazon Braket,然后选择Amazon Braket上的jobs创建job,创建job需要将基于isQ搭建的量子神经网络训练模型代码上传至Amazon S3上,如图所示。

然后将存在S3上的模型代码文件对应的S3 URI复制到job创建页面,如图所示。

在指定要运行的模型代码文件之后需要有isQ和Amazon Braket的运行环境,因此需要自行构建一个包含isQ和Amazon Braket的docker镜像文件,并将镜像文件上传到Amazon Elastic Container Registry(ECR)存储库中,复制docker镜像文件在ECR上的URI到job创建界面如图所示。

 

最后单击create job就创建好了hybrid job,并在Amazon Braket的jobs界面就会显示目前job的状态信息,如图所示。

在Docker容器中运行打印的输出结果会显示在Aws CloudWatch的日志组当中,如图所示。

最后

isQ将与亚马逊硬件对接作为布局量子应用生态的重要基石。同时,弧光量子也积极寻求与其他国内外硬件资源的对接,不断升级已有的算法包,并深入不同行业,以实现更多领域的量子算法应用开发。我们坚信,这些努力将推动量子技术在科研及工程等领域的应用不断进步,为产业发展和应用探索开辟新的可能性。

 

本文作者

楼华哲

弧光量子研发的isQ量子编程语言及编译器的核心开发者之一,参与完成了国内首个完整的量子程序设计平台的工程化开发,成功推动isQ与多种技术路线硬件的技术对接,参与超导、离子阱等量子芯片测控软件的开发,参与研究的isQ相关论文已被国际顶级期刊《IEEE量子工程期刊》收录。

崔国龙

弧光量子量子计算算法解决方案架构师,国内量子计算算法研究的先驱人才,长期从事量子算法研究及工程化实现,并与国内外多家生物医药公司和金融企业展开合作。

宋旭宏

弧光量子量子计算行业分析师,兼具量子技术知识和行业经验的综合性量子计算的传播者。长期深耕量子计算行业分析的领域,为客户量身塑造前沿的量子计算解决方案。凭借敏锐的行业触觉,及时捕捉最新的技术趋势,已助力客户在量子计算中占据领先地位。弧光量子量子计算算法解决方案架构师,国内量子计算算法研究的先驱人才,长期从事量子算法研究及工程化实现,并与国内外多家生物医药公司和金融企业展开合作。

 

Kelvin Guo

亚马逊云科技资深解决方案架构师。主要技术方向为 MLOps,DevOps,容器,数据分析。20+年软件开发,项目管理,敏捷思想落地,工程效能咨询和落地经验。

原文链接: