View a markdown version of this page

Verwendung mit Amazon Braket PennyLane - Amazon Braket

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwendung mit Amazon Braket PennyLane

Hybride Algorithmen sind Algorithmen, die sowohl klassische als auch Quantenbefehle enthalten. Die klassischen Befehle werden auf klassischer Hardware (einer EC2-Instance oder Ihrem Laptop) ausgeführt, und die Quantenbefehle werden entweder auf einem Simulator oder auf einem Quantencomputer ausgeführt. Wir empfehlen, dass Sie hybride Algorithmen mithilfe der Funktion „Hybride Jobs“ ausführen. Weitere Informationen finden Sie unter Wann sollten Sie Amazon Braket Jobs verwenden?

Amazon Braket ermöglicht es Ihnen, hybride Quantenalgorithmen mithilfe des Amazon PennyLane Braket-Plug-ins oder mithilfe des Amazon Braket Python SDK und Beispiel-Notebook-Repositorys einzurichten und auszuführen. Amazon Braket-Beispiel-Notebooks, die auf dem SDK basieren, ermöglichen es Ihnen, bestimmte hybride Algorithmen ohne das Plugin einzurichten und auszuführen. PennyLane Wir empfehlen es jedoch, PennyLane da es ein reichhaltigeres Erlebnis bietet.

Über hybride Quantenalgorithmen

Hybride Quantenalgorithmen sind heute für die Industrie wichtig, da moderne Quantencomputergeräte im Allgemeinen Rauschen und damit Fehler erzeugen. Jedes Quantengatter, das einer Berechnung hinzugefügt wird, erhöht die Wahrscheinlichkeit, dass Rauschen hinzukommt. Daher können Algorithmen mit langer Laufzeit durch Rauschen überfordert werden, was zu fehlerhaften Berechnungen führt.

Reine Quantenalgorithmen wie Shors (Beispiel Quantum Phase Estimation) oder Grovers (Grovers Beispiel) erfordern Tausende oder Millionen von Operationen. Aus diesem Grund können sie für bestehende Quantengeräte, die allgemein als Noisy Intermediate-Scale Quantum (NISQ) -Geräte (Noisy Intermediate-Scale Quantum) bezeichnet werden, unpraktisch sein.

In hybriden Quantenalgorithmen arbeiten Quantenprozessoren (QPUs) als Co-Prozessoren für klassische CPUs, insbesondere um bestimmte Berechnungen in einem klassischen Algorithmus zu beschleunigen. Die Schaltungsausführungen werden viel kürzer, was den Möglichkeiten heutiger Geräte gerecht wird.

Amazon Braket mit PennyLane

Amazon Braket bietet Unterstützung für ein Open-Source-Software-Framework PennyLane, das auf dem Konzept der differenzierbaren Quantenprogrammierung basiert. Sie können dieses Framework verwenden, um Quantenschaltungen auf die gleiche Weise zu trainieren, wie Sie ein neuronales Netzwerk trainieren würden, um Lösungen für Rechenprobleme in der Quantenchemie, dem maschinellen Quantenlernen und der Optimierung zu finden.

Die PennyLane Bibliothek bietet Schnittstellen zu vertrauten Tools für maschinelles Lernen, einschließlich PyTorch und TensorFlow, um das Training von Quantenschaltungen schnell und intuitiv zu gestalten.

  • Die PennyLane Bibliothek —— PennyLane ist in Amazon Braket-Notebooks vorinstalliert. Um von dort aus auf Amazon Braket-Geräte zuzugreifen PennyLane, öffnen Sie ein Notizbuch und importieren Sie die PennyLane Bibliothek mit dem folgenden Befehl.

import pennylane as qml

Tutorial-Notizbücher helfen Ihnen beim schnellen Einstieg. Alternativ können Sie PennyLane On Amazon Braket von einer IDE Ihrer Wahl aus verwenden.

  • Das Amazon PennyLane Braket-Plugin — Um Ihre eigene IDE zu verwenden, können Sie das Amazon PennyLane Braket-Plugin manuell installieren. Das Plugin stellt eine PennyLane Verbindung zum Amazon Braket Python SDK her, sodass Sie Schaltungen PennyLane auf Amazon Braket-Geräten ausführen können. Verwenden Sie den folgenden Befehl, um PennyLane das Plugin zu installieren.

pip install amazon-braket-pennylane-plugin

Das folgende Beispiel zeigt, wie Sie den Zugriff auf Amazon Braket-Geräte einrichten in 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)

Tutorial-Beispiele und weitere Informationen PennyLane dazu finden Sie im Amazon Braket-Beispiel-Repository.

