Orbit - Fungsi Qiskit oleh Quantum Elements
Lihat rujukan API
Fungsi Qiskit ialah ciri eksperimen yang hanya tersedia kepada pengguna IBM Quantum® Premium Plan, Flex Plan, dan On-Prem (melalui IBM Quantum Platform API) Plan. Ia berstatus keluaran pratonton dan tertakluk kepada perubahan.
Gambaran keseluruhan
Perkakasan kuantum terus maju, tetapi bunyi bising dan dekoheren masih mengehadkan kedalaman dan kebolehpercayaan litar kuantum praktikal. Antara pendekatan yang ada, tiga teknik pelengkap boleh mengurangkan had ini dengan ketara: decoupling dinamik (DD), transpilasi yang dioptimumkan, dan mitigasi ralat pengukuran (MEM). Transpilasi yang dioptimumkan mengurangkan kedalaman litar dan menyelaraskan litar dengan lebih baik dengan konektiviti perkakasan sasaran, DD menyekat bunyi bising masa terbiar melalui jujukan kawalan yang direka dengan teliti, dan MEM mengurangkan kesan ralat pembacaan dan boleh diaplikasikan semasa pasca-pemprosesan.
Memilih strategi DD yang berkesan adalah sangat tidak remeh kerana banyak keluarga jujukan tersedia, dan jujukan yang berprestasi baik untuk satu litar atau persekitaran bunyi bising mungkin tidak berprestasi baik untuk yang lain. Manfaat transpilasi, DD, dan MEM bergantung pada masalah, perkakasan, dan beban kerja; digunakan secara berasingan atau gabungan, ia boleh meningkatkan prestasi, tetapi ia tidak semestinya bermanfaat secara sejagat dalam setiap konfigurasi.
Orbit, Fungsi Qiskit yang dibangunkan oleh Quantum Elements, menggabungkan ketiga-tiga komponen ini dengan lancar ke dalam satu aliran kerja bersatu, menjadikannya mudah digunakan untuk menambah baik pelaksanaan litar pada perkakasan IBM Quantum. Dalam bentuk utamanya, Orbit secara automatik mengaplikasikan strategi penyekatan ralat aktif yang melindungi keadaan kuantum semasa tempoh terbiar, sambil mengekalkan logik litar asal. Yang menariknya, ia melakukan ini tanpa memperkenalkan sebarang masa pra-pemprosesan kuantum atau klasik tambahan, sekali gus mengelakkan kos tambahan atau masa menunggu yang tidak perlu dalam aliran kerja.
Berbanding beroperasi sebagai kotak hitam, Orbit membenarkan pengguna menilai dan memperhalusi komponen pengoptimuman untuk eksperimen tertentu. Pengguna boleh mendayakan atau melumpuhkan secara berasingan transpilasi yang dioptimumkan, DD, dan MEM; membandingkan pemilihan DD automatik dengan jujukan yang ditentukan pengguna; dan melaksanakan pelbagai konfigurasi dalam aliran kerja yang sama. Dengan membandingkan setiap konfigurasi dengan litar mentah, pengguna boleh menentukan teknik mana yang memberikan manfaat terukur untuk litar dan Backend mereka, mengenal pasti interaksi antara kaedah pengoptimuman yang berbeza, dan memilih konfigurasi yang paling menyokong objektif eksperimen mereka. Proses ini membimbing pengguna memahami dari mana peningkatan prestasi berasal dan membuat keputusan yang lebih termaklum apabila mengoptimumkan litar kuantum untuk beban kerja tertentu.
Penerangan
Orbit direka untuk meningkatkan pelaksanaan litar kuantum pada Backend IBM Quantum. Dalam mod automatik, pengguna boleh mengaplikasikan jujukan DD yang berperingkat tinggi dan mantap dengan lancar tanpa perlu memilih atau mengkonfigurasinya secara manual. Pengguna lanjutan boleh sebaliknya bereksperimen dengan jujukan berperingkat tinggi yang tersedia untuk mengenal pasti dan mengoptimumkan pendekatan yang memberikan prestasi terbaik untuk litar tertentu.
Orbit juga menyediakan MEM segera tanpa memerlukan kerja tambahan yang biasanya diperlukan untuk aliran kerja penentukuran dan mitigasi berasingan. Untuk beban kerja di mana transpilasi tidak sepatutnya mengubah struktur litar, seperti litar pembetulan ralat kuantum dengan pengukuran mid-circuit atau litar dinamik, Orbit boleh mengaplikasikan DD dan MEM tanpa mengganggu strategi transpilasi sedia ada pengguna. Untuk pengguna yang belum mempunyai pendekatan pilihan, Orbit juga merangkumi Transpiler terbina dalam untuk mengoptimumkan litar untuk perkakasan sasaran sebelum mengaplikasikan teknik penyekatan ralat dan mitigasi pembacaan.
Berbeza daripada pendekatan yang bergantung pada persampelan litar tambahan, ekstrapolasi, atau pasca-pemprosesan klasik yang meluas, Orbit menumpukan pada menyekat ralat semasa pelaksanaan. Fungsi ini direka untuk memperkenalkan overhed yang rendah sambil mengekalkan logik litar asal. Pengguna boleh memeriksa litar yang terhasil dan membandingkan secara langsung pelaksanaan yang dioptimumkan oleh Orbit dengan pelaksanaan standard.
Aliran kerja Orbit praktikal adalah:
-
Tentukan Circuit kuantum dan pilih Orbit melalui Katalog Fungsi Qiskit.
-
Sertakan litar tanpa Orbit menggunakan mod 'Raw' untuk menetapkan garis dasar litar mentah.
-
Pilih strategi pengoptimuman mana yang hendak diaplikasikan, termasuk jujukan DD automatik atau yang dipilih pengguna, MEM, dan transpilasi yang dioptimumkan.
-
Dayakan atau lumpuhkan kaedah individu, atau serahkan pelbagai konfigurasi, untuk menilai kesan berasingan dan gabungan mereka.
Orbit amat berguna untuk litar yang mengandungi tempoh terbiar atau jurang penjadualan di mana Qubit tidak aktif mengambil bahagian dalam Gate. Ia menyokong litar statik dan dinamik, termasuk aliran kerja dengan pengukuran mid-circuit dan eksperimen pengkomputeran kuantum toleransi kesalahan. Aplikasi biasa termasuk pembetulan ralat kuantum, eksperimen kod permukaan pada kekisi segi empat dan heavy-hex, algoritma oracular seperti Bernstein-Vazirani, litar transformasi Fourier, algoritma kuantum berbeza-beza, simulasi Hamiltonian, eksperimen penanda aras, dan pengoptimuman litar sedar-perkakasan.
Melihat ke hadapan pada era toleransi kesalahan, Orbit juga serasi dengan aliran kerja pengkomputeran kuantum toleransi kesalahan, kerana ia boleh digabungkan dengan lancar dengan pembetulan ralat kuantum. Dalam jangka panjang, Orbit menuju ke arah decoupling dinamik peringkat logik [1] sebagai laluan masa depan untuk melindungi Qubit logik. Dalam contoh di bawah, dua Qubit logik dibelit untuk mencipta keadaan Bell logik di bawah pengesanan ralat kuantum. Pengesanan ralat kuantum sahaja menyebabkan kesetiaan keadaan Bell merosot kepada kira-kira 44% sepanjang puluhan mikrosaat, manakala QED digabungkan dengan perlindungan gaya Orbit mengekalkan kesetiaan keadaan Bell logik hampir ke puncak skala, mencapai kira-kira 95.3% sepanjang tempoh masa yang sama.

