Langkau ke kandungan utama

Teknik mitigasi dan penindasan ralat

Model pelaksanaan baharu, kini dalam keluaran beta

Keluaran beta model pelaksanaan baharu kini tersedia. Model pelaksanaan terarah menyediakan lebih banyak fleksibiliti apabila menyesuaikan aliran kerja mitigasi ralat anda. Lihat panduan Model pelaksanaan terarah untuk maklumat lanjut.

Package versions

Kod pada halaman ini dibangunkan menggunakan keperluan berikut. Kami mengesyorkan menggunakan versi ini atau yang lebih baharu.

qiskit-ibm-runtime~=0.43.1

Teknik mitigasi ralat dan penindasan ralat digunakan untuk meningkatkan kualiti keputusan apabila menskalakan kepada beban kerja yang lebih besar. Halaman ini menyediakan penjelasan tahap tinggi tentang teknik penindasan ralat dan mitigasi ralat yang tersedia melalui Qiskit Runtime.

Sel berikut mengimport primitif Estimator dan membuat backend yang akan digunakan untuk memulakan Estimator dalam sel kod kemudian.

# Added by doQumentation — required packages for this notebook
!pip install -q qiskit-ibm-runtime
from qiskit_ibm_runtime import EstimatorV2 as Estimator
from qiskit_ibm_runtime import QiskitRuntimeService

service = QiskitRuntimeService()
backend = service.least_busy()

Dynamical decoupling​

Litar kuantum dilaksanakan pada perkakasan IBM® sebagai urutan nadi gelombang mikro yang perlu dijadualkan dan dijalankan pada selang masa yang tepat. Malangnya, interaksi tidak diingini antara qubit boleh membawa kepada ralat koheren pada qubit yang melahu. Dynamical decoupling berfungsi dengan memasukkan urutan nadi pada qubit yang melahu untuk kira-kira membatalkan kesan ralat ini. Setiap urutan nadi yang dimasukkan setara dengan operasi identiti, tetapi kehadiran fizikal nadi tersebut mempunyai kesan menindas ralat. Terdapat banyak pilihan urutan nadi yang mungkin, dan urutan mana yang lebih baik untuk setiap kes tertentu masih merupakan bidang penyelidikan aktif.

Perlu diingat bahawa dynamical decoupling terutamanya berguna untuk litar yang mengandungi jurang di mana sebahagian qubit duduk melahu tanpa sebarang operasi yang bertindak ke atasnya. Jika operasi dalam litar sangat padat, sedemikian rupa sehingga semua qubit sibuk sebahagian besar masa, maka penambahan nadi dynamical decoupling mungkin tidak meningkatkan prestasi. Malah, ia boleh memburukkan lagi prestasi akibat ketidaksempurnaan dalam nadi itu sendiri.

Rajah di bawah menggambarkan dynamical decoupling dengan urutan nadi XX. Litar abstrak di sebelah kiri dipetakan ke jadual nadi gelombang mikro di kanan atas. Kanan bawah menggambarkan jadual yang sama, tetapi dengan urutan dua nadi X yang dimasukkan semasa tempoh melahu qubit pertama.

Gambaran dynamical decoupling

Dynamical decoupling boleh didayakan dengan menetapkan enable kepada True dalam pilihan dynamical decoupling. Pilihan sequence_type boleh digunakan untuk memilih dari beberapa urutan nadi yang berbeza. Jenis urutan lalai ialah "XX".

Sel kod berikut menunjukkan cara mendayakan dynamical decoupling untuk Estimator dan memilih urutan dynamical decoupling.

estimator = Estimator(mode=backend)
estimator.options.dynamical_decoupling.enable = True
estimator.options.dynamical_decoupling.sequence_type = "XpXm"

Pauli twirling​

Twirling, juga dikenali sebagai pengkompilan rawak, adalah teknik yang digunakan secara meluas untuk menukar saluran hingar sewenang-wenangnya menjadi saluran hingar dengan struktur yang lebih spesifik.

