ข้ามไปยังเนื้อหาหลัก

แนะนำ options

คุณสามารถส่ง options ให้กับ primitives เพื่อปรับแต่งให้ตรงตามความต้องการ ส่วนนี้จะเน้นที่ options ของ Qiskit Runtime primitive แม้ว่า interface ของ method run() ของ primitives จะเหมือนกันทุก implementation แต่ options ของแต่ละตัวไม่เหมือนกัน ดู API references ที่เกี่ยวข้องสำหรับข้อมูลเกี่ยวกับ options ของ qiskit.primitives และ qiskit_aer.primitives

ภาพรวม

โครงสร้าง

เมื่อเรียก primitives คุณสามารถส่ง options โดยใช้ options class หรือ dictionary ก็ได้ Options ที่ใช้บ่อย เช่น resilience_level จะอยู่ในระดับแรก ส่วน options อื่นจะจัดกลุ่มไว้ในหมวดหมู่ต่างๆ เช่น execution ดูรายละเอียดทั้งหมดในส่วน ตั้งค่า primitive options

ค่าเริ่มต้น

ถ้าคุณไม่ระบุค่าสำหรับ option ใด มันจะได้ค่าพิเศษ Unset และจะใช้ค่า default ของเซิร์ฟเวอร์แทน ดังนั้นค่า default จะเหมือนกันไม่ว่าจะใช้ code version ไหน

ตารางในส่วน สรุป Options classes จะแสดงค่า default ไว้

ตั้งค่า options

สามารถกำหนด options ก่อนสร้าง primitive แล้วส่งให้กับ primitive ซึ่งจะสำเนาค่าเหล่านั้น ทำได้ทั้งในรูปแบบ nested dictionary หรือใช้ options classes นอกจากนี้ยังเปลี่ยน options ของ primitive ได้หลังจากสร้างแล้ว ใช้วิธีที่เหมาะกับแอปพลิเคชันของคุณ ดูรายละเอียดทั้งหมดในหน้า Specify options

สรุป Options classes

  • Dynamical decoupling: Options สำหรับ dynamical decoupling
  • Environment: Options สภาพแวดล้อมการรัน เช่น ระดับ logging ที่ตั้งและ job tags ที่เพิ่ม
  • Execution: Options การรัน primitive รวมถึงการ initialize qubits และ repetition delay
  • Resilience: Options ขั้นสูงสำหรับตั้งค่าวิธี error mitigation เช่น measurement error mitigation, ZNE และ PEC
  • Simulator: Options ของ simulator เช่น basis gates, simulator seed และ coupling map ใช้ได้เฉพาะกับ local testing mode
  • Twirling: Options ของ twirling เช่น การใช้ two-qubit gate twirling และจำนวน shots ต่อ random sample

Options ที่ใช้ได้

ตารางต่อไปนี้แสดง options จาก qiskit-ibm-runtime เวอร์ชันล่าสุด หากต้องการดู options เวอร์ชันเก่า ให้ไปที่ API reference ของ qiskit-ibm-runtime แล้วเลือกเวอร์ชันก่อนหน้า

default_shots

จำนวน shots ทั้งหมดที่ใช้ต่อ Circuit ต่อ configuration

ตัวเลือก: Integer >= 0

ค่าเริ่มต้น: None

เอกสาร API default_shots

default_precision

ความแม่นยำ default ที่ใช้กับ PUB หรือการเรียก run() ที่ไม่ระบุค่า

ตัวเลือก: Float > 0

ค่าเริ่มต้น: 0.015625 (1 / sqrt(4096))

เอกสาร API default_precision

dynamical_decoupling

ควบคุมการตั้งค่า error mitigation แบบ dynamical decoupling

เอกสาร API dynamical_decoupling

dynamical_decoupling.enable

ตัวเลือก: True, False

ค่าเริ่มต้น: False

dynamical_decoupling.extra_slack_distribution

ตัวเลือก: middle, edges

ค่าเริ่มต้น: middle

dynamical_decoupling.scheduling_method

