Налаштування управління шумом з 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.
Наступні кроки
- Пройди приклад, що використовує пом'якшення помилок, у уроці про функцію витрат у IBM Quantum Learning.
- Дізнайся більше про техніки пом'якшення та придушення помилок.
- Вивчи опції Estimator.
- Визнач, у якому режимі виконання запускати своє завдання.