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

Orbit — Qiskit Function від Quantum Elements

Див. довідник API

Note

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

Огляд

Квантове обладнання продовжує розвиватися, але шум та декогерентність все ще обмежують глибину та надійність практичних квантових схем. Серед доступних підходів три взаємодоповнювальні техніки можуть суттєво пом'якшити ці обмеження: динамічне розв'язування (DD), оптимізована транспіляція та пом'якшення похибок вимірювання (MEM). Оптимізована транспіляція зменшує глибину схеми та краще узгоджує схеми зі зв'язністю цільового обладнання, DD пригнічує шум під час простою за допомогою ретельно розроблених послідовностей керування, а MEM зменшує вплив похибок зчитування і може застосовуватися під час постобробки.

Вибір ефективної стратегії DD є особливо нетривіальним завданням, оскільки доступно багато сімейств послідовностей, і послідовність, яка добре працює для однієї схеми чи шумового середовища, може погано працювати для іншого. Переваги транспіляції, DD та MEM залежать від задачі, обладнання та навантаження; використовувані окремо або в поєднанні, вони можуть покращити продуктивність, але не є універсально корисними в кожній конфігурації.

Orbit, Qiskit Function, розроблена Quantum Elements, безшовно поєднує всі три компоненти в єдиному робочому процесі, роблячи їх зручними для використання з метою покращення виконання схем на квантовому обладнанні IBM Quantum. У своїй основній формі Orbit автоматично застосовує активні стратегії пригнічення похибок, які захищають квантові стани під час періодів простою, зберігаючи при цьому початкову логіку схеми. Примітно, що вона робить це без введення будь-якого додаткового часу квантової чи класичної попередньої обробки, уникаючи таким чином зайвих додаткових витрат чи часу очікування в робочому процесі.

Замість того, щоб працювати як чорна скринька, Orbit дозволяє користувачам оцінювати та точно налаштовувати свої компоненти оптимізації для конкретного експерименту. Користувачі можуть незалежно вмикати або вимикати оптимізовану транспіляцію, DD та MEM; порівнювати автоматизований вибір DD з визначеними користувачем послідовностями; та виконувати кілька конфігурацій у межах одного робочого процесу. Порівнюючи кожну конфігурацію з необробленою схемою, користувачі можуть визначити, які техніки дають вимірювану користь для їхньої схеми та бекенда, виявити взаємодію між різними методами оптимізації та вибрати конфігурацію, яка найкраще підтримує їхню експериментальну мету. Цей процес допомагає користувачам зрозуміти, звідки походить приріст продуктивності, і приймати більш обґрунтовані рішення при оптимізації квантових схем для конкретного навантаження.

Опис

Orbit розроблено для покращення виконання квантових схем на бекендах IBM Quantum. В автоматизованому режимі користувачі можуть безшовно застосовувати надійні послідовності DD високого порядку без потреби вручну вибирати чи налаштовувати їх. Просунуті користувачі можуть натомість експериментувати з доступними послідовностями вищого порядку, щоб визначити та оптимізувати підхід, який забезпечує найкращу продуктивність для конкретної схеми.

Orbit також забезпечує миттєве MEM без потреби в додаткових завданнях, які зазвичай необхідні для окремих робочих процесів калібрування та пом'якшення похибок. Для навантажень, у яких транспіляція не повинна змінювати структуру схеми, таких як схеми квантової корекції похибок з вимірюваннями в середині схеми або динамічні схеми, Orbit може застосовувати DD та MEM, не втручаючись в наявну стратегію транспіляції користувача. Для користувачів, які ще не мають бажаного підходу, Orbit також включає вбудований транспілятор для оптимізації схем під цільове обладнання перед застосуванням технік пригнічення похибок та пом'якшення зчитування.

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

Практичний робочий процес Orbit виглядає так:

  1. Визнач квантову схему та вибери Orbit через Каталог Qiskit Functions.

  2. Додай схему без Orbit, використовуючи режим Raw, щоб встановити базову лінію для необробленої схеми.

  3. Вибери, які стратегії оптимізації застосовувати, включно з автоматизованими або обраними користувачем послідовностями DD, MEM та оптимізованою транспіляцією.

  4. Увімкни або вимкни окремі методи, або надішли кілька конфігурацій, щоб оцінити їхній окремий та комбінований ефекти.

