Lewati ke konten utama

Orbit - sebuah Qiskit Function oleh Quantum Elements

Lihat referensi API

Note

Qiskit Functions adalah fitur eksperimental yang hanya tersedia untuk pengguna IBM Quantum® Premium Plan, Flex Plan, dan On-Prem (melalui IBM Quantum Platform API) Plan. Fitur ini berstatus preview release dan dapat berubah sewaktu-waktu.

Ikhtisar

Perangkat keras kuantum terus berkembang, tetapi noise dan dekoherensi masih membatasi kedalaman dan keandalan circuit kuantum praktis. Di antara pendekatan yang tersedia, tiga teknik komplementer dapat secara substansial mengurangi keterbatasan ini: dynamical decoupling (DD), transpilasi yang dioptimalkan, dan mitigasi error pengukuran (MEM). Transpilasi yang dioptimalkan mengurangi kedalaman circuit dan lebih menyelaraskan circuit dengan konektivitas perangkat keras target, DD menekan noise waktu idle melalui urutan kontrol yang dirancang dengan cermat, dan MEM mengurangi efek error readout dan dapat diterapkan selama post-processing.

Memilih strategi DD yang efektif merupakan hal yang sangat tidak sepele karena tersedia banyak keluarga sequence, dan sequence yang bekerja baik untuk satu circuit atau lingkungan noise tertentu mungkin tidak bekerja baik untuk yang lain. Manfaat dari transpilasi, DD, dan MEM bergantung pada masalah, hardware, dan workload; digunakan secara individual atau kombinasi, mereka bisa meningkatkan performa, tetapi tidak selalu bermanfaat secara universal di setiap konfigurasi.

Orbit, sebuah Qiskit Function yang dikembangkan oleh Quantum Elements, secara mulus menggabungkan ketiga komponen ini ke dalam satu workflow terpadu, membuatnya mudah digunakan untuk meningkatkan eksekusi circuit pada hardware IBM Quantum. Dalam bentuk utamanya, Orbit secara otomatis menerapkan strategi penekanan error aktif yang melindungi keadaan kuantum selama periode idle, sambil tetap mempertahankan logika circuit asli. Perlu dicatat, hal ini dilakukan tanpa menambahkan waktu pre-processing kuantum atau klasik tambahan apapun, sehingga menghindari biaya tambahan atau waktu tunggu yang tidak perlu dalam workflow.

Alih-alih beroperasi sebagai black box, Orbit memungkinkan pengguna untuk mengevaluasi dan menyesuaikan komponen optimasinya untuk eksperimen tertentu. Pengguna bisa secara independen mengaktifkan atau menonaktifkan transpilasi yang dioptimalkan, DD, dan MEM; membandingkan pemilihan DD otomatis dengan sequence yang ditentukan pengguna; dan menjalankan beberapa konfigurasi dalam workflow yang sama. Dengan membandingkan setiap konfigurasi dengan circuit mentah, pengguna bisa menentukan teknik mana yang memberikan manfaat terukur untuk circuit dan backend mereka, mengidentifikasi interaksi antara berbagai metode optimasi, dan memilih konfigurasi yang paling mendukung tujuan eksperimen mereka. Proses ini membantu pengguna memahami dari mana peningkatan performa berasal dan membuat keputusan yang lebih tepat saat mengoptimalkan circuit kuantum untuk workload tertentu.

Deskripsi

Orbit dirancang untuk meningkatkan eksekusi circuit kuantum pada backend IBM Quantum. Dalam mode otomatis, pengguna bisa secara mulus menerapkan sequence DD orde tinggi yang robust tanpa perlu memilih atau mengonfigurasinya secara manual. Pengguna tingkat lanjut sebaliknya bisa bereksperimen dengan sequence orde tinggi yang tersedia untuk mengidentifikasi dan mengoptimalkan pendekatan yang memberikan performa terbaik untuk circuit tertentu.

