ข้ามไปยังเนื้อหาหลัก
โครงการนี้อยู่ในช่วงเบต้า พบข้อผิดพลาด? สร้าง GitHub Issue มีคำถามหรือไอเดีย? ถามใน Discussions — ยินดีรับฟังความคิดเห็น!
คุณภาพการแปลในหน้านี้เป็นอย่างไร?

คำสั่งที่ calibrate เป็นพิเศษ

โดยค่าเริ่มต้น quantum gate และการดำเนินการ readout บนคอมพิวเตอร์ควอนตัม IBM® จะถูก calibrate เพื่อให้ได้ประสิทธิภาพที่เหมาะสมที่สุดกับการใช้งานทั่วไป แต่เวิร์กโหลดบางแบบจะได้ประโยชน์จากคำสั่งที่ปรับพารามิเตอร์ต่างออกไป ตัวอย่างเช่น MidCircuitMeasure (measure_2) เป็นการดำเนินการ readout ที่ออกแบบมาสำหรับการวัดกลาง circuit และ gate cz ที่ช้าลงสามารถช่วยให้ผลลัพธ์ของเวิร์กโฟลว์ error mitigation บางแบบดีขึ้น

คำสั่งที่ calibrate เป็นพิเศษมีสองรูปแบบ และคุณเข้าถึงมันต่างกัน:

  • คำสั่งที่มี signature ต่างกัน ถูก calibrate ไปพร้อมกับคำสั่งมาตรฐานใน calibration เริ่มต้น คุณจึงเพิ่มมันลงใน circuit ได้เหมือนคำสั่งอื่น ๆ โดยปกติจะระบุด้วย suffix เช่น measure_2

  • Alternative calibration จะแทนที่บางส่วนของ calibration เริ่มต้นด้วยพารามิเตอร์ที่ปรับต่างออกไป คุณเลือกใช้ได้โดยส่ง calibration_id ตอนดึง backend

หากต้องการเรียนรู้ว่าคอมพิวเตอร์ควอนตัม IBM ถูก calibrate อย่างไร ดู ตรวจสอบ, calibrate และ benchmark

คำสั่งที่มี signature ต่างกัน​

คำสั่งเหล่านี้ถูก calibrate พร้อมกับชุดคำสั่งมาตรฐาน คุณจึงไม่ต้องทำอะไรพิเศษเพื่อดึง backend ที่รองรับมัน หากต้องการใช้ ให้เพิ่มคำสั่ง qiskit-ibm-runtime ที่ตรงกันลงใน circuit

คำสั่งคำอธิบายกรณีใช้งานทั่วไปการใช้งานใน Qiskitตระกูลโปรเซสเซอร์
measure_2pulse การวัดที่สั้นลงการวัดกลาง circuitMidCircuitMeasure (v0.43.0 ขึ้นไป)Heron, Nighthawk r2
reset_2pulse reset แบบมีเงื่อนไขที่สั้นลง ซึ่งใช้ measure_2reset qubit กลาง circuitMidCircuitReset (v0.49.0 ขึ้นไป)Heron
measure_resetการวัดแบบ measure ที่ reset qubit ด้วย*วัดและ reset qubitMeasureReset (v0.50.0 ขึ้นไป)Heron, Nighthawk r2
measure_reset_2การวัดที่สั้นลงแบบ measure_2 ที่ reset qubit ด้วย*วัดและ reset qubit กลาง circuitเริ่มต้น MeasureReset ด้วย name="measure_reset_2" (v0.50.0 ขึ้นไป)Heron, Nighthawk r2
xslowgate bit-flip (X) ที่มีระยะเวลายาวขึ้นPostselection และ error mitigation เป็นค่าเริ่มต้นของตัวเลือก x_pulse_type ใน postselection passทั้งหมด

. | XSlowGate (v0.50.0 ขึ้นไป) | ทั้งหมด |

* บนโปรเซสเซอร์ Heron การ reset จะขึ้นอยู่กับผลการวัด ส่วนบนโปรเซสเซอร์ Nighthawk r2 การ reset จะเกิดขึ้นโดยไม่มีเงื่อนไข

เนื่องจากคำสั่งเหล่านี้ไม่ได้รองรับในทุก backend ให้ตรวจสอบคำสั่งที่ backend รองรับก่อนใช้งาน:

from qiskit_ibm_runtime import QiskitRuntimeService

service = QiskitRuntimeService()
backend = service.backend("<backend_name>")

print(backend.supported_instructions)

หากต้องการหา backend ทั้งหมดที่รองรับคำสั่งหนึ่ง ให้ใช้:

service = QiskitRuntimeService()
backends = service.backends(filters=lambda b: "<instruction>" in b.supported_instructions)

ใช้ instruction_signatures เพื่อดู signature ของคำสั่งที่ calibrate เป็นพิเศษเหล่านี้:

print(backend.configuration().instruction_signatures)

Alternative calibration​

Alternative calibration จะแทนที่บางส่วนของ calibration เริ่มต้นด้วยพารามิเตอร์ที่ปรับต่างออกไป แต่ละ alternative calibration มี calibration ID และความพร้อมใช้งานขึ้นอยู่กับ QPU

หากต้องการใช้ alternative calibration ให้ส่ง calibration_id ของมันตอนดึง backend target ของ backend และ transpiler ด้วย จะใช้คุณสมบัติของคำสั่งจาก calibration นั้น และ primitive job ที่คุณรันบน backend จะทำงานด้วย calibration นั้น