Orbit особливо корисна для схем, що містять періоди простою чи прогалини в розкладі, коли кубіти не беруть активної участі в гейтах. Вона підтримує статичні та динамічні схеми, включно з робочими процесами з вимірюваннями в середині схеми та експериментами з відмовостійких квантових обчислень. Типові застосування включають квантову корекцію похибок, експерименти з поверхневим кодом на квадратних та heavy-hex ґратках, оракульні алгоритми, такі як Bernstein-Vazirani, схеми перетворення Фур'є, варіаційні квантові алгоритми, симуляцію гамільтоніана, бенчмаркінгові експерименти та апаратно-орієнтовану оптимізацію схем.

Дивлячись у майбутнє в еру відмовостійкості, Orbit також сумісна з робочими процесами відмовостійких квантових обчислень, оскільки її можна безшовно поєднати з квантовою корекцією похибок. У довгостроковій перспективі Orbit вказує на логічне динамічне розв'язування [1] як на перспективний шлях захисту логічних кубітів. У наведеному нижче прикладі два логічні кубіти було заплутано для створення логічного стану Белла в умовах квантового виявлення похибок. Саме лише квантове виявлення похибок призвело до того, що точність стану Белла спадала приблизно до 44% протягом десятків мікросекунд, тоді як QED у поєднанні із захистом у стилі Orbit утримувало точність логічного стану Белла близько верхньої межі шкали, досягаючи приблизно 95,3% в тому самому часовому вікні. Orbit Quantum Circuit Development Platform

Бенчмарки

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

ПрикладМетрикаКубітиQPUДодаткові деталіПокращення Orbit
Bernstein–VaziraniHidden-bitstring fidelity26
60
70
Heron r3Raw versus Full Orbit,
Transpilation only versus Full Orbit,
Full Orbit Only
75x
66x
N/A
QFT (unitary)Fidelity10Heron r2
Heron r3
Orbit versus raw:
~44% versus ~35%
~67% versus ~61%
1.26x
1.09x
QFT (dynamic circuits)Fidelity10
20
Heron r3Orbit versus raw:
~55% versus ~2%
~10% versus ~0%
27.51x
N/A
Long-range Bell state (dynamic circuits)Fidelity30
60
Heron r2N/A1.78x
1.11x
Surface code
(square lattice)
Logical error probability25Nighthawk r11 round
5 rounds
10 rounds
1.01x
1.15x
1.12x
Surface code
(heavy-hex)
Logical error probability65Heron r31 round
5 rounds
10 rounds
4.11x
2.04x
1.39x
VQEAbsolute error relative to the ideal energy8Heron r3Orbit versus raw:
56mHa versus 1342 mHa
24x
QAOASuccess probability5Heron r2N/A1.46x
[[4,2,2]] code (logical-level error suppression)Entangled Bell-state logical fidelity4Heron r2Average fidelity over 55 μs1.63x

Визначення метрик

  • Точність прихованого бітового рядка Bernstein–Vazirani: Ймовірність вимірювання правильного прихованого бітового рядка. Ця метрика показує, наскільки надійно алгоритм відновлює задане рішення зі збільшенням розміру схеми. У таблиці наведено три найбільші приховані бітові рядки, успішно оцінені за трьох різних конфігурацій: (i) необроблені схеми без Orbit, які досягли 26 кубітів; (ii) схеми лише з транспіляцією, які досягли 60 кубітів; та (iii) схеми, що використовують повний робочий процес Orbit, які досягли 70 кубітів. Для необроблених схем (i) коефіцієнт покращення відображає приріст продуктивності, досягнутий завдяки DD та MEM відносно немодифікованих схем. Для конфігурації лише з транспіляцією (ii) він відображає покращення, досягнуте додаванням DD та MEM до оптимально транспільованих схем. Для повної конфігурації Orbit (iii) базовий коефіцієнт покращення не наводиться, оскільки ненульова ймовірність успіху була отримана лише коли всі компоненти Orbit (транспіляція, DD та MEM) було увімкнено. Ілюстративний приклад наведено нижче.

  • Точність квантового перетворення Фур'є: Для обох реалізацій QFT — унітарної та на динамічних схемах [2] — точність вимірює узгодженість між експериментально реалізованим перетворенням та ідеальним процесом QFT для 20 різних вхідних станів. Динамічні схеми містять значний час простою через вимірювання в середині схеми та класичний feedforward, під час якого динамічне розв'язування може пригнічувати декогерентність. Наведене покращення порівнює точність, отриману з Orbit, з необробленою точністю.

  • Підготовка стану Белла на великій відстані: Створення стану Белла за допомогою динамічних схем та операцій feedforward між двома кубітами, розділеними до 60 проміжних кубітів, демонструючи таким чином ефективне заплутування на великій відстані на локально з'єднаному квантовому обладнанні [3]. Orbit визначає найкращу маршрутизацію кубітів, зберігає кубіти під час вимірювань feedforward та застосовує MEM для пом'якшення похибок зчитування.

  • Ймовірність логічної похибки поверхневого коду: Для поверхневого коду heavy-hex [4] та поверхневого коду на квадратній ґратці [5] було виконано експерименти квантової пам'яті, у яких закодований логічний стан зберігався протягом повторюваних раундів корекції похибок. Ймовірність логічної похибки вимірює ймовірність того, що накопичені похибки призведуть до неправильного відновлення закодованої інформації (нижче значення похибки — краще). Наведене покращення порівнює ймовірність логічної похибки з необроблених схем з тією, що отримана з Orbit.

  • Абсолютна похибка VQE: Використання VQE з оптимізованим унітарним анзацом зв'язаного кластера для оцінки енергії основного стану LiH [6]. Виміряна енергія порівнюється з відповідною ідеальною енергією, отриманою з безшумної схеми. Метрика — абсолютна різниця між виміряною та ідеальною енергіями (нижчі значення — кращі). Наведене покращення:

