Aller au contenu principal

Configurer l'atténuation des erreurs

Nouveau modèle d'exécution, disponible en version bêta

La version bêta d'un nouveau modèle d'exécution est désormais disponible. Le modèle d'exécution dirigée offre plus de flexibilité pour personnaliser ton flux de travail d'atténuation des erreurs. Consulte le guide Modèle d'exécution dirigée pour en savoir plus.

Versions des packages

Le code de cette page a été développé avec les dépendances suivantes. Nous recommandons d'utiliser ces versions ou des versions plus récentes.

qiskit-ibm-runtime~=0.43.1

Les techniques d'atténuation des erreurs permettent aux utilisateurs de réduire les erreurs de circuit en modélisant le bruit du dispositif au moment de l'exécution. Cela entraîne généralement un surcoût de pré-traitement quantique lié à l'entraînement du modèle et un surcoût de post-traitement classique pour atténuer les erreurs dans les résultats bruts à l'aide du modèle généré.

La primitive Estimator prend en charge plusieurs techniques d'atténuation des erreurs, notamment TREX, ZNE, PEC et PEA. Consulte Techniques d'atténuation et de suppression des erreurs pour une explication de chacune d'elles. Lors de l'utilisation des primitives, tu peux activer ou désactiver chaque méthode individuellement. Voir la section Paramètres d'erreur personnalisés pour plus de détails.

remarque

Sampler ne prend pas en charge l'atténuation des erreurs, mais tu peux utiliser le package mthree (atténuation des erreurs de mesure sans matrice) pour effectuer l'atténuation des erreurs localement.

Estimator prend également en charge le resilience_level. Le niveau de résilience spécifie le degré de résistance aux erreurs. Des niveaux plus élevés produisent 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 l'atténuation des erreurs à ta requête de primitive. L'atténuation des erreurs réduit les erreurs (biais) dans les résultats en traitant les sorties d'une collection, ou ensemble, de circuits connexes. 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 d'atténuation des erreurs pour permettre aux utilisateurs de raisonner sur le compromis coût/précision adapté à leur application.

Ainsi, 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 différents compromis temps-précision. Le tableau suivant indique quels niveaux et méthodes correspondantes sont disponibles pour chacune des primitives.

Attention

L'atténuation des erreurs est spécifique à la tâche, donc les techniques que tu peux appliquer varient selon que tu échantillonnes une distribution ou que tu génères des valeurs d'espérance.

Estimator prend en charge les niveaux de résilience suivants. Sampler ne prend pas en charge les niveaux de résilience.

Niveau de résilienceDéfinitionTechnique
0Aucune atténuationAucune
1 [Par défaut]Coûts d'atténuation minimaux : atténuation des erreurs liées aux erreurs de lectureTwirled Readout Error eXtinction (TREX) avec twirling de mesure
2Coûts d'atténuation moyens. Réduit généralement le biais dans les estimateurs, sans garantie de résultat sans biais.Niveau 1 + Zero Noise Extrapolation (ZNE) et twirling de portes
Attention

Les niveaux de résilience sont actuellement en version bêta, donc la surcharge d'échantillonnage et la qualité des solutions varieront d'un circuit à l'autre. De nouvelles fonctionnalités, des options avancées et des outils de gestion seront publiés de façon progressive. Les méthodes spécifiques d'atténuation des erreurs ne sont pas garanties d'être appliquées à chaque niveau de résilience.

Configurer Estimator avec les niveaux de résilience

Tu peux utiliser les niveaux de résilience pour spécifier des techniques d'atténuation des erreurs, ou définir des techniques personnalisées individuellement comme décrit dans Paramètres d'erreur personnalisés.

Niveau de résilience 0

Aucune atténuation des erreurs n'est appliquée au programme utilisateur.

Niveau de résilience 1

Le niveau 1 applique l'atténuation des erreurs de lecture et le twirling de mesure en utilisant une technique sans modèle connue sous le nom de Twirled Readout Error eXtinction (TREX). Elle réduit les erreurs de mesure en diagonalisant le canal de bruit associé à la mesure en faisant basculer aléatoirement les qubits via des portes X juste avant la mesure. Un terme de remise à l'échelle du canal de bruit diagonal est appris par l'étalonnage de circuits aléatoires initialisés dans l'état zéro. Cela permet au service de supprimer le biais des valeurs d'espérance résultant du bruit de lecture. Cette approche est décrite plus en détail dans Model-free readout-error mitigation for quantum expectation values.

Niveau de résilience 2

Le niveau 2 applique les techniques d'atténuation des erreurs incluses dans le niveau 1 et applique également le twirling de portes et utilise la méthode Zero Noise Extrapolation (ZNE). ZNE calcule une valeur d'espérance de l'observable pour différents facteurs de bruit (étape d'amplification), puis utilise les valeurs d'espérance mesurées pour inférer la valeur d'espérance idéale à la limite de bruit zéro (étape d'extrapolation). Cette approche tend à réduire les erreurs dans les valeurs d'espérance, mais ne garantit pas un résultat sans biais.

Cette image montre un graphe. L'axe des abscisses est intitulé Facteur d'amplification du bruit. L'axe des ordonnées est intitulé Valeur d'espérance. Une droite montante est intitulée Valeur atténuée. Les points proches de la droite sont des valeurs amplifiées par le bruit. Il y a une droite horizontale juste au-dessus de l'axe des abscisses intitulée Valeur exacte.

Le surcoût de cette méthode évolue avec le nombre de facteurs de bruit. Les paramètres par défaut échantillonnent la valeur d'espérance à trois facteurs de bruit, ce qui entraîne un surcoût d'environ 3x lors de l'utilisation de ce niveau de résilience.

Dans le niveau 2, la méthode TREX fait basculer aléatoirement les qubits via des portes X juste avant la mesure, et retourne le bit mesuré correspondant si une porte X a été appliquée. Cette approche est décrite plus en détail dans Model-free readout-error mitigation for quantum expectation values.

Exemple

L'interface EstimatorV2 permet aux utilisateurs de travailler facilement avec la variété de méthodes d'atténuation des erreurs pour réduire les erreurs dans les valeurs d'espérance des observables. Le code suivant utilise Zero Noise Extrapolation et l'atténuation des erreurs de lecture en définissant simplement 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 d'erreur personnalisés

Tu peux activer et désactiver individuellement les méthodes d'atténuation et de suppression des erreurs, notamment le découplage dynamique, le twirling de portes et de mesures, l'atténuation des erreurs de mesure, PEC et ZNE. Consulte Techniques d'atténuation et de suppression des erreurs pour une explication de chacune d'elles.

Remarques
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: {estimator.options.resilience.measure_mitigation}")

Désactiver toute atténuation des erreurs

Pour savoir comment désactiver toute atténuation des erreurs, consulte la section Désactiver toute suppression et atténuation des erreurs.

Prochaines étapes

Recommandations