ตัวเลือก: asap, alap ค่าเริ่มต้น: alap

dynamical_decoupling.sequence_type

ตัวเลือก: XX, XpXm, XY4 ค่าเริ่มต้น: XX

dynamical_decoupling.skip_reset_qubits

ตัวเลือก: True, False ค่าเริ่มต้น: False

environment

เอกสาร API environment

environment.callback

ฟังก์ชัน callable ที่รับ Job ID และ Job result

ตัวเลือก: None

ค่าเริ่มต้น: None

environment.job_tags

รายการ tags

ตัวเลือก: None

ค่าเริ่มต้น: None

environment.log_level

ตัวเลือก: DEBUG, INFO, WARNING, ERROR, CRITICAL

ค่าเริ่มต้น: WARNING

environment.private

ตัวเลือก: True, False

ค่าเริ่มต้น: False

execution

เอกสาร API execution

execution.init_qubits

ว่าจะ reset qubits กลับสู่ ground state ก่อนทุก shot หรือไม่

ตัวเลือก: True, False

ค่าเริ่มต้น: True

execution.rep_delay

หน่วงเวลาระหว่างการวัดผลและ quantum Circuit ถัดไป

ตัวเลือก: ค่าในช่วงที่ backend.rep_delay_range กำหนด

ค่าเริ่มต้น: ตามที่ backend.default_rep_delay กำหนด

max_execution_time

ตัวเลือก: จำนวนวินาทีเป็น Integer ในช่วง [1, 10800]

ค่าเริ่มต้น: 10800 (3 ชั่วโมง)

เอกสาร API max_execution_time

resilience

ตัวเลือก resilience ขั้นสูงสำหรับปรับแต่งกลยุทธ์ความทนทานต่อข้อผิดพลาด

เอกสาร API ของ resilience

resilience.layer_noise_learning

ตัวเลือกสำหรับการเรียนรู้ noise ของ layer

เอกสาร API ของ resilience.layer_noise_learning

resilience.layer_noise_learning.layer_pair_depths

ตัวเลือก: list[int] ที่มี 2–10 ค่า ในช่วง [0, 200]

ค่าเริ่มต้น: (0, 1, 2, 4, 16, 32)

resilience.layer_noise_learning.max_layers_to_learn

ตัวเลือก: None, Integer >= 1

ค่าเริ่มต้น: 4

resilience.layer_noise_learning.num_randomizations

ตัวเลือก: Integer >= 1

ค่าเริ่มต้น: 32

resilience.layer_noise_learning.shots_per_randomization

ตัวเลือก: Integer >= 1

ค่าเริ่มต้น: 128

resilience.layer_noise_model

ตัวเลือก: NoiseLearnerResult, Sequence[LayerError]

ค่าเริ่มต้น: None

resilience.measure_mitigation

ตัวเลือก: True, False

ค่าเริ่มต้น: True

resilience.measure_noise_learning

ตัวเลือกสำหรับการเรียนรู้ noise จากการวัดผล

เอกสาร API ของ resilience.measure_noise_learning

resilience.measure_noise_learning.num_randomizations

ตัวเลือก: Integer >= 1

ค่าเริ่มต้น: 32

resilience.measure_noise_learning.shots_per_randomization

ตัวเลือก: Integer, auto

ค่าเริ่มต้น: auto

resilience.pec_mitigation

ตัวเลือก: True, False

ค่าเริ่มต้น: False

resilience.pec

ตัวเลือกสำหรับการลด error แบบ probabilistic error cancellation

เอกสาร API ของ resilience.pec

resilience.pec.max_overhead

ตัวเลือก: None, Integer >= 1

ค่าเริ่มต้น: 100

resilience.pec.noise_gain

ตัวเลือก: auto, float ในช่วง [0, 1]

ค่าเริ่มต้น: auto

resilience.zne_mitigation

ตัวเลือก: True, False

ค่าเริ่มต้น: False

resilience.zne

resilience.zne.amplifier

ตัวเลือก: gate_folding, gate_folding_front, gate_folding_back, pea

