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

เทคนิคการลดและระงับข้อผิดพลาด

โมเดลการรันแบบใหม่ อยู่ในช่วง beta

เวอร์ชัน beta ของโมเดลการรันแบบใหม่พร้อมให้ใช้งานแล้ว โมเดลการรันแบบ directed ให้ความยืดหยุ่นมากขึ้นในการปรับแต่งเวิร์กโฟลว์การลดข้อผิดพลาด ดูรายละเอียดเพิ่มเติมได้ที่คู่มือ Directed execution model

เทคนิคการลดข้อผิดพลาด (error mitigation) และการระงับข้อผิดพลาด (error suppression) ใช้เพื่อปรับปรุงคุณภาพผลลัพธ์เมื่อขยายงานไปสู่ workload ขนาดใหญ่ขึ้น หน้านี้อธิบายภาพรวมของเทคนิคการระงับและการลดข้อผิดพลาดที่มีให้ใช้งานใน Qiskit

การแยกพลวัต (Dynamical Decoupling)​

Circuit ควอนตัมรันบนฮาร์ดแวร์ IBM® ในรูปแบบลำดับของพัลส์ไมโครเวฟที่ต้องถูกจัดตารางและรันในช่วงเวลาที่แม่นยำ น่าเสียดายที่ปฏิสัมพันธ์ที่ไม่ต้องการระหว่าง Qubit อาจทำให้เกิดข้อผิดพลาดแบบ coherent บน Qubit ที่กำลังนิ่งอยู่ Dynamical decoupling ทำงานโดยการแทรกลำดับพัลส์บน Qubit ที่นิ่งเพื่อหักล้างผลของข้อผิดพลาดเหล่านี้โดยประมาณ ลำดับพัลส์แต่ละชุดที่แทรกเข้าไปเทียบเท่ากับการดำเนินการ identity แต่การมีพัลส์จริงทางกายภาพมีผลในการระงับข้อผิดพลาด มีตัวเลือกลำดับพัลส์มากมาย และการเลือกว่าลำดับใดดีกว่าสำหรับกรณีเฉพาะแต่ละกรณียังคงเป็นพื้นที่การวิจัยที่ยังคงดำเนินต่อ

โปรดทราบว่า dynamical decoupling มีประโยชน์หลักสำหรับ Circuit ที่มีช่องว่างซึ่ง Qubit บางตัวนิ่งอยู่โดยไม่มีการดำเนินการใดกระทำต่อพวกมัน หากการดำเนินการใน Circuit ถูกอัดแน่นมาก จนทุก Qubit ยุ่งอยู่ตลอดเวลา การเพิ่ม dynamical decoupling pulses อาจไม่ช่วยปรับปรุงประสิทธิภาพ ในความเป็นจริง อาจทำให้ประสิทธิภาพแย่ลงเนื่องจากความไม่สมบูรณ์ของพัลส์เอง

แผนภาพด้านล่างแสดง dynamical decoupling ด้วยลำดับพัลส์ XX Circuit นามธรรมทางซ้ายถูกแมปลงบนตารางเวลาพัลส์ไมโครเวฟที่ด้านบนขวา ด้านล่างขวาแสดงตารางเวลาเดียวกัน แต่มีลำดับพัลส์ซึ่งประกอบด้วยพัลส์ X สองพัลส์ถูกแทรกในช่วงที่ Qubit แรกนิ่ง

ภาพแสดง dynamical decoupling

คุณสามารถเปิดใช้ dynamical decoupling ได้ดังนี้:

การสุ่มแบบ Pauli (Pauli Twirling)​

Twirling หรือที่เรียกว่า randomized compiling เป็นเทคนิคที่ใช้กันอย่างแพร่หลายในการแปลง noise channel ที่ไม่ได้กำหนดเป็น noise channel ที่มีโครงสร้างเฉพาะเจาะจงมากขึ้น

Pauli twirling เป็น twirling ชนิดพิเศษที่ใช้การดำเนินการ Pauli มีผลในการแปลง quantum channel ใดๆ ให้เป็น Pauli channel เมื่อทำแบบเดี่ยวๆ สามารถลด coherent noise ได้เพราะ coherent noise มีแนวโน้มสะสมแบบกำลังสองตามจำนวนการดำเนินการ ในขณะที่ Pauli noise สะสมแบบเชิงเส้น Pauli twirling มักใช้ร่วมกับเทคนิคการลดข้อผิดพลาดอื่นที่ทำงานกับ Pauli noise ได้ดีกว่า noise ทั่วไปที่ไม่มีโครงสร้าง

Pauli twirling ถูกนำไปใช้โดยการประกบ Gate ที่เลือกด้วย single-qubit Pauli gates ที่เลือกแบบสุ่ม ในลักษณะที่ผลในอุดมคติของ Gate ยังคงเหมือนเดิม ผลคือ Circuit เดียวถูกแทนที่ด้วย ensemble ของ Circuit สุ่มทั้งหมดที่มีผลในอุดมคติเหมือนกัน เมื่อทำการ sampling Circuit จะมีการดึงตัวอย่างจาก instance สุ่มหลายตัว แทนที่จะเป็นแค่ตัวเดียว

