Vai al contenuto principale

Configurare la gestione del rumore con Estimator

Versioni dei pacchetti

Il codice in questa pagina è stato sviluppato con i seguenti requisiti. Ti consigliamo di utilizzare queste versioni o versioni più recenti.

qiskit-ibm-runtime~=0.46.1

Esistono diversi modi per gestire il rumore, tipicamente utilizzando varie tecniche di mitigazione degli errori e soppressione degli errori per evitare che gli errori si verifichino. Queste tecniche causano solitamente un overhead di pre-elaborazione. Pertanto, è importante trovare un equilibrio tra il perfezionamento dei risultati e la garanzia che il job venga completato in un tempo ragionevole.

Estimator supporta le seguenti tecniche di gestione del rumore. Leggi Tecniche di mitigazione e soppressione degli errori per una spiegazione di ciascuna. Vedi la sezione Impostazioni personalizzate degli errori per le istruzioni su come abilitare queste tecniche.

Livello di resilienza

Il resilience_level specifica quanta resilienza costruire contro gli errori. Livelli più alti generano risultati più accurati, a spese di tempi di elaborazione più lunghi. I livelli di resilienza possono essere usati per configurare il compromesso costo/accuratezza quando si applica la gestione del rumore alla query della primitiva. La gestione del rumore riduce gli errori (bias) nei risultati elaborando gli output da una raccolta, o ensemble, di Circuit correlati. Il grado di riduzione degli errori dipende dal metodo applicato. Il livello di resilienza astrae la scelta dettagliata del metodo di gestione del rumore per consentire agli utenti di ragionare sul compromesso costo/accuratezza appropriato per la loro applicazione.

Dato questo, ogni livello corrisponde a un metodo o metodi con un livello crescente di overhead di campionamento quantistico per permetterti di sperimentare diversi compromessi tempo-accuratezza. La tabella seguente mostra quali livelli e i corrispondenti metodi sono disponibili per ciascuna delle primitive.

Livello di resilienzaDescrizioneTecnica
0Nessuna mitigazioneNessuna
1 [Predefinito]Costi minimi di mitigazione: Mitiga gli errori associati agli errori di letturaTwirled Readout Error eXtinction (TREX) measurement twirling
2Costi medi di mitigazione. Tipicamente riduce il bias negli Estimator, ma non è garantito che sia zero-bias.Livello 1 + Zero Noise Extrapolation (ZNE) e gate twirling
Attenzione

I livelli di resilienza sono attualmente in beta, quindi l'overhead di campionamento e la qualità della soluzione varieranno da circuito a Circuit. Nuove funzionalità, opzioni avanzate e strumenti di gestione verranno rilasciati su base continua. Non è garantito che metodi specifici di gestione del rumore vengano applicati a ogni livello di resilienza.

Configura Estimator con i livelli di resilienza

Puoi usare i livelli di resilienza per specificare le tecniche di gestione del rumore, oppure puoi impostare tecniche personalizzate individualmente come descritto in Impostazioni personalizzate degli errori.

Importante

Qualsiasi opzione che specifichi manualmente in aggiunta al livello di resilienza viene applicata in aggiunta all'insieme di base di opzioni definite dal livello di resilienza. Quindi, in linea di principio, potresti impostare il livello di resilienza a 1, ma poi disattivare la mitigazione della misura, anche se non è consigliato.

Ad esempio, impostare il livello di resilienza a 0 disattiva zne_mitigation, ma estimator.options.resilience.zne_mitigation = True sovrascrive quel valore.

Esempio

Il codice seguente abilita ZNE, TREX e gate twirling impostando resilience_level 2.

# Added by doQumentation — required packages for this notebook
!pip install -q qiskit-ibm-runtime
from qiskit_ibm_runtime import QiskitRuntimeService
from qiskit_ibm_runtime import EstimatorV2 as Estimator

service = QiskitRuntimeService()
backend = service.least_busy(operational=True, simulator=False)

# Setting options during primitive initialization
estimator = Estimator(backend, options={"resilience_level": 2})

Impostazioni personalizzate di gestione del rumore

Puoi attivare e disattivare singoli metodi di gestione del rumore utilizzando le opzioni di Estimator.

nota

Non tutte le opzioni funzionano insieme su tutti i tipi di Circuit. Consulta la tabella di compatibilità delle funzionalità per i dettagli.

Esempio

from qiskit_ibm_runtime import QiskitRuntimeService
from qiskit_ibm_runtime import EstimatorV2 as Estimator

service = QiskitRuntimeService()
backend = service.least_busy(operational=True, simulator=False)

estimator = Estimator(backend)
options = estimator.options
# Turn on gate twirling.
options.twirling.enable_gates = True
# Turn on measurement error mitigation.
options.resilience.measure_mitigation = True

print(
f">>> gate twirling is turned on: {estimator.options.twirling.enable_gates}"
)
print(
f">>> measurement error mitigation is turned on: "
f"{estimator.options.twirling.enable_gates}"
)
>>> gate twirling is turned on: True
>>> measurement error mitigation is turned on: True

Disattiva tutta la mitigazione degli errori

Per le istruzioni su come disattivare tutta la mitigazione degli errori, consulta la sezione Disattiva tutta la soppressione e mitigazione degli errori nella guida alle opzioni di Estimator.

Passi successivi

Raccomandazioni