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

Налаштування пом'якшення помилок

Нова модель виконання, тепер у бета-релізі

Бета-реліз нової моделі виконання тепер доступний. Модель направленого виконання надає більше гнучкості при налаштуванні робочого процесу пом'якшення помилок. Дивіться посібник Модель направленого виконання для отримання додаткової інформації.

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

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

qiskit-ibm-runtime~=0.43.1

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

Примітив Estimator підтримує кілька технік пом'якшення помилок, включаючи TREX, ZNE, PEC та PEA. Дивіться Техніки пом'якшення та придушення помилок для пояснення кожної з них. При використанні примітивів ви можете вмикати або вимикати окремі методи. Дивіться розділ Користувацькі налаштування помилок для деталей.

примітка

Sampler не підтримує пом'якшення помилок, але ви можете використовувати пакет mthree (matrix-free measurement mitigation) для виконання пом'якшення помилок локально.

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

Враховуючи це, кожен рівень відповідає методу або методам зі зростаючим рівнем квантового вибіркового overhead, що дає вам можливість експериментувати з різними компромісами час-точність. Наступна таблиця показує, які рівні та відповідні методи доступні для кожного з примітивів.

Увага

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

Estimator підтримує наступні рівні стійкості. Sampler не підтримує рівні стійкості.

Resilience LevelDefinitionTechnique
0No mitigationNone
1 [Default]Minimal mitigation costs: Mitigate error associated with readout errorsTwirled Readout Error eXtinction (TREX) measurement twirling
2Medium mitigation costs. Typically reduces bias in estimators, but is not guaranteed to be zero-bias.Level 1 + Zero Noise Extrapolation (ZNE) and gate twirling
Увага

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

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

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

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

Пом'якшення помилок не застосовується до програми користувача.

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

Рівень 1 застосовує пом'якшення помилок зчитування та twirling вимірювань шляхом застосування модельно-незалежної техніки, відомої як Twirled Readout Error eXtinction (TREX). Вона зменшує помилку вимірювання шляхом діагоналізації каналу шуму, пов'язаного з вимірюванням, за допомогою випадкового перемикання кубітів через вентилі X безпосередньо перед вимірюванням. Масштабуючий коефіцієнт з діагонального каналу шуму вивчається шляхом бенчмаркінгу випадкових схем, ініціалізованих у нульовому стані. Це дозволяє сервісу видаляти зсув з очікуваних значень, що виникає через шум зчитування. Цей підхід детальніше описаний у Model-free readout-error mitigation for quantum expectation values.

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

Рівень 2 застосовує техніки пом'якшення помилок, включені у рівень 1, а також застосовує gate twirling та використовує метод екстраполяції нульового шуму (ZNE). ZNE обчислює очікуване значення спостережуваної величини для різних факторів шуму (етап підсилення), а потім використовує виміряні очікувані значення для виведення ідеального очікуваного значення на межі нульового шуму (етап екстраполяції). Цей підхід зазвичай зменшує помилки в очікуваних значеннях, але не гарантує отримання незміщеного результату.

This image shows a graph.  The x-axis is labeled Noise amplification factor.  The y-axis is labeled Expectation value.  An upward sloping line is labeled Mitigated value.  Points near the line are noise-amplified values.  There is a horizontal line just above the X-axis labeled Exact value.

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

У рівні 2 метод TREX випадковим чином перемикає кубіти через вентилі X безпосередньо перед вимірюванням та перемикає відповідний виміряний біт, якщо вентиль X було застосовано. Цей підхід детальніше описаний у Model-free readout-error mitigation for quantum expectation values.

Приклад

Інтерфейс EstimatorV2 дозволяє користувачам безперешкодно працювати з різними методами пом'якшення помилок для зменшення помилок в очікуваних значеннях спостережуваних величин. Наступний код використовує Zero Noise Extrapolation та пом'якшення помилок зчитування шляхом простого встановлення 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})

Користувацькі налаштування помилок

Ви можете вмикати та вимикати окремі методи пом'якшення та придушення помилок, включаючи dynamical decoupling, gate та measurement twirling, пом'якшення помилок вимірювання, PEC та ZNE. Дивіться Техніки пом'якшення та придушення помилок для пояснення кожного з них.

Примітки
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: {estimator.options.resilience.measure_mitigation}")

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

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

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

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