Aller au contenu principal

Introduction aux options

Tu peux transmettre des options aux primitives pour les personnaliser selon tes besoins. Cette section se concentre sur les options des primitives Qiskit Runtime. Bien que l'interface de la méthode run() des primitives soit commune à toutes les implémentations, ses options ne le sont pas. Consulte les références API correspondantes pour obtenir des informations sur les options de qiskit.primitives et qiskit_aer.primitives.

Aperçu

Structure

Lorsque tu appelles les primitives, tu peux transmettre les options en utilisant une classe d'options ou un dictionnaire. Les options couramment utilisées, telles que resilience_level, se trouvent au premier niveau. D'autres options sont regroupées dans différentes catégories, comme execution. Consulte la section Définir les options des primitives pour plus de détails.

Valeurs par défaut

Si tu ne spécifies pas une valeur pour une option, elle reçoit une valeur spéciale Unset et la valeur par défaut du serveur est utilisée. Ainsi, la valeur par défaut sera la même indépendamment de ta version de code.

Les tableaux de la section Résumé des classes d'options énumèrent les valeurs par défaut.

Définir les options

Les options peuvent être définies avant la construction d'une primitive et transmises à celle-ci, qui en fait une copie. Cela peut se faire soit sous forme de dictionnaire imbriqué, soit en utilisant les classes d'options. De plus, une fois la primitive construite, ses options peuvent être modifiées. Utilise le flux de travail qui fonctionne le mieux pour ton application. Consulte Spécifier les options pour plus de détails.

Résumé des classes d'options

  • Découplage dynamique : Options pour le découplage dynamique.
  • Environnement : Options d'environnement d'exécution, telles que le niveau de journalisation à définir et les étiquettes de travail à ajouter.
  • Exécution : Options d'exécution des primitives, y compris l'initialisation des qubits et le délai de répétition.
  • Résilience : Options avancées pour configurer les méthodes d'atténuation des erreurs telles que l'atténuation des erreurs de mesure, ZNE et PEC.
  • Simulateur : Options du simulateur, telles que les portes de base, l'amorce du simulateur et la carte de couplage. S'applique au mode de test local uniquement.
  • Twirling : Options de twirling, telles que l'application du twirling à deux qubits et le nombre de shots à exécuter pour chaque échantillon aléatoire.

Options disponibles

Le tableau suivant documente les options de la dernière version de qiskit-ibm-runtime. Pour voir les versions antérieures des options, consulte la référence de l'API qiskit-ibm-runtime et sélectionne une version antérieure.

default_shots

Le nombre total de shots à utiliser par circuit et par configuration.

Choix : Entier >= 0

Par défaut : None

Documentation de l'API default_shots

default_precision

La précision par défaut à utiliser pour tout PUB ou appel run() qui ne spécifie pas de précision.

Choix : Float > 0

Par défaut : 0.015625 (1 / sqrt(4096))

Documentation de l'API default_precision

dynamical_decoupling

Contrôle les paramètres d'atténuation des erreurs par découplage dynamique.

Documentation de l'API dynamical_decoupling

dynamical_decoupling.enable

Choix : True, False

Par défaut : False

dynamical_decoupling.extra_slack_distribution

Choix : middle, edges

Par défaut : middle

dynamical_decoupling.scheduling_method

Choix : asap, alap Par défaut : alap

dynamical_decoupling.sequence_type

Choix : XX, XpXm, XY4 Par défaut : XX

dynamical_decoupling.skip_reset_qubits

Choix : True, False Par défaut : False

environment

Documentation de l'API environment

environment.callback

Fonction appelable qui reçoit l'ID du travail et le résultat du travail.

Choix : None

Par défaut : None

environment.job_tags

Liste des étiquettes.

Choix : None

Par défaut : None

environment.log_level

Choix : DEBUG, INFO, WARNING, ERROR, CRITICAL

Par défaut : WARNING

environment.private

Choix : True, False

Par défaut : False

execution

Documentation de l'API execution

execution.init_qubits

S'il faut réinitialiser les qubits à l'état fondamental pour chaque shot.

Choix : True, False

Par défaut : True

execution.rep_delay

Le délai entre une mesure et le circuit quantique suivant.

Choix : Valeur dans la plage fournie par backend.rep_delay_range

Par défaut : Donné par backend.default_rep_delay

max_execution_time

Choix : Nombre entier de secondes dans la plage [1, 10800]

Par défaut : 10800 (3 heures)

Documentation de l'API max_execution_time

resilience

Options avancées de résilience pour affiner la stratégie de résilience.

