Introducere în opțiuni
Poți transmite opțiuni primitivelor pentru a le personaliza în funcție de nevoi. Această secțiune se concentrează pe opțiunile primitivelor Qiskit Runtime. Deși interfața metodei run() a primitivelor este comună tuturor implementărilor, opțiunile nu sunt. Consultă referințele API corespunzătoare pentru informații despre opțiunile qiskit.primitives și qiskit_aer.primitives.
Prezentare generală
Structură
Când apelezi primitivele, poți transmite opțiuni folosind o clasă de opțiuni sau un dicționar. Opțiunile utilizate frecvent, precum resilience_level, se află la primul nivel. Alte opțiuni sunt grupate în categorii diferite, cum ar fi execution. Consultă secțiunea Setează opțiunile primitivelor pentru detalii complete.
Valori implicite
Dacă nu specifici o valoare pentru o opțiune, aceasta primește valoarea specială Unset și se folosește valoarea implicită de pe server. Astfel, valoarea implicită va fi aceeași indiferent de versiunea codului tău.
Tabelele din secțiunea Rezumat clase de opțiuni listează valorile implicite.
Setează opțiunile
Opțiunile pot fi definite înainte de a construi o primitivă și transmise acesteia, care face o copie a lor. Acest lucru se poate face fie ca dicționar imbricat, fie folosind clasele de opțiuni. În plus, după construirea primitivei, opțiunile sale pot fi modificate. Folosește fluxul de lucru care se potrivește cel mai bine aplicației tale. Consultă Specifică opțiunile pentru detalii complete.
Rezumat clase de opțiuni
- Estimator
- Sampler
- Dynamical decoupling: Opțiuni pentru decuplare dinamică.
- Environment: Opțiuni pentru mediul de execuție, cum ar fi nivelul de jurnalizare de setat și etichetele joburilor de adăugat.
- Execution: Opțiuni de execuție a primitivei, inclusiv dacă se inițializează qubiții și întârzierea de repetiție.
- Resilience: Opțiuni avansate pentru configurarea metodelor de atenuare a erorilor, cum ar fi atenuarea erorilor de măsurare, ZNE și PEC.
- Simulator: Opțiuni pentru simulator, cum ar fi porțile de bază, seed-ul simulatorului și harta de cuplare. Se aplică doar în modul de testare locală.
- Twirling: Opțiuni de twirling, cum ar fi dacă se aplică twirling pentru porțile cu doi qubiți și numărul de măsurători de rulat pentru fiecare eșantion aleatoriu.
- Dynamical decoupling: Opțiuni pentru decuplare dinamică.
- Environment: Opțiuni pentru mediul de execuție, cum ar fi nivelul de jurnalizare de setat și etichetele joburilor de adăugat.
- Execution: Opțiuni de execuție a primitivei, inclusiv dacă se inițializează qubiții și întârzierea de repetiție.
- Simulator: Opțiuni pentru simulator, cum ar fi porțile de bază, seed-ul simulatorului și harta de cuplare. Se aplică doar în modul de testare locală.
- Twirling: Opțiuni de twirling, cum ar fi dacă se aplică twirling pentru porțile cu doi qubiți și numărul de măsurători de rulat pentru fiecare eșantion aleatoriu.
Opțiuni disponibile
Tabelul următor documentează opțiunile din cea mai recentă versiune a qiskit-ibm-runtime. Pentru a vedea versiuni mai vechi ale opțiunilor, vizitează referința API qiskit-ibm-runtime și selectează o versiune anterioară.
- Estimator
- Sampler
default_shots
default_shotsNumărul total de măsurători de utilizat per circuit per configurație.
Opțiuni: Număr întreg >= 0
Implicit: None
default_precision
default_precisionPrecizia implicită de utilizat pentru orice PUB sau apel run() care nu specifică una.
Opțiuni: Float > 0
Implicit: 0.015625 (1 / sqrt(4096))
dynamical_decoupling
dynamical_decouplingControlează setările de atenuare a erorilor prin decuplare dinamică.
dynamical_decoupling documentație API
dynamical_decoupling.enable
dynamical_decoupling.enableOpțiuni: True, False
Implicit: False
dynamical_decoupling.extra_slack_distribution
dynamical_decoupling.extra_slack_distributionOpțiuni: middle, edges
Implicit: middle
dynamical_decoupling.scheduling_method
dynamical_decoupling.scheduling_methodOpțiuni: asap, alap
Implicit: alap
dynamical_decoupling.sequence_type
dynamical_decoupling.sequence_typeOpțiuni: XX, XpXm, XY4
Implicit: XX
dynamical_decoupling.skip_reset_qubits
dynamical_decoupling.skip_reset_qubitsOpțiuni: True, False
Implicit: False
environment
environmentDocumentația API pentru environment
environment.callback
environment.callbackFuncție apelabilă care primește Job ID și rezultatul job-ului (Job result).
Opțiuni: None
Implicit: None
environment.job_tags
environment.job_tagsListă de etichete.
Opțiuni: None
Implicit: None
environment.log_level
environment.log_levelOpțiuni: DEBUG, INFO, WARNING, ERROR, CRITICAL
Implicit: WARNING
environment.private
environment.privateOpțiuni: True, False
Implicit: False
execution
executionDocumentația API pentru execution
execution.init_qubits
execution.init_qubitsDacă se resetează qubiții la starea fundamentală pentru fiecare shot.
Opțiuni: True, False
Implicit: True
execution.rep_delay
execution.rep_delayÎntârzierea dintre o măsurătoare și circuitul cuantic următor.
Opțiuni: Valoare din intervalul furnizat de backend.rep_delay_range
Implicit: Dat de backend.default_rep_delay
max_execution_time
max_execution_timeOpțiuni: Număr întreg de secunde în intervalul [1, 10800]
Implicit: 10800 (3 ore)
resilience
resilienceOpțiuni avansate de reziliență pentru a regla fin strategia de reziliență.
Documentația API pentru resilience
resilience.layer_noise_learning
resilience.layer_noise_learningOpțiuni pentru învățarea zgomotului de strat.
resilience.layer_noise_learning.layer_pair_depths
resilience.layer_noise_learning.layer_pair_depthsOpțiuni: list[int] cu 2–10 valori în intervalul [0, 200]
Implicit: (0, 1, 2, 4, 16, 32)
resilience.layer_noise_learning.max_layers_to_learn
resilience.layer_noise_learning.max_layers_to_learnOpțiuni: None, Integer >= 1
Implicit: 4
resilience.layer_noise_learning.num_randomizations
resilience.layer_noise_learning.num_randomizationsOpțiuni: Integer >= 1
Implicit: 32
resilience.layer_noise_learning.shots_per_randomization
resilience.layer_noise_learning.shots_per_randomizationOpțiuni: Integer >= 1
Implicit: 128
resilience.layer_noise_model
resilience.layer_noise_modelOpțiuni: NoiseLearnerResult, Sequence[LayerError]
Implicit: None
resilience.measure_mitigation
resilience.measure_mitigationOpțiuni: True, False
Implicit: True
resilience.measure_noise_learning
resilience.measure_noise_learningOpțiuni pentru învățarea zgomotului de măsurare.
resilience.measure_noise_learning.num_randomizations
resilience.measure_noise_learning.num_randomizationsOpțiuni: Integer >= 1
Implicit: 32
resilience.measure_noise_learning.shots_per_randomization
resilience.measure_noise_learning.shots_per_randomizationOpțiuni: Integer, auto
Implicit: auto
resilience.pec_mitigation
resilience.pec_mitigationOpțiuni: True, False
Implicit: False
resilience.pec
resilience.pecOpțiuni de atenuare prin anulare probabilistică a erorilor.
resilience.pec.max_overhead
resilience.pec.max_overheadOpțiuni: None, număr întreg >= 1
Implicit: 100
resilience.pec.noise_gain
resilience.pec.noise_gainOpțiuni: auto, număr real în intervalul [0, 1]
Implicit: auto
resilience.zne_mitigation
resilience.zne_mitigationOpțiuni: True, False
Implicit: False
resilience.zne
resilience.zneresilience.zne.amplifier
resilience.zne.amplifierOpțiuni: gate_folding, gate_folding_front, gate_folding_back, pea
Implicit: gate_folding
resilience.zne.extrapolated_noise_factors
resilience.zne.extrapolated_noise_factorsOpțiuni: Listă de numere reale
Implicit: [0, *noise_factors]
resilience.zne.extrapolator
resilience.zne.extrapolatorOpțiuni: Unul sau mai multe dintre: exponential, linear, double_exponential, polynomial_degree_(1 <= k <= 7), fallback
Implicit: (exponential, linear)
resilience.zne.noise_factors
resilience.zne.noise_factorsOpțiuni: Listă de numere reale; fiecare număr real >= 1
Implicit: (1, 1.5, 2) pentru PEA, și (1, 3, 5) în celelalte cazuri
resilience_level
resilience_levelNivelul de reziliență față de erori. Nivelurile mai ridicate generează rezultate mai precise, cu prețul unor timpi de procesare mai lungi.
Opțiuni: 0, 1, 2
Implicit: 1
seed_estimator
seed_estimatorsimulator
simulatorOpțiuni transmise la simularea unui backend
Documentația API pentru simulator
simulator.basis_gates
simulator.basis_gatesOpțiuni: Listă de nume de porți de bază la care se face desfășurarea
Implicit: Setul tuturor porților de bază suportate de simulatorul Qiskit Aer
simulator.coupling_map
simulator.coupling_mapOpțiuni: Listă de interacțiuni direcționate între doi qubiți
Implicit: None, ceea ce implică lipsa restricțiilor de conectivitate (conectivitate completă).
simulator.noise_model
simulator.noise_modelOpțiuni: Qiskit Aer NoiseModel sau reprezentarea acestuia
Implicit: None
simulator.seed_simulator
simulator.seed_simulatorOpțiuni: Număr întreg
Implicit: None
twirling
twirlingOpțiuni de twirling
Documentația API pentru twirling
twirling.enable_gates
twirling.enable_gatesOpțiuni: True, False
Implicit: False
twirling.enable_measure
twirling.enable_measureOpțiuni: True, False
Implicit: True
twirling.num_randomizations
twirling.num_randomizationsOpțiuni: auto, număr întreg >= 1
Implicit: auto
twirling.shots_per_randomization
twirling.shots_per_randomizationOpțiuni: auto, număr întreg >= 1
Implicit: auto
twirling.strategy
twirling.strategyOpțiuni: active, active-circuit, active-accum, all
Implicit: active-accum
experimental
experimentalOpțiuni experimentale, când sunt disponibile.
default_shots
default_shotsNumărul total de shots de utilizat per circuit per configurație.
Opțiuni: Integer >= 0
Implicit: None
dynamical_decoupling
dynamical_decouplingControlează setările de atenuare a erorilor prin decuplare dinamică.
Documentația API dynamical_decoupling
dynamical_decoupling.enable
dynamical_decoupling.enableOpțiuni: True, False
Implicit: False
dynamical_decoupling.extra_slack_distribution
dynamical_decoupling.extra_slack_distributionOpțiuni: middle, edges
Implicit: middle
dynamical_decoupling.scheduling_method
dynamical_decoupling.scheduling_methodOpțiuni: asap, alap
Implicit: alap
dynamical_decoupling.sequence_type
dynamical_decoupling.sequence_typeOpțiuni: XX, XpXm, XY4
Implicit: XX
dynamical_decoupling.skip_reset_qubits
dynamical_decoupling.skip_reset_qubitsOpțiuni: True, False
Implicit: False
environment
environmentexecution
executionexecution.init_qubits
execution.init_qubitsSpecifică dacă qubiții trebuie resetați la starea de bază pentru fiecare shot.
Opțiuni: True, False
Implicit: True
execution.rep_delay
execution.rep_delayÎntârzierea dintre o măsurătoare și circuitul cuantic următor.
Opțiuni: Valoare în intervalul furnizat de backend.rep_delay_range
Implicit: Dat de backend.default_rep_delay
execution.meas_type
execution.meas_typeOpțiuni: classified, kerneled, avg_kerneled
Implicit: classified
max_execution_time
max_execution_timeOpțiuni: Număr întreg de secunde în intervalul [1, 10800]
Implicit: 10800 (3 ore)
simulator
simulatorOpțiuni transmise la simularea unui backend
Documentația API pentru simulator
simulator.basis_gates
simulator.basis_gatesOpțiuni: Listă de nume de porți de bază la care se face desfășurarea
Implicit: Setul tuturor porților de bază suportate de simulatorul Qiskit Aer
simulator.coupling_map
simulator.coupling_mapOpțiuni: Listă de interacțiuni direcționate între doi qubiți
Implicit: None, ceea ce implică lipsa restricțiilor de conectivitate (conectivitate completă).
simulator.noise_model
simulator.noise_modelOpțiuni: Qiskit Aer NoiseModel sau reprezentarea acestuia
Implicit: None
simulator.seed_simulator
simulator.seed_simulatorOpțiuni: Număr întreg
Implicit: None
twirling
twirlingOpțiuni de twirling
Documentația API pentru twirling
twirling.enable_gates
twirling.enable_gatesOpțiuni: True, False
Implicit: False
twirling.enable_measure
twirling.enable_measureOpțiuni: True, False
Implicit: False
twirling.num_randomizations
twirling.num_randomizationsOpțiuni: auto, număr întreg >= 1
Implicit: auto
twirling.shots_per_randomization
twirling.shots_per_randomizationOpțiuni: auto, număr întreg >= 1
Implicit: auto
twirling.strategy
twirling.strategyOpțiuni: active, active-circuit, active-accum, all
Implicit: active-accum
experimental
experimentalOpțiuni experimentale, când sunt disponibile.
Compatibilitate de funcționalități
Din cauza diferențelor în procesul de compilare al dispozitivelor, anumite funcționalități de runtime nu pot fi utilizate împreună într-un singur job. Apasă pe fila corespunzătoare pentru o listă a funcționalităților incompatibile cu funcționalitatea selectată:
- Dynamic circuits
- Dynamical decoupling
- Fractional gates
- Gate-folding ZNE
- Gate twirling
- PEA
- PEC
Incompatibil cu:
- Gate-folding ZNE
- PEA
- PEC
- Dynamical decoupling
Alte observații:
- Poate fi utilizat cu gate twirling pentru porți necondiționale.
- Compatibil cu fractional gates când folosești
qiskit-ibm-runtimev0.42.0 sau o versiune ulterioară.
Incompatibil cu dynamic circuits.
Incompatibil cu:
- Gate twirling
- PEA
- PEC
Compatibil cu dynamic circuits când folosești qiskit-ibm-runtime v0.42.0 sau o versiune ulterioară.
Incompatibil cu:
- Dynamic circuits
- PEA
- PEC
S-ar putea să nu funcționeze la utilizarea porților personalizate.
Incompatibil cu fractional gates sau cu stretches.
Alte observații:
- Poate fi utilizat cu dynamic circuits cu porți necondiționale.
- Nu funcționează cu entangleri non-Clifford.
Incompatibil cu:
- Dynamic circuits
- Fractional gates
- Gate-folding ZNE
- PEC
Incompatibil cu:
- Dynamic circuits
- Fractional gates
- Gate-folding ZNE
- PEA
Pașii următori
- Găsești mai multe detalii despre metodele
EstimatorV2în referința API pentru Estimator. - Găsești mai multe detalii despre metodele
SamplerV2în referința API pentru Sampler. - Găsești detalii despre cum să configurezi suprimarea erorilor și atenuarea erorilor.
- Află cum să specifici opțiuni.