Improvement factor=ErawEidealEOrbitEideal.\text{Improvement factor} = \frac{|E_{\mathrm{raw}}-E_{\mathrm{ideal}}|} {|E_{\mathrm{Orbit}}-E_{\mathrm{ideal}}|}.

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

  • Ймовірність успіху QAOA: Ймовірність вимірювання бітового рядка, що відповідає оптимальному розв'язку задачі оптимізації, визначеної на графі «метелика». Наведене покращення порівнює ймовірність успіху, отриману з Orbit, з тією, що отримана з необроблених схем.

  • Логічна точність: У логічному експерименті з динамічним розв'язуванням [[4,2,2]] [1] два логічні кубіти було закодовано в чотирьох фізичних кубітах та підготовлено як заплутаний логічний стан Белла. Логічна точність вимірює узгодженість між відновленим закодованим станом та цільовим логічним станом Белла. Наведене покращення порівнює середню логічну точність, отриману з Orbit та виявленням похибок (можливість коду), з тією, що отримана при використанні лише коду.

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

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

# Added by doQumentation — required packages for this notebook
!pip install -q matplotlib qiskit qiskit-ibm-catalog
from qiskit_ibm_catalog import QiskitFunctionsCatalog
from qiskit import QuantumCircuit

catalog = QiskitFunctionsCatalog(channel="ibm_quantum_platform")
# Verify that you have access to the function.
catalog.list()
[QiskitFunction(quantum-elements/orbit)]
# Load the function.
orbit = catalog.load("quantum-elements/orbit")

Приклад

У наступному прикладі побудовано схему Bernstein-Vazirani та надіслано її до Orbit двома способами в одному завданні: необроблене виконання та стандартні налаштування Orbit.

Використовуй цей шаблон, коли хочеш пряме порівняння необробленого виконання та Orbit.

Побудова схеми Bernstein-Vazirani

Вибери прихований бітовий рядок і побудуй логічну схему. Додатковий кубіт — це ціль оракула, тоді як вхідні кубіти вимірюються.

def create_bv_circuit(hidden_bitstring: str) -> QuantumCircuit:
width = len(hidden_bitstring)
circuit = QuantumCircuit(width + 1, width)

circuit.x(width)
circuit.h(range(width + 1))

for input_qubit, bit in enumerate(reversed(hidden_bitstring)):
if bit == "1":
circuit.cx(input_qubit, width)

circuit.barrier()
circuit.h(range(width + 1))
circuit.measure(range(width), range(width))
return circuit

circuit_width = 50
hidden_bitstring = "1" * circuit_width
shots = 4096

bv_circuit = create_bv_circuit(hidden_bitstring)
bv_circuit.count_ops()
OrderedDict([('h', 102),
('cx', 50),
('measure', 50),
('x', 1),
('barrier', 1)])

Підготовка робочого навантаження Orbit

Створи один Sampler PUB, потім продублюй його для двох режимів порівняння. Orbit отримує логічну схему та відображає її на обраний бекенд під час виконання.

base_pub = (bv_circuit, None, shots)
comparison_labels = ["raw", "orbit"]
pubs = [base_pub] * len(comparison_labels)

Запуск необробленого виконання та стандартних налаштувань Orbit