Mit dem Amazon PennyLane Braket-Plugin können Sie PennyLane mit einer einzigen Amazon Codezeile zwischen Braket QPU und eingebetteten Simulatorgeräten wechseln. Es bietet zwei Amazon Braket-Quantengeräte, mit denen Sie arbeiten können: PennyLane

  • braket.aws.qubitzum Betrieb mit den Quantengeräten des Amazon Braket-Dienstes, einschließlich QPUs und Simulatoren

  • braket.local.qubitzum Laufen mit dem lokalen Simulator des Amazon Braket SDK

Das Amazon PennyLane Braket-Plugin ist Open Source. Sie können es aus dem PennyLane GitHub Plugin-Repository installieren.

Weitere Informationen PennyLane dazu finden Sie in der Dokumentation auf der PennyLane Website.

Hybride Algorithmen in Amazon Braket, Beispiel-Notebooks

Amazon Braket bietet eine Vielzahl von Beispiel-Notebooks an, für die das PennyLane Plugin zur Ausführung hybrider Algorithmen nicht erforderlich ist. Sie können mit jedem dieser Amazon Braket-Hybrid-Beispiel-Notebooks beginnen, die Variationsmethoden veranschaulichen, z. B. den Quantum Approximate Optimization Algorithm (QAOA) oder den Variational Quantum Eigensolver (VQE).

Die Amazon Braket-Beispielnotebooks basieren auf dem Amazon Braket Python SDK. https://github.com/aws/amazon-braket-sdk-python Das SDK bietet ein Framework für die Interaktion mit Quantencomputer-Hardwaregeräten über Braket. Amazon Es handelt sich um eine Open-Source-Bibliothek, die Sie beim Quantenbereich Ihres hybriden Workflows unterstützen soll.

Sie können Amazon Braket anhand unserer Beispiel-Notizbücher weiter erkunden.

Hybride Algorithmen mit eingebetteten Simulatoren PennyLane

Amazon Braket Hybrid Jobs ist jetzt mit leistungsstarken CPU- und GPU-based eingebetteten Simulatoren von ausgestattet. PennyLane Diese Familie eingebetteter Simulatoren kann direkt in Ihren Hybrid-Job-Container eingebettet werden und umfasst den schnellen lightning.qubit State-Vector-Simulator, den mit der CuQuantum-Bibliothek von NVIDIA beschleunigten lightning.gpu Simulator und andere. Diese eingebetteten Simulatoren eignen sich ideal für variationelle Algorithmen wie maschinelles Quantenlernen, die von fortschrittlichen Methoden wie der adjungierten Differenzierungsmethode profitieren können. https://docs.pennylane.ai/en/stable/introduction/interfaces.html#simulation-based-differentiation Sie können diese eingebetteten Simulatoren auf einer oder mehreren CPU- oder GPU-Instances ausführen.

Mit Hybrid Jobs können Sie Ihren Variationsalgorithmuscode jetzt mithilfe einer Kombination aus einem klassischen Co-Prozessor und einer QPU, z. B. einem Amazon Braket-On-Demand-SimulatorSV1, oder direkt mithilfe des eingebetteten Simulators von ausführen. PennyLane

Der eingebettete Simulator ist bereits mit dem Hybrid Jobs-Container verfügbar. Sie müssen Ihre Python-Hauptfunktion mit dem Decorator dekorieren. @hybrid_job Um den PennyLane lightning.gpu Simulator verwenden zu können, müssen Sie außerdem eine GPU-Instanz angeben, InstanceConfig wie im folgenden Codeausschnitt gezeigt:

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.g4dn.xlarge")) def function(wires): dev = qml.device("lightning.gpu", wires=wires) ...

Sehen Sie sich das Beispiel-Notizbuch an, um mit der Verwendung eines PennyLane eingebetteten Simulators mit Hybrid-Jobs zu beginnen.

Stellen Sie PennyLane mit Amazon Braket-Simulatoren die Steigung ein

Mit dem PennyLane Plugin für Amazon Braket können Sie Gradienten mithilfe der Methode der adjungierten Differenzierung berechnen, wenn Sie es auf dem Local State Vector Simulator oder SV1 ausführen.

Hinweis: Um die Methode der adjungierten Differenzierung zu verwenden, müssen Sie dies diff_method='device' in Ihrem angeben und nicht. qnode diff_method='adjoint' Sehen Sie sich das folgende Beispiel an.

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)
Anmerkung

Berechnet derzeit Gruppierungsindizes für QAOA-Hamiltonwerte und verwendet sie, um den Hamilton-Wert in mehrere Erwartungswerte aufzuteilen. PennyLane Wenn Sie die Funktion zur adjungierten Differenzierung von SV1 verwenden möchten, wenn Sie QAOA von ausführen, müssen Sie den Kosten-Hamilton-Wert rekonstruierenPennyLane, indem Sie die Gruppierungsindizes wie folgt entfernen: cost_h, mixer_h = qml.qaoa.max_clique(g, constrained=False) cost_h = qml.Hamiltonian(cost_h.coeffs, cost_h.ops)