มาทำความรู้จักกับเครื่องมือสำหรับ Quantum Computing ของ Microsoft กัน . . .
รู้จักกับ Azure Quantum
Azure Quantum เป็น “Cloud Quantum Computing Service” ของ Azure ที่จะช่วยให้การคำนวณเชิงควอนตัม (Quantum Computing) นั้นมีความยืดหยุ่น เปิดกว้าง และรองรับสำหรับอนาคตของควอนตัมคอมพิวเตอร์ โดยที่สามารถปรับให้เข้ากับวิธีการทำงาน เร่งความคืบหน้าการทำงาน และ ช่วยลดการลงทุนเกี่ยวกับควอนตัมคอมพิวเตอร์ขององค์กรได้อีกด้วย
Azure Quantum จะ ‘คัดเลือกสภาพแวดล้อม (environment) สำหรับการพัฒนาที่ดีที่สุด’ ในการที่จะสร้างควอนตัมอัลกอริทึม (Quantum Algorithm) สำหรับหลายแพลตฟอร์มพร้อมกัน ที่มีความยืดหยุ่นในการปรับอัลกอริทึมเดียวกันของระบบที่ต้องการเฉพาะเจาะจงได้ โดยที่เพียงเขียนโค้ดครั้งเดียวและรัน จะไม่มีการเปลี่ยนแปลงใดๆ กับเป้าหมายหลายรายการในตระกูลเดียวกัน (against multiple targets of the same family) หรือก็คือจะช่วยให้คุณโฟกัสแค่การเขียนโค้ดสำหรับอัลกอริทึมเพียงอย่างเดียว โดยที่คุณไม่ต้องสนใจในเรื่องของ environment เลย
โดยที่ยังมีคุณสมบัติอื่น ๆ ดังนี้
- ‘Open Ecosystem’ ที่จะช่วยให้สามารถเข้าถึง software, hardware และ quantum solution ที่หลากหลายจากทาง Microsoft และ partners โดยที่สามารถเลือกใช้ Quantum Programming Computing อื่น ๆ ได้ เช่น Qiskit ของทาง IBM, Cirq ของทาง Google หรือจะเป็น Q# ของทาง Microsoft สำหรับการใช้รันอัลกอริทึมของคุณบนควอนตัมหลายระบบได้(multiple quantum systems)
- เตรียมพร้อมสำหรับระบบควอนตัมที่จะมีการปรับขนาดขึ้นเรื่อย ๆ ในอนาคต (scaled) ด้วยการสร้างผลลัพธ์ล่วงหน้า(pre-buit solutions) ที่ทำงานบนทรัพยากรการประมวลผลแบบ classical computer และแบบ accelerated compute resource (หรือเรียกอีกอย่างนึงว่า optimization solutions)
โดยที่คุณสามารถไปลองใช้งาน Azure Quantum ได้แล้วบน Azure Portal ที่ถ้าหากยังไม่เคยสมัครจะสามารถใช้ Credit แบบฟรีถึง 200$ และสำหรับนักเรียน/นักศึกษา จะสามารถใช้ได้ฟรี 150$ ต่อปี สามารถอ่านรายละเอียดเพิ่มเติมได้ที่ : Azure account
ส่วนประกอบของ Azure Quantum มีอยู่ 2 ส่วน ดังนี้
- Quantum Computing: สำหรับการเรียนรู้ ทดลอง และสร้าง prototype สำหรับผู้ใช้บริการ quantum hardware ที่หลากหลาย ซึ่งจะช่วยให้สามารถเตรียมความพร้อมสำหรับการปรับขนาด (scaled) ของ Quantum Machine ในอนาคตได้ โดยที่ต่างจาก solutions อื่น ๆ ตรงที่คุณจะไม่ยึดติดกับเทคโนโลยีของฮาร์ดแวร์เพียงตัวเดียว เช่น จะใช้ quantum machine ของ IBM ก็ต้องใช้ qiskit แต่ทาง Azure Quantum เปิดให้สามารถเลือกใช้วิธีการไหนก็ได้ และ จะได้รับประโยชน์จากแนวทางเต็มรูปแบบในการปกป้องการลงทุนระยะยาวของคุณ
- Optimization: สำหรับการช่วยคุณลดต้นทุนในการดำเนินการในด้านต่าง ๆ เช่น การเงิน, ต้นทุนด้านพลังงาน, การจัดกลุ่มยานพาหนะ, การจัดกำหนดการต่าง ๆ (scheduling) และอื่น ๆ
Azure Quantum และ Quantum Development Kit จะช่วยให้คุณสามารถใช้งาน Quantum Algorithm และ Optimization Solutions ได้ จากนั้นนำ solution เหล่านั้นจาก Azure Platform มาประยุกต์ใช้ให้เกิดผลกระทบในโลกแห่งความเป็นจริง ก่อนที่จะเกิดการพัฒนา general-purpose Quantum Computer หรือก็คือ Quantum Computer แบบพกพานั่นเอง
Azure Quantum เหมาะสำหรับใคร?
Azure Quantum เหมาะสำหรับทั้งบุคคลทั่วไปและบริษัทที่ต้องการนำ Quantum Computation มาใช้ใน product
สำหรับผู้ใช้งานครั้งแรกจะได้รับ Azure Quantum Credits ฟรีอัตโนมัติสำหรับใช้กับ quantum hardware provider ในแต่ละราย (รายละ 500$) เมื่อสร้าง workspace ของคุณ และถ้าหากคุณใช้เครดิตหมดแล้วและต้องการเพิ่ม สามารถสมัคร Azure Quantum Credits program ได้ หรือ สามารถอ่านรายละเอียดเพิ่มเติมได้ที่: Azure Quantum Credits program
- สำหรับอุตสาหกรรม
สำหรับธุรกิจ การใช้งาน Quantum Solution สามารถช่วยให้สามารถเพิ่มการแข่งขันของธุรกิจคุณได้มากขึ้นและทำให้ธุรกิจของคุณอยู่ในระดับแนวหน้าของนวัตกรรม โดยที่ในการสร้าง solution ด้วย Azure Quantum จะช่วยให้ธุรกิจของคุณนำ optimization technologies ล่าสุดมาใช้ และยังช่วยประหยัดต้นทุนในระยะยาวอีกด้วย โดยที่ Azure Quantum นั้นจะนำเสนอแต่ quantum resources ที่ดีในปัจจุบัน มาปรับใช้กับอุตสาหกรรมของคุณได้
สามารถทำงานโดยตรงกับทีม Azure Quantum ของทาง Microsoft ได้ผ่านโปรแกรม Enterprise Acceleration เพื่อจัดการกับปัญหาที่ยากเชิงควอนตัมแต่ให้ผลลัพธ์ที่ตอบแทนสูงโดยใช้ high-performance hybrid quantum classical systems และ ชุด quantum hardware ที่สมบูรณ์
หากต้องการเรียนรู้เพิ่มเติมในการนำ Azure Quantum ไปปรับใช้กับชีวิตจริงได้ที่: case studies
- สำหรับผู้พัฒนา (developers)
สำหรับนักพัฒนา สามารถใช้เครื่องมือทางโปรแกรมมิ่งที่คุ้นเคยในการสร้าง quantum applications ได้ โดยที่สามารถเริ่มต้นกับภาษาและ SDK ที่คุ้นเคยได้ เช่น Qiskit หรือ Cirq ที่จะเป็นการใช้ Python package ในการพัฒนา หรือ สามารถใช้ quantum computer language อย่าง Q# ด้วย Azure Quantum และ Quantum Development Kit ของทาง Microsoft ซึ่งสามารถศึกษา quantum programming อื่น ๆ หรือ ศึกษาการนำไปประยุกต์ใช้ในด้านอื่น ๆ เช่น data search, quantum machine learning หรือ optimization solutions
โดยที่คุณสามารถเขียนโค้ดและทำงานได้บน IDE ที่คุ้นเคยได้ เช่น Visual Studio, VS Code หรือทำงานบน Azure Quantum portal ด้วย Jupyter notebooks
- สำหรับนักวิจัย
สำหรับนักวิจัย Azure Quantum สามารถช่วยให้คุณสามารถทดสอบ quantum algorithms, ทฤษฎีต่าง ๆ หรือ จำลองระบบควอนตัมอย่างมีประสิทธิภาพ เช่น ตัวนำยิ่งยวด(superconductivity) และ การก่อตัวโมเลกุลที่ซับซ้อน เป็นต้น Azure Quantum ยังสามารถช่วยให้คุณสามารถควบคุมการคำนวณควอนตัมและได้รับประโยชน์ต่าง ๆ จากนวัตกรรมล่าสุดอีกด้วย
นอกจากการให้ free credit 500$ แล้ว Microsoft ยังเสนอ free credit สูงถึง 10,000$ สำหรับการนำ quantum hardware ไปใช้ในการค้นคว้า quantum algorithm ใหม่, ตรวจสอบ use cases ด้วย quantum และใช้สำหรับการทดลองอื่น ๆ โดยที่ free credit ที่จะได้รับนั้นจะได้รับตาม application’s value ต่อ quantum ecosystem จากการวิจัย การศึกษา หรือ อุตสาหกรรม ดูข้อมูลเพิ่มเติมได้ที่: Azure Quantum Credits program
- สำหรับผู้ชื่นชอบควอนตัม
Azure Quantum เป็นเครื่องมือที่ยอดเยี่ยมสำหรับการสอนหรือการเรียนรู้ Quantum Computing และ Quantum Applications โดยที่คุณสามารถขยายขอบเขตของการเรียนรู้ผ่านการเข้าถึงชุดของ quantum technologies ที่หลากหลายที่สุด หรือ เรียนพื้นฐานของ quantum computing ด้วย Q#
ทำไมต้องใช้ Quantum Computing
Quantum Computer จะเป็นการนำคุณสมบัติที่เป็นเอกลักษณ์ของฟิสิกส์ควอนตัม เช่น superposition, entanglement และ quantum interference ที่จะนำไปใช้กับ computing ที่จะเป็นการแนะนำแนวคิดใหม่ ๆ ให้กับวิธีการเขียนโปรแกรมแบบเดิมในปัจจุบัน จากคุณสมบัติของฟิสิกส์ควอนตัมเมื่อนำไปใช้กับ Quantum Computer แล้วสามารถที่จะทำให้การคำนวณข้อมูลของคอมพิวเตอร์เพิ่มขึ้นอย่างทวีคูณและช่วยแก้ไขปัญหาที่ซับซ้อนได้ดีมากยิ่งขึ้น และถ้าหากอนาคตสามารถออกแบบหรือปรับขนาดของควอนตัมคอมพิวเตอร์ได้ ควอนตัมคอมพิวเตอร์จะมีความสามารถที่เหนือกว่าซูเปอร์คอมพิวเตอร์(supercomputer) ที่ทรงพลังที่สุดในปัจจุบัน
Azure Quantum เสนอ solutions 2 ประเภท คือ การคำนวณเชิงควอนตัม (quantum computing) และ การเพิ่มประสิทธิภาพ (optimization)
- การคำนวณเชิงควอนตัม (quantum computing)
หากคุณจะทำการจำลองปัญหาทางกลศาสตร์ควอนตัม เช่น ปฏิกิริยาเคมี ปฏิกิริยาทางชีวภาพ หรือ การก่อตัวของวัสดุ Quantum Computer จะทำงานได้ดีเป็นพิเศษเนื่องจากใช้ปรากฎการณ์ควอนตัมในการคำนวณ Quantum computer จะสามารถช่วยเร่ง progress ในด้านต่าง ๆ ได้ เช่น การเงิน, machine learning และ การค้นหาข้อมูลที่ไม่มีโครงสร้าง ซึ่งจำเป็นต้องใช้การคำนวณจำนวนมาก
- การเพิ่มประสิทธิภาพ (optimization)
การเพิ่มประสิทธิภาพเป็นกระบวนการในการค้นหาวิธีแก้ไขปัญหาที่ดีที่สุด โดยพิจารณาจากผลลัพธ์และข้อจำกัดที่ต้องการ ซึ่งปัญหาการเพิ่มประสิทธิภาพที่ซับซ้อนนั้นมีอยู่ในทุกอุตสาหกรรม เช่น การกำหนดเส้นทางยานพาหนะ, supply chain management, power grid management หรือ อื่น ๆ อีกมากมาย การแก้ปัญหาเหล่านี้จะส่งผลให้เกิดประโยชน์ต่อผลกำไรของธุรกิจเพิ่มมากยิ่งขึ้น เช่น ช่วยลดต้นทุน กระบวนการจัดการอะไรต่าง ๆ เร็วขึ้น หรือ มีความเสี่ยงที่ลดลง
Workflow ของการพัฒนา Quantum Software
ต่อไปจะเป็นการแสดงขั้นตอนต่าง ๆ ของโปรแกรมทางควอนตัมที่จะเปลี่ยนจากแนวคิดไปสู่การใช้งานจริงบน Azure Quantum และเครื่องมือต่าง ๆ โดยในที่นี่จะใช้ตัว Quantum Development Kit (QDK) ดังนี้
- เขียน Quantum Code: จากตัวอย่างจะเป็นการใช้ภาษา Q# ในการสร้างโปรแกรมทางควอนตัม ซึ่งสามารถเขียนในบน Jupyter notebooks บน Azure Quantum workspace หรือ ถ้าอยากเขียนบนเครื่องของคุณสามารถใช้ QDK extensions บน Visual Studio หรือ VS Code ได้
- ใช้ Libraries ต่าง ๆ เพื่อเพิ่มประสิทธิภาพการทำงาน: ทาง Quantum Computing ก็มี libraries ต่าง ๆ มากมายที่จะช่วยให้โค้ดของคุณนั้นทำงานได้ดีมากยิ่งขึ้นและสะดวกมากยิ่งขึ้น ซึ่งจะช่วยให้คุณโฟกัสแค่การเขียน logic ของ quantum algorithm เท่านั้น
- ใช้งานร่วมกับ Classical Software: QDK นั้นสามารถช่วยให้คุณรวมโปรแกรมของภาษา Q# เข้ากับ Python และ .NET ได้ ทำให้สามารถใช้ประโยชน์หรือประยุกต์ใช้เข้าร่วมกับ classical computing ต่าง ๆ ได้ดี โดยที่คุณยังสามารถนำโปรแกรมทางควอนตัมกลับมาใช้ใหม่ได้และสามารถ submit โค้ดที่คุณสร้างด้วย Qiskit และ Cirq ด้วยการเปลี่ยนแปลงโค้ดเล็กน้อยหรือไม่มีการเปลี่ยนแปลงเลย
- รัน Quantum Code บน Simulation: คุณจะต้องรันโค้ดของคุณบนเครื่องจำลองทางควอนตัม(Quantum Simulators) ก่อน หรือ ก็คือเป็นการใช้ Classical Computer ในการจำลองคุณสมบัติต่าง ๆ เชิงควอนตัม เพื่อที่จะสามารถเรียกใช้และดูว่า program ของคุณที่เขียนนั้นทำงานยังไง โดยที่ไม่ต้องเข้าถึง Quantum Computer จริง ๆ
- Estimate Resources: ก่อนที่จะรันโค้ดของคุณบน Quantum Computer คุณจะต้องพิจารณาว่าโปรแกรมที่คุณสร้างนั้นสามารถทำงานบนฮาร์ดแวร์ที่มีอยู่ได้หรือไม่ โดยที่สามารถใช้ QDK resource estimators ในการบอกคุณว่าควรใช้กี่ qubits และบอกระยะเวลาของโปรแกรมที่คุณใช้
- Run your Code on Quantum Computer: ขั้นตอนสุดท้ายก็คือการใช้ Azure Quantum ในการรันโปรแกรมของคุณบนควอนตัมคอมพิวเตอร์
ในที่นี่จะเป็นการใช้ Q# ในการสร้าง Quantum Program เท่านั้น ในปัจจุบันอาจจะมีข้อจำกัดในเรื่องของ hardware ที่ทำให้คุณต้องปรับเปลี่ยนโค้ดบางส่วน แต่ในอนาคตคุณจะสามารถสลับระหว่างเครื่องจำลอง(simulators) กับ ผู้ให้บริการควอนตัมคอมพิวเตอร์ต่าง ๆ ได้โดยไม่ต้องมีการปรับเปลี่ยนโค้ดเลย
Quantum cloud solutions บน Azure Quantum
หลังจากที่คุณตรวจสอบความถูกต้องและประเมินว่าโปรแกรมของคุณนั้นเหมาะสมที่จะทำงานบน Quantum Computer แล้ว คุณสามารถส่งโปรแกรมของคุณไปยัง Azure Quantum ซึ่งต่อไปจะเป็นการแสดง workflow พื้นฐานหลังจากที่คุณส่งโปรแกรมของคุณ
Azure Quantum นั้นจะนำเสนอแหล่งข้อมูลเชิงควอนตัมที่หลากหลายในปัจจุบัน โดยที่ทาง Azure Quantum นั้นได้ทำพันธมิตรมากมายกับผู้ให้บริการเครื่องควอนตัมคอมพิวเตอร์ต่าง ๆ ต่อไปนี้ ที่จะทำให้คุณสามารถนำโปรแกรมเชิงควอนตัมที่คุณเขียนไปรันบนเครื่องฮาร์ดแวร์จริงได้ และ ยังสามารถทดสอบโค้ดของคุณบน ควอนตัมคอมพิวเตอร์แบบจำลอง (simulated quantum computer) ได้อีกด้วย
ผู้ให้บริการ Quantum Computing ต่าง ๆ
คุณสามารถเลือกใช้ provider ที่ดีที่สุดสำหรับปัญหาของคุณและที่คุณต้องการได้
- Quantinuum: เป็นระบบแบบไอออน (Trapped-ion system) ที่มีความเที่ยงตรงสูง สามารถเชื่อมต่อกับ qubit ได้อย่างเต็มที่, มีความผิดพลาดต่ำ และสามารถใช้งาน qubit ซ้ำกันได้
- IONQ: ควอนตัมคอมพิวเตอร์ที่มีความไดนามิก (Dynamically) ที่จะทำให้คุณสามารถเชื่อมต่อกับ qubits ได้มากถึง 11 qubits และจะช่วยให้คุณสามารถจับคู่ 2 qubits ระหว่างคู่ใดก็ได้
- Pasqal: Quantum Processors ที่จะเป็นการใช้ Neural atom-based ที่ทำงานอยู่ที่อุณหภูมิห้อง จะทำให้คุณสามารถเชื่อมต่อ Qubit ได้ดีมากยิ่งขึ้น โดยที่คุณสามารถลงทะเบียนล่วงหน้าเพื่อดูตัวอย่างส่วนตัวของ Azure Quantum ของ Pasqal ได้ที่ private preview
- Rigetti: Gate-based superconducting processors ที่จะเปิดตัวในไม่ช้าบน Azure Quantum ในอนาคต ที่จะเป็นการใช้ Quantum Intermediate Representation (QIR) เพื่อทำให้มี low latency และ เป็นการดำเนินการแบบขนาน (parallel execution) โดยที่คุณสามารถลงทะเบียนล่วงหน้าเพื่อดูตัวอย่างส่วนตัวของ Azure Quantum ของ Rigetti ได้ที่ private preview
- Quantum Circuits, Inc: Full-stack superconducting circuits ที่จะมี real-time feedback ที่ช่วยให้คุณสามารถแก้ไข error (error correction) และ encoding-agnostic entangling gate โดยที่คุณสามารถลงทะเบียนล่วงหน้าเพื่อดูตัวอย่างส่วนตัวของ Azure Quantum ของ QCI ได้ที่ private preview
สามารถดูข้อมูลเพิ่มเติมของแต่ละ provider ได้ที่: Quantum computing target list
- Optimization providers
สำหรับการแก้ไขปัญหาทางด้าน Optimization solutions คุณสามารถเลือกใช้ providers ต่าง ๆ ได้ดังนี้
- 1QBit: Iterative heuristic algorithms ที่จะเป็นการใช้ search techniques ในการแก้ไขปัญหา QUBO
- Microsoft QIO: ชุดเป้าหมายหลายอย่าง (multiple targets) ที่จะช่วยเพิ่มประสิทธิภาพในการแก้ไขปัญหาให้ดีมากยิ่งขึ้น จากการวิจัยควอนตัมมายาวนานหลายทศวรรษ
- Toshiba SBM: Simulated Bifurcation Machine ของ Toshiba ที่จะเป็นการใช้ GPU ในการแก้ปัญหาด้วยการเพิ่มประสิทธิภาพ combinatorial ให้มีขนาดใหญ่ที่ความเร็วสูง
สามารถดูข้อมูลเพิ่มเติมของแต่ละ provider ได้ที่: Optimization target list.
แหล่งเรียนรู้เพิ่มเติม
สำหรับคนที่สนใจจะเรียนรู้ทางด้าน Quantum Computing ที่ทำงานบน Azure Quantum ทาง Microsoft มี Learning Path สำหรับการเรียนรู้ด้วย สามารถเข้าไปเรียนได้ที่: http://aka.ms/Learn-Quantum-TH
สรุป
Azure Quantum นั้นเปรียบเสมือนเป็นศูนย์กลางในการเชื่อมต่อกับ Quantum Technologies เจ้าอื่น ๆ ที่เปิดใช้ในปัจจุบัน ที่จะสามารถทำให้คุณนั้นเข้าถึงและเรียนรู้ Quantum Computing ได้สะดวกมากยิ่งขึ้น และ สามารถเลือกใช้เครื่องมือต่าง ๆ ได้ตามความสะดวกหรือตามงานที่ท่านต้องการใช้ได้อีกด้วย
ดังนั้นหากใครที่กำลังใช้ Quantum Technologies เจ้าอื่นอยู่ ลองมาใช้ Azure Quantum ดูครับ เผื่อชีวิตของคุณจะง่ายมากยิ่งขึ้น 😎
สุดท้ายนี้หากชื่นชอบโพสนี้ก็อย่าลืมแชร์และแบ่งปันความรู้ทางด้านควอนตัมต่อเนื่องให้กับคนอื่น ๆ ด้วยนะครับ ขอบคุณทุกคนที่อ่านถึงจุดนี้ครับ :)
Happy Coding & Learning Quantum 😁