Pauli twirling adalah jenis twirling khas yang menggunakan operasi Pauli. Ia mempunyai kesan mengubah sebarang saluran kuantum menjadi saluran Pauli. Apabila dilakukan sahaja, ia boleh mengurangkan hingar koheren kerana hingar koheren cenderung terkumpul secara kuadratik dengan bilangan operasi, sedangkan hingar Pauli terkumpul secara linear. Pauli twirling sering digabungkan dengan teknik mitigasi ralat lain yang berfungsi lebih baik dengan hingar Pauli berbanding hingar sewenang-wenangnya.

Pauli twirling dilaksanakan dengan mengapit set gate yang dipilih dengan gate Pauli satu qubit yang dipilih secara rawak sedemikian rupa sehingga kesan ideal gate tetap sama. Hasilnya ialah satu litar digantikan dengan ensemble rawak litar, semua dengan kesan ideal yang sama. Apabila mensampling litar, sampel diambil dari pelbagai contoh rawak, bukan hanya satu.

Gambaran Pauli twirling

Oleh kerana sebahagian besar ralat dalam perkakasan kuantum semasa datang dari gate dua qubit, teknik ini sering diterapkan secara eksklusif pada gate dua qubit (asli). Rajah berikut menggambarkan beberapa Pauli twirl untuk gate CNOT dan ECR. Setiap litar dalam satu baris mempunyai kesan ideal yang sama.

Gambaran twirl gate

Pauli twirling boleh didayakan dengan menetapkan enable_gates kepada True dalam pilihan twirling. Pilihan penting lain termasuk:

  • num_randomizations: Bilangan contoh litar yang hendak diambil dari ensemble litar yang di-twirl.
  • shots_per_randomization: Bilangan shot yang hendak disampling dari setiap contoh litar.

Sel kod berikut menunjukkan cara mendayakan Pauli twirling dan menetapkan pilihan ini untuk estimator. Tiada satu pun pilihan ini perlu ditetapkan secara eksplisit.

estimator = Estimator(mode=backend)
estimator.options.twirling.enable_gates = True
estimator.options.twirling.num_randomizations = 32
estimator.options.twirling.shots_per_randomization = 100

Pemadaman ralat readout yang di-twirl (TREX)​

Pemadaman ralat readout yang di-twirl (TREX) mengurangkan kesan ralat pengukuran untuk anggaran nilai jangkaan boleh cerap Pauli. Ia berdasarkan konsep pengukuran yang di-twirl, yang dicapai dengan menggantikan gate pengukuran secara rawak dengan urutan (1) gate Pauli X, (2) pengukuran, dan (3) pembalikkan bit klasik. Sama seperti dalam twirling gate standard, urutan ini setara dengan pengukuran biasa tanpa adanya hingar, seperti yang digambarkan dalam rajah berikut:

Gambaran pengukuran twirling

Dalam kehadiran ralat readout, pengukuran twirling mempunyai kesan mendiagonalkan matriks pemindahan ralat readout, menjadikannya mudah untuk disongsangkan. Menganggar matriks pemindahan ralat readout memerlukan melaksanakan litar kalibrasi tambahan, yang memperkenalkan sedikit overhead.

TREX boleh didayakan dengan menetapkan measure_mitigation kepada True dalam pilihan ketahanan Qiskit Runtime untuk Estimator. Pilihan untuk pembelajaran hingar pengukuran diterangkan di sini. Seperti twirling gate, anda boleh menetapkan bilangan rawak litar dan bilangan shot per rawak.

Sel kod berikut menunjukkan cara mendayakan TREX dan menetapkan pilihan ini untuk estimator. Tiada satu pun pilihan ini perlu ditetapkan secara eksplisit.

estimator = Estimator(mode=backend)
estimator.options.resilience.measure_mitigation = True
estimator.options.resilience.measure_noise_learning.num_randomizations = 32
estimator.options.resilience.measure_noise_learning.shots_per_randomization = 100