Documentation de l'API resilience

resilience.layer_noise_learning

Options pour l'apprentissage du bruit par couche.

Documentation de l'API resilience.layer_noise_learning

resilience.layer_noise_learning.layer_pair_depths

Choix : list[int] de 2 à 10 valeurs dans la plage [0, 200]

Par défaut : (0, 1, 2, 4, 16, 32)

resilience.layer_noise_learning.max_layers_to_learn

Choix : None, Entier >= 1

Par défaut : 4

resilience.layer_noise_learning.num_randomizations

Choix : Entier >= 1

Par défaut : 32

resilience.layer_noise_learning.shots_per_randomization

Choix : Entier >= 1

Par défaut : 128

resilience.layer_noise_model

Choix : NoiseLearnerResult, Sequence[LayerError]

Par défaut : None

resilience.measure_mitigation

Choix : True, False

Par défaut : True

resilience.measure_noise_learning

Options pour l'apprentissage du bruit de mesure.

Documentation de l'API resilience.measure_noise_learning

resilience.measure_noise_learning.num_randomizations

Choix : Entier >= 1

Par défaut : 32

resilience.measure_noise_learning.shots_per_randomization

Choix : Entier, auto

Par défaut : auto

resilience.pec_mitigation

Choix : True, False

Par défaut : False

resilience.pec

Options d'atténuation par annulation d'erreurs probabilistes.

Documentation de l'API resilience.pec

resilience.pec.max_overhead

Choix : None, Entier >= 1

Par défaut : 100

resilience.pec.noise_gain

Choix : auto, float dans la plage [0, 1]

Par défaut : auto

resilience.zne_mitigation

Choix : True, False

Par défaut : False

resilience.zne

resilience.zne.amplifier

Choix : gate_folding, gate_folding_front, gate_folding_back, pea

Par défaut : gate_folding

resilience.zne.extrapolated_noise_factors

Choix : Liste de floats

Par défaut : [0, *noise_factors]

resilience.zne.extrapolator

Choix : Un ou plusieurs parmi : exponential, linear, double_exponential, polynomial_degree_(1 <= k <= 7), fallback

Par défaut : (exponential, linear)

resilience.zne.noise_factors

Choix : Liste de floats ; chaque float >= 1

Par défaut : (1, 1.5, 2) pour PEA, et (1, 3, 5) sinon

resilience_level

Combien de résilience appliquer face aux erreurs. Les niveaux plus élevés génèrent des résultats plus précis au détriment de temps de traitement plus longs.

Choix : 0, 1, 2

Par défaut : 1

Documentation de l'API resilience_level

seed_estimator

Choix : Entier

Par défaut : None

seed_estimator

simulator

Options à transmettre lors de la simulation d'un backend

Documentation de l'API simulator

simulator.basis_gates

Choix : Liste de noms de portes de base à dérouler

Par défaut : L'ensemble de toutes les portes de base supportées par le simulateur Qiskit Aer

simulator.coupling_map

Choix : Liste d'interactions dirigées à deux qubits

Par défaut : None, ce qui implique aucune contrainte de connectivité (connectivité complète).

simulator.noise_model

Choix : Qiskit Aer NoiseModel, ou sa représentation

Par défaut : None

simulator.seed_simulator

Choix : Entier

Par défaut : None

twirling

Options de twirling

Documentation de l'API twirling

twirling.enable_gates

Choix : True, False

Par défaut : False

twirling.enable_measure

Choix : True, False

Par défaut : True

twirling.num_randomizations

Choix : auto, Entier >= 1

Par défaut : auto

twirling.shots_per_randomization

Choix : auto, Entier >= 1

Par défaut : auto

twirling.strategy

Choix : active, active-circuit, active-accum, all

Par défaut : active-accum

experimental

Options expérimentales, le cas échéant.

Compatibilité des fonctionnalités

En raison des différences dans le processus de compilation du dispositif, certaines fonctionnalités runtime ne peuvent pas être utilisées ensemble dans un même travail. Clique sur l'onglet approprié pour obtenir une liste des fonctionnalités incompatibles avec la fonctionnalité sélectionnée :

Incompatible avec :

  • ZNE par pliage de portes
  • PEA
  • PEC
  • Découplage dynamique

Autres remarques :

  • Peut être utilisé avec le twirling de portes pour les portes non conditionnelles.
  • Compatible avec les portes fractionnaires lors de l'utilisation de qiskit-ibm-runtime v0.42.0 ou version ultérieure.

Étapes suivantes

Recommandations