Lewati ke konten utama

Konfigurasi manajemen noise dengan Estimator

Versi paket

Kode di halaman ini dikembangkan menggunakan persyaratan berikut. Kami menyarankan menggunakan versi ini atau yang lebih baru.

qiskit-ibm-runtime~=0.46.1

Ada beberapa cara untuk mengelola noise, biasanya dengan menggunakan berbagai teknik mitigasi error dan penekanan error untuk menghindari error sebelum terjadi. Teknik-teknik ini biasanya menyebabkan overhead pra-pemrosesan. Oleh karena itu, penting untuk mencapai keseimbangan antara menyempurnakan hasilmu dan memastikan jobmu selesai dalam waktu yang wajar.

Estimator mendukung teknik manajemen noise berikut. Lihat Teknik mitigasi dan penekanan error untuk penjelasan masing-masing. Lihat bagian Pengaturan error kustom untuk instruksi mengaktifkan teknik-teknik ini.

Level resilience

resilience_level menentukan seberapa besar ketahanan yang dibangun terhadap error. Level yang lebih tinggi menghasilkan hasil yang lebih akurat, dengan biaya waktu pemrosesan yang lebih lama. Level resilience dapat digunakan untuk mengonfigurasi trade-off biaya/akurasi saat menerapkan manajemen noise ke kueri primitifmu. Manajemen noise mengurangi error (bias) dalam hasil dengan memproses output dari kumpulan, atau ansambel, Circuit yang saling berkaitan. Tingkat pengurangan error tergantung pada metode yang diterapkan. Level resilience mengabstraksi pilihan metode manajemen noise yang detail agar pengguna dapat mempertimbangkan trade-off biaya/akurasi yang sesuai untuk aplikasi mereka.

Dengan demikian, setiap level sesuai dengan satu metode atau lebih dengan level overhead sampling kuantum yang meningkat agar Anda bisa bereksperimen dengan trade-off waktu-akurasi yang berbeda. Tabel berikut menunjukkan level dan metode yang sesuai yang tersedia untuk masing-masing primitif.

Level ResilienceDeskripsiTeknik
0Tanpa mitigasiTidak ada
1 [Default]Biaya mitigasi minimal: Memitigasi error yang terkait dengan error readoutPengukuran twirling Twirled Readout Error eXtinction (TREX)
2Biaya mitigasi sedang. Biasanya mengurangi bias dalam estimator, tapi tidak dijamin zero-bias.Level 1 + Zero Noise Extrapolation (ZNE) dan gate twirling
Perhatian

Level resilience saat ini masih dalam beta sehingga overhead sampling dan kualitas solusi akan bervariasi dari satu sirkuit ke Circuit lainnya. Fitur baru, opsi lanjutan, dan tool manajemen akan dirilis secara bertahap. Metode manajemen noise tertentu tidak dijamin diterapkan pada setiap level resilience.

Konfigurasi Estimator dengan level resilience

Kamu bisa menggunakan level resilience untuk menentukan teknik manajemen noise, atau Anda bisa mengatur teknik kustom secara individual seperti yang dijelaskan di Pengaturan error kustom.

Penting

Opsi apa pun yang Anda tentukan secara manual selain level resilience diterapkan di samping set opsi dasar yang ditentukan oleh level resilience. Oleh karena itu, pada prinsipnya, Anda bisa mengatur level resilience ke 1, tapi kemudian menonaktifkan mitigasi pengukuran, meskipun ini tidak disarankan.

Misalnya, mengatur level resilience ke 0 menonaktifkan zne_mitigation, tapi estimator.options.resilience.zne_mitigation = True menimpa nilai tersebut.

Contoh

Kode berikut mengaktifkan ZNE, TREX, dan gate twirling dengan mengatur resilience_level 2.

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

service = QiskitRuntimeService()
backend = service.least_busy(operational=True, simulator=False)

# Setting options during primitive initialization
estimator = Estimator(backend, options={"resilience_level": 2})

Pengaturan manajemen noise kustom

Kamu bisa mengaktifkan dan menonaktifkan metode manajemen noise individual menggunakan opsi Estimator.

catatan

Tidak semua opsi bisa digunakan bersama pada semua jenis Circuit. Lihat tabel kompatibilitas fitur untuk detailnya.

Contoh

from qiskit_ibm_runtime import QiskitRuntimeService
from qiskit_ibm_runtime import EstimatorV2 as Estimator

service = QiskitRuntimeService()
backend = service.least_busy(operational=True, simulator=False)

estimator = Estimator(backend)
options = estimator.options
# Turn on gate twirling.
options.twirling.enable_gates = True
# Turn on measurement error mitigation.
options.resilience.measure_mitigation = True

print(
f">>> gate twirling is turned on: {estimator.options.twirling.enable_gates}"
)
print(
f">>> measurement error mitigation is turned on: "
f"{estimator.options.twirling.enable_gates}"
)
>>> gate twirling is turned on: True
>>> measurement error mitigation is turned on: True

Matikan semua mitigasi error

Untuk instruksi mematikan semua mitigasi error, lihat bagian Matikan semua penekanan dan mitigasi error di panduan opsi Estimator.

Langkah selanjutnya

Rekomendasi