翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon Braket PennyLane で を使用する
ハイブリッドアルゴリズムは、古典命令と量子命令の両方を含むアルゴリズムです。クラシック命令はクラシックハードウェア (EC2 インスタンスまたはラップトップ) で実行され、量子命令はシミュレーターまたは量子コンピュータで実行されます。Hybrid Jobs 機能を使用してハイブリッドアルゴリズムを実行することをお勧めします。詳細については、Amazon Braket Jobs を使用するタイミング」を参照してください。
Amazon Braket を使用すると、Braket PennyLane プラグイン 、または Amazon Braket Python SDK Amazon とサンプルノートブックリポジトリを使用して、ハイブリッド量子アルゴリズムをセットアップして実行できます。 AmazonBraket サンプルノートブックは SDK に基づいており、 PennyLane プラグインなしで特定のハイブリッドアルゴリズムをセットアップして実行できます。ただし、よりリッチなエクスペリエンス PennyLane を提供するため、 をお勧めします。
ハイブリッド量子アルゴリズムについて
ハイブリッド量子アルゴリズムは、今日の業界にとって重要です。なぜなら、近代的な量子コンピューティングデバイスは一般的にノイズを生成し、したがってエラーが発生するからです。計算に追加される量子ゲートごとにノイズが増える可能性が高くなるため、長時間実行されるアルゴリズムはノイズに圧倒され、計算が失敗する可能性があります。
Shor の (量子フェーズ推定の例)
ハイブリッド量子アルゴリズムでは、特に古典的なアルゴリズムにおける特定の計算を高速化するために、量子処理装置 (QPU) は古典的 CPU のコプロセッサとして機能します。今日のデバイスの機能の手の届く範囲内で、回路の実行がはるかに短くなります。
を使用した Amazon Braket PennyLane
Amazon Braket はPennyLane
この PennyLane ライブラリは、 PyTorch や などの使い慣れた機械学習ツールへのインターフェイスを提供し TensorFlow、量子回路のトレーニングを迅速かつ直感的に行います。
-
PennyLane ライブラリ -- PennyLane は Amazon Braket ノートブックにプリインストールされています。から Amazon Braket デバイスにアクセスするには PennyLane、ノートブックを開き、次のコマンドを使用して PennyLane ライブラリをインポートします。
import pennylane as qml
チュートリアルノートブックで、すぐに開始できます。または、選択した IDE から PennyLane Amazon Braket で を使用することもできます。
-
Amazon Braket PennyLane プラグイン — 独自の IDE を使用するには、AmazonBraket PennyLane プラグインを手動でインストールできます。プラグインは Amazon Braket Python SDK
PennyLane に接続するため、AmazonBraket デバイスで PennyLane で回路を実行できます。 PennyLane プラグインをインストールするには、次のコマンドを使用します。
pip install amazon-braket-pennylane-plugin
次の例は、 で Amazon Braket デバイスへのアクセスを設定する方法を示しています 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 プラグインを使用すると、AmazonBraket QPU と埋め込みシミュレーターデバイスを 1 行のコード PennyLane で切り替えることができます。2 つの Amazon Braket 量子デバイスが で動作します PennyLane。
-
braket.aws.qubit
QPUs やシミュレーターなど、AmazonBraket サービスの量子デバイスで実行するための -
braket.local.qubit
Amazon Braket SDK のローカルシミュレーターで実行するための
Amazon Braket PennyLane プラグインはオープンソースです。PennyLane プラグイン GitHub リポジトリ
の詳細については PennyLane、 PennyLane ウェブサイト
Amazon Braket のハイブリッドアルゴリズムのサンプルノートブック
Amazon Braket には、ハイブリッドアルゴリズムの実行に PennyLane プラグインに依存しないさまざまなサンプルノートブックが用意されています。量子近似最適化アルゴリズム (QAOA) や変分量子固有値ソルバー (VQE) などの変分法
Amazon Braket サンプルノートブックは Amazon Braket Python SDK
Amazon Braket は、サンプルノートブック でさらに詳しく調べることができます
PennyLane シミュレーターが埋め込まれたハイブリッドアルゴリズム
Amazon Braket Hybrid Jobs には、 の高性能 CPU および GPU ベースの組み込みシミュレーターが付属するようになりましたPennyLanelightning.qubit
シミュレーター、NVIDIA の cuQuantum ライブラリ lightning.gpu
シミュレーターなどが含まれます。これらの組み込みシミュレーターは、結合分化
Hybrid Jobs では、従来のコプロセッサと QPU、 などの Amazon Braket オンデマンドシミュレーター、または の埋め込みシミュレーターを直接使用してSV1、バリエーションアルゴリズムコードを実行できるようになりました PennyLane。
埋め込みシミュレーターは Hybrid Jobs コンテナで既に利用可能です。メインの Python 関数を デコレータで@hybrid_job
デコレートするだけで済みます。シミュレーターを使用するには 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) ...
Hybrid Jobs で PennyLane 埋め込みシミュレーターの使用を開始するには、サンプルノートブック
Amazon Braket シミュレータ PennyLane ーによる の結合勾配
Amazon Braket のPennyLaneプラグインを使用すると、ローカル状態ベクトルシミュレーターまたは SV1 で実行するときに、結合区別方法を使用して勾配を計算できます。 Amazon Braket
注: 結合の区別方法を使用するには、 ではなくqnode
、 diff_method='device'
で を指定する必要があります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)