Configurare la gestione del rumore con Estimator
Il codice presente in questa pagina è stato sviluppato sulla base dei seguenti requisiti. Si consiglia di utilizzare queste versioni o quelle più recenti.
qiskit-ibm-runtime~=0.47.0
Esistono diversi modi per gestire gli errori, in genere ricorrendo a varie tecniche di mitigazione e soppressione degli errori per prevenirli prima che si verifichino. Queste tecniche comportano solitamente un sovraccarico di elaborazione preliminare. È quindi importante trovare un equilibrio tra il perfezionamento dei risultati e la garanzia che il lavoro venga portato a termine in un lasso di tempo ragionevole.
Estimator supporta le seguenti tecniche di gestione del rumore. Per una spiegazione dettagliata di ciascuna di esse, consultare la sezione "Tecniche di mitigazione e soppressione degli errori". Per le istruzioni su come abilitare queste tecniche, consultare la sezione "Impostazioni degli errori personalizzati".
Livello di resilienza
Il resilience_level specifica il livello di resilienza da garantire
in caso di errori. Livelli più elevati producono risultati più accurati, a scapito di
tempi di elaborazione più lunghi. I livelli di resilienza possono essere utilizzati per configurare il
compromesso tra costo e precisione quando si applica la gestione del rumore alla query
primitiva. La gestione del rumore riduce gli errori (distorsioni) nei risultati elaborando
i segnali in uscita da un insieme, o ensemble, di circuiti correlati. Il
grado di riduzione dell'errore dipende dal metodo utilizzato. Il livello di resilienza
astratte la scelta specifica del metodo di gestione del rumore per consentire
agli utenti di valutare il compromesso tra costo e precisione più adeguato alla
loro applicazione.
Di conseguenza, ogni livello corrisponde a uno o più metodi con un carico di campionamento quantistico crescente, per consentirti di sperimentare diversi compromessi tra tempo e precisione. La tabella seguente mostra quali livelli e metodi corrispondenti sono disponibili per ciascuna delle primitive.
Livello di resilienza | Descrizione | Tecnica |
|---|---|---|
| 0 | Nessuna misura di mitigazione | Nessuna |
| 1 [Impostazione predefinita] | Costi di mitigazione minimi: mitigare gli errori legati agli errori di lettura | Rotazione della lettura dell'errore TREX ( eXtinction ) |
| 2 | Costi di mitigazione medi. In genere riduce la distorsione negli stimatori, ma non garantisce che la distorsione sia pari a zero. | Livello 1 + Estrapolazione a rumore zero (ZNE) e rotazione del gate |
I livelli di resilienza sono attualmente in fase beta, pertanto il carico di campionamento e la qualità della soluzione varieranno da circuito a circuito. Nuove funzionalità, opzioni avanzate e strumenti di gestione saranno rilasciati progressivamente. Non è garantito che specifici metodi di gestione del rumore vengano applicati a ogni livello di resilienza.
Configurare Estimator con i livelli di resilienza
È possibile utilizzare i livelli di resilienza per specificare le tecniche di gestione del rumore, oppure è possibile impostare tecniche personalizzate singolarmente, come descritto nella sezione "Impostazioni personalizzate degli errori".
Qualsiasi opzione specificata manualmente oltre al livello di resilienza viene applicata in aggiunta all'insieme di opzioni di base definito dal livello di resilienza. Pertanto, in linea di principio, si potrebbe impostare il livello di resilienza su 1, ma poi disattivare la mitigazione delle misurazioni, anche se questa operazione non è consigliabile.
Ad esempio, impostando il livello di resilienza su 0 si disattiva la funzione zne_mitigation, ma tale impostazione estimator.options.resilience.zne_mitigation = True ha la precedenza su quel valore.
Esempio
Il codice seguente abilita ZNE, TREX e il gate twirling
impostando resilience_level 2.
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 per la gestione del rumore
È possibile attivare e disattivare i singoli metodi di gestione del rumore utilizzando le opzioni dello Estimator.
Non tutte le opzioni sono compatibili tra loro su tutti i tipi di circuiti. Per ulteriori dettagli, consultare la tabella di compatibilità delle funzionalità.
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}"
)Output:
>>> gate twirling is turned on: True
>>> measurement error mitigation is turned on: True
Disattiva tutte le misure di mitigazione degli errori
Per istruzioni su come disattivare tutte le misure di mitigazione degli errori, consultare la sezione "Disattivare tutte le funzioni di soppressione e mitigazione degli errori" nella guida alle opzioni di Estimator.
Passi successivi
- Esamina un esempio che utilizza la mitigazione degli errori nella lezione dedicata alla funzione «Cost» su IBM Quantum Learning.
- Scopri di più sulle tecniche di mitigazione e soppressione degli errori.
- Scopri le opzioni di Estimator.
- Decidi in quale modalità di esecuzione eseguire il tuo processo.