Úvod do možností nastavení
Primitivům Qiskit Runtime můžeš pomocí možností přizpůsobit chování podle svých potřeb.
Struktura
Při volání primitiv můžeš předávat možnosti 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 kategorií, například execution. Možnosti zadávej v tomto formátu: options.option.sub-option.sub-sub-option = hodnota. Například: options.dynamical_decoupling.enable = True.
Výchozí hodnoty
Pokud pro některou možnost nezadáš hodnotu, dostane speciální hodnotu Unset a použijí se výchozí hodnoty 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í" na průvodci možnostmi příslušného primitiva.
Nastavení možností
Možnosti lze definovat ještě před vytvořením primitiva a předat primitivu jako instanci třídy možností nebo slovník. Primitivum si z nich vytvoří kopii, takže změny původního slovníku nebo instance možností neovlivní možnosti, které primitivum vlastní.
Možnosti lze navíc měnit i po vytvoření primitiva. Použij ten postup, který nejlépe vyhovuje tvé aplikaci.
- Dostupné možnosti si můžeš zobrazit během inicializace primitiva nebo po ní.
- Pokud pro některou možnost nezadáš hodnotu, dostane speciální hodnotu
Unseta použijí se výchozí hodnoty serveru. - Atribut
optionsje datový typdataclassv Pythonu. Pomocí vestavěné metodyasdictho můžeš převést na slovník.
Třída options
Při vytváření instance třídy primitiva můžeš předat instanci třídy options. Tyto možnosti se pak použijí při volání run(). Možnosti zadávej v tomto formátu: options.option.sub-option.sub-sub-option = hodnota. Například: options.dynamical_decoupling.enable = True.
Podrobnosti o třídě najdeš v SamplerOptions nebo EstimatorOptions.
Následující příklad používá primitivum Estimator, ale syntaxe pro ostatní primitivy je obdobná.
from qiskit_ibm_runtime import QiskitRuntimeService
from qiskit_ibm_runtime import EstimatorV2 as Estimator
from qiskit_ibm_runtime.options import EstimatorOptions
service = QiskitRuntimeService()
backend = service.least_busy(operational=True, simulator=False)
options = EstimatorOptions(
resilience_level=2,
resilience={"zne_mitigation": True, "zne": {"noise_factors": [1, 3, 5]}},
)
# or...
options = EstimatorOptions()
options.resilience_level = 2
options.resilience.zne_mitigation = True
options.resilience.zne.noise_factors = [1, 3, 5]
estimator = Estimator(mode=backend, options=options)
Slovník
Možnosti lze při inicializaci primitiva zadat jako slovník.
Následující příklad používá primitivum Estimator, ale syntaxe pro ostatní primitivy je obdobná.
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 initialization
estimator = Estimator(
backend,
options={
"resilience_level": 2,
"resilience": {
"zne_mitigation": True,
"zne": {"noise_factors": [1, 3, 5]},
},
},
)
Aktualizace možností po inicializaci
Možnosti lze zadat ve formátu _primitivum_.options.moznost.sub-moznost.sub-sub-moznost = hodnota a využít tak automatické doplňování, nebo použít metodu update() pro hromadné aktualizace.
Třídu možností primitiva (EstimatorOptions nebo SamplerOptions) není nutné instanciovat, pokud nastavuješ možnosti po inicializaci primitiva.
Následující příklad používá primitivum Estimator, ale syntaxe pro ostatní primitivy je obdobná.
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(mode=backend)
# Setting options after initialization
# This uses auto-complete.
estimator.options.default_precision = 0.01
# This does bulk update.
estimator.options.update(
default_precision=0.02, resilience={"zne_mitigation": True}
)
Další kroky
- Podrobnosti o konfiguraci potlačení chyb a zmírnění chyb najdeš v příslušném průvodci.
- Více informací o možnostech Estimatoru.
- Více informací o možnostech Sampleru.
- Více informací o možnostech Executoru.