Вступ до параметрів
Ти можеш використовувати параметри для налаштування примітивів Qiskit Runtime відповідно до своїх потреб.
Структура
При виклику примітивів можна передавати параметри за допомогою класу параметрів або словника. Параметри, що часто використовуються, наприклад resilience_level, знаходяться на першому рівні. Інші параметри згруповані за категоріями, наприклад execution. Вказуй параметри у такому форматі: options.option.sub-option.sub-sub-option = choice. Наприклад: options.dynamical_decoupling.enable = True.
Значення за замовчуванням
Якщо для параметра не вказано значення, йому присвоюється спеціальне значення Unset, і використовується серверне значення за замовчуванням. Таким чином, значення за замовчуванням буде однаковим незалежно від версії твого коду.
Значення за замовчуванням наведені в таблицях розділу «Зведена інформація про класи параметрів» у посібнику з параметрів кожного примітива.
Задання параметрів
Параметри можна визначити до створення примітива і передати йому як екземпляр класу параметрів або словник. Примітив робить їх копію, що означає: зміна оригінального словника або екземпляра параметрів не впливає на параметри, якими примітив вже володіє.
Крім того, після створення примітива його параметри можна змінити. Використовуй той підхід, який найкраще підходить для твого застосунку.
- Доступні параметри можна переглянути під час або після ініціалізації примітива.
- Якщо для параметра не вказано значення, йому присвоюється спеціальне значення
Unset, і використовуються серверні значення за замовчуванням. - Атрибут
optionsє типом Pythondataclass. Ти можеш використовувати вбудований методasdictдля перетворення його у словник.
Клас options
При створенні екземпляра класу примітива можна передати екземпляр класу options. Ці параметри застосовуються, коли ти використовуєш run() для виконання обчислень. Вказуй параметри у такому форматі: options.option.sub-option.sub-sub-option = choice. Наприклад: options.dynamical_decoupling.enable = True.
Повну інформацію про клас дивись у SamplerOptions або EstimatorOptions.
Наступний приклад використовує примітив Estimator, але синтаксис для інших примітивів аналогічний.
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)
Словник
Ти можеш вказати параметри у вигляді словника при ініціалізації примітива.
Наступний приклад використовує примітив Estimator, але синтаксис для інших примітивів аналогічний.
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]},
},
},
)
Оновлення параметрів після ініціалізації
Ти можеш вказувати параметри у форматі _primitive_.options.option.sub-option.sub-sub-option = choice, щоб скористатися автодоповненням, або використовувати метод update() для масового оновлення.
Клас параметрів примітива (EstimatorOptions або SamplerOptions) не потрібно інстанціювати, якщо ти задаєш параметри після ініціалізації примітива.
Наступний приклад використовує примітив Estimator, але синтаксис для інших примітивів аналогічний.
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}
)
Наступні кроки
- Дізнайся, як налаштувати пригнічення похибок і пом'якшення похибок.
- Дізнайся більше про параметри Estimator.
- Дізнайся більше про параметри Sampler.
- Дізнайся більше про параметри Executor.