Wprowadzenie do opcji
Możesz używać opcji, aby dostosować prymitywy Qiskit Runtime do swoich potrzeb.
Struktura
Wywołując prymitywy, możesz przekazać opcje, używając klasy opcji lub słownika. Często używane opcje, takie jak resilience_level, znajdują się na pierwszym poziomie. Inne opcje są pogrupowane w kategorie, takie jak execution. Opcje podawaj w następującym formacie: options.opcja.pod-opcja.pod-pod-opcja = wybór. Na przykład: options.dynamical_decoupling.enable = True.
Wartości domyślne
Jeśli nie podasz wartości dla danej opcji, otrzyma ona specjalną wartość Unset i zostaną użyte domyślne wartości serwera. Oznacza to, że wartość domyślna będzie taka sama niezależnie od wersji kodu.
Tabele w sekcji „Podsumowanie klas opcji" na stronie przewodnika po opcjach każdego prymitywu zawierają listę wartości domyślnych.
Ustawianie opcji
Opcje można zdefiniować przed skonstruowaniem prymitywu i przekazać do niego jako instancję klasy opcji lub słownik. Prymityw tworzy ich kopię, co oznacza, że zmiana oryginalnego słownika lub instancji opcji nie wpływa na opcje będące własnością prymitywu.
Ponadto możesz zmieniać opcje po skonstruowaniu prymitywu. Wybierz sposób pracy, który najlepiej odpowiada Twojej aplikacji.
- Dostępne opcje możesz sprawdzić podczas inicjalizacji prymitywu lub po niej.
- Jeśli nie podasz wartości dla danej opcji, otrzyma ona specjalną wartość
Unseti zostaną użyte domyślne wartości serwera. - Atrybut
optionsjest typudataclassw Pythonie. Możesz użyć wbudowanej metodyasdict, aby przekonwertować go na słownik.
Klasa options
Tworząc instancję klasy prymitywu, możesz przekazać instancję klasy options. Opcje te są następnie stosowane podczas wywołania run() w celu wykonania obliczeń. Opcje podawaj w następującym formacie: options.opcja.pod-opcja.pod-pod-opcja = wybór. Na przykład: options.dynamical_decoupling.enable = True.
Pełne szczegóły na temat klasy znajdziesz w SamplerOptions lub EstimatorOptions.
Poniższy przykład używa prymitywu Estimator, ale składnia dla innych prymitywów jest podobna.
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)
Słownik
Możesz podać opcje jako słownik podczas inicjalizacji prymitywu.
Poniższy przykład używa prymitywu Estimator, ale składnia dla innych prymitywów jest podobna.
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]},
},
},
)
Aktualizowanie opcji po inicjalizacji
Możesz podawać opcje w formacie _prymityw_.options.opcja.pod-opcja.pod-pod-opcja = wybór, aby korzystać z autouzupełniania, lub użyć metody update() do masowej aktualizacji.
Klasa opcji prymitywu (EstimatorOptions lub SamplerOptions) nie musi być instancjonowana, jeśli ustawiasz opcje po zainicjalizowaniu prymitywu.
Poniższy przykład używa prymitywu Estimator, ale składnia dla innych prymitywów jest podobna.
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}
)
Kolejne kroki
- Zapoznaj się ze szczegółami konfiguracji tłumienia błędów i łagodzenia błędów.
- Dowiedz się więcej o opcjach Estimator.
- Dowiedz się więcej o opcjach Sampler.
- Dowiedz się więcej o opcjach Executor.