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
- Estimator
- Sampler
- 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.
- 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.
- 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.
- Estimator
- Sampler
default_shots
default_shotsLe nombre total de shots à utiliser par circuit et par configuration.
Choix : Entier >= 0
Par défaut : None
default_precision
default_precisionLa 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))
dynamical_decoupling
dynamical_decouplingContrôle les paramètres d'atténuation des erreurs par découplage dynamique.
Documentation de l'API dynamical_decoupling
dynamical_decoupling.enable
dynamical_decoupling.enableChoix : True, False
Par défaut : False
dynamical_decoupling.extra_slack_distribution
dynamical_decoupling.extra_slack_distributionChoix : middle, edges
Par défaut : middle
dynamical_decoupling.scheduling_method
dynamical_decoupling.scheduling_methodChoix : asap, alap
Par défaut : alap
dynamical_decoupling.sequence_type
dynamical_decoupling.sequence_typeChoix : XX, XpXm, XY4
Par défaut : XX
dynamical_decoupling.skip_reset_qubits
dynamical_decoupling.skip_reset_qubitsChoix : True, False
Par défaut : False
environment
environmentDocumentation de l'API environment
environment.callback
environment.callbackFonction appelable qui reçoit l'ID du travail et le résultat du travail.
Choix : None
Par défaut : None
environment.job_tags
environment.job_tagsListe des étiquettes.
Choix : None
Par défaut : None
environment.log_level
environment.log_levelChoix : DEBUG, INFO, WARNING, ERROR, CRITICAL
Par défaut : WARNING
environment.private
environment.privateChoix : True, False
Par défaut : False
execution
executionDocumentation de l'API execution
execution.init_qubits
execution.init_qubitsS'il faut réinitialiser les qubits à l'état fondamental pour chaque shot.
Choix : True, False
Par défaut : True
execution.rep_delay
execution.rep_delayLe 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
max_execution_timeChoix : Nombre entier de secondes dans la plage [1, 10800]
Par défaut : 10800 (3 heures)
resilience
resilienceOptions avancées de résilience pour affiner la stratégie de résilience.
Documentation de l'API resilience
resilience.layer_noise_learning
resilience.layer_noise_learningOptions pour l'apprentissage du bruit par couche.
resilience.layer_noise_learning.layer_pair_depths
resilience.layer_noise_learning.layer_pair_depthsChoix : 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
resilience.layer_noise_learning.max_layers_to_learnChoix : None, Entier >= 1
Par défaut : 4
resilience.layer_noise_learning.num_randomizations
resilience.layer_noise_learning.num_randomizationsChoix : Entier >= 1
Par défaut : 32
resilience.layer_noise_learning.shots_per_randomization
resilience.layer_noise_learning.shots_per_randomizationChoix : Entier >= 1
Par défaut : 128
resilience.layer_noise_model
resilience.layer_noise_modelChoix : NoiseLearnerResult, Sequence[LayerError]
Par défaut : None
resilience.measure_mitigation
resilience.measure_mitigationChoix : True, False
Par défaut : True
resilience.measure_noise_learning
resilience.measure_noise_learningOptions pour l'apprentissage du bruit de mesure.
resilience.measure_noise_learning.num_randomizations
resilience.measure_noise_learning.num_randomizationsChoix : Entier >= 1
Par défaut : 32
resilience.measure_noise_learning.shots_per_randomization
resilience.measure_noise_learning.shots_per_randomizationChoix : Entier, auto
Par défaut : auto
resilience.pec_mitigation
resilience.pec_mitigationChoix : True, False
Par défaut : False
resilience.pec
resilience.pecOptions d'atténuation par annulation d'erreurs probabilistes.
resilience.pec.max_overhead
resilience.pec.max_overheadChoix : None, Entier >= 1
Par défaut : 100
resilience.pec.noise_gain
resilience.pec.noise_gainChoix : auto, float dans la plage [0, 1]
Par défaut : auto
resilience.zne_mitigation
resilience.zne_mitigationChoix : True, False
Par défaut : False
resilience.zne
resilience.zneresilience.zne.amplifier
resilience.zne.amplifierChoix : gate_folding, gate_folding_front, gate_folding_back, pea
Par défaut : gate_folding
resilience.zne.extrapolated_noise_factors
resilience.zne.extrapolated_noise_factorsChoix : Liste de floats
Par défaut : [0, *noise_factors]
resilience.zne.extrapolator
resilience.zne.extrapolatorChoix : Un ou plusieurs parmi : exponential, linear, double_exponential, polynomial_degree_(1 <= k <= 7), fallback
Par défaut : (exponential, linear)
resilience.zne.noise_factors
resilience.zne.noise_factorsChoix : Liste de floats ; chaque float >= 1
Par défaut : (1, 1.5, 2) pour PEA, et (1, 3, 5) sinon
resilience_level
resilience_levelCombien 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
seed_estimator
seed_estimatorsimulator
simulatorOptions à transmettre lors de la simulation d'un backend
Documentation de l'API simulator
simulator.basis_gates
simulator.basis_gatesChoix : 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
simulator.coupling_mapChoix : Liste d'interactions dirigées à deux qubits
Par défaut : None, ce qui implique aucune contrainte de connectivité (connectivité complète).
simulator.noise_model
simulator.noise_modelChoix : Qiskit Aer NoiseModel, ou sa représentation
Par défaut : None
simulator.seed_simulator
simulator.seed_simulatorChoix : Entier
Par défaut : None
twirling
twirling