Konfigurasi pengurusan hingar dengan Estimator
Versi pakej
Kod di halaman ini dibangunkan menggunakan keperluan berikut. Kami syorkan menggunakan versi ini atau yang lebih baru.
qiskit-ibm-runtime~=0.47.0
Terdapat beberapa cara untuk menguruskan hingar, biasanya dengan menggunakan pelbagai teknik pengurangan ralat dan penindasan ralat untuk mengelakkan ralat sebelum ia berlaku. Teknik-teknik ini biasanya menyebabkan overhed pra-pemprosesan. Oleh itu, penting untuk mencapai keseimbangan antara menyempurnakan keputusan anda dan memastikan kerja anda selesai dalam masa yang munasabah.
Estimator menyokong teknik pengurusan hingar berikut. Lihat Teknik pengurangan ralat dan penindasan ralat untuk penjelasan setiap teknik. Lihat bahagian Tetapan pengurusan hingar tersuai untuk contoh mendayakan teknik-teknik ini.
Penyahgandingan dinamik
Cara mendayakan: options.dynamical_decoupling.enable = True
Rujukan API: DynamicalDecouplingOptions
Pilihan penting: sequence_type
Pauli twirling
Cara mendayakan: options.twirling.enable_gates = True
Rujukan API: TwirlingOptions
Pilihan penting: num_randomizations, shots_per_randomization
TREX
Cara mendayakan: options.resilience.measure_mitigation = True
Rujukan API: MeasureNoiseLearningOptions
Pilihan penting:
ZNE
Cara mendayakan: options.resilience.zne_mitigation = True
Rujukan API: ZneOptions
Pilihan penting: noise_factors, extrapolator
PEA
Cara mendayakan: (Mesti juga mendayakan ZNE) options.resilience.zne_mitigation = True dan options.resilience.zne.amplifier = "pea"
Rujukan API: ZneOptions
Pilihan penting: noise_factors, extrapolator
PEC
Cara mendayakan: options.resilience.pec_mitigation = True
Rujukan API: PecOptions
Pilihan penting: max_overhead
Tahap daya tahan
resilience_level menentukan berapa banyak daya tahan yang perlu dibina terhadap ralat. Tahap yang lebih tinggi menghasilkan keputusan yang lebih tepat, dengan kos masa pemprosesan yang lebih lama. Tahap daya tahan boleh digunakan untuk mengkonfigurasi tolak ansur kos/ketepatan apabila menggunakan pengurusan hingar pada pertanyaan primitif anda. Pengurusan hingar mengurangkan ralat (berat sebelah) dalam keputusan dengan memproses output daripada koleksi, atau ensemble, Circuit yang berkaitan. Tahap pengurangan ralat bergantung pada kaedah yang digunakan. Tahap daya tahan mengabstrak pilihan terperinci kaedah pengurusan hingar untuk membolehkan pengguna menilai tolak ansur kos/ketepatan yang sesuai untuk aplikasi mereka.
Memandangkan ini, setiap tahap sepadan dengan kaedah atau kaedah-kaedah dengan tahap overhed pensampelan kuantum yang semakin meningkat untuk membolehkan anda bereksperimen dengan tolak ansur masa-ketepatan yang berbeza. Jadual berikut menunjukkan tahap dan kaedah yang tersedia untuk setiap primitif.
| Tahap daya tahan | Penerangan | Teknik |
|---|---|---|
| 0 | Tiada pengurangan | Tiada |
| 1 [Lalai] | Kos pengurangan minimum: Kurangkan ralat yang berkaitan dengan ralat readout | Twirling pengukuran Twirled Readout Error eXtinction (TREX) |
| 2 | Kos pengurangan sederhana. Biasanya mengurangkan berat sebelah dalam penganggar, tetapi tidak dijamin bebas-berat sebelah. | Tahap 1 + Zero Noise Extrapolation (ZNE) dan twirling gate |
Tahap daya tahan kini dalam beta jadi overhed pensampelan dan kualiti penyelesaian akan berbeza dari Circuit ke Circuit. Ciri baru, pilihan lanjutan, dan alatan pengurusan akan dikeluarkan secara berperingkat. Kaedah pengurusan hingar khusus tidak dijamin digunakan pada setiap tahap daya tahan.
Konfigurasi Estimator dengan tahap daya tahan
Anda boleh menggunakan tahap daya tahan untuk menentukan teknik pengurusan hingar, atau anda boleh menetapkan teknik tersuai secara individu seperti yang diterangkan dalam Tetapan pengurusan hingar tersuai.
Sebarang pilihan yang anda tentukan secara manual selain tahap daya tahan diterapkan sebagai tambahan kepada set pilihan asas yang ditentukan oleh tahap daya tahan. Oleh itu, pada dasarnya, anda boleh menetapkan tahap daya tahan ke 1, tetapi kemudian mematikan pengurangan ralat pengukuran, walaupun ini tidak disyorkan.
Sebagai contoh, menetapkan tahap daya tahan ke 0 mematikan zne_mitigation, tetapi estimator.options.resilience.zne_mitigation = True mengatasi nilai tersebut.
Contoh
Kod berikut mengaktifkan ZNE, TREX, dan twirling gate dengan
menetapkan 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})
Tetapan pengurusan hingar tersuai
Anda boleh menghidupkan dan mematikan kaedah pengurusan hingar individu menggunakan pilihan Estimator.
- Tidak semua pilihan berfungsi bersama pada semua jenis litar. Lihat jadual keserasian ciri untuk butiran.
- Jika anda menggunakan Estimator sisi klien baharu yang diperkenalkan dalam
qiskit-ibm-runtimev0.50.0, kerja pembelajaran hingar yang berasingan diperlukan untuk menggunakan PEA dan PEC. Lihat Berhijrah daripada Sampler dan Estimator sisi pelayan kepada sisi klien untuk maklumat lanjut.
Contoh lengkap dengan berbilang pilihan
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 pengurangan ralat
Untuk arahan mematikan semua pengurangan ralat, lihat bahagian Matikan semua penindasan dan pengurangan ralat dalam panduan pilihan Estimator.
Langkah seterusnya
- Ikuti contoh yang menggunakan pengurangan ralat dalam pelajaran Fungsi kos dalam IBM Quantum Learning.
- Ketahui lebih lanjut tentang teknik pengurangan ralat dan penindasan ralat.
- Terokai pilihan Estimator.
- Tentukan mod pelaksanaan untuk menjalankan kerja anda.