ค่าเริ่มต้น: gate_folding

resilience.zne.extrapolated_noise_factors

ตัวเลือก: รายการของ float

ค่าเริ่มต้น: [0, *noise_factors]

resilience.zne.extrapolator

ตัวเลือก: หนึ่งรายการขึ้นไปจาก: exponential, linear, double_exponential, polynomial_degree_(1 <= k <= 7), fallback

ค่าเริ่มต้น: (exponential, linear)

resilience.zne.noise_factors

ตัวเลือก: รายการของ float โดยแต่ละค่าต้อง >= 1

ค่าเริ่มต้น: (1, 1.5, 2) สำหรับ PEA และ (1, 3, 5) สำหรับกรณีอื่น

resilience_level

ระดับความทนทานต่อ error ที่ต้องการสร้าง ระดับที่สูงกว่าจะได้ผลลัพธ์ที่แม่นยำกว่า แต่ต้องใช้เวลาประมวลผลนานกว่า

ตัวเลือก: 0, 1, 2

ค่าเริ่มต้น: 1

เอกสาร API ของ resilience_level

seed_estimator

ตัวเลือก: Integer

ค่าเริ่มต้น: None

seed_estimator

simulator

ตัวเลือกที่ใช้เมื่อจำลอง Backend

เอกสาร API ของ simulator

simulator.basis_gates

ตัวเลือก: รายการชื่อ basis gate ที่จะ unroll ไปยัง

ค่าเริ่มต้น: ชุด basis gate ทั้งหมดที่รองรับโดย Qiskit Aer simulator

simulator.coupling_map

ตัวเลือก: รายการ interaction แบบสองทิศทางระหว่าง Qubit สองตัว

ค่าเริ่มต้น: None ซึ่งหมายความว่าไม่มีข้อจำกัดด้านการเชื่อมต่อ (เชื่อมต่อได้ทุกคู่)

simulator.noise_model

ตัวเลือก: Qiskit Aer NoiseModel หรือการแทนค่าของมัน

ค่าเริ่มต้น: None

simulator.seed_simulator

ตัวเลือก: Integer

ค่าเริ่มต้น: None

twirling

ตัวเลือกสำหรับ twirling

เอกสาร API ของ twirling

twirling.enable_gates

ตัวเลือก: True, False

ค่าเริ่มต้น: False

twirling.enable_measure

ตัวเลือก: True, False

ค่าเริ่มต้น: True

twirling.num_randomizations

ตัวเลือก: auto, Integer >= 1

ค่าเริ่มต้น: auto

twirling.shots_per_randomization

ตัวเลือก: auto, Integer >= 1

ค่าเริ่มต้น: auto

twirling.strategy

ตัวเลือก: active, active-circuit, active-accum, all

ค่าเริ่มต้น: active-accum

experimental

ตัวเลือกทดลอง เมื่อมีให้ใช้งาน

ความเข้ากันได้ของฟีเจอร์

เนื่องจากความแตกต่างในกระบวนการ compilation บนอุปกรณ์ ฟีเจอร์ runtime บางอย่างจึงไม่สามารถใช้ร่วมกันใน job เดียวได้ คลิกแท็บที่เหมาะสมเพื่อดูรายการฟีเจอร์ที่ไม่เข้ากันกับฟีเจอร์ที่เลือก:

ไม่เข้ากันกับ:

  • Gate-folding ZNE
  • PEA
  • PEC
  • Dynamical decoupling

หมายเหตุอื่น:

  • สามารถใช้กับ gate twirling สำหรับ gate ที่ไม่มีเงื่อนไขได้
  • เข้ากันได้กับ fractional gates เมื่อใช้ qiskit-ibm-runtime v0.42.0 หรือใหม่กว่า

ขั้นตอนถัดไป

คำแนะนำ
Source: IBM Quantum docs — updated 27 เม.ย. 2569
English version on doQumentation — updated 7 พ.ค. 2569
This translation based on the English version of 11 มี.ค. 2569