Penanda aras
Keputusan berikut merumuskan larian Orbit yang mewakili pada perkakasan IBM Quantum. Seperti penanda aras perkakasan lain, keputusan bergantung pada peranti yang dipilih, keadaan penentukuran, litar, dan tetapan pelaksanaan.
| Contoh | Metrik | Qubit | QPU | Butiran tambahan | Peningkatan Orbit |
|---|---|---|---|---|---|
| Bernstein–Vazirani | Kesetiaan bitstring tersembunyi | 26 60 70 | Heron r3 | Mentah berbanding Full Orbit, Hanya transpilasi berbanding Full Orbit, Full Orbit sahaja | 75x 66x N/A |
| QFT (unitary) | Kesetiaan | 10 | Heron r2 Heron r3 | Orbit berbanding mentah: ~44% berbanding ~35% ~67% berbanding ~61% | 1.26x 1.09x |
| QFT (litar dinamik) | Kesetiaan | 10 20 | Heron r3 | Orbit berbanding mentah: ~55% berbanding ~2% ~10% berbanding ~0% | 27.51x N/A |
| Keadaan Bell jarak jauh (litar dinamik) | Kesetiaan | 30 60 | Heron r2 | N/A | 1.78x 1.11x |
| Kod permukaan (kekisi segi empat sama) | Kebarangkalian ralat logik | 25 | Nighthawk r1 | 1 pusingan 5 pusingan 10 pusingan | 1.01x 1.15x 1.12x |
| Kod permukaan (heavy-hex) | Kebarangkalian ralat logik | 65 | Heron r3 | 1 pusingan 5 pusingan 10 pusingan | 4.11x 2.04x 1.39x |
| VQE | Ralat mutlak berbanding tenaga unggul | 8 | Heron r3 | Orbit berbanding mentah: 56mHa berbanding 1342 mHa | 24x |
| QAOA | Kebarangkalian kejayaan | 5 | Heron r2 | N/A | 1.46x |
Kod [[4,2,2]] (penindasan ralat peringkat logik) | Kesetiaan logik keadaan-Bell terjalin | 4 | Heron r2 | Kesetiaan purata sepanjang 55 μs | 1.63x |
Definisi metrik
-
Kesetiaan bitstring tersembunyi Bernstein–Vazirani: Kebarangkalian mengukur bitstring tersembunyi yang betul. Metrik ini menunjukkan sejauh mana algoritma boleh dipercayai memperoleh semula penyelesaian yang dimaksudkan apabila saiz litar meningkat. Jadual melaporkan tiga bitstring tersembunyi terbesar yang berjaya dinilai di bawah tiga konfigurasi berbeza: (i), litar mentah tanpa Orbit, yang mencapai 26 Qubit; (ii), litar dengan transpilasi sahaja, yang mencapai 60 Qubit; dan (iii), litar menggunakan aliran kerja Orbit penuh, yang mencapai 70 Qubit. Untuk litar mentah (i), faktor peningkatan mewakili peningkatan prestasi yang dicapai oleh DD dan MEM berbanding litar yang tidak diubah suai. Untuk konfigurasi transpilasi sahaja (ii), ia mewakili peningkatan yang dicapai dengan menambah DD dan MEM kepada litar yang ditranspilkan secara optimum. Untuk konfigurasi Orbit penuh (iii), tiada faktor peningkatan garis dasar dilaporkan kerana kebarangkalian kejayaan bukan sifar hanya diperoleh apabila semua komponen Orbit (transpilasi, DD, dan MEM) didayakan. Contoh ilustrasi disediakan di bawah.
-
Kesetiaan transformasi Fourier kuantum: Untuk kedua-dua pelaksanaan QFT litar unitari dan dinamik [2], kesetiaan mengukur persetujuan antara transformasi yang dilaksanakan secara eksperimen dengan proses QFT ideal ke atas 20 keadaan input yang berbeza. Litar dinamik mengandungi masa terbiar yang besar disebabkan pengukuran mid-circuit dan maklum balas hadapan klasik, di mana decoupling dinamik boleh menyekat dekoheren. Peningkatan yang dilaporkan membandingkan kesetiaan yang diperoleh dengan Orbit kepada kesetiaan mentah.
-
Penyediaan keadaan Bell julat jauh: Mencipta keadaan Bell menggunakan litar dinamik dan operasi maklum balas hadapan antara dua Qubit yang dipisahkan sehingga 60 Qubit perantaraan, sekali gus menunjukkan belitan julat jauh yang cekap pada perkakasan kuantum yang bersambung secara tempatan [3]. Orbit mengenal pasti penghalaan Qubit terbaik, mengekalkan Qubit semasa pengukuran maklum balas hadapan, dan mengaplikasikan MEM untuk mengurangkan ralat pembacaan.
-
Kebarangkalian ralat logik kod permukaan: Untuk kod permukaan heavy-hex [4] dan kod permukaan kekisi segi empat [5], eksperimen ingatan kuantum dilakukan di mana keadaan logik yang dikodkan dikekalkan sepanjang pusingan pembetulan ralat yang berulang. Kebarangkalian ralat logik mengukur kebarangkalian bahawa ralat terkumpul menyebabkan maklumat yang dikodkan dipulihkan secara salah (ralat lebih rendah adalah lebih baik). Peningkatan yang dilaporkan membandingkan kebarangkalian ralat logik daripada litar mentah dengan yang diperoleh dengan Orbit.
-
Ralat mutlak VQE: Menggunakan VQE dengan ansatz kluster gandingan unitari yang dioptimumkan untuk menganggarkan tenaga keadaan asas LiH [6]. Tenaga yang diukur dibandingkan dengan tenaga ideal yang sepadan yang diperoleh daripada litar tanpa bunyi bising. Metrik ini ialah perbezaan mutlak antara tenaga yang diukur dan ideal (nilai lebih rendah adalah lebih baik). Peningkatan yang dilaporkan adalah:
Nilai yang lebih besar daripada satu menunjukkan bahawa Orbit mengurangkan ralat tenaga berbanding pelaksanaan tanpa decoupling dinamik.
-
Kebarangkalian kejayaan QAOA: Kebarangkalian mengukur bitstring yang sepadan dengan penyelesaian optimum masalah pengoptimuman yang ditakrifkan pada graf rama-rama. Peningkatan yang dilaporkan membandingkan kebarangkalian kejayaan yang diperoleh dengan Orbit berbanding yang diperoleh daripada litar mentah.
-
Kesetiaan logik: Dalam eksperimen decoupling dinamik logik [[4,2,2]] [1], dua Qubit logik dikodkan ke dalam empat Qubit fizikal dan disediakan sebagai keadaan Bell logik terbelit. Kesetiaan logik mengukur persetujuan antara keadaan yang dikodkan yang dipulihkan dengan keadaan Bell logik sasaran. Peningkatan yang dilaporkan membandingkan purata kesetiaan logik yang diperoleh dengan Orbit dan pengesanan ralat (keupayaan kod) dengan yang diperoleh apabila hanya menggunakan kod sahaja.
Mula
Sahkan menggunakan kunci API IBM Quantum Platform anda, dan pilih fungsi Orbit seperti berikut. Cebisan ini mengandaikan anda telah menyimpan akaun anda ke persekitaran tempatan anda.
# 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 membina litar Bernstein-Vazirani dan menyerahkannya ke Orbit dengan dua cara dalam satu kerja: pelaksanaan mentah dan lalai Orbit.
Gunakan corak ini apabila anda mahukan perbandingan mentah-lawan-Orbit yang langsung.
Bina litar Bernstein-Vazirani
Pilih bitstring tersembunyi dan bina litar logik. Qubit tambahan ialah sasaran oracle, manakala 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)])
Sediakan beban kerja Orbit
Cipta satu PUB Sampler, kemudian salinnya untuk dua mod perbandingan. Orbit menerima litar logik dan memetakannya ke Backend yang dipilih semasa pelaksanaan.
base_pub = (bv_circuit, None, shots)
comparison_labels = ["raw", "orbit"]
pubs = [base_pub] * len(comparison_labels)
Jalankan mentah dan lalai Orbit
pub_options menetapkan PUB pertama kepada mod mentah, yang melangkau pengoptimuman Orbit, DD, dan MEM, dan menetapkan PUB kedua kepada lalai Orbit, yang merangkumi transpilasi yang dioptimumkan, penyisipan decoupling dinamik (DD) automatik, dan mitigasi ralat 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
Dapatkan hasil dan bandingkan litar mentah dan yang ditambah baik oleh Orbit menggunakan kiraan. Untuk hasil Sampler, get_counts() pada daftar klasik yang dikembalikan menyediakan histogram output. Apabila MEM berjaya untuk PUB Orbit, histogram ini telah pun diperbetulkan MEM; kiraan yang tidak dimitigasi kekal 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 litar mentah dan yang ditambah baik oleh 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()
Dapatkan sokongan
Hubungi sokongan Quantum Elements: info@quantumelements.ai
Pastikan anda menyertakan maklumat berikut:
-
ID Kerja Fungsi Qiskit (
qiskit-ibm-catalog),job.job_id -
Nama Backend
-
pub_optionsOrbit yang digunakan untuk mod mentah dan Orbit -
Penerangan terperinci tentang isu tersebut
-
Sebarang mesej ralat atau kod yang berkaitan
-
Langkah untuk menghasilkan semula isu tersebut
Langkah seterusnya
-
Cuba Backend yang berbeza, bilangan Qubit, atau bitstring tersembunyi yang lain.
-
Baca tutorial kami tentang transformasi Fourier kuantum untuk mempelajari cara mentakrifkan strategi DD tersuai berkeupayaan orbit, serta mengaplikasikan DD kepada litar dinamik dengan pengukuran mid-circuit dan operasi maklum balas hadapan.
-
Lawati rujukan API untuk penerangan terperinci semua pilihan Orbit.
Rujukan
-
Transformasi Fourier Kuantum Menggunakan Litar Dinamik, Physical Review Letters (2024)
-
Belitan Julat Jauh Cekap Menggunakan Litar Dinamik, PRX Quantum (2024)
-
Eksperimen penskalaan kod permukaan pada IBM Heron dengan konektiviti heavy-hex, arXiv:2510.18847
-
Eksperimen kod permukaan pada IBM Nighthawk dengan konektiviti kekisi segi empat, arXiv:2606.11496