本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
混合算法是同时包含经典指令和量子指令的算法。经典指令在经典硬件( EC2 实例或笔记本电脑)上运行,量子指令要么在模拟器上运行,要么在量子计算机上运行。我们建议您使用混合作业功能运行混合算法。有关更多信息,请参阅何时使用 Amazon Braket 任务。
Amazon Braket 使您能够在 Amazon Braket 插件的帮助下,或者使用 Amazon PennyLane Braket Python SDK 和示例笔记本存储库来设置和运行混合量子算法。基于软件开发工具包的 Amazon Braket 示例笔记本使您无需插件即可设置和运行某些混合算法。 PennyLane 但是,我们 PennyLane 之所以推荐,是因为它提供了更丰富的体验。
关于混合量子算法
混合量子算法对当今的行业很重要,因为当代量子计算设备通常会产生噪声,从而产生错误。计算中添加的每个量子门都会增加增加噪声的机会;因此,长期运行的算法可能会被噪声所淹没,从而导致计算错误。
诸如肖尔(量子相位估计示例)或格罗弗(格罗弗的例子)之类的纯量
在混合量子算法中,量子处理单元 (QPUs) 充当经典算法的协处理器 CPUs,专门用于加快经典算法中的某些计算。电路执行时间大大缩短,触手可及。
本节内容:
带有 Amazon Braket PennyLane
Amazon Braket 为PennyLane
该 PennyLane 库为熟悉的机器学习工具(包括 PyTorch 和)提供了接口 TensorFlow,使量子电路训练变得快速而直观。
-
PennyLane 库-—— PennyLane 已预先安装在 Amazon 支架笔记本电脑。要访问 Amazon 从 Braket 设备打开笔记本电脑 PennyLane,然后使用以下命令导入 PennyLane 库。
import pennylane as qml
教程笔记本可帮助您快速入门。或者,你可以 PennyLane 在 Amazon 从你选择的 IDE 中获得支架。
-
的 Amazon Braket PennyLane 插件 — 要使用你自己的 IDE,你可以安装 Amazon 手动支架 PennyLane 插件。该插件 PennyLane 与 Amazon Braket Python SDK
连接,因此你可以在上面运行电路 PennyLane Amazon 支架设备。要安装该 PennyLane 插件,请使用以下命令。
pip install amazon-braket-pennylane-plugin
以下示例演示如何设置访问权限 Amazon 支架设备位于 PennyLane:
# to use SV1
import pennylane as qml
sv1 = qml.device("braket.aws.qubit", device_arn="arn:aws:braket:::device/quantum-simulator/amazon/sv1", wires=2)
# to run a circuit:
@qml.qnode(sv1)
def circuit(x):
qml.RZ(x, wires=0)
qml.CNOT(wires=[0,1])
qml.RY(x, wires=1)
return qml.expval(qml.PauliZ(1))
result = circuit(0.543)
#To use the local sim:
local = qml.device("braket.local.qubit", wires=2)
有关教程示例和更多信息 PennyLane,请参阅 Amazon Braket 示例存储库
这些区域有:Amazon Braket PennyLane 插件允许你在两者之间切换 Amazon Braket QPU 和嵌入式仿真器设备只需一行代码。 PennyLane 它提供了两个 Amazon 可与 Braket 量子设备配合使用 PennyLane:
-
braket.aws.qubit
用于与 the 一起跑步 Amazon Braket 服务的量子设备,包括 QPUs 和模拟器 -
braket.local.qubit
用于与 the 一起跑步 Amazon Braket SDK 的本地模拟器
这些区域有:Amazon Braket PennyLane 插件是开源的。你可以从PennyLane 插件 GitHub 存储库
有关的更多信息 PennyLane,请参阅PennyLane 网站
Amazon Braket 中的混合算法示例笔记本
Amazon Braket 确实提供了各种不依赖 PennyLane 插件来运行混合算法的示例笔记本。你可以开始使用这些说明变分方法的 Amazon Braket 混合示例笔记本
亚马逊 Braket 示例笔记本依赖于 Amazon B raket
你可以探索 Amazon 再来看看我们的示例笔记本
带有嵌入式 PennyLane 仿真器的混合算法
Amazon Braket Hybrid Jobs 现在配备了基于 CPU 和 GPU 的高性能嵌入式模拟器。PennyLanelightning.qubit
模拟器、使用NVIDIA的cu Quantum库lightning.gpu
仿真器等。这些嵌入式仿真器非常适合变分算法,例如量子机器学习,这些算法可以从高级方法(例如伴随微分法)中受益。
借助 Hybrid Jobs,您现在可以使用经典协处理器和 QPU 的组合来运行变分算法代码,Amazon Braket 按需模拟器,例如 SV1,或者直接使用中的嵌入式仿真器 PennyLane。
嵌入式模拟器已经在 Hybrid Jobs 容器中可用,你只需要用装饰@hybrid_job
器装饰你的主 Python 函数即可。要使用 PennyLane lightning.gpu
模拟器,您还需要在中指定 GPU 实例,InstanceConfig
如以下代码片段所示:
import pennylane as qml
from braket.jobs import hybrid_job
from braket.jobs.config import InstanceConfig
@hybrid_job(device="local:pennylane/lightning.gpu", instance_config=InstanceConfig(instanceType="ml.p3.8xlarge"))
def function(wires):
dev = qml.device("lightning.gpu", wires=wires)
...
要开始使用带有 Hybrid Jobs 的 PennyLane 嵌入式模拟器,请参阅示例笔记本
PennyLane 使用 Amazon Braket 模拟器开启伴随渐变
使用 PennyLane Amazon Braket 的插件,在本地状态向量模拟器上运行时,你可以使用伴随的微分法计算梯度,或者。 SV1
注意:要使用伴随微分法,必须在 “” 和 “不是diff_method='adjoint'
” diff_method='device'
中qnode
指定。请参阅以下示例。
device_arn = "arn:aws:braket:::device/quantum-simulator/amazon/sv1"
dev = qml.device("braket.aws.qubit", wires=wires, shots=0, device_arn=device_arn)
@qml.qnode(dev, diff_method="device")
def cost_function(params):
circuit(params)
return qml.expval(cost_h)
gradient = qml.grad(circuit)
initial_gradient = gradient(params0)
注意
目前,PennyLane 将计算 QAOA Hamiltonians 的分组指数,并使用它们将哈密顿函数拆分为多个期望值。如果你想在从中运行 Q SV1 AOA 时使用伴随的微分功能 PennyLane,你需要通过移除分组指数来重建成本哈密顿模型,如下所示:cost_h, mixer_h = qml.qaoa.max_clique(g, constrained=False)
cost_h = qml.Hamiltonian(cost_h.coeffs, cost_h.ops)