Mitigazione degli errori con reti tensoriali (TEM): una Qiskit Function di Algorithmiq
Consulta il riferimento API
Le Qiskit Functions sono una funzionalità sperimentale disponibile solo per gli utenti del piano IBM Quantum® Premium, del piano Flex e del piano On-Prem (tramite IBM Quantum Platform API). Sono in stato di anteprima e soggette a modifiche.
Versioni dei pacchetti
Il codice in questa pagina è stato sviluppato con i seguenti requisiti. Si consiglia di usare queste versioni o versioni più recenti.
qiskit[all]~=2.4.0
Panoramica
Il metodo TEM (Tensor-network Error Mitigation) di Algorithmiq è un algoritmo ibrido quantistico-classico progettato per eseguire la mitigazione del rumore interamente nella fase di post-elaborazione classica. Con TEM, l'utente può calcolare i valori attesi degli osservabili mitigando gli inevitabili errori indotti dal rumore che si verificano sull'hardware quantistico, con maggiore precisione ed efficienza dei costi, rendendolo un'opzione molto attraente sia per i ricercatori nel campo quantistico sia per i professionisti del settore industriale.
Il metodo consiste nel costruire una rete tensoriale che rappresenta l'inverso del canale di rumore globale che agisce sullo stato del processore quantistico, per poi applicare la mappa agli esiti di misurazione informativamente completi acquisiti dallo stato rumoroso, ottenendo stimatori non distorti per gli osservabili.
Come vantaggio, TEM sfrutta misurazioni informativamente complete per dare accesso a un vasto insieme di valori attesi mitigati degli osservabili e ha un overhead di campionamento ottimale sull'hardware quantistico, come descritto in Filippov et al. (2023), arXiv:2307.11740, e Filippov et al. (2024), arXiv:2403.13542. L'overhead di misurazione si riferisce al numero di misurazioni aggiuntive necessarie per eseguire una mitigazione degli errori efficiente, un fattore critico per la fattibilità dei calcoli quantistici. Pertanto, TEM ha il potenziale per abilitare il vantaggio quantistico in scenari complessi, come applicazioni nei campi del caos quantistico, della fisica a molti corpi, della dinamica di Hubbard e delle simulazioni di chimica di piccole molecole.
Le principali caratteristiche e i vantaggi di TEM possono essere riassunti come segue:
- Overhead di misurazione ottimale: TEM è ottimale rispetto ai limiti teorici, nel senso che nessun metodo può raggiungere un overhead di misurazione inferiore. In altre parole, TEM richiede il numero minimo di misurazioni aggiuntive per eseguire la mitigazione degli errori. Ciò significa che TEM utilizza il tempo di esecuzione quantistica minimo.
- Convenienza economica: poiché TEM gestisce la mitigazione del rumore interamente nella fase di post-elaborazione, non è necessario aggiungere circuiti extra al computer quantistico. Ciò non solo rende il calcolo meno costoso, ma riduce anche il rischio di introdurre errori aggiuntivi dovuti alle imperfezioni dei dispositivi quantistici.
- Stima di osservabili multipli: grazie alle misurazioni informativamente complete, TEM stima in modo efficiente più osservabili con gli stessi dati di misurazione del computer quantistico.
- Mitigazione degli errori di lettura: la Qiskit Function TEM include anche un metodo proprietario di mitigazione degli errori di lettura in grado di ridurre significativamente gli errori di readout dopo una breve sessione di calibrazione.
- Precisione: TEM migliora significativamente la precisione e l'affidabilità delle simulazioni quantistiche digitali, rendendo gli algoritmi quantistici più accurati e affidabili.
Descrizione
La funzione TEM consente di ottenere valori attesi con mitigazione degli errori per più osservabili su un circuito quantistico con un overhead di campionamento minimo. Il circuito viene misurato con una misura a operatore a valore positivo informativamente completa (IC-POVM), e gli esiti di misurazione raccolti vengono elaborati su un computer classico. Questa misurazione viene utilizzata per applicare i metodi di reti tensoriali e costruire una mappa di inversione del rumore. La funzione applica una mappa che inverte completamente l'intero circuito rumoroso usando reti tensoriali per rappresentare i layer rumorosi.
Una volta inviati i circuiti alla funzione, questi vengono traspilati e ottimizzati per minimizzare il numero di layer con gate a due qubit (i gate più rumorosi sui dispositivi quantistici). Il rumore che agisce sui layer viene appreso tramite Qiskit Runtime usando un modello di rumore sparse Pauli-Lindblad come descritto in E. van den Berg, Z. Minev, A. Kandala, K. Temme, Nat. Phys. (2023). arXiv:2201.09866.
Il modello di rumore è una descrizione accurata del rumore sul dispositivo, in grado di catturare caratteristiche sottili, tra cui il crosstalk tra qubit. Tuttavia, il rumore sui dispositivi può fluttuare e variare, e il rumore appreso potrebbe non essere preciso nel momento in cui viene eseguita la stima. Ciò potrebbe portare a risultati imprecisi.
Inizia
Autenticati usando la tua chiave API di IBM Quantum Platform, e seleziona la funzione TEM come segue. (Questo frammento presuppone che tu abbia già salvato il tuo account nell'ambiente locale.)
# Added by doQumentation — required packages for this notebook
!pip install -q qiskit qiskit-ibm-catalog
from qiskit_ibm_catalog import QiskitFunctionsCatalog
tem_function_name = "algorithmiq/tem"
catalog = QiskitFunctionsCatalog(channel="ibm_quantum_platform")
# Load your function
tem = catalog.load(tem_function_name)
Esempio
Il seguente frammento mostra un esempio in cui TEM viene utilizzato per calcolare i valori attesi di un osservabile dato un semplice circuito quantistico.
from qiskit import QuantumCircuit
from qiskit.quantum_info import SparsePauliOp
# Create a quantum circuit
qc = QuantumCircuit(3)
qc.u(0.4, 0.9, -0.3, 0)
qc.u(-0.4, 0.2, 1.3, 1)
qc.u(-1.2, -1.2, 0.3, 2)
for _ in range(2):
qc.barrier()
qc.cx(0, 1)
qc.cx(2, 1)
qc.barrier()
qc.u(0.4, 0.9, -0.3, 0)
qc.u(-0.4, 0.2, 1.3, 1)
qc.u(-1.2, -1.2, 0.3, 2)
# Define the observables
observable = SparsePauliOp("IYX", 1.0)
# Define the execution options
pub = (qc, [observable])
options = {"default_precision": 0.02}
# Define backend to use. TEM will choose the least-busy device
# reported by IBM if not specified
backend_name = "ibm_marrakesh"
# Run the TEM function (uses around three minutes of QPU time)
job = tem.run(pubs=[pub], backend_name=backend_name, options=options)
Usa le API di Qiskit Serverless per controllare lo stato del tuo workload Qiskit Function:
print(job.status())
QUEUED
Puoi ottenere i risultati nel modo seguente:
result = job.result()
evs = result[0].data.evs
print(evs[0])
0.02165380888171687
Il valore atteso per il circuito senza rumore per l'operatore dato dovrebbe essere circa 0.18409094298943401.
Supporto
Contatta qiskit_ibm@algorithmiq.fi
Assicurati di includere le seguenti informazioni:
- ID del job della Qiskit Function (
qiskit-ibm-catalog),job.job_id - Una descrizione dettagliata del problema
- Eventuali messaggi o codici di errore pertinenti
- I passaggi per riprodurre il problema
Passi successivi
- Richiedi l'accesso alla mitigazione degli errori con reti tensoriali di Algorithmiq.
- Consulta il riferimento API per questa Qiskit Function.