Orbit juga menyediakan MEM secara instan tanpa memerlukan job tambahan yang biasanya dibutuhkan untuk workflow kalibrasi dan mitigasi yang terpisah. Untuk workload di mana transpilasi tidak boleh mengubah struktur circuit, seperti circuit koreksi error kuantum dengan pengukuran mid-circuit atau dynamic circuit, Orbit bisa menerapkan DD dan MEM tanpa mengganggu strategi transpilasi yang sudah dimiliki pengguna. Bagi pengguna yang belum memiliki pendekatan yang disukai, Orbit juga menyertakan transpiler bawaan untuk mengoptimalkan circuit bagi hardware target sebelum menerapkan teknik penekanan error dan mitigasi readout.

Berbeda dengan pendekatan yang bergantung pada sampling circuit tambahan, ekstrapolasi, atau post-processing klasik yang ekstensif, Orbit berfokus pada penekanan error selama eksekusi. Fungsi ini dirancang untuk menghasilkan overhead yang rendah sambil tetap mempertahankan logika circuit asli. Pengguna bisa memeriksa circuit yang dihasilkan dan langsung membandingkan eksekusi yang dioptimalkan Orbit dengan eksekusi standar.

Workflow Orbit yang praktis adalah:

  1. Definisikan circuit kuantum dan pilih Orbit melalui Qiskit Functions Catalog.

  2. Sertakan circuit tanpa Orbit menggunakan mode 'Raw' untuk menetapkan baseline circuit mentah.

  3. Pilih strategi optimasi mana yang akan diterapkan, termasuk sequence DD otomatis atau yang dipilih pengguna, MEM, dan transpilasi yang dioptimalkan.

  4. Aktifkan atau nonaktifkan metode secara individual, atau kirimkan beberapa konfigurasi, untuk mengevaluasi efeknya secara terpisah maupun gabungan.

Orbit sangat berguna untuk circuit yang mengandung periode idle atau celah penjadwalan di mana qubit tidak berpartisipasi aktif dalam gate. Orbit mendukung circuit statis dan dinamis, termasuk workflow dengan pengukuran mid-circuit dan eksperimen komputasi kuantum toleran terhadap kesalahan. Aplikasi umum meliputi koreksi error kuantum, eksperimen surface-code pada lattice persegi dan heavy-hex, algoritma oracular seperti Bernstein-Vazirani, circuit transformasi Fourier, algoritma kuantum variasional, simulasi Hamiltonian, eksperimen benchmarking, dan optimasi circuit yang sadar hardware.

Melihat ke depan menuju era toleransi kesalahan, Orbit juga kompatibel dengan workflow komputasi kuantum toleran terhadap kesalahan, karena bisa dikombinasikan secara mulus dengan koreksi error kuantum. Dalam jangka panjang, Orbit mengarah pada dynamical decoupling tingkat logis [1] sebagai jalur masa depan untuk melindungi qubit logis. Pada contoh di bawah ini, dua qubit logis di-entangle untuk menciptakan keadaan Bell logis di bawah deteksi error kuantum. Deteksi error kuantum saja menyebabkan fidelitas keadaan Bell meluruh hingga sekitar 44% selama puluhan mikrodetik, sedangkan QED yang dikombinasikan dengan perlindungan gaya Orbit menjaga fidelitas keadaan Bell logis tetap dekat puncak skala, mencapai sekitar 95,3% dalam rentang waktu yang sama. Orbit Quantum Circuit Development Platform

Benchmark

Hasil berikut merangkum eksekusi Orbit yang representatif pada hardware IBM Quantum. Seperti halnya benchmark hardware lainnya, hasil bergantung pada perangkat yang dipilih, status kalibrasi, circuit, dan pengaturan eksekusi.

