Utilizzo PennyLane con Amazon Braket - Amazon Braket

Impara le basi dell'informatica quantistica con! AWS Iscriviti all'Amazon Braket Digital Learning Plan e ottieni il tuo badge digitale dopo aver completato una serie di corsi di apprendimento e una valutazione digitale.

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 (esempio Grover) richiedono migliaia o milioni di operazioni. Per questo motivo, possono essere poco pratici per i dispositivi quantistici esistenti, generalmente denominati dispositivi quantistici rumorosi su scala intermedia (NISQ).

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 PennyLaneun framework software open source costruito attorno al concetto di programmazione quantistica differenziabile. È possibile utilizzare questo framework per addestrare i circuiti quantistici nello stesso modo in cui addestreresti una rete neurale per trovare soluzioni a problemi computazionali di chimica quantistica, apprendimento automatico quantistico e ottimizzazione.

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.qubitper funzionare con i dispositivi quantistici del servizio Amazon Braket, tra cui QPU e simulatori

  • braket.local.qubitper 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 che illustrano metodi variazionali, come il Quantum Approximate Optimization Algorithm (QAOA) o Variational Quantum Eigensolver (VQE).

I notebook di esempio Amazon Braket si basano sull'SDK Amazon Braket Python. L'SDK fornisce un framework per interagire con i dispositivi hardware di calcolo quantistico tramite Braket. Amazon È una libreria open source progettata per assistervi nella parte quantistica del vostro flusso di lavoro ibrido.

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. PennyLane Questa famiglia di simulatori integrati può essere incorporata direttamente all'interno del contenitore di lavori ibridi e include il veloce simulatore state-vector, il lightning.qubitlightning.gpu simulatore accelerato utilizzando la libreria cuQuantum di NVIDIA e altri. Questi simulatori integrati sono ideali per algoritmi variazionali come l'apprendimento automatico quantistico, che possono trarre vantaggio da metodi avanzati come il metodo di differenziazione adjoint. È possibile eseguire questi simulatori incorporati su una o più istanze di CPU o GPU.

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 principale di Python 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 per iniziare a utilizzare un simulatore PennyLane incorporato con Hybrid Jobs.

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)