Перейти до основного вмісту
Цей проєкт у бета-версії. Знайшов(-ла) помилку? Відкрити issue на GitHub. Є запитання чи ідея? Запитати в Discussions — будемо раді твоєму відгуку!
Яка якість перекладу на цій сторінці?

Налаштування управління шумом з Estimator

Версії пакетів

Код на цій сторінці було розроблено з використанням таких вимог. Рекомендуємо використовувати ці або новіші версії.

qiskit-ibm-runtime~=0.47.0

Існує кілька способів управління шумом, зазвичай шляхом використання різних технік пом'якшення помилок та придушення помилок, щоб уникнути помилок до того, як вони виникнуть. Ці техніки зазвичай викликають накладні витрати на попередню обробку. Тому важливо досягти балансу між вдосконаленням результатів та забезпеченням завершення завдання в розумний час.

Estimator підтримує такі техніки управління шумом. Дивись Техніки пом'якшення та придушення помилок для пояснення кожної. Дивись розділ Налаштування управління шумом вручну для прикладу увімкнення цих технік.

Динамічне розв'язування

Як ввімкнути: options.dynamical_decoupling.enable = True

Довідник API: DynamicalDecouplingOptions

Помітні параметри: sequence_type

Твірлінг Паулі

Як ввімкнути: options.twirling.enable_gates = True

Довідник API: TwirlingOptions

Помітні параметри: num_randomizations, shots_per_randomization

TREX

Як ввімкнути: options.resilience.measure_mitigation = True

Довідник API: MeasureNoiseLearningOptions

Помітні параметри:

ZNE

Як ввімкнути: options.resilience.zne_mitigation = True

Довідник API: ZneOptions

Помітні параметри: noise_factors, extrapolator

PEA

Як ввімкнути: (потрібно також увімкнути ZNE) options.resilience.zne_mitigation = True і options.resilience.zne.amplifier = "pea"

Довідник API: ZneOptions

Помітні параметри: noise_factors, extrapolator

PEC

Як ввімкнути: options.resilience.pec_mitigation = True

Довідник API: PecOptions

Помітні параметри: max_overhead

Рівень стійкості​

resilience_level визначає, наскільки стійкою до помилок має бути система. Вищі рівні генерують більш точні результати ціною тривалішого часу обробки. Рівні стійкості можна використовувати для налаштування компромісу між вартістю та точністю при застосуванні управління шумом до запиту до примітива. Управління шумом зменшує помилки (зміщення) в результатах шляхом обробки виходів від колекції або ансамблю пов'язаних схем. Ступінь зменшення помилок залежить від застосованого методу. Рівень стійкості абстрагує детальний вибір методу управління шумом, щоб дозволити користувачам міркувати про компроміс вартість/точність, що підходить їхньому застосунку.

З огляду на це, кожен рівень відповідає методу або методам із зростаючим рівнем накладних витрат квантової вибірки, щоб дозволити тобі експериментувати з різними компромісами між часом та точністю. У наступній таблиці показано, які рівні та відповідні методи доступні для кожного з примітивів.

Рівень стійкостіОписТехніка
0Без пом'якшенняВідсутня
1 [За замовчуванням]Мінімальні витрати на пом'якшення: пом'якшення помилок зчитуванняВимірювальне twirling Twirled Readout Error eXtinction (TREX)
2Середні витрати на пом'якшення. Зазвичай зменшує зміщення оцінок, але повної відсутності зміщення не гарантує.Рівень 1 + Zero Noise Extrapolation (ZNE) та gate twirling
Увага

Рівні стійкості наразі перебувають у бета-версії, тому накладні витрати вибірки та якість рішення варіюватимуться від схеми до схеми. Нові функції, розширені опції та інструменти управління будуть випускатися поступово. Не гарантується, що конкретні методи управління шумом застосовуватимуться на кожному рівні стійкості.

Налаштування Estimator з рівнями стійкості​

Можна використовувати рівні стійкості для вказання технік управління шумом або налаштовувати окремі техніки вручну, як описано в Власних налаштуваннях управління шумом.

Важливо

Будь-які опції, які ти встановлюєш вручну на додаток до рівня стійкості, застосовуються поверх базового набору опцій, визначених рівнем стійкості. Тому, в принципі, можна встановити рівень стійкості 1, але потім вимкнути пом'якшення вимірювань, хоча це не рекомендується.

Наприклад, встановлення рівня стійкості 0 вимикає zne_mitigation, але estimator.options.resilience.zne_mitigation = True перевизначає це значення.

Приклад​

Наступний код вмикає ZNE, TREX та gate twirling, встановлюючи resilience_level 2.

# Added by doQumentation — installs the packages this notebook needs if they are missing
import importlib.util

_needed = {"qiskit_ibm_runtime": "qiskit-ibm-runtime"}
_missing = [pip for module, pip in _needed.items()
if importlib.util.find_spec(module) is None]
# One at a time, so a package that fails to install does not block the others
for _pip in _missing:
%pip install -q {_pip}
if not _missing:
print("\u2713 All required packages are installed")
from qiskit_ibm_runtime import QiskitRuntimeService

# Legacy server-side primitive before qiskit-ibm-runtime 0.50.0
# from qiskit_ibm_runtime import Estimator

# Client-side primitive introduced in qiskit-ibm-runtime 0.50.0
from qiskit_ibm_runtime.executor_estimator import Estimator

service = QiskitRuntimeService()
backend = service.least_busy(operational=True, simulator=False)

# Setting options during primitive initialization
estimator = Estimator(backend, options={"resilience_level": 2})

Налаштування управління шумом вручну​

Можна вмикати та вимикати окремі методи управління шумом, використовуючи опції Estimator.

Примітки

Повний приклад із кількома параметрами​

from qiskit_ibm_runtime import QiskitRuntimeService

# Legacy server-side primitive before qiskit-ibm-runtime 0.50.0
# from qiskit_ibm_runtime import Estimator

# Client-side primitive introduced in qiskit-ibm-runtime 0.50.0
from qiskit_ibm_runtime.executor_estimator import Estimator

service = QiskitRuntimeService()
backend = service.least_busy(operational=True, simulator=False)

estimator = Estimator(backend)
options = estimator.options
# Turn on gate twirling.
options.twirling.enable_gates = True
# Turn on measurement error mitigation.
options.resilience.measure_mitigation = True

print(
f">>> gate twirling is turned on: {estimator.options.twirling.enable_gates}"
)
print(
f">>> measurement error mitigation is turned on: "
f"{estimator.options.twirling.enable_gates}"
)
>>> gate twirling is turned on: True
>>> measurement error mitigation is turned on: True

Вимкнення всього пом'якшення помилок​

Інструкції щодо вимкнення всього пом'якшення помилок дивись у розділі Вимкнення всього придушення та пом'якшення помилок в посібнику з опцій Estimator.

Наступні кроки​

Рекомендації