Orbit — Qiskit Function від Quantum Elements
Див. довідник API
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 виглядає так:
-
Визнач квантову схему та вибери Orbit через Каталог Qiskit Functions.
-
Додай схему без Orbit, використовуючи режим Raw, щоб встановити базову лінію для необробленої схеми.
-
Вибери, які стратегії оптимізації застосовувати, включно з автоматизованими або обраними користувачем послідовностями DD, MEM та оптимізованою транспіляцією.
-
Увімкни або вимкни окремі методи, або надішли кілька конфігурацій, щоб оцінити їхній окремий та комбінований ефекти.
Orbit особливо корисна для схем, що містять періоди простою чи прогалини в розкладі, коли кубіти не беруть активної участі в гейтах. Вона підтримує статичні та динамічні схеми, включно з робочими процесами з вимірюваннями в середині схеми та експериментами з відмовостійких квантових обчислень. Типові застосування включають квантову корекцію похибок, експерименти з поверхневим кодом на квадратних та heavy-hex ґратках, оракульні алгоритми, такі як Bernstein-Vazirani, схеми перетворення Фур'є, варіаційні квантові алгоритми, симуляцію гамільтоніана, бенчмаркінгові експерименти та апаратно-орієнтовану оптимізацію схем.
Дивлячись у майбутнє в еру відмовостійкості, Orbit також сумісна з робочими процесами відмовостійких квантових обчислень, оскільки її можна безшовно поєднати з квантовою корекцією похибок. У довгостроковій перспективі Orbit вказує на логічне динамічне розв'язування [1] як на перспективний шлях захисту логічних кубітів. У наведеному нижче прикладі два логічні кубіти було заплутано для створення логічного стану Белла в умовах квантового виявлення похибок. Саме лише квантове виявлення похибок призвело до того, що точність стану Белла спадала приблизно до 44% протягом десятків мікросекунд, тоді як QED у поєднанні із захистом у стилі Orbit утримувало точність логічного стану Белла близько верхньої межі шкали, досягаючи приблизно 95,3% в тому самому часовому вікні.

Бенчмарки
Наступні результати підсумовують репрезентативні запуски Orbit на квантовому обладнанні IBM Quantum. Як і з іншими апаратними бенчмарками, результати залежать від обраного пристрою, стану калібрування, схеми та налаштувань виконання.
| Приклад | Метрика | Кубіти | QPU | Додаткові деталі | Покращення Orbit |
|---|---|---|---|---|---|
| Bernstein–Vazirani | Hidden-bitstring fidelity | 26 60 70 | Heron r3 | Raw versus Full Orbit, Transpilation only versus Full Orbit, Full Orbit Only | 75x 66x N/A |
| QFT (unitary) | Fidelity | 10 | Heron r2 Heron r3 | Orbit versus raw: ~44% versus ~35% ~67% versus ~61% | 1.26x 1.09x |
| QFT (dynamic circuits) | Fidelity | 10 20 | Heron r3 | Orbit versus raw: ~55% versus ~2% ~10% versus ~0% | 27.51x N/A |
| Long-range Bell state (dynamic circuits) | Fidelity | 30 60 | Heron r2 | N/A | 1.78x 1.11x |
| Surface code (square lattice) | Logical error probability | 25 | Nighthawk r1 | 1 round 5 rounds 10 rounds | 1.01x 1.15x 1.12x |
| Surface code (heavy-hex) | Logical error probability | 65 | Heron r3 | 1 round 5 rounds 10 rounds | 4.11x 2.04x 1.39x |
| VQE | Absolute error relative to the ideal energy | 8 | Heron r3 | Orbit versus raw: 56mHa versus 1342 mHa | 24x |
| QAOA | Success probability | 5 | Heron r2 | N/A | 1.46x |
[[4,2,2]] code (logical-level error suppression) | Entangled Bell-state logical fidelity | 4 | Heron r2 | Average fidelity over 55 μs | 1.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]. Виміряна енергія порівнюється з відповідною ідеальною енергією, отриманою з безшумної схеми. Метрика — абсолютна різниця між виміряною та ідеальною енергіями (нижчі значення — кращі). Наведене покращення:
Значення, більші за одиницю, вказують на те, що 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()
Отримання підтримки
Звернися до служби підтримки Quantum Elements: info@quantumelements.ai
Обов'язково вкажи наступну інформацію:
-
ID завдання Qiskit Function (
qiskit-ibm-catalog),job.job_id -
Назва бекенда
-
pub_optionsOrbit, використані для режимів raw та Orbit -
Детальний опис проблеми
-
Будь-які відповідні повідомлення про помилки або коди
-
Кроки для відтворення проблеми
Наступні кроки
-
Спробуй інший бекенд, кількість кубітів або інший прихований бітовий рядок.
-
Прочитай наш посібник з квантового перетворення Фур'є, щоб дізнатися, як визначати власні стратегії DD із підтримкою Orbit, а також застосовувати DD до динамічних схем із вимірюваннями в середині схеми та операціями feedforward.
-
Відвідай довідник API для детального опису всіх параметрів Orbit.
Посилання
-
Logical-level error suppression combined with Quantum Error Detection, Nature Communications (2026)
-
Quantum Fourier Transform Using Dynamic Circuits, Physical Review Letters (2024)
-
Efficient Long-Range Entanglement Using Dynamic Circuits, PRX Quantum (2024)
-
Surface code scaling experiments on IBM Heron with heavy-hex connectivity, arXiv:2510.18847
-
Surface code experiments on IBM Nighthawk with square-lattice connectivity, arXiv:2606.11496