Úvod do možností nastavení
Primitivům lze předávat možnosti nastavení, aby vyhovovaly tvým potřebám. Tato část se zaměřuje na možnosti nastavení primitiv Qiskit Runtime. Přestože je rozhraní metody run() primitiv společné pro všechny implementace, jejich možnosti nastavení společné nejsou. Informace o možnostech nastavení pro qiskit.primitives a qiskit_aer.primitives najdeš v příslušných referencích API.
Přehled
Struktura
Při volání primitiv můžeš předávat možnosti nastavení prostřednictvím třídy možností nebo slovníku. Běžně používané možnosti, jako například resilience_level, jsou na první úrovni. Ostatní možnosti jsou seskupeny do různých kategorií, například execution. Podrobnosti najdeš v části Nastavení možností primitiv.
Výchozí hodnoty
Pokud pro některou možnost nastavení nezadáš hodnotu, dostane speciální hodnotu Unset a použije se výchozí hodnota serveru. Výchozí hodnota tak bude stejná bez ohledu na verzi tvého kódu.
Výchozí hodnoty jsou uvedeny v tabulkách v části Přehled tříd možností nastavení.
Nastavení možností
Možnosti nastavení lze definovat ještě před vytvořením primitiva a předat primitivu, které si z nich vytvoří kopii. To lze provést buď jako vnořený slovník, nebo pomocí tříd možností. Možnosti primitiva lze navíc měnit i po jeho vytvoření. Použij ten postup, který nejlépe vyhovuje tvé aplikaci. Podrobnosti najdeš v části Určení možností nastavení.
Přehled tříd možností nastavení
- Estimator
- Sampler
- Dynamické oddělení: Možnosti pro dynamické oddělení.
- Prostředí: Možnosti prostředí pro spouštění, například úroveň protokolování a tagy úloh.
- Spouštění: Možnosti spouštění primitiv, včetně toho, zda inicializovat Qubity, a prodlevy opakování.
- Odolnost: Pokročilé možnosti pro konfiguraci metod zmírnění chyb, jako je zmírnění chyb měření, ZNE a PEC.
- Simulátor: Možnosti simulátoru, například základní Gate, seed simulátoru a mapa propojení. Platí pouze pro režim lokálního testování.
- Twirling: Možnosti twirling, například zda použít twirling dvoQubitových Gate a počet shots pro každý náhodný vzorek.
- Dynamické odd ělení: Možnosti pro dynamické oddělení.
- Prostředí: Možnosti prostředí pro spouštění, například úroveň protokolování a tagy úloh.
- Spouštění: Možnosti spouštění primitiv, včetně toho, zda inicializovat Qubity, a prodlevy opakování.
- Simulátor: Možnosti simulátoru, například základní Gate, seed simulátoru a mapa propojení. Platí pouze pro režim lokálního testování.
- Twirling: Možnosti twirling, například zda použít twirling dvoQubitových Gate a počet shots pro každý náhodný vzorek.
Dostupné možnosti nastavení
Následující tabulka dokumentuje možnosti nastavení z nejnovější verze balíčku qiskit-ibm-runtime. Starší verze možností nastavení najdeš v referenci API balíčku qiskit-ibm-runtime, kde můžeš vybrat předchozí verzi.
- Estimator
- Sampler
default_shots
default_shotsCelkový počet měření (shots) použitých na Circuit na konfiguraci.
Možnosti: Celé číslo >= 0
Výchozí hodnota: None
default_precision
default_precisionVýchozí přesnost, která se použije pro jakýkoli PUB nebo volání run(), které žádnou přesnost neurčuje.
Možnosti: Desetinné číslo > 0
Výchozí hodnota: 0.015625 (1 / sqrt(4096))
dynamical_decoupling
dynamical_decouplingNastavení pro řízení chybové mitigace pomocí dynamického oddělování (dynamical decoupling).
Dokumentace API pro dynamical_decoupling
dynamical_decoupling.enable
dynamical_decoupling.enableMožnosti: True, False
Výchozí hodnota: False
dynamical_decoupling.extra_slack_distribution
dynamical_decoupling.extra_slack_distributionMožnosti: middle, edges
Výchozí hodnota: middle
dynamical_decoupling.scheduling_method
dynamical_decoupling.scheduling_methodMožnosti: asap, alap
Výchozí hodnota: alap
dynamical_decoupling.sequence_type
dynamical_decoupling.sequence_typeMožnosti: XX, XpXm, XY4
Výchozí hodnota: XX
dynamical_decoupling.skip_reset_qubits
dynamical_decoupling.skip_reset_qubitsMožnosti: True, False
Výchozí hodnota: False
environment
environmentDokumentace API pro environment
environment.callback
environment.callbackVolatelná funkce, která přijímá Job ID a výsledek úlohy (Job result).
Možnosti: None
Výchozí hodnota: None
environment.job_tags
environment.job_tagsSeznam tagů.
Možnosti: None
Výchozí hodnota: None
environment.log_level
environment.log_levelMožnosti: DEBUG, INFO, WARNING, ERROR, CRITICAL
Výchozí hodnota: WARNING
environment.private
environment.privateMožnosti: True, False
Výchozí hodnota: False
execution
executionexecution.init_qubits
execution.init_qubitsUrčuje, zda se mají Qubity před každým měřením resetovat do základního stavu.
Možnosti: True, False
Výchozí hodnota: True
execution.rep_delay
execution.rep_delayProdleva mezi měřením a následným kvantovým Circuit.
Možnosti: Hodnota v rozsahu zadaném pomocí backend.rep_delay_range
Výchozí hodnota: Určena hodnotou backend.default_rep_delay
max_execution_time
max_execution_timeMožnosti: Celé číslo v sekundách v rozsahu [1, 10800]
Výchozí hodnota: 10800 (3 hodiny)
resilience
resiliencePokročilé možnosti odolnosti pro jemné doladění strategie odolnosti.
Dokumentace API pro resilience
resilience.layer_noise_learning
resilience.layer_noise_learningMožnosti pro učení šumu vrstev.
resilience.layer_noise_learning.layer_pair_depths
resilience.layer_noise_learning.layer_pair_depthsMožnosti: list[int] o 2–10 hodnotách v rozsahu [0, 200]
Výchozí hodnota: (0, 1, 2, 4, 16, 32)
resilience.layer_noise_learning.max_layers_to_learn
resilience.layer_noise_learning.max_layers_to_learnMožnosti: None, celé číslo >= 1
Výchozí hodnota: 4
resilience.layer_noise_learning.num_randomizations
resilience.layer_noise_learning.num_randomizationsMožnosti: celé číslo >= 1
Výchozí hodnota: 32
resilience.layer_noise_learning.shots_per_randomization
resilience.layer_noise_learning.shots_per_randomizationMožnosti: celé číslo >= 1
Výchozí hodnota: 128
resilience.layer_noise_model
resilience.layer_noise_modelMožnosti: NoiseLearnerResult, Sequence[LayerError]
Výchozí hodnota: None
resilience.measure_mitigation
resilience.measure_mitigationMožnosti: True, False
Výchozí hodnota: True
resilience.measure_noise_learning
resilience.measure_noise_learningMožnosti pro učení šumu měření.
resilience.measure_noise_learning.num_randomizations
resilience.measure_noise_learning.num_randomizationsMožnosti: celé číslo >= 1
Výchozí hodnota: 32
resilience.measure_noise_learning.shots_per_randomization
resilience.measure_noise_learning.shots_per_randomizationMožnosti: celé číslo, auto
Výchozí hodnota: auto
resilience.pec_mitigation
resilience.pec_mitigationMožnosti: True, False
Výchozí hodnota: False
resilience.pec
resilience.pecMožnosti pro zmírňování chyb metodou pravděpodobnostního rušení chyb (PEC).
resilience.pec.max_overhead
resilience.pec.max_overheadMožnosti: None, celé číslo >= 1
Výchozí hodnota: 100
resilience.pec.noise_gain
resilience.pec.noise_gainMožnosti: auto, desetinné číslo v rozsahu [0, 1]
Výchozí hodnota: auto
resilience.zne_mitigation
resilience.zne_mitigationMožnosti: True, False
Výchozí hodnota: False
resilience.zne
resilience.zneresilience.zne.amplifier
resilience.zne.amplifierMožnosti: gate_folding, gate_folding_front, gate_folding_back, pea
Výchozí hodnota: gate_folding
resilience.zne.extrapolated_noise_factors
resilience.zne.extrapolated_noise_factorsMožnosti: Seznam hodnot typu float
Výchozí hodnota: [0, *noise_factors]
resilience.zne.extrapolator
resilience.zne.extrapolatorMožnosti: Jedna nebo více z: exponential, linear, double_exponential, polynomial_degree_(1 <= k <= 7), fallback
Výchozí hodnota: (exponential, linear)
resilience.zne.noise_factors
resilience.zne.noise_factorsMožnosti: Seznam hodnot typu float; každá hodnota >= 1
Výchozí hodnota: (1, 1.5, 2) pro PEA, jinak (1, 3, 5)
resilience_level
resilience_levelJak velkou odolnost vůči chybám chceš vybudovat. Vyšší úrovně generují přesnější výsledky za cenu delší doby zpracování.
Možnosti: 0, 1, 2
Výchozí hodnota: 1
seed_estimator
seed_estimatorsimulator
simulatorMožnosti předávané při simulaci Backend
simulator.basis_gates
simulator.basis_gatesMožnosti: Seznam názvů základních Gate, na které se má rozvinout
Výchozí hodnota: Sada všech základních Gate podporovaných simulátorem Qiskit Aer
simulator.coupling_map
simulator.coupling_mapMožnosti: Seznam orientovaných dvou-Qubitových interakcí
Výchozí hodnota: None, což znamená žádná omezení konektivity (plná konektivita).
simulator.noise_model
simulator.noise_modelMožnosti: Qiskit Aer NoiseModel, nebo jeho reprezentace
Výchozí hodnota: None
simulator.seed_simulator
simulator.seed_simulatorMožnosti: Celé číslo
Výchozí hodnota: None
twirling
twirlingMožnosti twirling
twirling.enable_gates
twirling.enable_gatesMožnosti: True, False
Výchozí: False
twirling.enable_measure
twirling.enable_measureMožnosti: True, False
Výchozí: True
twirling.num_randomizations
twirling.num_randomizationsMožnosti: auto, celé číslo >= 1
Výchozí: auto
twirling.shots_per_randomization
twirling.shots_per_randomizationMožnosti: auto, celé číslo >= 1
Výchozí: auto
twirling.strategy
twirling.strategyMožnosti: active, active-circuit, active-accum, all
Výchozí: active-accum
experimental
experimentalExperimentální možnosti, pokud jsou k dispozici.
default_shots
default_shotsCelkový počet měření (shots) použitých na Circuit a konfiguraci.
Možnosti: Celé číslo >= 0
Výchozí hodnota: None
dynamical_decoupling
dynamical_decouplingNastavení chybové mitigace pomocí dynamického oddělení (dynamical decoupling).
Dokumentace API pro dynamical_decoupling
dynamical_decoupling.enable
dynamical_decoupling.enableMožnosti: True, False
Výchozí hodnota: False
dynamical_decoupling.extra_slack_distribution
dynamical_decoupling.extra_slack_distributionMožnosti: middle, edges
Výchozí hodnota: middle
dynamical_decoupling.scheduling_method
dynamical_decoupling.scheduling_methodMožnosti: asap, alap
Výchozí hodnota: alap
dynamical_decoupling.sequence_type
dynamical_decoupling.sequence_typeMožnosti: XX, XpXm, XY4
Výchozí hodnota: XX
dynamical_decoupling.skip_reset_qubits
dynamical_decoupling.skip_reset_qubitsMožnosti: True, False
Výchozí hodnota: False
environment
environmentexecution
executionexecution.init_qubits
execution.init_qubitsUrčuje, zda se mají Qubit resetovat do základního stavu před každým výstřelem (shot).
Možnosti: True, False
Výchozí hodnota: True
execution.rep_delay
execution.rep_delayProdleva mezi měřením a následujícím kvantovým Circuit.
Možnosti: Hodnota v rozsahu určeném parametrem backend.rep_delay_range
Výchozí hodnota: Určena parametrem backend.default_rep_delay
execution.meas_type
execution.meas_typeMožnosti: classified, kerneled, avg_kerneled
Výchozí hodnota: classified
max_execution_time
max_execution_timeMožnosti: Celé číslo udávající počet sekund v rozsahu [1, 10800]
Výchozí hodnota: 10800 (3 hodiny)
simulator
simulatorMožnosti předávané při simulaci Backend
simulator.basis_gates
simulator.basis_gatesMožnosti: Seznam názvů základních Gate, do nichž se má rozvinout
Výchozí hodnota: Sada všech základních Gate podporovaných simulátorem Qiskit Aer
simulator.coupling_map
simulator.coupling_mapMožnosti: Seznam orientovaných dvou-qubitových interakcí
Výchozí hodnota: None, což znamená žádná omezení propojení (plná konektivita).
simulator.noise_model
simulator.noise_modelMožnosti: Qiskit Aer NoiseModel nebo jeho reprezentace
Výchozí hodnota: None
simulator.seed_simulator
simulator.seed_simulatorMožnosti: Celé číslo
Výchozí hodnota: None
twirling
twirlingMožnosti twirling
twirling.enable_gates
twirling.enable_gatesMožnosti: True, False
Výchozí: False
twirling.enable_measure
twirling.enable_measureMožnosti: True, False
Výchozí: False
twirling.num_randomizations
twirling.num_randomizationsMožnosti: auto, celé číslo >= 1
Výchozí: auto
twirling.shots_per_randomization
twirling.shots_per_randomizationMožnosti: auto, celé číslo >= 1
Výchozí: auto
twirling.strategy
twirling.strategyMožnosti: active, active-circuit, active-accum, all
Výchozí: active-accum
experimental
experimentalExperimentální možnosti, pokud jsou dostupné.
Kompatibilita funkcí
Kvůli rozdílům v procesu kompilace pro zařízení nelze určité runtime funkce použít společně v rámci jedné úlohy. Klikni na příslušnou záložku a zobraz seznam funkcí, které jsou nekompatibilní s vybranou funkcí:
- Dynamické obvody
- Dynamické oddělení (Dynamical decoupling)
- Frakční Gate
- Gate-folding ZNE
- Gate twirling
- PEA
- PEC
Nekompatibilní s:
- Gate-folding ZNE
- PEA
- PEC
- Dynamickým oddělením (Dynamical decoupling)
Další poznámky:
- Lze použít s gate twirlingem pro nepodmíněné Gate.
- Kompatibilní s frakčními Gate při použití
qiskit-ibm-runtimev0.42.0 nebo novější.
Nekompatibilní s dynamickými obvody.
Nekompatibilní s:
- Gate twirlingem
- PEA
- PEC
Kompatibilní s dynamickými obvody při použití qiskit-ibm-runtime v0.42.0 nebo novější.
Nekompatibilní s:
- Dynamickými obvody
- PEA
- PEC
Nemusí fungovat při použití vlastních Gate.
Nekompatibilní s frakčními Gate nebo se stretches.
Další poznámky:
- Lze použít s dynamickými obvody s nepodmíněnými Gate.
- Nefunguje s non-Cliffordovými entanglery.
Nekompatibilní s:
- Dynamickými obvody
- Frakčními Gate
- Gate-folding ZNE
- PEC
Nekompatibilní s:
- Dynamickými obvody
- Frakčními Gate
- Gate-folding ZNE
- PEA
Další kroky
- Více podrobností o metodách
EstimatorV2najdeš v referenci API pro Estimator. - Více podrobností o metodách
SamplerV2najdeš v referenci API pro Sampler. - Podrobnosti o konfiguraci potlačení chyb a zmírnění chyb najdeš v příslušných průvodcích.
- Zjisti, jak specifikovat možnosti.