ภาพแสดง Pauli twirling

เนื่องจากข้อผิดพลาดส่วนใหญ่ในฮาร์ดแวร์ควอนตัมปัจจุบันมาจาก two-qubit gates เทคนิคนี้จึงมักถูกใช้กับ (native) two-qubit gates เท่านั้น แผนภาพต่อไปนี้แสดง Pauli twirls บางส่วนสำหรับ Gate CNOT และ ECR ทุก Circuit ในแต่ละแถวมีผลในอุดมคติเหมือนกัน

ภาพแสดง gate twirls

คุณสามารถเปิดใช้ Pauli twirling ได้ดังนี้:

การกำจัดข้อผิดพลาดการอ่านค่าด้วยการสุ่ม (TREX)​

Twirled Readout Error eXtinction (TREX) ลดผลของข้อผิดพลาดในการวัดสำหรับการประมาณค่าความคาดหวังของ Pauli observable มันอิงจากแนวคิดของการวัดแบบ twirled ซึ่งทำได้โดยการแทนที่ measurement gates แบบสุ่มด้วยลำดับของ (1) Pauli X gate, (2) การวัด และ (3) การพลิกบิตแบบคลาสสิก เช่นเดียวกับ gate twirling มาตรฐาน ลำดับนี้เทียบเท่ากับการวัดธรรมดาเมื่อไม่มี noise ดังที่แสดงในแผนภาพต่อไปนี้:

ภาพแสดง measurement twirling

เมื่อมี readout error การทำ measurement twirling มีผลในการทำให้ readout-error transfer matrix เป็นแบบ diagonal ทำให้ง่ายต่อการหาผกผัน มีการเรียนรู้เทอม rescaling จาก diagonal noise channel โดยการ benchmark Circuit สุ่มที่เริ่มต้นในสถานะ zero ซึ่งช่วยให้ service ลบอคติออกจากค่าความคาดหวังที่เกิดจาก readout noise ได้ การประมาณ readout-error transfer matrix ต้องรัน calibration circuits เพิ่มเติม ซึ่งทำให้มี overhead เล็กน้อย

คุณสามารถเปิดใช้ TREX ได้ดังนี้:

การประมาณค่านอกช่วง Noise เป็นศูนย์ (ZNE)​

Zero-noise extrapolation (ZNE) เป็นเทคนิคสำหรับลดข้อผิดพลาดในการประมาณค่าความคาดหวังของ observable แม้จะปรับปรุงผลลัพธ์บ่อยครั้ง แต่ไม่รับประกันว่าจะให้ผลลัพธ์ที่ไม่มีอคติ

ZNE ประกอบด้วยสองขั้นตอน:

  1. การขยาย noise: Circuit ควอนตัมดั้งเดิมถูกรันหลายครั้งในอัตรา noise ที่แตกต่างกัน

  2. การ Extrapolation: ผลลัพธ์ในอุดมคติถูกประมาณโดยการ extrapolate ผลค่าความคาดหวังที่มี noise ไปยัง zero-noise limit

ทั้งการขยาย noise และขั้นตอน extrapolation สามารถนำไปใช้ได้หลายวิธี IBM Quantum Compute นำ noise amplification ไปใช้โดย "digital gate folding" ซึ่งหมายความว่า two-qubit gates ถูกแทนที่ด้วยลำดับที่เทียบเท่าของ Gate และ inverse ของมัน ตัวอย่างเช่น การแทนที่ unitary UU ด้วย UU†UU U^\dagger U จะให้ noise amplification factor เท่ากับ 3 สำหรับ extrapolation สามารถเลือกจากรูปแบบฟังก์ชันหลายแบบ รวมถึง linear fit หรือ exponential fit ภาพด้านล่างแสดง digital gate folding ทางซ้าย และขั้นตอน extrapolation ทางขวา

ภาพแสดง ZNE

overhead ของวิธีนี้ขยายตามจำนวน noise factors การตั้งค่าเริ่มต้นจะ sample ค่าความคาดหวังที่ noise factors สามค่า ทำให้มี overhead ราว 3 เท่า

คุณสามารถเปิดใช้ ZNE ได้ดังนี้:

การขยายข้อผิดพลาดเชิงความน่าจะเป็น (PEA)​

หนึ่งในความท้าทายหลักของ ZNE คือการขยาย noise ที่ส่งผลต่อ Circuit เป้าหมายอย่างแม่นยำ Gate folding ให้วิธีง่ายในการขยายนี้ แต่อาจไม่แม่นยำและอาจนำไปสู่ผลลัพธ์ที่ไม่ถูกต้อง ดูบทความ "Scalable error mitigation for noisy quantum circuits produces competitive expectation values" และโดยเฉพาะหน้า 4 ของข้อมูลเสริมสำหรับรายละเอียด Probabilistic error amplification ให้แนวทางที่แม่นยำกว่าในการขยาย error ผ่าน noise learning