ContohMetrikQubitQPUDetail tambahanPeningkatan Orbit
Bernstein–VaziraniFidelitas bitstring tersembunyi26
60
70
Heron r3Raw versus Full Orbit,
Transpilasi saja versus Full Orbit,
Hanya Full Orbit
75x
66x
N/A
QFT (unitary)Fidelitas10Heron r2
Heron r3
Orbit versus raw:
~44% versus ~35%
~67% versus ~61%
1.26x
1.09x
QFT (dynamic circuits)Fidelitas10
20
Heron r3Orbit versus raw:
~55% versus ~2%
~10% versus ~0%
27.51x
N/A
Long-range Bell state (dynamic circuits)Fidelitas30
60
Heron r2N/A1.78x
1.11x
Surface code
(square lattice)
Probabilitas error logis25Nighthawk r11 ronde
5 ronde
10 ronde
1.01x
1.15x
1.12x
Surface code
(heavy-hex)
Probabilitas error logis65Heron r31 ronde
5 ronde
10 ronde
4.11x
2.04x
1.39x
VQEError absolut relatif terhadap energi ideal8Heron r3Orbit versus raw:
56mHa versus 1342 mHa
24x
QAOAProbabilitas keberhasilan5Heron r2N/A1.46x
[[4,2,2]] code (logical-level error suppression)Entangled Bell-state logical fidelity4Heron r2Average fidelity over 55 μs1.63x

Definisi metrik

  • Fidelitas bitstring tersembunyi Bernstein–Vazirani: Probabilitas mengukur bitstring tersembunyi yang benar. Metrik ini menunjukkan seberapa andal algoritma memulihkan solusi yang dimaksud seiring bertambahnya ukuran circuit. Tabel melaporkan tiga bitstring tersembunyi terbesar yang berhasil dievaluasi di bawah tiga konfigurasi berbeda: (i), circuit mentah tanpa Orbit, yang mencapai 26 qubit; (ii), circuit dengan transpilasi saja, yang mencapai 60 qubit; dan (iii), circuit menggunakan workflow Orbit penuh, yang mencapai 70 qubit. Untuk circuit mentah (i), faktor peningkatan mewakili keuntungan performa yang dicapai oleh DD dan MEM relatif terhadap circuit yang tidak dimodifikasi. Untuk konfigurasi transpilasi saja (ii), faktor tersebut mewakili peningkatan yang dicapai dengan menambahkan DD dan MEM ke circuit yang telah ditranspilasi secara optimal. Untuk konfigurasi Orbit penuh (iii), tidak ada faktor peningkatan baseline yang dilaporkan karena probabilitas keberhasilan yang bukan nol hanya diperoleh ketika semua komponen Orbit (transpilasi, DD, dan MEM) diaktifkan. Contoh ilustratif diberikan di bawah ini.

  • Fidelitas transformasi Fourier kuantum: Untuk implementasi QFT baik unitary maupun dynamic circuit [2], fidelitas mengukur kesesuaian antara transformasi yang diimplementasikan secara eksperimental dan proses QFT ideal pada 20 keadaan input yang berbeda. Dynamic circuit mengandung waktu idle yang cukup besar akibat pengukuran mid-circuit dan feedforward klasik, di mana dynamical decoupling bisa menekan dekoherensi selama periode tersebut. Peningkatan yang dilaporkan membandingkan fidelitas yang diperoleh dengan Orbit terhadap fidelitas mentah.

  • Persiapan keadaan Bell jarak jauh: Menciptakan keadaan Bell menggunakan dynamic circuit dan operasi feedforward antara dua qubit yang dipisahkan oleh hingga 60 qubit perantara, sehingga mendemonstrasikan entanglement jarak jauh yang efisien pada hardware kuantum dengan konektivitas lokal [3]. Orbit mengidentifikasi routing qubit terbaik, mempertahankan qubit selama pengukuran feedforward, dan menerapkan MEM untuk memitigasi error readout.

  • Probabilitas error logis surface-code: Untuk surface code heavy-hex [4] dan surface code lattice persegi [5], eksperimen memori kuantum dilakukan di mana keadaan logis yang dikodekan dipertahankan selama beberapa ronde koreksi error berulang. Probabilitas error logis mengukur probabilitas bahwa error yang terakumulasi menyebabkan informasi yang dikodekan dipulihkan secara tidak benar (error yang lebih rendah lebih baik). Peningkatan yang dilaporkan membandingkan probabilitas error logis dari circuit mentah dengan yang diperoleh menggunakan Orbit.

  • Error absolut VQE: Menggunakan VQE dengan ansatz unitary coupled-cluster yang dioptimalkan untuk memperkirakan energi ground-state dari LiH [6]. Energi yang diukur dibandingkan dengan energi ideal yang sesuai yang diperoleh dari circuit tanpa noise. Metrik ini adalah selisih absolut antara energi yang diukur dan energi ideal (nilai yang lebih rendah lebih baik). Peningkatan yang dilaporkan adalah:

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

