Configurer la gestion du bruit avec Estimator
Le code présenté sur cette page a été développé en tenant compte des exigences suivantes. Nous vous recommandons d'utiliser ces versions ou des versions plus récentes.
qiskit-ibm-runtime~=0.47.0
Il existe plusieurs façons de gérer le bruit, généralement en recourant à diverses techniques d'atténuation et de suppression des erreurs afin d'éviter que celles-ci ne se produisent. Ces techniques entraînent généralement une surcharge liée au prétraitement. Il est donc important de trouver un juste équilibre entre la recherche de la perfection dans vos résultats et la garantie que votre travail soit achevé dans un délai raisonnable.
Estimator prend en charge les techniques de gestion du bruit suivantes. Pour plus d'informations sur chacune de ces techniques, consultez la section « Techniques d'atténuation et de suppression des erreurs ». Consultez la section « Paramètres d'erreurs personnalisés » pour savoir comment activer ces techniques.
Niveau de résilience
Ce paramètre resilience_level permet de définir le niveau de résilience à mettre en place face aux
erreurs. Des niveaux plus élevés donnent des résultats plus précis, mais
allongent les temps de traitement. Les niveaux de résilience permettent de définir le
compromis entre coût et précision lors de l'application de la gestion du bruit à votre
requête primitive. La gestion du bruit réduit les erreurs (biais) dans les résultats en traitant
les sorties d'un ensemble de circuits interdépendants. Le
degré de réduction de l'erreur dépend de la méthode utilisée. Le niveau de résilience
fait abstraction du choix précis de la méthode de gestion du bruit afin de permettre
aux utilisateurs d'évaluer le compromis coût/précision le plus adapté à
leur application.
Dans cette optique, chaque niveau correspond à une ou plusieurs méthodes présentant un surcoût croissant lié à l'échantillonnage quantique, ce qui vous permet d'expérimenter différents compromis entre temps et précision. Le tableau suivant vous indique quels niveaux et méthodes correspondantes sont disponibles pour chacune des primitives.
Niveau de résilience | Description | Technique |
|---|---|---|
| 0 | Aucune mesure d'atténuation | Aucun |
| 1 [Par défaut] | Coûts d'atténuation minimaux : atténuer les erreurs liées aux erreurs de lecture | Mesure par rotation TREX ( eXtinction ) |
| 2 | Coûts d'atténuation modérés. Cela réduit généralement le biais des estimateurs, mais ne garantit pas un biais nul. | Niveau 1 + extrapolation sans bruit (ZNE) et rotation de porte |
Les niveaux de résilience sont actuellement en phase bêta; par conséquent, la charge liée à l'é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 mis à disposition au fur et à mesure. Il n'est pas garanti que des méthodes spécifiques de gestion du bruit soient mises en œuvre à chaque niveau de résilience.
Configurer l'estimateur avec des niveaux de résilience
Vous pouvez utiliser les niveaux de résilience pour définir des techniques de gestion du bruit, ou vous pouvez configurer des techniques personnalisées individuellement, comme décrit dans la section « Paramètres d'erreur personnalisés ».
Toutes les options que vous spécifiez manuellement en plus du niveau de résilience s'ajoutent à l'ensemble d'options de base défini par ce niveau. Par conséquent, en principe, vous pourriez régler le niveau de résilience sur 1, puis désactiver l'atténuation des mesures, bien que cela ne soit pas recommandé.
Par exemple, si l'on règle le niveau de résilience sur 0, la fonction est désactivée zne_mitigation, mais cette valeur estimator.options.resilience.zne_mitigation = True est ignorée.
Exemple
Le code suivant active les fonctions ZNE, TREX et la rotation des portes en
définissant 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})Paramètres personnalisés de gestion du bruit
Vous pouvez activer ou désactiver chaque méthode de gestion du bruit à l'aide des options de l'estimateur.
Toutes les options ne sont pas compatibles entre elles sur tous les types de circuits. Consultez le tableau 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}"
)Output:
>>> gate twirling is turned on: True
>>> measurement error mitigation is turned on: True
Désactivez toutes les mesures d'atténuation des erreurs
Pour savoir comment désactiver toutes les mesures d'atténuation des erreurs, consultez la section « Désactiver toutes les mesures de suppression et d'atténuation des erreurs » du guide des options d'Estimator.
Etapes suivantes
- Découvrez un exemple utilisant l'atténuation des erreurs dans la leçon consacrée à la fonction de coût sur IBM Quantum Learning.
- Découvrez-en davantage sur les techniques d'atténuation et de suppression des erreurs.
- Découvrez les options d'Estimator.
- Choisissez le mode d'exécution dans lequel vous souhaitez exécuter votre tâche.