Перейти до основного вмісту

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

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

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

qiskit-ibm-runtime~=0.46.1

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

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

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

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 — required packages for this notebook
!pip install -q qiskit-ibm-runtime
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 primitive initialization
estimator = Estimator(backend, options={"resilience_level": 2})

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

Можна вмикати та вимикати окремі методи управління шумом, використовуючи опції 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(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.

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

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