PEA เป็นเทคนิคที่ซับซ้อนกว่าซึ่งทำการทดลองเบื้องต้นเพื่อสร้างแบบจำลอง noise ขึ้นใหม่ แล้วใช้ข้อมูลนี้เพื่อทำการขยายที่แม่นยำ มันเริ่มด้วยการเรียนรู้ twirled noise model ของแต่ละเลเยอร์ของ entangling gates ใน Circuit ก่อนที่จะรัน หลังจากระยะการเรียนรู้ Circuit จะถูกรันที่แต่ละ noise factor โดยทุกเลเยอร์ entangling ของ Circuit ถูกขยายโดยการฉีด single-qubit noise แบบ probabilistic ที่เป็นสัดส่วนกับ learned noise model ที่สอดคล้องกัน ดูบทความ "Evidence for the utility of quantum computing before fault tolerance" สำหรับรายละเอียดเพิ่มเติม

PEA ประกอบด้วยสามขั้นตอน:

  1. Learning: เรียนรู้ twirled noise model ของแต่ละเลเยอร์ของ entangling gates ใน Circuit
  2. การขยาย noise: Circuit ควอนตัมดั้งเดิมถูกรันหลายครั้งที่ noise factors ที่แตกต่างกัน
  3. Extrapolation: ผลลัพธ์ในอุดมคติถูกประมาณโดยการ extrapolate ผลค่าความคาดหวังที่มี noise ไปยัง zero-noise limit

สำหรับการทดลองในระดับ utility PEA มักเป็นตัวเลือกที่ดีที่สุด

เนื่องจาก PEA เป็นเทคนิคขยาย noise ของ ZNE คุณจึงต้องเปิดใช้ ZNE ด้วย คุณสามารถเปิดใช้ PEA และ ZNE ได้ดังนี้:

ต้องมีการเรียนรู้ noise

หากคุณกำลังใช้ client-side Estimator แบบใหม่ที่เปิดตัวใน qiskit-ibm-runtime v0.50.0 จำเป็นต้องมี noise-learning job แยกต่างหากเพื่อใช้ PEA ดู Migrate from server-side to client-side Sampler and Estimator สำหรับข้อมูลเพิ่มเติม

การหักล้างข้อผิดพลาดเชิงความน่าจะเป็น (PEC)​

Probabilistic error cancellation (PEC) เป็นเทคนิคสำหรับลดข้อผิดพลาดในการประมาณค่าความคาดหวังของ observable ต่างจาก ZNE มันส่งคืนการประมาณที่ไม่มีอคติของค่าความคาดหวัง อย่างไรก็ตาม โดยทั่วไปมี overhead ที่มากกว่า

ใน PEC ผลของ Circuit เป้าหมายในอุดมคติถูกแสดงเป็น linear combination ของ Circuit ที่มี noise ซึ่งสามารถนำไปใช้งานได้จริง:

Oideal=∑iηiOnoisy,i\mathcal{O}_{\text{ideal}} = \sum_{i} \eta_i \mathcal{O}_{noisy, i}

ผลลัพธ์ของ Circuit ในอุดมคติจึงสามารถจำลองซ้ำได้โดยการรัน Circuit instance ที่มี noise ต่างกันที่ดึงมาจาก ensemble สุ่มที่กำหนดโดย linear combination หากสัมประสิทธิ์ ηi\eta_i ก่อเป็น probability distribution สามารถใช้โดยตรงเป็นความน่าจะเป็นของ ensemble ในทางปฏิบัติ สัมประสิทธิ์บางตัวมีค่าลบ จึงก่อเป็น quasi-probability distribution แทน ยังสามารถใช้กำหนด ensemble สุ่มได้ แต่มี sampling overhead ที่เกี่ยวข้องกับค่าลบของ quasi-probability distribution ซึ่งมีลักษณะเฉพาะด้วยปริมาณ

γ=∑i∣ηi∣≥1.\gamma = \sum_{i} \lvert \eta_i \rvert \geq 1.

sampling overhead เป็น multiplicative factor ของจำนวน shots ที่ต้องการในการประมาณค่าความคาดหวังถึงความแม่นยำที่กำหนด เมื่อเทียบกับจำนวน shots ที่ต้องการจาก Circuit ในอุดมคติ มันขยายแบบกำลังสองกับ γ\gamma ซึ่งขยายแบบ exponential กับความลึกของ Circuit

คุณสามารถเปิดใช้ PEC ได้ดังนี้:

ต้องมีการเรียนรู้ noise

หากคุณกำลังใช้ client-side Estimator แบบใหม่ที่เปิดตัวใน qiskit-ibm-runtime v0.50.0 จำเป็นต้องมี noise-learning job แยกต่างหากเพื่อใช้ PEC ดู Migrate from server-side to client-side Sampler and Estimator สำหรับข้อมูลเพิ่มเติม

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