pub_options призначає перший PUB режиму raw, який пропускає оптимізацію Orbit, DD та MEM, і призначає другий PUB стандартним налаштуванням Orbit, які включають оптимізовану транспіляцію, автоматизоване вставлення динамічного розв'язування (DD) та пом'якшення похибок вимірювання (MEM).

backend_name = "ibm_kingston"

job = orbit.run(
primitive="sampler",
pubs=pubs,
backend_name=backend_name,
options={
"pub_options": [
{"mode": "raw"},
{"mode": "orbit"},
],
"save_backend_info": True,
},
)

# Check the job ID and status
print(job.job_id)
print(job.status())
c0f1b99c-8dfa-4ebb-9560-d9a37c990acc
QUEUED

Отримай результат та порівняй необроблені та покращені Orbit схеми, використовуючи підрахунки. Для результатів Sampler get_counts() для повернутого класичного регістра надає гістограму результатів. Коли MEM успішно застосовується для PUB Orbit, ця гістограма вже скоригована за MEM; непом'якшені підрахунки залишаються доступними в метаданих Orbit під measurementErrorMitigation["rawCounts"].

def extract_counts(pub_result) -> dict[str, int]:
data = getattr(pub_result, "data", None)
if data is None:
raise TypeError("pub_result.data is missing")

for name in dir(data):
if name.startswith("_"):
continue
register = getattr(data, name)
get_counts = getattr(register, "get_counts", None)
if callable(get_counts):
counts = get_counts()
if counts:
return counts

raise TypeError(
"No classical register with get_counts() found in pub_result.data"
)

result = job.result()
if len(result) != len(comparison_labels):
raise RuntimeError(
f"Expected {len(comparison_labels)} PUB results, received {len(result)}."
)

comparison_counts = {
label: extract_counts(pub_result)
for label, pub_result in zip(comparison_labels, result, strict=True)
}
correct_counts = {
label: counts.get(hidden_bitstring, 0)
for label, counts in comparison_counts.items()
}

print(
{
"hidden_bitstring": hidden_bitstring,
"correct_counts": correct_counts,
"shots": shots,
}
)
{'hidden_bitstring': '11111111111111111111111111111111111111111111111111', 'correct_counts': {'raw': 0, 'orbit': 184}, 'shots': 4096}

Зроби візуальне порівняння необроблених та покращених Orbit схем.

import matplotlib.pyplot as plt

labels = list(correct_counts)
values = list(correct_counts.values())
fig, ax = plt.subplots(figsize=(7, 4))
bars = ax.bar(labels, values, width=0.55)
ax.bar_label(bars, labels=[f"{value:g}" for value in values], padding=3)
ax.set_xlabel("Circuit execution mode")
ax.set_ylabel("Correct hidden-bitstring count")
ax.set_title(f"{circuit_width}-qubit Bernstein-Vazirani on {backend_name}")
ax.set_ylim(0, max(1, 1.15 * max(values)))
ax.grid(axis="y", alpha=0.25)
fig.tight_layout()
plt.show()

Output of the previous code cell

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

Звернися до служби підтримки Quantum Elements: info@quantumelements.ai

Обов'язково вкажи наступну інформацію:

  • ID завдання Qiskit Function (qiskit-ibm-catalog), job.job_id

  • Назва бекенда

  • pub_options Orbit, використані для режимів raw та Orbit

  • Детальний опис проблеми

  • Будь-які відповідні повідомлення про помилки або коди

  • Кроки для відтворення проблеми

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

Recommendations
  • Спробуй інший бекенд, кількість кубітів або інший прихований бітовий рядок.

  • Прочитай наш посібник з квантового перетворення Фур'є, щоб дізнатися, як визначати власні стратегії DD із підтримкою Orbit, а також застосовувати DD до динамічних схем із вимірюваннями в середині схеми та операціями feedforward.

  • Відвідай довідник API для детального опису всіх параметрів Orbit.

Посилання

  1. Logical-level error suppression combined with Quantum Error Detection, Nature Communications (2026)

  2. Quantum Fourier Transform Using Dynamic Circuits, Physical Review Letters (2024)

  3. Efficient Long-Range Entanglement Using Dynamic Circuits, PRX Quantum (2024)

  4. Surface code scaling experiments on IBM Heron with heavy-hex connectivity, arXiv:2510.18847

  5. Surface code experiments on IBM Nighthawk with square-lattice connectivity, arXiv:2606.11496

  6. VQE benchmark reference, Nature Physics (2024)