แนะนำ Qiskit
ชื่อ "Qiskit" เป็นคำทั่วไปที่หมายถึงคอลเลกชันของซอฟต์แวร์สำหรับรันโปรแกรมบนคอมพิวเตอร์ควอนตัม ที่โดดเด่นที่สุดในบรรดาเครื่องมือซอฟต์แวร์เหล่านี้คือ Qiskit SDK แบบโอเพ่นซอร์ส และสภาพแวดล้อม runtime (เข้าถึงผ่าน Qiskit Runtime) ที่ใช้รัน workload บนหน่วยประมวลผลควอนตัม (QPU) ของ IBM® เมื่อเทคโนโลยีควอนตัมพัฒนาขึ้น Qiskit ก็เช่นกัน โดยมีความสามารถใหม่ออกมาทุกปีที่ขยายคอลเลกชันหลักของซอฟต์แวร์ควอนตัมนี้
นอกจากนี้ โครงการโอเพ่นซอร์สหลายโครงการเป็นส่วนหนึ่งของระบบนิเวศ Qiskit ที่กว้างขึ้น เครื่องมือซอฟ ต์แวร์เหล่านี้ไม่ได้เป็นส่วนหนึ่งของ Qiskit โดยตรง แต่เชื่อมต่อกับ Qiskit และให้ฟังก์ชันเพิ่มเติมที่มีคุณค่า
IBM มุ่งมั่นในการพัฒนาการประมวลผลควอนตัมอย่างรับผิดชอบ เรียนรู้เพิ่มเติมและตรวจสอบหลักการควอนตัมที่รับผิดชอบของเราใน Responsible quantum computing
Qiskit SDK
Qiskit SDK (ชื่อแพ็กเกจ qiskit) เป็น SDK แบบโอเพ่นซอร์สสำหรับทำงานกับคอมพิวเตอร์ควอนตัมในระดับของ Circuit ควอนตัมแบบขยาย (static, dynamic และ scheduled) ตัวดำเนินการ และ Primitive ไลบรารีนี้เป็นส่วนประกอบหลักของ Qiskit เป็นแพ็กเกจที่ใหญ่ที่สุดภายใต้ชื่อ Qiskit ที่มีชุดเครื่องมือกว้างที่สุดสำหรับการประมวลผลควอนตัม และส่วนประกอบอื่นๆ อีกมากมายเชื่อมต่ อกับมัน
คุณสมบัติที่มีประโยชน์ที่สุดบางส่วนของ Qiskit SDK ได้แก่:
-
เครื่องมือสร้าง Circuit (
qiskit.circuit) - สำหรับเริ่มต้นและจัดการ register, Circuit, instruction, Gate, parameter และออบเจ็กต์ control flow -
ไลบรารี Circuit (
qiskit.circuit.library) - Circuit, instruction และ Gate ที่หลากหลาย ซึ่งเป็นบล็อกสร้างพื้นฐานสำหรับการประมวลผลควอนตัมแบบ Circuit -
ไลบรารีข้อมูลควอนตัม (
qiskit.quantum_info) - ชุดเครื่องมือสำหรับทำงานกับสถานะควอนตัม ตัวดำเนินการและช่องทาง โดยใช้การคำนวณแบบแม่นยำ (ไม่มี sampling noise) ใช้โมดูลนี้เพื่อระบุ observable input และวิเคราะห์ fidelity ของผลลัพธ์จากการ query Primitive -
Transpiler (
qiskit.transpiler) - สำหรับแปลงและปรั บ Circuit ควอนตัมให้เหมาะกับ topology ของอุปกรณ์เฉพาะ และเพิ่มประสิทธิภาพสำหรับการรันบนหน่วยประมวลผลควอนตัม (QPU) จริง -
Primitive (
qiskit.primitives) - โมดูลที่มีนิยามพื้นฐานและการนำไปใช้อ้างอิงของ Sampler และ Estimator Primitive ซึ่งผู้ให้บริการฮาร์ดแวร์ควอนตัมต่างๆ สามารถสืบทอดเพื่อสร้างการนำไปใช้ของตัวเอง ดูข้อมูลเพิ่มเติมเกี่ยวกับ Qiskit Runtime Primitive ในเอกสาร
การติดตั้ง
สำหรับการแนะนำโดยละเอียดเพิ่มเติมเกี่ยวกับการติดตั้ง Qiskit SDK ดูที่ หน้าการติดตั้ง ถ้าพร้อมติดตั้งแล้ว เพียงรัน:
pip install qiskit
การ Benchmark และแพ็กเกจ Benchpress
การ benchmark มีความสำคัญสำหรับการเปรียบเทียบประสิทธิภาพของซอฟต์แวร์ควอนตัมในขั้นตอนต่างๆ ของ workflow การพัฒนา การทดสอบ benchmark สำหรับซอฟต์แวร์ควอนตัมอาจดูที่ความเร็วและคุณภาพของการสร้าง จัดการ และ transpile Circuit ตัวอย่างเช่น IBM Quantum มุ่งมั่นที่จะส่งมอบ SDK ที่มีประสิทธิภาพสูงสุด และเพื่อจุดประสงค์นั้น Qiskit SDK ถูก benchmark ด้วยการทดสอบกว่า 1,000 รายการที่พัฒนาโดยมหาวิทยาลัยชั้นนำ ห้องปฏิบัติการแห่งชาติ และนักวิจัยที่ IBM ชุด benchmark ที่ใช้สำหรับการทดสอบเหล่านี้ ชื่อว่า Benchpress ตอนนี้มีให ้ใช้งานเป็น แพ็กเกจโอเพ่นซอร์ส คุณสามารถใช้แพ็กเกจ Benchpress เพื่อทำการวิเคราะห์ประสิทธิภาพของ quantum SDK ของคุณเองได้
Qiskit Runtime
Qiskit Runtime เป็นบริการบนคลาวด์สำหรับรันการประมวลผลควอนตัมบนฮาร์ดแวร์ IBM Quantum® แพ็กเกจ qiskit-ibm-runtime เป็น client สำหรับบริการนั้น และเป็นผู้สืบทอดของ Qiskit IBM Provider บริการ Qiskit Runtime ทำให้การประมวลผลควอนตัมราบรื่นขึ้นและมีการนำ Qiskit Primitive ไปใช้ที่เหมาะสมที่สุดสำหรับฮาร์ดแวร์ IBM Quantum หากต้องการเริ่มต้นกับ Qiskit Runtime Primitive เยี่ยมชม เอกสาร
Qiskit Runtime ออกแบบมาเพื่อใช้ทรัพยากรการประมวลผลแบบ classical และ quantum เพิ่มเติม รวมถึงเทคนิคอย่างการระงับข้อผิดพลาดและการลดข้อผิดพลาด เพื่อส่งคืนผลลัพธ์คุณภาพสูงขึ้นจ ากการรัน Circuit ควอนตัมบน quantum processor ตัวอย่างได้แก่ dynamical decoupling สำหรับการระงับข้อผิดพลาด และ readout mitigation และ zero-noise extrapolation (ZNE) สำหรับการลดข้อผิดพลาด เรียนรู้วิธีกำหนดค่าตัวเลือกเหล่านี้ในหน้า Configure error mitigation
Qiskit Runtime ยังมีโหมดการรัน 3 ประเภทสำหรับรันโปรแกรมควอนตัมบนฮาร์ดแวร์ IBM: Job, Session และ Batch ซึ่งแต่ละแบบมีกรณีการใช้งานและผลกระทบต่อคิวงาน quantum ที่แตกต่างกัน Job คือการ query Primitive ครั้งเดียวที่สามารถรันได้ตามจำนวน shot ที่กำหนด Session ช่วยให้รันงานหลายๆ งานได้อย่างมีประสิทธิภาพใน workload แบบ iterative บนคอมพิวเตอร์ควอนตัม โหมด Batch ช่วยให้ส่งงานทั้งหมดพร้อมกันสำหรับการประมวลผลแบบขนาน โปรดทราบว่าผู้ใช้ Open Plan ไม่สามารถส่งงาน Session ได้
หากต้องการติดตั้ง Qiskit Runtime อย่างรวดเร็ว รันคำสั่งต่อไปนี้:
pip install qiskit-ibm-runtime
รายละเอียดเพิ่มเติมเกี่ยวกับการตั้งค่าสภาพแวดล้อมการพัฒนาสำหรับสร้างโปรแกรมควอนตัมอยู่ใน หน้าการติดตั้ง
Qiskit Runtime เป็นโอเพ่นซอร์สหรือไม่?
คำตอบสั้นๆ คือ ไม่ทั้งหมด ซอฟต์แวร์บริการ Qiskit Runtime ที่จัดการรายละเอียดทางเทคนิคของการรันโปรแกรมควอนตัมบนอุปกรณ์ IBM Quantum (รวมถึงการลดและระงับข้อผิดพลาด) ไม่ เป็นโอเพ่นซอร์ส อย่างไรก็ตาม Qiskit Runtime client (อินเทอร์เฟสสำหรับผู้ใช้เข้าถึงบริการ Qiskit Runtime) Qiskit SDK ที่รันบนฝั ่ง server และซอฟต์แวร์บางส่วนที่ใช้สำหรับการลดข้อผิดพลาด เป็น โอเพ่นซอร์ส หากต้องการมีส่วนร่วมกับความพยายามโอเพ่นซอร์สของ Qiskit เยี่ยมชมองค์กร GitHub ของเราที่ github.com/Qiskit และ github.com/Qiskit-Extensions
Qiskit Serverless
การสร้างแอปพลิเคชันควอนตัมในระดับ utility โดยทั่วไปต้องการทรัพยากรการประมวลผลที่หลากหลาย Qiskit Serverless (qiskit-ibm-catalog.QiskitServerless) มีอินเทอร์เฟสที่เรียบง่ายสำหรับรัน workload ผ่านทรัพยากร quantum-classical ซึ่งรวมถึงการ deploy โปรแกรมไปยัง IBM Quantum Platform และรัน workload จากระยะไกล รวมถึงการจัดการทรัพยากรที่ง่ายสำหรับกรณีการใช้งาน multi-cloud และ quantum-centric supercomputing ดูข้อมูลเพิ่มเติมใน เอกสาร Qiskit Serverless เกี่ยวกับวิธีใช้คอล เลกชันเครื่องมือนี้เพื่อ:
- ประมวลผลงาน classical แบบขนาน เช่น การประมวลผลล่วงหน้าและการประมวลผลหลัง
- เก็บ workload ที่รันนานๆ ไว้บนคลาวด์ แม้ว่า laptop จะปิดอยู่
- Deploy โปรแกรมที่ใช้ซ้ำได้บนคลาวด์
หากต้องการเริ่มใช้ Qiskit Serverless ทันที ติดตั้งด้วย pip:
pip install qiskit_serverless
Qiskit Functions
Qiskit Functions (qiskit-ibm-catalog.QiskitFunctionsCatalog) เป็นบริการที่แบบ abstract ออกแบบมาเพื่อเร่งการค้นพบอัลกอริทึมและการสร้างต้นแบบแอปพลิเคชัน สำรวจ Qiskit Functions Catalog รวมถึ ง:
- Circuit functions: บริการที่รวม transpilation การระงับข้อผิดพลาด การลดข้อผิดพลาด และเทคนิคการประมวลผลหลัง ที่รับ Circuit แบบ abstract และ measurement observable ที่ต้องการเป็น input ด้วย Circuit functions ผู้ใช้สามารถค้นพบอัลกอริทึมและแอปพลิเคชันใหม่โดยไม่ต้องจัดการ transpilation หรือประสิทธิภาพของฮาร์ดแวร์ควอนตัม
- Application functions: บริการที่รวม workflow ควอนตัมทั้งหมด ตั้งแต่การแมป classical เป็น quantum การเพิ่มประสิทธิภาพสำหรับฮาร์ดแวร์ การรันบนฮาร์ดแวร์ และการประมวลผลหลัง ผู้ใช้สามารถสร้างต้นแบบแอปพลิเคชันในอุตสาหกรรมด้วย input และ output ที่คุ้นเคยในโดเมนนั้น
สมาชิก Premium Plan, Flex Plan และ On-Prem (ผ่าน IBM Quantum Platform API) Plan สามารถเข้าถึงฟังก์ชันที่ IBM ให้ได้ทันที หรือซื้อใบอนุญาตสำหรับฟังก์ชันที่ partner ให้บริการโดยตรงจาก partner เหล่านั้น
catalog ติดตั้งได้ด้วย pip:
pip install qiskit-ibm-catalog
Qiskit Transpiler Service
Qiskit Transpiler Service (ชื่อแพ็กเกจ qiskit-ibm-transpiler) เป็นบริการทดลองใหม่ที่ให้ความสามารถ transpilation จากระยะไกลบนคลาวด์สำหรับผู้ใช้ IBM Quantum Premium Plan, Flex Plan และ On-Prem (ผ่าน IBM Quantum Platform API) Plan นอกเหนือจากความสามารถ Transpiler ของ Qiskit SDK แบบ local งาน transpilation ของคุณยังได้ประโยชน์จากทรัพยากรคลาวด์ IBM Quantum และ transpiler pass ที่ขับเคลื่อนด้วย AI ผ่านบริการนี้ หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับวิธีรวม transpilation บนคลาวด์เข้ากับ Qiskit workflow ของคุณ ดูเอกสาร
transpiler service ติดตั้งได้ด้ว ย pip:
pip install qiskit-ibm-transpiler
Qiskit addons
Qiskit addons เป็นคอลเลกชันของความสามารถด้านการวิจัยสำหรับการค้นพบอัลกอริทึมในระดับ utility ความสามารถเหล่านี้สร้างต่อยอดจากรากฐานที่มีประสิทธิภาพของ Qiskit สำหรับการสร้างและรันอัลกอริทึมควอนตัม Addons เป็นส่วนประกอบซอฟต์แวร์แบบ modular ที่เชื่อมต่อกับ workflow เพื่อขยายหรือออกแบบอัลกอริทึมควอนตัมใหม่ หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับชุด Qiskit addon ที่มีและวิธีเริ่มใช้งาน เยี่ยมชม เอกสาร
มี addon หลายรายการขึ้นอยู่กับความสามารถด้านการวิจัยที่สนใจ แต่ละรายการสามารถติดตั้งด้วย pip
Sample-based quantum diagonalization (SQD):
pip install qiskit-addon-sqd
Approximate quantum compilation (AQC):
pip install qiskit-addon-aqc-tensor[quimb-jax]
Operator backpropagation (OBP):
pip install qiskit-addon-obp
pip install qiskit-addon-mpf
ระบบนิเวศ Qiskit
นอกเหนือจาก Qiskit มีโครงการโอเพ่นซอร์สหลายโครงการที่ใช้ชื่อ "Qiskit" แต่ไม่ได้เป็นส่วนหนึ่งของ Qiskit โดยตรง แต่เชื่อมต่อกับ Qiskit และให้ฟังก์ชันเพิ่มเติมที่มีคุณค่าเพื่อเสริมการทำงานหลักของ Qiskit โครงการบางส่วนดูแลโดยทีม IBM Quantum ในขณะที่บางโครงการได้รับการสนับสนุนจากชุมชนโอเพ่นซอร์สท ี่กว้างขึ้น Qiskit SDK ออกแบบในแบบ modular และขยายได้เพื่อให้นักพัฒนาสร้างโครงการเหล่านี้ที่ขยายความสามารถของมันได้ง่าย
โครงการที่นิยมบางส่วนในระบบนิเวศ Qiskit ได้แก่:
- Qiskit Aer (
qiskit-aer) - แพ็กเกจสำหรับ simulator การประมวลผลควอนตัมที่มีโมเดล noise จริง ให้อินเทอร์เฟสสำหรับรัน Circuit ควอนตัมโดยมีหรือไม่มี noise โดยใช้วิธี simulation ที่แตกต่างกัน ดูแลโดย IBM Quantum - qBraid SDK (
qbraid) - framework runtime ควอนตัมแบบ platform-agnostic สำหรับทั้งผู้ให้บริการซอฟต์แวร์และฮาร์ดแวร์ควอนตัม ออกแบบมาเพื่อทำให้การจัดการวงจรชีวิตของงาน quantum ราบรื่น ตั้งแต่การกำหนด specification ของโปรแกรมจนถึงการส่งงานและการประมวลผลและแสดงผลผลลัพธ์ ดูแลโดย qBraid - mthree
mthree- แพ็กเกจสำหรับการนำ M3 (Matrix-free Measurement Mitigation) ไปใช้ ซึ่งเป็นเทคนิคการลดข้อผิดพลาดของการวัดที่แก้ปัญหาความน่าจะเป็นของการวัดที่ถูก แก้ไขโดยใช้ขั้นตอนการลดมิติตามด้วยการ LU factorization โดยตรงหรือวิธี iterative แบบ preconditioned ที่ใกล้เคียงกับ O(1) ขั้น และสามารถคำนวณแบบขนานได้ ดูแลโดย IBM Quantum
คุณสามารถหา catalog ของโครงการต่างๆ ในหน้า Qiskit ecosystem รวมถึงข้อมูลเกี่ยวกับวิธีเสนอชื่อโครงการของคุณเอง
ขั้นตอนถัดไป
- เรียนรู้เกี่ยวกับไลบรารี Circuit และ instruction ที่มีใน circuit library ของ Qiskit
- อ่านเกี่ยวกับ Qiskit Transpiler และตัวเลือกมากมายสำหรับ transpilation ในส่วน Transpiler
- ค้นหาวิธีใช้ Qiskit Primitive เพื่อทำให้การเขียนโปรแกรมควอนตัมราบรื่นขึ้น