Pengenalan kepada pilihan
Anda boleh menggunakan pilihan untuk menyesuaikan primitif Qiskit Runtime mengikut keperluan anda.
Struktur
Apabila memanggil primitif, anda boleh menghantar pilihan menggunakan kelas pilihan atau kamus. Pilihan yang kerap digunakan, seperti resilience_level, berada di peringkat pertama. Pilihan lain dikumpulkan ke dalam kategori, seperti execution. Tentukan pilihan dalam format ini: options.option.sub-option.sub-sub-option = choice. Sebagai contoh: options.dynamical_decoupling.enable = True.
Nilai lalai
Jika anda tidak menentukan nilai untuk sesuatu pilihan, ia akan diberikan nilai khas Unset dan nilai lalai pelayan akan digunakan. Oleh itu, nilai lalai akan sama tanpa mengira versi kod anda.
Jadual dalam bahagian "Ringkasan kelas pilihan" pada setiap panduan "options" primitif menyenaraikan nilai lalai.
Tetapkan pilihan
Pilihan boleh ditakrifkan sebelum primitif dibina dan dihantar kepada primitif sebagai satu instance kelas pilihan atau kamus. Primitif membuat salinannya, yang bermaksud bahawa mengubah kamus asal atau instance pilihan tidak menjejaskan pilihan yang dimiliki oleh primitif.
Selain itu, anda boleh mengubah pilihan selepas primitif dibina. Gunakan aliran kerja yang paling sesuai untuk aplikasi anda.
- Anda boleh melihat pilihan yang tersedia semasa atau selepas pemulaan primitif.
- Jika anda tidak menentukan nilai untuk sesuatu pilihan, ia akan diberikan nilai khas
Unsetdan nilai lalai pelayan akan digunakan. - Atribut
optionsadalah jenis Pythondataclass. Anda boleh menggunakan kaedah terbinaasdictuntuk menukarkannya kepada kamus.
kelas options
Apabila mencipta satu instance kelas primitif, anda boleh menghantar masuk satu instance kelas options. Pilihan tersebut kemudiannya digunakan apabila anda menggunakan run() untuk melakukan pengiraan. Tentukan pilihan dalam format ini: options.option.sub-option.sub-sub-option = choice. Sebagai contoh: options.dynamical_decoupling.enable = True.
Lihat SamplerOptions atau EstimatorOptions untuk butiran penuh tentang kelas tersebut.
Contoh berikut menggunakan primitif Estimator, tetapi sintaks untuk primitif lain adalah serupa.
from qiskit_ibm_runtime import QiskitRuntimeService
from qiskit_ibm_runtime import EstimatorV2 as Estimator
from qiskit_ibm_runtime.options import EstimatorOptions
service = QiskitRuntimeService()
backend = service.least_busy(operational=True, simulator=False)
options = EstimatorOptions(
resilience_level=2,
resilience={"zne_mitigation": True, "zne": {"noise_factors": [1, 3, 5]}},
)
# or...
options = EstimatorOptions()
options.resilience_level = 2
options.resilience.zne_mitigation = True
options.resilience.zne.noise_factors = [1, 3, 5]
estimator = Estimator(mode=backend, options=options)
Kamus
Anda boleh menentukan pilihan sebagai kamus apabila memulakan primitif.
Contoh berikut menggunakan primitif Estimator, tetapi sintaks untuk primitif lain adalah serupa.
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 initialization
estimator = Estimator(
backend,
options={
"resilience_level": 2,
"resilience": {
"zne_mitigation": True,
"zne": {"noise_factors": [1, 3, 5]},
},
},
)
Kemas kini pilihan selepas pemulaan
Anda boleh menentukan pilihan dalam format ini: _primitive_.options.option.sub-option.sub-sub-option = choice untuk memanfaatkan auto-lengkap, atau gunakan kaedah update() untuk membuat kemas kini secara pukal.
Kelas pilihan primitif (EstimatorOptions atau SamplerOptions) tidak perlu di-instantiate jika anda menetapkan pilihan selepas memulakan primitif.
Contoh berikut menggunakan primitif Estimator, tetapi sintaks untuk primitif lain adalah serupa.
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(mode=backend)
# Setting options after initialization
# This uses auto-complete.
estimator.options.default_precision = 0.01
# This does bulk update.
estimator.options.update(
default_precision=0.02, resilience={"zne_mitigation": True}
)
Langkah seterusnya
- Cari maklumat tentang cara mengkonfigurasi penindasan ralat dan pengurangan ralat.
- Ketahui lebih lanjut tentang pilihan Estimator.
- Ketahui lebih lanjut tentang pilihan Sampler.
- Ketahui lebih lanjut tentang pilihan Executor.