Tensor-network error mitigation (TEM): функція Qiskit від Algorithmiq
Дивись довідник API
Qiskit Functions — це експериментальна функція, доступна лише для користувачів IBM Quantum® Premium Plan, Flex Plan та On-Prem (через IBM Quantum Platform API) Plan. Вони перебувають у статусі попереднього випуску і можуть змінюватися.
Package versions
Код на цій сторінці розроблений із використанням таких вимог. Рекомендуємо використовувати ці або новіші версії.
qiskit[all]~=2.5.1
Огляд
Метод Tensor-network Error Mitigation (TEM) від Algorithmiq — це гібридний квантово-класичний алгоритм, розроблений для виконання пом'якшення шуму повністю на класичному етапі постобробки. За допомогою TEM користувач може обчислювати очікувані значення спостережуваних величин, пом'якшуючи неминучі помилки, спричинені шумом на квантовому обладнанні, з підвищеною точністю та ефективністю витрат, що робить його дуже привабливим варіантом як для квантових дослідників, так і для практиків в індустрії.
Метод полягає у побудові тензорної мережі, що представляє обернений глобальний канал шуму, який впливає на стан квантового процесора, а потім у застосуванні цього відображення до інформаційно повних результатів вимірювань, отриманих від зашумленого стану, для отримання незміщених оцінок спостережуваних величин.
Перевагою TEM є те, що він використовує інформаційно повні вимірювання для надання доступу до великого набору пом'якшених очікуваних значень спостережуваних величин і має оптимальні вибіркові накладні витрати на квантовому обладнанні, як описано у Filippov et al. (2023), arXiv:2307.11740, та Filippov et al. (2024), arXiv:2403.13542. Накладні витрати на вимірювання — це кількість додаткових вимірювань, необхідних для ефективного пом'якшення помилок, що є критичним фактором у здійсненності квантових обчислень. Тому TEM має потенціал для забезпечення квантової переваги у складних сценаріях, таких як застосування в галузях квантового хаосу, фізики багатьох тіл, динаміки Габбарда та симуляцій хімії малих молекул.
Основні особливості та переваги TEM можна підсумувати так:
- Оптимальні накладні витрати на вимірювання: TEM є оптимальним щодо теоретичних меж, що означає, що жоден метод не може досягти менших накладних витрат на вимірювання. Іншими словами, TEM потребує мінімальну кількість додаткових вимірювань для пом'якшення помилок. Це, у свою чергу, означає, що TEM використовує мінімальний квантовий час виконання.
- Ефективність витрат: Оскільки TEM обробляє пом'якшення шуму повністю на етапі постобробки, немає потреби додавати додаткові схеми до квантового комп'ютера, що не тільки здешевлює обчислення, але й зменшує ризик внесення додаткових помилок через недосконалість квантових пристроїв.
- Оцінка кількох спостережуваних величин: Завдяки інформаційно повним вимірюванням TEM ефективно оцінює кілька спостережуваних величин з одними й тими ж даними вимірювань від квантового комп'ютера.
- Пом'якшення помилок вимірювання: Функція TEM Qiskit також включає пропрієтарний метод пом'якшення помилок вимірювання, здатний значно зменшити помилки зчитування після короткого калібрувального запуску.
- Точність: TEM значно підвищує точність та надійність цифрових квантових симуляцій, роблячи квантові алгоритми більш прецизійними та надійними.
Опис
Функція TEM дозволяє отримувати очікувані значення з пом'якшенням помилок для кількох спостережуваних величин на квантовій схемі з мінімальними вибірковими накладними витратами. Схема вимірюється за допомогою інформаційно повної позитивної операторно-значної міри (IC-POVM), і зібрані результати вимірювань обробляються на класичному комп'ютері. Це вимірювання використовується для виконання методів тензорних мереж та побудови карти інверсії шуму. Функція застосовує відображення, яке повністю інвертує всю зашумлену схему за допомогою тензорних мереж для представлення зашумлених шарів.
Після відправки схем до функції вони транспілюються та оптимізуються для мінімізації кількості шарів з двокубітними вентилями (найбільш зашумлені вентилі на квантових пристроях). Шум, що впливає на шари, вивчається через Qiskit Runtime за допомогою розрідженої моделі шуму Паулі-Ліндблада, як описано у E. van den Berg, Z. Minev, A. Kandala, K. Temme, Nat. Phys. (2023). arXiv:2201.09866.
Модель шуму є точним описом шуму на пристрої, здатним уловлювати тонкі особливості, включаючи перехресні завади між кубітами. Однак шум на пристроях може коливатися та дрейфувати, і вивчений шум може бути неточним на момент виконання оцінки. Це може призвести до неточних результатів.
Початок роботи
Автентифікуйся за допомогою свого ключа API IBM Quantum Platform та вибери функцію TEM наступним чином. (Цей фрагмент коду передбачає, що ти вже зберіг свій акаунт у локальному середовищі.)
# Added by doQumentation — installs the packages this notebook needs if they are missing
import importlib.util
_needed = {"qiskit": "qiskit", "qiskit_ibm_catalog": "qiskit-ibm-catalog"}
_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_catalog import QiskitFunctionsCatalog
tem_function_name = "algorithmiq/tem"
catalog = QiskitFunctionsCatalog(channel="ibm_quantum_platform")
# verify that you have access to the function
catalog.list()
[QiskitFunction(qunova/hivqe-chemistry),
QiskitFunction(global-data-quantum/quantum-portfolio-optimizer),
QiskitFunction(algorithmiq/tem),
QiskitFunction(qedma/qesem),
QiskitFunction(multiverse/singularity),
QiskitFunction(ibm/circuit-function),
QiskitFunction(q-ctrl/optimization-solver),
QiskitFunction(colibritd/quick-pde),
QiskitFunction(q-ctrl/performance-management),
QiskitFunction(kipu-quantum/iskay-quantum-optimizer)]
# Load your function
tem = catalog.load(tem_function_name)
Приклад
Наступний фрагмент коду показує приклад, де TEM використовується для обчислення очікуваних значень спостережуваної величини для простої квантової схеми.
from qiskit import QuantumCircuit
from qiskit.quantum_info import SparsePauliOp
# Create a quantum circuit
qc = QuantumCircuit(3)
qc.u(0.4, 0.9, -0.3, 0)
qc.u(-0.4, 0.2, 1.3, 1)
qc.u(-1.2, -1.2, 0.3, 2)
for _ in range(2):
qc.barrier()
qc.cx(0, 1)
qc.cx(2, 1)
qc.barrier()
qc.u(0.4, 0.9, -0.3, 0)
qc.u(-0.4, 0.2, 1.3, 1)
qc.u(-1.2, -1.2, 0.3, 2)
# Define the observables
observable = SparsePauliOp("IYX", 1.0)
# Define the execution options
pub = (qc, [observable])
options = {"default_precision": 0.02}
# Define backend to use. TEM will choose the least-busy device
# reported by IBM if not specified
backend_name = "ibm_marrakesh"
# Run the TEM function (uses around three minutes of QPU time)
job = tem.run(pubs=[pub], backend_name=backend_name, options=options)
Використовуй API Qiskit Serverless для перевірки статусу твого робочого навантаження Qiskit Function:
# Print the ID so you can use it later, if necessary
print(job.job_id)
print(job.status())
ea1d7802-b067-4cc9-af39-3c2402d22413
QUEUED
Ти можеш отримати результати так:
result = job.result()
evs = result[0].data.evs
print(evs[0])
-0.10628832892063486
Очікуване значення для безшумної схеми для даного оператора повинно бути приблизно 0.18409094298943401.
Отримання підтримки
Звертайся до qiskit_ibm@algorithmiq.fi
Обов'язково включи наступну інформацію:
- ID завдання Qiskit Function (
qiskit-ibm-catalog),job.job_id - Детальний опис проблеми
- Будь-які відповідні повідомлення або коди помилок
- Кроки для відтворення проблеми
Наступні кроки
-
Запросити доступ до Algorithmiq Tensor-network error mitigation.
-
Відвідай довідник API для цієї функції Qiskit.