View a markdown version of this page

Utilizzo con Amazon Braket PennyLane - Amazon Braket

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 con Amazon Braket PennyLane

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.

Amazon Braket ti consente di configurare ed eseguire algoritmi quantistici ibridi con l'assistenza del PennyLane plug-in Amazon Braket o con l'SDK Python Amazon Braket e gli archivi di notebook di esempio. I notebook di esempio Amazon 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 l'industria odierna perché i dispositivi informatici quantistici contemporanei generalmente producono rumore e quindi errori. Ogni gate quantistico aggiunto a un calcolo aumenta la possibilità di aggiungere rumore; pertanto, gli algoritmi di lunga durata possono essere sopraffatti dal rumore, il che si traduce in un calcolo difettoso.

Algoritmi quantistici puri come 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 a scala intermedia (NISQ).

Negli algoritmi quantistici ibridi, le unità di elaborazione quantistica (QPU) funzionano come coprocessori per le CPU classiche, in particolare per velocizzare 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

Amazon Braket fornisce supporto per PennyLane, un framework software open source costruito attorno al concetto di programmazione quantistica differenziabile. Puoi utilizzare questo framework per addestrare 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 per 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 plugin 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, quindi puoi 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 dimostra 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 su PennyLane, consulta il repository di esempi di Amazon Braket.

Il PennyLane plug-in Amazon Braket ti consente di passare dalla QPU Amazon Braket ai dispositivi di simulazione integrati PennyLane con una sola riga di codice. Offre due dispositivi quantistici Amazon Braket con cui lavorare: PennyLane

  • braket.aws.qubitper l'esecuzione con i dispositivi quantistici del servizio Amazon Braket, inclusi QPU e simulatori

  • braket.local.qubitper l'esecuzione 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 di Amazon Braket

Amazon Braket 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 quaderni di esempio ibridi Amazon Braket che illustrano metodi variazionali, come Quantum Approximate Optimization Algorithm (QAOA) o Variational Quantum Eigensolver (VQE).

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

Puoi esplorare ulteriormente Amazon Braket con i nostri quaderni di esempio.

Algoritmi ibridi con simulatori integrati PennyLane

Amazon Braket Hybrid Jobs è ora dotato di simulatori GPU-based integrati e CPU ad alte prestazioni di. PennyLane Questa famiglia di simulatori integrati può essere incorporata direttamente nel contenitore di lavori ibridi e include il simulatore veloce di stato vettoriale, il lightning.qubit lightning.gpu simulatore accelerato utilizzando la libreria CuQuantum di NVIDIA e altri. https://developer.nvidia.com/cuquantum-sdk 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 aggiunto. https://docs.pennylane.ai/en/stable/introduction/interfaces.html#simulation-based-differentiation È possibile eseguire questi simulatori integrati su una o più istanze di CPU o GPU.

Con Hybrid Jobs, ora puoi eseguire il codice del tuo algoritmo variazionale utilizzando una combinazione di un coprocessore classico e una QPU, un simulatore Amazon Braket on-demand comeSV1, o utilizzando direttamente il simulatore integrato di. PennyLane

Il simulatore integrato è già disponibile con il contenitore Hybrid Jobs, dovete decorare la vostra funzione principale di Python con il decoratore. @hybrid_job 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 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) ...

Fate riferimento al notebook di esempio per iniziare a utilizzare un simulatore PennyLane integrato con Hybrid Jobs.

Aggiungi gradiente con i simulatori Amazon Braket PennyLane

Con il PennyLane plug-in per Amazon Braket, puoi calcolare i gradienti utilizzando il metodo di differenziazione adjoint durante l'esecuzione sul simulatore di vettori di stato locale o SV1.

Nota: per utilizzare il metodo di differenziazione congiunta, è necessario specificare nel campo «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 QAOA e li utilizzerà per suddividere 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)