Ekstrapolasi sifar-hingar (ZNE)​

Ekstrapolasi sifar-hingar (ZNE) adalah teknik untuk mengurangkan ralat dalam menganggar nilai jangkaan boleh cerap. Walaupun ia sering meningkatkan keputusan, ia tidak dijamin menghasilkan keputusan yang tidak berat sebelah.

ZNE terdiri daripada dua peringkat:

  1. Amplifikasi hingar: Litar kuantum asal dilaksanakan beberapa kali pada kadar hingar yang berbeza.
  2. Ekstrapolasi: Keputusan ideal dianggar dengan mengekstrapolasi keputusan nilai jangkaan berhingar ke had sifar-hingar.

Kedua-dua peringkat amplifikasi hingar dan ekstrapolasi boleh dilaksanakan dalam pelbagai cara yang berbeza. Qiskit Runtime melaksanakan amplifikasi hingar melalui "pelipatan gate digital," yang bermakna gate dua qubit digantikan dengan urutan setara gate tersebut dan inversnya. Contohnya, menggantikan uniter UU dengan UU†UU U^\dagger U akan menghasilkan faktor amplifikasi hingar sebanyak 3. Untuk ekstrapolasi, anda boleh memilih dari salah satu daripada beberapa bentuk fungsian, termasuk padanan linear atau padanan eksponen. Imej di bawah menggambarkan pelipatan gate digital di sebelah kiri, dan prosedur ekstrapolasi di sebelah kanan.

Gambaran ZNE

ZNE boleh didayakan dengan menetapkan zne_mitigation kepada True dalam pilihan ketahanan Qiskit Runtime untuk Estimator. Pilihan Qiskit Runtime untuk ZNE diterangkan di sini. Pilihan berikut adalah penting:

  • noise_factors: Faktor hingar untuk digunakan dalam amplifikasi hingar.
  • extrapolator: Bentuk fungsian untuk digunakan dalam ekstrapolasi.

Sel kod berikut menunjukkan cara mendayakan ZNE dan menetapkan pilihan ini untuk estimator. Tiada satu pun pilihan ini perlu ditetapkan secara eksplisit.

estimator = Estimator(mode=backend)
estimator.options.resilience.zne_mitigation = True
estimator.options.resilience.zne.noise_factors = (1, 3, 5)
estimator.options.resilience.zne.extrapolator = "exponential"

Amplifikasi ralat kebarangkalian (PEA)​

Salah satu cabaran utama dalam ZNE ialah mengamplifikasi hingar yang mempengaruhi litar sasaran secara tepat. Pelipatan gate menyediakan cara mudah untuk melakukan amplifikasi ini, tetapi berpotensi tidak tepat dan mungkin membawa kepada keputusan yang salah. Lihat artikel "Scalable error mitigation for noisy quantum circuits produces competitive expectation values", dan khususnya halaman 4 maklumat tambahan untuk butiran. Amplifikasi ralat kebarangkalian menyediakan pendekatan yang lebih tepat untuk amplifikasi ralat melalui pembelajaran hingar.

PEA adalah teknik yang lebih canggih yang melakukan eksperimen awal untuk merekonstruksi hingar dan kemudian menggunakan maklumat ini untuk melakukan amplifikasi yang tepat. Ia bermula dengan mempelajari model hingar yang di-twirl setiap lapisan gate mencirikan dalam litar sebelum dijalankan (lihat LayerNoiseLearningOptions untuk pilihan pembelajaran yang relevan). Selepas fasa pembelajaran, litar dilaksanakan pada setiap faktor hingar, di mana setiap lapisan mencirikan litar diamplifikasi dengan menyuntik hingar satu qubit secara kebarangkalian berkadar dengan model hingar yang dipelajari. Lihat artikel "Evidence for the utility of quantum computing before fault tolerance" untuk butiran lanjut.

