搭 PennyLane 配 Amazon Braket - Amazon Braket

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

搭 PennyLane 配 Amazon Braket

混合算法是包含傳統和量子指令的算法。經典指令在傳統硬件(EC2 實例或筆記本電腦)上運行,並且量子指令在模擬器或量子計算機上運行。建議您使用「混合式工作」功能執行混合演算法。如需詳細資訊,請參閱何時使用 Amazon Braket 工作

AmazonBraket 可讓您在 Braket PennyLane 外掛程式的協助下,或使用 Amazon Amazon Braket Python SDK 和範例筆記本儲存庫來設定和執行混合量子演算法。 Amazon基於 SDK 的 Braket 範例筆記本,可讓您在不使用 PennyLane 外掛程式的情況下設定和執行某些混合演算法。但是,我們建議使用, PennyLane 因為它提供了更豐富的體驗。

關於混合量子演算法

混合量子演算法對現今的產業很重要,因為當代量子運算裝置通常會產生雜訊,因此會產生錯誤。加入計算中的每個量子閘都會增加雜訊的機會;因此,長時間執行的演算法可能會因雜訊而不堪重負,這會導致計算錯誤。

純量子算法,如 Shor(量子相位估計示例)或格羅弗(格羅弗的例子)需要數千或數百萬次的操作。因此,它們對於現有的量子器件而言可能是不切實際的,這些量子器件通常稱為嘈雜的中間尺度量子(N ISQ)設備。

在混合量子演算法中,量子處理單元 (QPU) 可作為傳統 CPU 的協同處理器,特別是為了加速傳統演算法中的某些計算。在當今設備的功能範圍內,電路執行變得更短。

Amazon Braket 與 PennyLane

AmazonBraket 提供了一個圍繞量子可差化編程概念構建的開源軟件框架的支持。PennyLane您可以使用此架構來訓練量子電路,就像訓練神經網路尋找量子化學、量子機器學習和最佳化中運算問題的解決方案一樣。

該 PennyLane 庫提供熟悉的機器學習工具的介面,包括 PyTorch 和 TensorFlow,使量子電路訓練快速且直觀。

  • 圖 PennyLane 書館-預先安裝 PennyLane 在Amazon布拉克特筆記本中。若要從中存取 Amazon Braket 裝置 PennyLane,請開啟筆記本並使用下列指令匯入 PennyLane 資料庫。

import pennylane as qml

教學課程筆記本可協助您快速入門。或者,您可以從您選擇的 IDE PennyLane 上使用 Amazon Braket。

  • AmazonBraket PennyLane 外掛程式 — 要使用您自己的 IDE,您可以手動安裝 Amazon Braket PennyLane 外掛程式。該插件 PennyLane 與 Amazon Braket Python 開發套件連接,因此您可以在 Amazon Braket 設備 PennyLane 上運行電路。要安裝 PennyLane 插件,請使用以下命令。

pip install amazon-braket-pennylane-plugin

以下實例演示瞭如何在 PennyLane中設置對 Amazon Braket 設備的訪問權限:

# 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 範例儲存庫

AmazonBraket PennyLane 插件使您可以通過一行代碼在 Amazon Braket QPU 和嵌入式模擬器設 PennyLane 備之間切換。它提供了兩個 Amazon Braket 量子設備可以使用 PennyLane:

  • braket.aws.qubit用於與 Amazon Braket 服務的量子設備一起運行,包括 QPU 和模擬器

  • braket.local.qubit用於使用 Amazon Braket SDK 的本地模擬器運行

Amazon布拉克特 PennyLane 插件是開源的。您可以從PennyLane 插件 GitHub 存儲庫安裝它。

如需詳細資訊 PennyLane,請參閱PennyLane 網站上的文件。

亞馬遜佈局範例筆記本中的混合算法

AmazonBraket 確實提供了各種不依賴 PennyLane 插件運行混合算法的示例筆記本電腦。您可以開始使用這些 Amazon Braket 混合式範例筆記型電腦,這些筆記型電腦說明變異方法,例如量子近似最佳化演算法 (QAOA) 或變分量子特徵求解析器 (VQE)。

標Amazon題範例筆記本電腦依賴於 Amazon Braket Python 開發套件。SDK 提供了一個框架,可通過 Amazon Braket 與量子計算硬件設備進行交互。它是一個開放原始碼程式庫,旨在協助您處理混合式工作流程的量子部分。

您可以使用我們的範例筆記本進一步探索 Amazon Braket。

含嵌入式 PennyLane 模擬器的混合演算法

AmazonBraket 混合作業現在配備了高性能 CPU 和 GPU 的嵌入式模擬器。PennyLane這個嵌入式模擬器系列可以直接嵌入到您的混合式工作容器中,包括快速狀態向量lightning.qubit模擬器、使用 NVIDIA CuQuantum 程式庫加速的lightning.gpu模擬器等。這些嵌入式模擬器非常適合用於變分算法,例如量子機器學習,可以從諸如隨差異化方法之類的先進方法中受益。您可以在一或多個 CPU 或 GPU 執行個體上執行這些內嵌模擬器。

有了混合式工作,您現在可以使用傳統協處理器和 QPU、Amazon Braket 隨選模擬器 (例如) 或直接使用嵌入式模擬器來執行變動演算法程式碼。SV1 PennyLane

嵌入式模擬器已經與混合作業容器一起使用,您只需要使用裝飾@hybrid_job器來裝飾您的主 Python 函數即可。若要使用 PennyLane lightning.gpu模擬器,您還需要在中指定 GPU 執行個體,InstanceConfig如下列程式碼片段所示:

import pennylane as qml from braket.jobs import hybird_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) ...

請參閱範例筆記本,以開始使用具有混合式工作的 PennyLane 嵌入式模擬器。

PennyLane 與 Amazon Braket 模擬器相伴漸變

使用 Amazon Braket 的PennyLane外掛程式,您可以在本機狀態向量模擬器或 SV1 上執行時,使用隨附的差異化方法來計算漸層。

注意:要使用伴隨區分方法,您必須diff_method='device'在您的qnode,而不是指定。 diff_method='adjoint'請參閱以下範例。

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 哈密頓人的分組索引,並使用它們將哈密頓分成多個期望值。如果您想要在執行 QAOA 時使用 SV1 的伴隨區分功能PennyLane,則需要移除分組索引來重建成本哈密頓軸,如下所示:cost_h, mixer_h = qml.qaoa.max_clique(g, constrained=False) cost_h = qml.Hamiltonian(cost_h.coeffs, cost_h.ops)