Configurer la gestion du bruit avec Estimator
Versions des packages
Le code sur cette page a été développé en utilisant les exigences suivantes. Nous recommandons d'utiliser ces versions ou des versions plus récentes.
qiskit-ibm-runtime~=0.46.1
Il existe plusieurs façons de gérer le bruit, généralement en utilisant diverses techniques d'atténuation et de suppression d'erreurs pour éviter les erreurs avant qu'elles ne se produisent. Ces techniques entraînent généralement une surcharge de pré-traitement. Par conséquent, il est important d'atteindre un équilibre entre la perfection de tes résultats et la garantie que ton job se termine dans un délai raisonnable.
Estimator prend en charge les techniques de gestion du bruit suivantes. Consulte Techniques d'atténuation et de suppression d'erreurs pour une explication de chacune. Consulte la section Paramètres d'erreur personnalisés pour les instructions d'activation de ces techniques.
Niveau de résilience
Le resilience_level spécifie la résilience à construire contre
les erreurs. Des niveaux plus élevés génèrent des résultats plus précis, au prix de
temps de traitement plus longs. Les niveaux de résilience peuvent être utilisés pour configurer le
compromis coût/précision lors de l'application de la gestion du bruit à ta
requête de primitive. La gestion du bruit réduit les erreurs (biais) dans les résultats en traitant
les sorties d'une collection, ou d'un ensemble, de circuits apparentés. Le
degré de réduction des erreurs dépend de la méthode appliquée. Le niveau de résilience
abstrait le choix détaillé de la méthode de gestion du bruit pour permettre
aux utilisateurs de raisonner sur le compromis coût/précision approprié à
leur application.
Compte tenu de cela, chaque niveau correspond à une méthode ou à des méthodes avec un niveau croissant de surcharge d'échantillonnage quantique pour te permettre d'expérimenter avec différents compromis temps-précision. Le tableau suivant te montre quels niveaux et méthodes correspondantes sont disponibles pour chacune des primitives.
| Niveau de résilience | Description | Technique |
|---|---|---|
| 0 | Aucune atténuation | Aucune |
| 1 [Par défaut] | Coûts d'atténuation minimaux : Atténuer les erreurs associées aux erreurs de lecture | Torsion de mesure Twirled Readout Error eXtinction (TREX) |
| 2 | Coûts d'atténuation moyens. Réduit généralement le biais dans les estimateurs, mais n'est pas garanti d'être sans biais. | Niveau 1 + Extrapolation zéro-bruit (ZNE) et torsion de gate |
Les niveaux de résilience sont actuellement en version bêta, donc la surcharge d'échantillonnage et la qualité de la solution varieront d'un circuit à l'autre. De nouvelles fonctionnalités, des options avancées et des outils de gestion seront publiés en continu. Les méthodes spécifiques de gestion du bruit ne sont pas garanties d'être appliquées à chaque niveau de résilience.
Configurer Estimator avec des niveaux de résilience
Tu peux utiliser des niveaux de résilience pour spécifier des techniques de gestion du bruit, ou tu peux définir des techniques personnalisées individuellement comme décrit dans Paramètres d'erreur personnalisés.
Toutes les options que tu spécifies manuellement en plus du niveau de résilience sont appliquées en plus de l'ensemble d'options de base définies par le niveau de résilience. Par conséquent, en principe, tu pourrais définir le niveau de résilience à 1, mais ensuite désactiver l'atténuation de mesure, bien que cela ne soit pas conseillé.
Par exemple, définir le niveau de résilience à 0 désactive zne_mitigation, mais estimator.options.resilience.zne_mitigation = True remplace cette valeur.
Exemple
Le code suivant active ZNE, TREX et la torsion de gate en
définissant 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})
Paramètres de gestion du bruit personnalisés
Tu peux activer et désactiver individuellement les méthodes de gestion du bruit en utilisant les options Estimator.
Toutes les options ne fonctionnent pas ensemble sur tous les types de circuits. Consulte la table de compatibilité des fonctionnalités pour plus de détails.
Exemple
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
Désactiver toute atténuation d'erreurs
Pour les instructions pour désactiver toute atténuation d'erreurs, consulte la section Désactiver toute suppression et atténuation d'erreurs dans le guide des options Estimator.
Étapes suivantes
- Parcours un exemple qui utilise l'atténuation d'erreurs dans la leçon sur la fonction de coût dans IBM Quantum Learning.
- En savoir plus sur les techniques d'atténuation et de suppression d'erreurs.
- Explorer les options Estimator.
- Décider dans quel mode d'exécution exécuter ton job.