PennyLane Mit Amazon Braket verwenden - 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.

PennyLane Mit Amazon Braket verwenden

Hybride Algorithmen sind Algorithmen, die sowohl klassische als auch Quantenbefehle enthalten. Die klassischen Befehle werden auf klassischer Hardware (einer EC2 Instanz oder Ihrem Laptop) ausgeführt, und die Quantenbefehle werden entweder auf einem Simulator oder auf einem Quantencomputer ausgeführt. Wir empfehlen, hybride Algorithmen mithilfe der Hybrid-Jobs-Funktion auszufü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 mit Amazon Braket Python SDK und Beispiel-Notebook-Repositorys einzurichten und auszuführen. Amazon Braket-Beispiel-Notebooks, die auf dem basierenSDK, ermöglichen es Ihnen, bestimmte Hybrid-Algorithmen ohne das PennyLane Plugin einzurichten und auszuführen. Wir empfehlen dies jedoch, PennyLane da es eine umfassendere Benutzererfahrung bietet.

Über hybride Quantenalgorithmen

Hybride Quantenalgorithmen sind heute für die Industrie wichtig, da moderne Quantencomputer im Allgemeinen Rauschen und damit Fehler erzeugen. Jedes Quantengatter, das zu 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 der von Shor (Beispiel Quantum Phase Estimation) oder der von Grover (Grovers Beispiel) erfordern Tausende oder Millionen von Operationen. Aus diesem Grund können sie für bestehende Quantengeräte, die allgemein als rauschbehaftete Quanten () -Geräte auf mittlerer Skala bezeichnet werden, nicht praktikabel sein. NISQ

In hybriden Quantenalgorithmen arbeiten Quantenverarbeitungseinheiten (QPUs) als Co-Prozessoren für klassische AlgorithmenCPUs, insbesondere um bestimmte Berechnungen in einem klassischen Algorithmus zu beschleunigen. Die Ausführung von Schaltungen wird deutlich kürzer, was mit den Möglichkeiten heutiger Geräte möglich ist.

Amazon Braket mit PennyLane

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

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

  • Die PennyLane Bibliothek -— PennyLane ist vorinstalliert in Amazon Braket-Notizbücher. Für den Zugriff auf Amazon Braket-Geräte von PennyLane, öffnen Sie ein Notizbuch und importieren Sie die PennyLane Bibliothek mit dem folgenden Befehl.

import pennylane as qml

Tutorial-Notizbücher helfen Ihnen dabei, schnell loszulegen. Alternativ können Sie Folgendes verwenden PennyLane Amazon Halterung aus einem beliebigen Gerät IDE Ihrer Wahl.

  • Die Amazon PennyLane Braket-Plugin — Um Ihr eigenes zu verwendenIDE, können Sie das installieren Amazon PennyLane Braket-Plugin manuell. Das Plugin stellt eine Verbindung PennyLane mit Amazon Braket Python herSDK, sodass Sie Schaltungen in einem PennyLane ausführen können Amazon Braket-Geräte. Verwenden Sie den folgenden Befehl, um das PennyLane Plugin zu installieren.

pip install amazon-braket-pennylane-plugin

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

Das Tool Amazon Mit dem PennyLane Braket-Plugin können Sie zwischen Amazon Braket QPU - und eingebettete Simulatorgeräte PennyLane mit einer einzigen Codezeile. Es bietet zwei Amazon Braket-Quantengeräte zum Arbeiten mit PennyLane:

  • braket.aws.qubitzum Laufen mit dem Amazon Die Quantengeräte von Braket Service, einschließlich QPUs Simulatoren

  • braket.local.qubitzum Laufen mit dem Amazon Der lokale Simulator SDK von Braket

Das Tool Amazon Das 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-Beispielnotizbüchern

Amazon Braket bietet eine Vielzahl von Beispiel-Notebooks, die nicht auf das PennyLane Plugin angewiesen sind, um Hybrid-Algorithmen auszuführen. Sie können mit jedem dieser Amazon Braket-Hybrid-Beispielnotizbücher beginnen, die Variationsmethoden wie den Quantum Approximate Optimization Algorithm (QAOA) oder den Variational Quantum Eigensolver () veranschaulichen. VQE

Die Amazon Braket-Beispielnotizbücher basieren auf Amazon Braket Python. SDK Das SDK bietet ein Framework für die Interaktion mit Quantencomputer-Hardwaregeräten über Amazon Klammer. Es handelt sich um eine Open-Source-Bibliothek, die Sie beim Quantenanteil Ihres hybriden Workflows unterstützen soll.

Sie können erkunden Amazon Braket weiter mit unseren Beispiel-Notizbüchern.

Hybride Algorithmen mit eingebetteten Simulatoren PennyLane

Amazon Braket Hybrid Jobs bietet jetzt leistungsstarke CPU und GPU basierte eingebettete Simulatoren von. PennyLane Diese Familie eingebetteter Simulatoren kann direkt in Ihren Container für hybride Jobs eingebettet werden. Sie umfasst den lightning.qubit Fast-State-Vector-Simulator, die cuQuantum Bibliothek mit beschleunigter Nutzung NVIDIA des lightning.gpu Simulators und andere. Diese eingebetteten Simulatoren eignen sich ideal für variationelle Algorithmen wie maschinelles Quantenlernen, die von fortschrittlichen Methoden wie der Methode der adjungierten Differenzierung profitieren können. Sie können diese eingebetteten Simulatoren auf einer oder mehreren Instanzen ausführen. CPU GPU

Mit Hybrid-Jobs können Sie jetzt Ihren variationellen Algorithmuscode mit einer Kombination aus einem klassischen Co-Prozessor und einem QPU Amazon Ein On-Demand-Simulator von Braket wie SV1, oder direkt mit dem eingebetteten Simulator von PennyLane.

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

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

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

Adjoint Gradient aktiviert PennyLane mit Amazon Braket-Simulatoren

Mit dem PennyLane Mit dem Plugin für Amazon Braket können Sie Gradienten mithilfe der Methode der adjungierten Differenzierung berechnen, wenn Sie sie auf dem lokalen Zustandsvektorsimulator ausführen oder. SV1

Hinweis: Um die Methode der adjungierten Differenzierung zu verwenden, müssen Sie diff_method='device' in Ihrer qnode und nicht angeben. 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

Derzeit PennyLane berechnet Gruppierungsindizes für QAOA Hamiltonianer und verwendet sie, um den Hamiltonschen Wert in mehrere Erwartungswerte aufzuteilen. Wenn Sie die Fähigkeit zur adjungierten Differenzierung verwenden SV1 möchten, wenn Sie von QAOA PennyLane, müssen Sie den Hamiltonschen Wert rekonstruieren, 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)