搭 PennyLane 配 Amazon Braket - Amazon Braket

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

搭 PennyLane 配 Amazon Braket

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

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

關於混合量子演算法

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

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

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

Amazon Braket 與 PennyLane

Amazon Braket 提供支援 PennyLane,這是一個以量子可差異化程式設計概念為基礎的開放原始碼軟體架構。您可以使用此架構來訓練量子電路,就像訓練神經網路尋找量子化學、量子機器學習和最佳化中運算問題的解決方案一樣。

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

  • 圖 PennyLane 書館-預先 PennyLane 安裝在 Amazon 布拉克特筆記本。若要存取 Amazon 從中編輯設備 PennyLane,打開筆記本並使用以下命令導入 PennyLane 庫。

import pennylane as qml

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

  • 該 Amazon 布拉克特 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 布拉克特 PennyLane 插件使您可以在之間切換 Amazon PennyLane 用一行代碼進行 Braket QPU 和嵌入式模擬器設備。它提供了兩個 Amazon 制動量子裝置可搭配使用 PennyLane:

  • braket.aws.qubit用於運行 Amazon 制動服務的量子設備,包括QPUs和模擬器

  • braket.local.qubit用於運行 Amazon 布拉克特SDK的本地模擬器

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

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

Amazon Braket 局範例筆記型電腦中的混合式

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

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

你可以探索 Amazon 用我們的示例筆記本進一步布拉克特。

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

Amazon Braket 混合式工作現在提供高效能CPU和GPU基於的嵌入式模擬器。PennyLane這個嵌入式模擬器系列可以直接嵌入到您的混合任務容器中,包括快速狀態向量lightning.qubit模擬器,使用的cuQuantum 庫加速NVIDIA的lightning.gpu模擬器等。這些嵌入式模擬器非常適合用於變分算法,例如量子機器學習,可以從諸如隨差異化方法之類的先進方法中受益。您可以在一個或多個CPU或GPU實例上運行這些嵌入式模擬器。

有了混合式工作,您現在可以使用傳統輔助處理器QPU和 Amazon 布拉克特按需模擬器,例如 SV1,或直接使用嵌入式模擬器 PennyLane。

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

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 模擬器相伴漸變

隨著 PennyLane 用於 Amazon Braket 的插件,您可以在本地狀態矢量模擬器上運行時使用伴隨差分方法計算梯度或. 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哈密頓人的分組索引,並使用它們將哈密頓分成多個期望值。如果您想在運行時使用SV1的伴隨區分功能 QAOA PennyLane,您將需要通過刪除分組索引來重建成本哈密頓軸,如下所示:cost_h, mixer_h = qml.qaoa.max_clique(g, constrained=False) cost_h = qml.Hamiltonian(cost_h.coeffs, cost_h.ops)