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

QESEM: функція Qiskit від Qedma

Дивись довідник API

Примітка

Функції Qiskit є експериментальною можливістю, доступною лише для користувачів IBM Quantum® Premium Plan, Flex Plan та On-Prem (через IBM Quantum Platform API) Plan. Вони перебувають у стані попереднього випуску та можуть змінюватись.

Огляд

Хоча квантові процесори значно вдосконалилися за останні роки, помилки через шуми та недосконалості наявного обладнання залишаються центральною проблемою для розробників квантових алгоритмів. У міру того як галузь наближається до квантових обчислень у масштабі корисності, які не піддаються класичній верифікації, рішення для усунення шумів із гарантованою точністю стають дедалі важливішими. Щоб подолати цю проблему, Qedma розробила QESEM (Quantum Error Mitigation — пом'якшення квантових помилок), безперешкодно інтегровану в IBM Quantum Platform як функцію Qiskit.

За допомогою QESEM ти можеш запускати квантові схеми на зашумлених QPU та отримувати точні результати без похибок із мінімальними витратами часу QPU, близькими до фундаментальних меж. Для цього QESEM використовує набір патентованих методів, розроблених Qedma, для характеризації та зменшення помилок. Техніки зменшення помилок включають оптимізацію вентилів, транспіляцію з урахуванням шумів, придушення помилок (ES) та незміщене пом'якшення помилок (EM). Завдяки поєднанню цих методів на основі характеризації користувачі можуть отримувати надійні результати без похибок для загальних квантових схем великого об'єму, відкриваючи застосування, які неможливо реалізувати інакше.

Повний опис базових компонентів, а також демонстрацію у масштабі корисності наведено у статті Reliable high-accuracy error mitigation for utility-scale quantum circuits.

Опис

Ти можеш використовувати функцію QESEM від Qedma для легкого оцінювання та виконання своїх схем із придушенням і пом'якшенням помилок, досягаючи більших об'ємів схем і вищої точності. Щоб використовувати QESEM, ти надаєш квантову схему, набір спостережуваних величин для вимірювання, цільову статистичну точність для кожної з них та вибраний QPU. Перед запуском схеми на цільову точність ти можеш оцінити необхідний час QPU на основі аналітичного розрахунку, який не вимагає виконання схеми. Коли ти задоволений оцінкою часу QPU, можна виконати схему за допомогою QESEM.

Під час виконання схеми QESEM запускає протокол характеризації пристрою, адаптований до твоєї схеми, формуючи надійну модель шуму для помилок, що виникають у схемі. На основі характеризації QESEM спочатку реалізує транспіляцію з урахуванням шумів для відображення вхідної схеми на набір фізичних кубітів і вентилів, що мінімізує шум, який впливає на цільову спостережувану величину. Сюди входять вентили, доступні нативно (CX/CZ на пристроях IBM®), а також додаткові вентили, оптимізовані QESEM, що утворюють розширений набір вентилів QESEM. Потім QESEM запускає набір схем ES і EM на основі характеризації на QPU та збирає результати вимірювань. Вони класично постобробляються для отримання незміщеного математичного сподівання та смуги помилок для кожної спостережуваної величини, що відповідає запитаній точності.

Огляд Qedma QESEM Доведено, що QESEM забезпечує високоточні результати для різноманітних квантових застосувань та для найбільших об'ємів схем, досяжних сьогодні. QESEM пропонує такі функції для користувачів, продемонстровані в розділі бенчмарків нижче:

  • Гарантована точність: QESEM видає незміщені оцінки математичних сподівань спостережуваних величин. Його метод EM оснащений теоретичними гарантіями, які — разом із передовою характеризацією Qedma — забезпечують збіжність пом'якшення до виходу ідеальної схеми з точністю, заданою користувачем. На відміну від багатьох евристичних методів EM, схильних до систематичних помилок або зміщень, гарантована точність QESEM є ключовою для отримання надійних результатів у загальних квантових схемах та спостережуваних величинах.
  • Масштабованість до великих QPU: Час QPU для QESEM залежить від об'ємів схем, але в іншому не залежить від кількості кубітів. Qedma продемонструвала QESEM на найбільших квантових пристроях, доступних сьогодні, включаючи IBM Quantum Eagle на 127 кубітів та Heron на 133 кубіти.
  • Незалежність від застосування: QESEM продемонстровано для різноманітних застосувань, включаючи симуляцію гамільтоніана, VQE, QAOA та оцінку амплітуди. Користувачі можуть вводити будь-яку квантову схему та спостережувану величину для вимірювання та отримувати точні результати без похибок. Єдині обмеження диктуються специфікаціями обладнання та виділеним часом QPU, які визначають доступні об'єми схем та точність вихідних даних. На відміну від цього, багато рішень для зменшення помилок є специфічними для застосувань або включають неконтрольовані евристики, що робить їх непридатними для загальних квантових схем та застосувань.
  • Розширений набір вентилів: QESEM підтримує вентилі з дробовими кутами та надає оптимізовані Qedma вентилі Rzz(θ)Rzz(\theta) з дробовими кутами на пристроях IBM Quantum Heron та Eagle. Цей розширений набір вентилів уможливлює ефективнішу компіляцію та відкриває об'єми схем, більші в до 2 разів порівняно зі стандартною компіляцією CX/CZ.
  • Мультибазисні спостережувані: QESEM підтримує вхідні спостережувані, складені з багатьох некомутуючих рядків Паулі, як-от загальні гамільтоніани. Вибір базисів вимірювання та оптимізація розподілу ресурсів QPU (вибірки та схеми) тоді виконуються автоматично QESEM для мінімізації необхідного часу QPU для запитаної точності. Ця оптимізація, що враховує надійність обладнання та частоти виконання, дає змогу запускати глибші схеми та отримувати вищу точність.

Бенчмарки

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

Ключовою фігурою якості для кількісної оцінки складності як пом'якшення помилок, так і класичної симуляції для заданої схеми та спостережуваної величини є активний об'єм: кількість вентилів CNOT, що впливають на спостережувану величину в схемі. Активний об'єм залежить від глибини та ширини схеми, від ваги спостережуваної величини та від структури схеми, яка визначає світловий конус спостережуваної величини. Докладніше дивись у доповіді на IBM Quantum Summit 2024. QESEM забезпечує особливо велику цінність у режимі великого об'єму, даючи надійні результати для загальних схем і спостережуваних величин.

Активний об'єм

ЗастосуванняКількість кубітівПристрійОпис схемиТочністьЗагальний часВикористання Runtime
Схема VQE8Eagle (r3)21 загальний шар, 9 базисів вимірювання, 1D ланцюжок98%35 хв14 хв
Kicked Ising28Eagle (r3)3 унікальні шари × 3 кроки, 2D топологія heavy-hex97%22 хв4 хв
Kicked Ising28Eagle (r3)3 унікальні шари × 8 кроків, 2D топологія heavy-hex97%116 хв23 хв
Троттеризована симуляція гамільтоніана40Eagle (r3)2 унікальні шари × 10 кроків Троттера, 1D ланцюжок97%3 год25 хв
Троттеризована симуляція гамільтоніана119Eagle (r3)3 унікальні шари × 9 кроків Троттера, 2D топологія heavy-hex95%6,5 год45 хв
Kicked Ising136Heron (r2)3 унікальні шари × 15 кроків, 2D топологія heavy-hex99%52 хв9 хв

Точність тут вимірюється відносно ідеального значення спостережуваної величини: OidealϵOideal\frac{\langle O \rangle_{ideal} - \epsilon}{\langle O \rangle_{ideal}}, де 'ϵ\epsilon' — абсолютна точність пом'якшення (задається вхідними даними користувача), а Oideal\langle O \rangle_{ideal} — спостережувана на ідеальній схемі. «Використання Runtime» вимірює використання бенчмарку в пакетному режимі (сума використання окремих завдань), тоді як «загальний час» вимірює використання в режимі сесії (астрономічний час експерименту), який включає додатковий класичний час та час зв'язку. QESEM доступний для виконання в обох режимах, щоб користувачі могли найкраще використовувати свої доступні ресурси.

Схеми Kicked Ising на 28 кубітів симулюють Дискретний часовий квазікристал, вивчений Shinjо та ін. (дивись arXiv 2403.16718 і Q2B24 Tokyo) на трьох з'єднаних петлях ibm_kawasaki. Параметри схеми, взяті тут: (θx,θz)=(0.9π,0)(\theta_x, \theta_z) = (0.9 \pi, 0), з феромагнітним початковим станом ψ0=0n| \psi_0 \rangle = | 0 \rangle ^{\otimes n}. Вимірювана спостережувана величина — абсолютне значення намагніченості M=128i=027ZiM = |\frac{1}{28} \sum_{i=0}^{27} \langle Z_i \rangle|. Експеримент Kicked Ising у масштабі корисності було проведено на 136 найкращих кубітах ibm_fez; цей конкретний бенчмарк виконувався при кліффордовому куті (θx,θz)=(π,0)(\theta_x, \theta_z) = (\pi, 0), при якому активний об'єм повільно зростає з глибиною схеми, що — разом із високою точністю пристрою — забезпечує високу точність при короткому часі виконання.

Схеми троттеризованої симуляції гамільтоніана призначені для моделі Ізінга в поперечному полі при дробових кутах: (θzz,θx)=(π/4,π/8)(\theta_{zz}, \theta_x) = (\pi / 4, \pi /8) та (θzz,θx)=(π/6,π/8)(\theta_{zz}, \theta_x) = (\pi / 6, \pi / 8) відповідно (дивись Q2B24 Tokyo). Схему у масштабі корисності було запущено на 119 найкращих кубітах ibm_brisbane, тоді як експеримент на 40 кубітів виконувався на найкращому доступному ланцюжку. Точність повідомляється для намагніченості; високоточні результати отримано також для спостережуваних величин більшої ваги.

Схема VQE була розроблена спільно з дослідниками Центру технологій та застосувань квантових обчислень Deutsches Elektronen-Synchrotron (DESY). Цільовою спостережуваною величиною тут був гамільтоніан, що складається з великої кількості некомутуючих рядків Паулі, що підкреслює оптимізовану продуктивність QESEM для мультибазисних спостережуваних. Пом'якшення було застосовано до класично оптимізованого ансатцу; хоча ці результати ще не опубліковані, результати такої ж якості будуть отримані для різних схем із подібними структурними властивостями.

Початок роботи

Авторизуйся за допомогою свого ключа API IBM Quantum Platform та вибери функцію Qiskit QESEM так. (Цей фрагмент коду передбачає, що ти вже зберіг свій обліковий запис у локальному середовищі.)

# Added by doQumentation — required packages for this notebook
!pip install -q qiskit qiskit-ibm-catalog qiskit-ibm-runtime
import qiskit

from qiskit_ibm_catalog import QiskitFunctionsCatalog

catalog = QiskitFunctionsCatalog(channel="ibm_quantum_platform")

qesem_function = catalog.load("qedma/qesem")

Приклади

Щоб розпочати, спробуй цей базовий приклад оцінювання необхідного часу QPU для запуску QESEM для заданого pub:

# This cell is hidden from users
from qiskit_ibm_runtime import QiskitRuntimeService

service = QiskitRuntimeService()
backend_name = service.least_busy().name
circ = qiskit.QuantumCircuit(5)
circ.cx(0, 1)
circ.cx(2, 3)
circ.cx(1, 2)
circ.cx(3, 4)

avg_magnetization = qiskit.quantum_info.SparsePauliOp.from_sparse_list(
[("Z", [q], 1 / 5) for q in range(5)], num_qubits=5
)
other_observable = qiskit.quantum_info.SparsePauliOp.from_sparse_list(
[("ZZ", [0, 1], 1.0), ("XZ", [1, 4], 0.5)], num_qubits=5
)

time_estimation_job = qesem_function.run(
pubs=[(circ, [avg_magnetization, other_observable])],
options={
"estimate_time_only": "analytical",
},
backend_name=backend_name, # E.g. "ibm_fez"
)

time_estimate_result = time_estimation_job.result()

Наступний приклад виконує завдання QESEM:

sample_job = qesem_function.run(
pubs=[(circ, [avg_magnetization, other_observable])],
backend_name=backend_name, # E.g. "ibm_fez"
)

Ти можеш використовувати знайомі API Qiskit Serverless для перевірки статусу робочого навантаження функції Qiskit або отримання результатів:

print(sample_job.status())
result = sample_job.result()

Наступний фрагмент коду описує, як отримати оцінку часу QPU (коли estimate_time_only встановлено):

print(
f"The estimated QPU time for this PUB is: \n{time_estimate_result[0].metadata}"
)

Наступний фрагмент коду демонструє, як отримати результати пом'якшення (коли estimate_time_only не встановлено) та метрики виконання. Вони містять важливі дані, що дають змогу глибше зрозуміти, як різні параметри впливають на виконання QESEM. Це також може бути корисним при написанні статті на основі твоїх досліджень.

results = result[0]
print(f"Mitigated expectation values: \n{results.data.evs}")
print(f"Mitigated error-bar: \n{results.data.stds}")
noisy_results = results.metadata["noisy_results"]
print(f"Noisy expectation values: \n{noisy_results.evs}")
print(f"Noisy error-bar: \n{noisy_results.stds}")
print(f"Total QPU time: \n {results.metadata['total_qpu_time']}")
print(
f"Gates fidelity measured during the experiment: \n {results.metadata['gate_fidelities']}"
)
print(
f"Total shots / mitigation shots: \n {results.metadata['total_shots']} / {results.metadata['mitigation_shots']}"
)
print("Transpiled circuits:")
for i, circuit in enumerate(results.metadata["transpiled_circs"]):
print(f"Circuit {i}:")
print(f" Circuit: \n {circuit['circuit']}")
print(f" Qubit mapping: \n {circuit['qubit_map']}")
print(f" Measurement bases: \n {circuit['num_measurement_bases']}")

Отримання повідомлень про помилки

Якщо статус твого робочого навантаження — ERROR, використай job.result() для отримання повідомлення про помилку таким чином:

print(sample_job.result())
PrimitiveResult([PubResult(data=DataBin(), metadata={'time_estimation_sec': 12600})], metadata={})

Отримання підтримки

Команда підтримки Qedma готова допомогти! Якщо ти зіткнувся з будь-якими проблемами або маєш запитання щодо використання функції Qiskit QESEM, не соромся звертатися. Наш досвідчений та доброзичливий персонал підтримки готовий допомогти тобі з будь-якими технічними питаннями чи запитами.

Ти можеш написати нам на support@qedma.com для отримання допомоги. Будь ласка, включи якомога більше деталей про проблему, з якою зіткнувся, щоб допомогти нам надати швидку та точну відповідь. Ти також можеш зв'язатися зі своїм відданим представником Qedma POC електронною поштою або телефоном.

Щоб допомогти нам надати підтримку ефективніше, надай таку інформацію, коли звертаєшся до нас:

  • Детальний опис проблеми
  • Ідентифікатор завдання
  • Будь-які відповідні повідомлення про помилки або коди

Ми прагнемо надавати швидку та ефективну підтримку, щоб забезпечити найкращий можливий досвід роботи з нашою функцією Qiskit.

Ми завжди намагаємося покращити наш продукт і вітаємо твої пропозиції! Якщо у тебе є ідеї щодо того, як ми можемо покращити наші послуги або функції, які ти хотів би побачити, надсилай свої думки на support@qedma.com.

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