使用 Amazon Braket 混合工作 - Amazon Braket

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 Amazon Braket 混合工作

Amazon Braket Hybrid Jobs 为您提供了一种运行混合量子经典算法的方法,需要经典 AWS 资源和量子处理单元()。QPUsHybrid Jobs 旨在启动请求的经典资源,运行您的算法,并在完成后释放实例,因此您只需为实际使用的资源付费。

Hybrid Jobs 非常适合长期运行的迭代算法,这些算法涉及使用经典计算资源和量子计算资源。使用 Hybrid Jobs,提交算法运行后,Braket 将在可扩展的容器化环境中运行您的算法。算法完成后,您就可以检索结果了。

此外,通过混合作业创建的量子任务受益于更高的优先级排队到目标 QPU 设备。这种优先级划分可确保您的量子计算在队列中等待的其他任务之前得到处理和运行。这对于迭代混合算法尤其有利,在迭代混合算法中,一项量子任务的结果取决于先前量子任务的结果。此类算法的示例包括量子近似优化算法 (QAOA)变分量子特征求解器或量子机器学习。您还可以近乎实时地监控算法进度,从而跟踪成本、预算或自定义指标,例如训练损失或期望值。

您可以使用以下方式在 Braket 中访问混合作业:

何时使用 Amazon Braket 混合工作

Amazon Braket Hybrid Jobs 使您能够运行混合量子经典算法,例如变分量子特征求解器 (VQE) 和量子近似优化算法 (QAOA),它们将经典计算资源与量子计算设备相结合,以优化当今量子系统的性能。Amazon Braket Hybrid Jobs 提供三个主要好处:

  1. 性能:与在自己的环境中运行混合算法相比,Amazon Braket 混合任务提供的性能更好。当您的作业运行时,它可以优先访问选定的目标 QPU。您的任务在设备上排队的其他任务之前运行。这使得混合算法的运行时间更短、更具可预测性。Amazon Braket 混合作业还支持参数化编译。您可以使用免费参数提交电路,Braket 只需编译一次电路,就无需重新编译即可对同一电路进行后续参数更新,从而实现更快的运行时间。

  2. 便利:Amazon Braket Hybrid Jobs 简化了计算环境的设置和管理,并在混合算法运行时保持其运行。您只需提供算法脚本,然后选择要运行的量子设备(量子处理单元或模拟器)即可。Amazon Braket 等待目标设备可用,启动传统资源,在预先构建的容器环境中运行工作负载,将结果返回到亚马逊简单存储服务 (Amazon S3),然后释放计算资源。

  3. 指标:Amazon Braket Hybrid Job on-the-fly s 提供有关运行算法的见解,并近乎实时地向亚马逊 CloudWatch 和 Amazon Braket 控制台提供可自定义的算法指标,以便您可以跟踪算法的进度。

使用 Amazon Braket 混合作业运行混合作业

要使用 Amazon Braket 混合作业运行混合作业,您首先需要定义算法。您可以通过使用 Amazon Braket Python 软件开发工具包编写算法脚本以及其他依赖项文件来定义它,也可以使用 Amazon Braket Python SDK 或PennyLane如果您想使用其他(开源或专有)库,则可以使用 Docker 定义自己的自定义容器镜像,其中包括这些库。有关更多信息,请参阅自带容器 (BYOC)

无论哪种情况,接下来都要使用 Amazon Braket 创建混合作业API,在其中提供算法脚本或容器,选择混合作业要使用的目标量子设备,然后从各种可选设置中进行选择。为这些可选设置提供的默认值适用于大多数用例。对于运行混合作业(Hybrid Job)的目标设备,您可以在 QPU、按需模拟器(例如SV1、DM1或TN1)或经典混合作业实例本身之间进行选择。使用按需模拟器或 QPU,您的混合作业容器可以对远程设备进行 API 调用。使用嵌入式仿真器,仿真器与算法脚本嵌入在同一个容器中。中的闪电模拟 PennyLane 器嵌入了默认的预建混合作业容器供您使用。如果您使用嵌入式 PennyLane 模拟器或自定义模拟器运行代码,则可以指定实例类型以及要使用的实例数量。有关每种选择的相关费用,请参阅 Amazon Braket 定价页面

流程图显示了用户与 Amazon Braket 组件、API、作业实例以及混合任务、QPU、按需任务和嵌入式任务的模拟器的交互。结果存储在亚马逊简单存储服务存储桶中,并使用亚马逊在 Amazon Braket 控制台 CloudWatch 上进行分析。

如果您的目标设备是按需模拟器或嵌入式模拟器,Amazon Braket 会立即开始运行混合任务。它启动混合作业实例(您可以在API调用中自定义实例类型),运行算法,将结果写入 Amazon S3,然后释放您的资源。此版本的资源可确保您只需为实际使用的资源付费。

每个量子处理单元 (QPU) 的并发混合任务总数受到限制。如今,在任何给定时间,QPU 上只能运行一个混合作业。队列用于控制允许运行的混合作业的数量,以免超过允许的限制。如果您的目标设备是 QPU,则混合作业将首先进入所选 QPU 的任务队列。Amazon Braket 启动所需的混合作业实例,并在设备上运行您的混合作业。在算法持续时间内,您的混合作业具有优先访问权限,这意味着混合作业中的量子任务优先于设备上排队的其他 Braket 量子任务,前提是该作业的量子任务每隔几分钟提交给 QPU 一次。混合任务完成后,资源就会被释放,这意味着您只需为实际使用的资源付费。

注意

设备是区域性的,您的混合任务与主设备在 AWS 区域 同一设备上运行。

在模拟器和 QPU 目标场景中,您可以选择将自定义算法指标(例如哈密顿能量)定义为算法的一部分。这些指标会自动报告给亚马逊, CloudWatch 然后在亚马逊Braket控制台中以近乎实时的方式显示。

注意

如果您想使用基于 GPU 的实例,请务必使用 Braket 上嵌入式模拟器中提供的基于 GPU 的模拟器(例如)。lightning.gpu如果您选择基于 CPU 的嵌入式模拟器之一(例如lightning.qubit、或braket:default-simulator),则不会使用 GPU,并且可能会产生不必要的成本。