PEA terdiri daripada tiga peringkat:

  1. Pembelajaran: Model hingar yang di-twirl setiap lapisan gate mencirikan dalam litar dipelajari.
  2. Amplifikasi hingar: Litar kuantum asal dilaksanakan beberapa kali pada faktor hingar yang berbeza.
  3. Ekstrapolasi: Keputusan ideal dianggar dengan mengekstrapolasi keputusan nilai jangkaan berhingar ke had sifar-hingar.

Untuk eksperimen skala utiliti, PEA sering menjadi pilihan terbaik.

Oleh kerana PEA adalah teknik amplifikasi hingar ZNE, anda juga perlu mendayakan ZNE dengan menetapkan resilience.zne_mitigation = True. Pilihan resilience.zne lain juga boleh digunakan untuk menetapkan ekstrapolator, tahap amplifikasi, dan sebagainya. PEA memerlukan model hingar, yang dijana secara automatik apabila menggunakan primitif.

Coretan berikut memberikan contoh di mana PEA digunakan untuk mengurangkan keputusan kerja Estimator:

estimator = Estimator(mode=backend)
estimator.options.resilience.zne_mitigation = True
estimator.options.resilience.zne.amplifier = "pea"

Pembatalan ralat kebarangkalian (PEC)​

Pembatalan ralat kebarangkalian (PEC) adalah teknik untuk mengurangkan ralat dalam menganggar nilai jangkaan boleh cerap. Tidak seperti ZNE, ia mengembalikan anggaran yang tidak berat sebelah bagi nilai jangkaan. Namun, ia umumnya menanggung overhead yang lebih besar.

Dalam PEC, kesan litar sasaran ideal dinyatakan sebagai gabungan linear litar berhingar yang sebenarnya boleh dilaksanakan dalam amalan:

Oideal=∑iηiOnoisy,i\mathcal{O}_{\text{ideal}} = \sum_{i} \eta_i \mathcal{O}_{noisy, i}

Output litar ideal kemudian boleh dihasilkan semula dengan melaksanakan contoh litar berhingar yang berbeza yang diambil dari ensemble rawak yang ditakrifkan oleh gabungan linear. Jika pekali ηi\eta_i membentuk taburan kebarangkalian, ia boleh digunakan terus sebagai kebarangkalian ensemble. Dalam amalan, sesetengah pekali adalah negatif, jadi ia membentuk taburan quasi-kebarangkalian. Ia masih boleh digunakan untuk menakrifkan ensemble rawak, tetapi terdapat overhead pensampelan yang berkaitan dengan kenegatifan taburan quasi-kebarangkalian, yang dicirikan oleh kuantiti

γ=∑i∣ηi∣≥1.\gamma = \sum_{i} \lvert \eta_i \rvert \geq 1.

Overhead pensampelan adalah faktor pendarab pada bilangan shot yang diperlukan untuk menganggar nilai jangkaan kepada ketepatan tertentu, berbanding bilangan shot yang diperlukan dari litar ideal. Ia berskala secara kuadratik dengan γ\gamma, yang seterusnya berskala secara eksponen dengan kedalaman litar.

PEC boleh didayakan dengan menetapkan pec_mitigation kepada True dalam pilihan ketahanan Qiskit Runtime untuk Estimator. Pilihan Qiskit Runtime untuk PEC diterangkan di sini. Had pada overhead pensampelan boleh ditetapkan menggunakan pilihan max_overhead. Perlu diingat bahawa mengehadkan overhead pensampelan boleh menyebabkan ketepatan keputusan melebihi ketepatan yang diminta. Nilai lalai max_overhead ialah 100.

Sel kod berikut menunjukkan cara mendayakan PEC dan menetapkan pilihan max_overhead untuk estimator.

estimator = Estimator(mode=backend)
estimator.options.resilience.pec_mitigation = True
estimator.options.resilience.pec.max_overhead = 100

Langkah seterusnya​

Source: IBM Quantum docs — updated 5 Mei 2026
English version on doQumentation — updated 7 Mei 2026
This translation based on the English version of 11 Mac 2026