Lewati ke konten utama
Proyek ini masih dalam tahap beta. Menemukan bug? Buat isu GitHub. Punya pertanyaan atau ide? Tanya di Discussions — kami sangat menghargai masukan kamu!
Bagaimana kualitas terjemahan di halaman ini?

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.47.0

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 supresi error untuk penjelasan masing-masing. Lihat bagian Pengaturan manajemen noise kustom untuk contoh cara mengaktifkan teknik-teknik ini.

Dynamical decoupling

Cara mengaktifkan: options.dynamical_decoupling.enable = True

Referensi API: DynamicalDecouplingOptions

Opsi penting: sequence_type

Pauli twirling

Cara mengaktifkan: options.twirling.enable_gates = True

Referensi API: TwirlingOptions

Opsi penting: num_randomizations, shots_per_randomization

TREX

Cara mengaktifkan: options.resilience.measure_mitigation = True

Referensi API: MeasureNoiseLearningOptions

Opsi penting:

ZNE

Cara mengaktifkan: options.resilience.zne_mitigation = True

Referensi API: ZneOptions

Opsi penting: noise_factors, extrapolator

PEA

Cara mengaktifkan: (Harus mengaktifkan ZNE juga) options.resilience.zne_mitigation = True dan options.resilience.zne.amplifier = "pea"

Referensi API: ZneOptions

Opsi penting: noise_factors, extrapolator

PEC

Cara mengaktifkan: options.resilience.pec_mitigation = True

Referensi API: PecOptions

Opsi penting: max_overhead

Tingkat ketahanan​

resilience_level menentukan seberapa besar ketahanan yang dibangun terhadap error. Level yang lebih tinggi memberikan hasil yang lebih akurat, dengan konsekuensi waktu pemrosesan yang lebih lama. Tingkat ketahanan 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. Tingkat ketahanan 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 kamu 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 readoutTwirling pengukuran 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 sirkuit 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 kamu bisa mengatur teknik kustom secara individual seperti yang dijelaskan di Pengaturan manajemen noise kustom.

Penting

Opsi apa pun yang kamu tentukan secara manual selain level resilience diterapkan di samping set opsi dasar yang ditentukan oleh level resilience. Oleh karena itu, pada prinsipnya, kamu 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 — installs the packages this notebook needs if they are missing
import importlib.util

_needed = {"qiskit_ibm_runtime": "qiskit-ibm-runtime"}
_missing = [pip for module, pip in _needed.items()
if importlib.util.find_spec(module) is None]
# One at a time, so a package that fails to install does not block the others
for _pip in _missing:
%pip install -q {_pip}
if not _missing:
print("\u2713 All required packages are installed")
from qiskit_ibm_runtime import QiskitRuntimeService

# Legacy server-side primitive before qiskit-ibm-runtime 0.50.0
# from qiskit_ibm_runtime import Estimator

# Client-side primitive introduced in qiskit-ibm-runtime 0.50.0
from qiskit_ibm_runtime.executor_estimator import 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

Contoh lengkap dengan beberapa opsi​

from qiskit_ibm_runtime import QiskitRuntimeService

# Legacy server-side primitive before qiskit-ibm-runtime 0.50.0
# from qiskit_ibm_runtime import Estimator

# Client-side primitive introduced in qiskit-ibm-runtime 0.50.0
from qiskit_ibm_runtime.executor_estimator import 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