from qiskit_ibm_runtime import QiskitRuntimeService

service = QiskitRuntimeService()
backend = service.backend("<backend_name>", calibration_id="<calibration_id>")

print(backend.calibration_id)
หมายเหตุ

Alternative calibration ไม่ได้มีให้ใช้บน QPU ทุกตัว

Slow gate calibration​

Slow gate calibration จะปรับ gate cz ให้ช้ากว่าใน calibration เริ่มต้น gate cz ที่ช้าลงอาจช่วยปรับปรุงประสิทธิภาพสำหรับเวิร์กโฟลว์ observable estimation ขนาดใหญ่ที่ใช้ error mitigation แต่ก็ทำให้ระยะเวลารวมของ circuit ยาวขึ้น ซึ่งก่อให้เกิด decoherence เพิ่มเติมบ้าง

บนโปรเซสเซอร์ Heron slow gate calibration ยังมีให้เลือกพร้อมการควบคุม TLS bias ของระบบสองระดับ (two-level system, TLS) สองโหมด:

  • DC TLS bias ถูกปรับให้ได้ประสิทธิภาพ ณ ขณะนั้นดีที่สุด calibration เริ่มต้นใช้ DC TLS bias

  • AC TLS bias มอดูเลต TLS bias เพื่อทำให้ข้อผิดพลาดของอุปกรณ์เสถียรตลอดเวลา ซึ่งช่วยให้ noise model ของอุปกรณ์คงที่ในเวิร์กโฟลว์ที่ใช้เวลานาน ดู "Noise stabilization" ใน Observable Estimation in the Absence of Classical Verification สำหรับรายละเอียด

โปรเซสเซอร์ Nighthawk ไม่ใช้ TLS bias จึงมี slow gate calibration เพียงแบบเดียว

Calibration IDตระกูลโปรเซสเซอร์TLS biasแนะนำสำหรับ
None (calibration เริ่มต้น)ทั้งหมดDC (Heron)การใช้งานทั่วไป แนะนำเป็นพิเศษสำหรับเวิร์กโหลดที่ bitstring สามารถกลั่นกรองแบบคลาสสิกได้ เช่น peaked circuit และเวิร์กโฟลว์ SQD หรือ SKQD และสำหรับเวิร์กโหลดที่มี error detection
slow_gates_dcHeronDCเวิร์กโฟลว์ observable estimation ขนาดใหญ่ โดยเฉพาะที่ใช้ error mitigation แบบ heuristic เช่น zero-noise extrapolation (ZNE)
slow_gates_acHeronACเวิร์กโฟลว์ที่ต้องการอัตราข้อผิดพลาดที่เสถียรตลอด session ที่ยาวนาน แนะนำอย่างยิ่งสำหรับเวิร์กโฟลว์ที่เกี่ยวข้องกับ noise learning เช่น probabilistic error amplification (PEA) และ probabilistic error cancellation (PEC)
slow_gatesNighthawkไม่เกี่ยวข้องเวิร์กโฟลว์ observable estimation ที่ใช้ error mitigation เช่น ZNE, PEA และ PEC

ตัวอย่างเช่น:

from qiskit_ibm_runtime import QiskitRuntimeService

service = QiskitRuntimeService()
# On a Heron QPU
backend = service.backend("ibm_kingston", calibration_id="slow_gates_ac")
# backend = service.backend("ibm_kingston", calibration_id="slow_gates_dc")

# On a Nighthawk QPU
backend = service.backend("ibm_phoenix", calibration_id="slow_gates")
เคล็ดลับ

เมื่อใช้ slow_gates_ac ให้ส่ง job ทั้งหมดในเวิร์กโฟลว์ไปยัง session เดียว เพื่อให้ทำงานขณะที่ noise ของอุปกรณ์ยังเสถียร

ตรวจสอบระยะเวลาของ gate​

เนื่องจาก slow gate calibration ทำให้ระยะเวลาของ gate cz ยาวขึ้น ให้เปรียบเทียบระยะเวลากับ calibration เริ่มต้นเพื่อทำความเข้าใจผลที่มีต่อ circuit ของคุณ ใช้ target ของ backend เพื่อหาระยะเวลาเป็นวินาทีของ gate cz บน qubit คู่ที่ต้องการ:

default_backend = service.backend("<backend_name>")
slow_backend = service.backend(
"<backend_name>", calibration_id="slow_gates_ac"
) # Or slow_gates_dc, or slow_gates on Nighthawk

qubits = (0, 1) # Replace with a connected qubit pair on the backend
print(default_backend.target["cz"][qubits].duration)
print(slow_backend.target["cz"][qubits].duration)

เนื่องจาก target สะท้อน calibration ที่เลือก ให้ transpile circuit ของคุณกับ backend ที่ใช้ calibration_id เดียวกับที่คุณวางแผนจะรัน

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

คำแนะนำ
  • เรียนรู้วิธี รัน dynamic circuit ที่มีการวัดกลาง circuit
  • ใช้ postselection เพื่อกรองผลลัพธ์ที่ได้รับผลจาก noise ที่สัมพันธ์กันออก
  • อ่านเกี่ยวกับวิธีที่คอมพิวเตอร์ควอนตัม IBM ถูก ตรวจสอบ, calibrate และ benchmark