Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Utilizzo PennyLane con Amazon Braket
Gli algoritmi ibridi sono algoritmi che contengono istruzioni sia classiche che quantistiche. Le istruzioni classiche vengono eseguite su hardware classico (un'istanza EC2 o un laptop) e le istruzioni quantistiche vengono eseguite su un simulatore o su un computer quantistico. Ti consigliamo di eseguire algoritmi ibridi utilizzando la funzionalità Hybrid Jobs. Per ulteriori informazioni, consulta Quando usare Amazon Braket Jobs.
AmazonBraket consente di configurare ed eseguire algoritmi quantistici ibridi con l'assistenza del PennyLane plug-in Braket o con l'AmazonSDK Braket Amazon Python e gli esempi di repository di notebook. Amazon I notebook di esempio Braket, basati sull'SDK, consentono di configurare ed eseguire determinati algoritmi ibridi senza il plug-in. PennyLane Tuttavia, lo consigliamo PennyLane perché offre un'esperienza più ricca.
Informazioni sugli algoritmi quantistici ibridi
Gli algoritmi quantistici ibridi sono importanti per il settore odierno perché i dispositivi informatici quantistici contemporanei generalmente producono rumore e quindi errori. Ogni porta quantistica aggiunta a un calcolo aumenta la possibilità di aggiungere rumore; pertanto, gli algoritmi di lunga durata possono essere sopraffatti dal rumore, con conseguenti errori di calcolo.
Algoritmi quantistici puri come quelli di Shor (esempio Quantum Phase Estimation) o Grover (
Negli algoritmi quantistici ibridi, le unità di elaborazione quantistica (QPU) funzionano come coprocessori per le CPU classiche, in particolare per accelerare determinati calcoli in un algoritmo classico. Le esecuzioni dei circuiti diventano molto più brevi, alla portata delle funzionalità dei dispositivi odierni.
Amazon Braket con PennyLane
AmazonBraket fornisce supporto per PennyLane
La PennyLane libreria fornisce interfacce a strumenti di apprendimento automatico familiari, tra cui PyTorch e, per rendere l'addestramento dei circuiti quantistici TensorFlow rapido e intuitivo.
-
La PennyLane libreria -— PennyLane è preinstallata nei notebook Braket. Amazon Per accedere ai dispositivi Amazon Braket da PennyLane, apri un notebook e importa la libreria con il PennyLane seguente comando.
import pennylane as qml
I taccuini tutorial ti aiutano a iniziare rapidamente. In alternativa, puoi utilizzarlo PennyLane su Amazon Braket da un IDE a tua scelta.
-
Il PennyLane plug-in Amazon Braket: per utilizzare il tuo IDE, puoi installare il plug-in Amazon Braket PennyLane manualmente. Il plug-in si connette PennyLane all'SDK Amazon Braket Python
, in modo da poter eseguire circuiti sui dispositivi Braket. PennyLane Amazon Per installare il PennyLane plugin, usa il seguente comando.
pip install amazon-braket-pennylane-plugin
L'esempio seguente mostra come configurare l'accesso ai dispositivi Amazon Braket 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)
Per esempi di tutorial e ulteriori informazioni a riguardo PennyLane, consulta l'archivio degli esempi di Amazon Braket
Il PennyLane plug-in Amazon Braket ti consente di passare da Amazon Braket QPU a dispositivi di simulazione integrati PennyLane con una sola riga di codice. Offre due dispositivi quantistici Amazon Braket con cui lavorare: PennyLane
-
braket.aws.qubit
per funzionare con i dispositivi quantistici del servizio Amazon Braket, tra cui QPU e simulatori -
braket.local.qubit
per funzionare con il simulatore locale di Amazon Braket SDK
Il PennyLane plugin Amazon Braket è open source. Puoi installarlo dal GitHub repository dei PennyLane plugin
Per ulteriori informazioni in merito PennyLane, consulta la documentazione sul PennyLane sito Web
Algoritmi ibridi nei notebook di esempio Amazon Braket
AmazonBraket fornisce una serie di notebook di esempio che non si basano sul plug-in per l'esecuzione di algoritmi ibridi. PennyLane Puoi iniziare con uno qualsiasi di questi notebook di esempio ibridi Amazon Braket
I notebook di esempio Amazon Braket si basano sull'SDK Amazon Braket Python.
Puoi esplorare ulteriormente Amazon Braket con i nostri taccuini di esempio
Algoritmi ibridi con simulatori integrati PennyLane
AmazonBraket Hybrid Jobs ora include simulatori integrati ad alte prestazioni basati su CPU e GPU di. PennyLanelightning.qubit
lightning.gpu
simulatore accelerato utilizzando la libreria cuQuantum di NVIDIA e altri.
Con Hybrid Jobs, ora puoi eseguire il codice dell'algoritmo variazionale utilizzando una combinazione di un coprocessore classico e una QPU, un simulatore on-demand Amazon Braket comeSV1, o utilizzando direttamente il simulatore incorporato di. PennyLane
Il simulatore incorporato è già disponibile con il contenitore Hybrid Jobs, devi semplicemente decorare la tua funzione Python principale con @hybrid_job
il decoratore. Per utilizzare il PennyLane lightning.gpu
simulatore, è inoltre necessario specificare un'istanza GPU InstanceConfig
come mostrato nel seguente frammento di codice:
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) ...
Fate riferimento al notebook di esempio
Aggiungi il gradiente con i simulatori Amazon PennyLane Braket
Con il PennyLane plug-in per Amazon Braket, puoi calcolare i gradienti utilizzando il metodo di differenziazione adjoint quando esegui sul simulatore vettoriale statale locale o SV1.
Nota: per utilizzare il metodo di differenziazione aggiuntiva, devi specificare nel tuo, e non. diff_method='device'
qnode
diff_method='adjoint'
Guarda l'esempio seguente.
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)
Nota
Attualmente, PennyLane calcolerà gli indici di raggruppamento per gli hamiltoniani di QAOA e li utilizzerà per dividere l'hamiltoniano in più valori di aspettativa. Se desideri utilizzare la funzionalità di differenziazione aggiuntiva di SV1 quando esegui QAOA da, dovrai ricostruire il costo hamiltoniano rimuovendo gli indici di raggruppamento, in questo modo: PennyLane cost_h, mixer_h = qml.qaoa.max_clique(g, constrained=False)
cost_h = qml.Hamiltonian(cost_h.coeffs, cost_h.ops)