Nilai yang lebih besar dari satu menunjukkan bahwa Orbit mengurangi error energi relatif terhadap eksekusi tanpa dynamical decoupling.

  • Probabilitas keberhasilan QAOA: Probabilitas mengukur bitstring yang sesuai dengan solusi optimal dari masalah optimasi yang didefinisikan pada graf butterfly. Peningkatan yang dilaporkan membandingkan probabilitas keberhasilan yang diperoleh dengan Orbit terhadap yang diperoleh dari circuit mentah.

  • Fidelitas logis: Dalam eksperimen dynamical decoupling logis [[4,2,2]] [1], dua qubit logis dikodekan ke dalam empat qubit fisik dan disiapkan sebagai keadaan Bell logis yang di-entangle. Fidelitas logis mengukur kesesuaian antara keadaan yang dikodekan yang dipulihkan dan keadaan Bell logis target. Peningkatan yang dilaporkan membandingkan fidelitas logis rata-rata yang diperoleh dengan Orbit dan deteksi error (kapabilitas kode) terhadap yang diperoleh saat hanya menggunakan kode saja.

Mulai

Autentikasi menggunakan IBM Quantum Platform API key kamu, dan pilih fungsi Orbit sebagai berikut. Snippet ini mengasumsikan kamu sudah menyimpan akunmu ke environment lokalmu.

# 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")

Contoh

Contoh berikut membangun circuit Bernstein-Vazirani dan mengirimkannya ke Orbit dengan dua cara dalam satu job: eksekusi mentah dan default Orbit.

Gunakan pola ini ketika kamu ingin perbandingan langsung antara mentah dan Orbit.

Bangun circuit Bernstein-Vazirani

Pilih bitstring tersembunyi dan bangun circuit logis. Qubit tambahan adalah target oracle, sedangkan qubit input diukur.

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)])

Siapkan workload Orbit

Buat satu Sampler PUB, lalu duplikasi untuk dua mode perbandingan. Orbit menerima circuit logis dan memetakannya ke backend yang dipilih selama eksekusi.

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

Jalankan mentah dan default Orbit

pub_options menetapkan PUB pertama ke mode mentah, yang melewati optimasi Orbit, DD, dan MEM, dan menetapkan PUB kedua ke default Orbit, yang mencakup transpilasi yang dioptimalkan, penyisipan dynamical decoupling (DD) otomatis, dan mitigasi error pengukuran (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

Ambil hasil dan bandingkan circuit mentah dan circuit yang ditingkatkan Orbit menggunakan counts. Untuk hasil Sampler, get_counts() pada classical register yang dikembalikan memberikan histogram output. Ketika MEM berhasil untuk PUB Orbit, histogram ini sudah dikoreksi MEM; counts yang belum dimitigasi tetap tersedia dalam metadata Orbit di bawah 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}

Buat perbandingan visual antara circuit mentah dan circuit yang ditingkatkan 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

Dapatkan dukungan

Hubungi dukungan Quantum Elements: info@quantumelements.ai

Pastikan untuk menyertakan informasi berikut:

  • ID Job Qiskit Function (qiskit-ibm-catalog), job.job_id

  • Nama backend

  • pub_options Orbit yang digunakan untuk mode mentah dan Orbit

  • Deskripsi terperinci tentang masalah

  • Pesan atau kode error yang relevan

  • Langkah-langkah untuk mereproduksi masalah

Langkah selanjutnya

Rekomendasi
  • Coba backend, jumlah qubit, atau bitstring tersembunyi lain yang berbeda.

  • Baca tutorial kami tentang transformasi Fourier kuantum untuk mempelajari cara mendefinisikan strategi DD kustom di dalam Orbit, serta menerapkan DD pada dynamic circuit dengan pengukuran mid-circuit dan operasi feedforward.

  • Kunjungi referensi API untuk deskripsi terperinci semua opsi Orbit.

Referensi

  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)