Azure Quantum คืออะไร?

ksupasate
5 min readApr 25, 2022

มาทำความรู้จักกับเครื่องมือสำหรับ 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) ดังนี้

Workflow ของการพัฒนา Quantum Software
  1. เขียน Quantum Code: จากตัวอย่างจะเป็นการใช้ภาษา Q# ในการสร้างโปรแกรมทางควอนตัม ซึ่งสามารถเขียนในบน Jupyter notebooks บน Azure Quantum workspace หรือ ถ้าอยากเขียนบนเครื่องของคุณสามารถใช้ QDK extensions บน Visual Studio หรือ VS Code ได้
  2. ใช้ Libraries ต่าง ๆ เพื่อเพิ่มประสิทธิภาพการทำงาน: ทาง Quantum Computing ก็มี libraries ต่าง ๆ มากมายที่จะช่วยให้โค้ดของคุณนั้นทำงานได้ดีมากยิ่งขึ้นและสะดวกมากยิ่งขึ้น ซึ่งจะช่วยให้คุณโฟกัสแค่การเขียน logic ของ quantum algorithm เท่านั้น
  3. ใช้งานร่วมกับ Classical Software: QDK นั้นสามารถช่วยให้คุณรวมโปรแกรมของภาษา Q# เข้ากับ Python และ .NET ได้ ทำให้สามารถใช้ประโยชน์หรือประยุกต์ใช้เข้าร่วมกับ classical computing ต่าง ๆ ได้ดี โดยที่คุณยังสามารถนำโปรแกรมทางควอนตัมกลับมาใช้ใหม่ได้และสามารถ submit โค้ดที่คุณสร้างด้วย Qiskit และ Cirq ด้วยการเปลี่ยนแปลงโค้ดเล็กน้อยหรือไม่มีการเปลี่ยนแปลงเลย
  4. รัน Quantum Code บน Simulation: คุณจะต้องรันโค้ดของคุณบนเครื่องจำลองทางควอนตัม(Quantum Simulators) ก่อน หรือ ก็คือเป็นการใช้ Classical Computer ในการจำลองคุณสมบัติต่าง ๆ เชิงควอนตัม เพื่อที่จะสามารถเรียกใช้และดูว่า program ของคุณที่เขียนนั้นทำงานยังไง โดยที่ไม่ต้องเข้าถึง Quantum Computer จริง ๆ
  5. Estimate Resources: ก่อนที่จะรันโค้ดของคุณบน Quantum Computer คุณจะต้องพิจารณาว่าโปรแกรมที่คุณสร้างนั้นสามารถทำงานบนฮาร์ดแวร์ที่มีอยู่ได้หรือไม่ โดยที่สามารถใช้ QDK resource estimators ในการบอกคุณว่าควรใช้กี่ qubits และบอกระยะเวลาของโปรแกรมที่คุณใช้
  6. Run your Code on Quantum Computer: ขั้นตอนสุดท้ายก็คือการใช้ Azure Quantum ในการรันโปรแกรมของคุณบนควอนตัมคอมพิวเตอร์

ในที่นี่จะเป็นการใช้ Q# ในการสร้าง Quantum Program เท่านั้น ในปัจจุบันอาจจะมีข้อจำกัดในเรื่องของ hardware ที่ทำให้คุณต้องปรับเปลี่ยนโค้ดบางส่วน แต่ในอนาคตคุณจะสามารถสลับระหว่างเครื่องจำลอง(simulators) กับ ผู้ให้บริการควอนตัมคอมพิวเตอร์ต่าง ๆ ได้โดยไม่ต้องมีการปรับเปลี่ยนโค้ดเลย

Quantum cloud solutions บน Azure Quantum

หลังจากที่คุณตรวจสอบความถูกต้องและประเมินว่าโปรแกรมของคุณนั้นเหมาะสมที่จะทำงานบน Quantum Computer แล้ว คุณสามารถส่งโปรแกรมของคุณไปยัง Azure Quantum ซึ่งต่อไปจะเป็นการแสดง workflow พื้นฐานหลังจากที่คุณส่งโปรแกรมของคุณ

workflow ของการทำงานหลังจากคุณส่งโค้ดของคุณบน Azure Quantum

Azure Quantum นั้นจะนำเสนอแหล่งข้อมูลเชิงควอนตัมที่หลากหลายในปัจจุบัน โดยที่ทาง Azure Quantum นั้นได้ทำพันธมิตรมากมายกับผู้ให้บริการเครื่องควอนตัมคอมพิวเตอร์ต่าง ๆ ต่อไปนี้ ที่จะทำให้คุณสามารถนำโปรแกรมเชิงควอนตัมที่คุณเขียนไปรันบนเครื่องฮาร์ดแวร์จริงได้ และ ยังสามารถทดสอบโค้ดของคุณบน ควอนตัมคอมพิวเตอร์แบบจำลอง (simulated quantum computer) ได้อีกด้วย

ผู้ให้บริการ Quantum Computing ต่าง ๆ

คุณสามารถเลือกใช้ provider ที่ดีที่สุดสำหรับปัญหาของคุณและที่คุณต้องการได้

  1. Quantinuum: เป็นระบบแบบไอออน (Trapped-ion system) ที่มีความเที่ยงตรงสูง สามารถเชื่อมต่อกับ qubit ได้อย่างเต็มที่, มีความผิดพลาดต่ำ และสามารถใช้งาน qubit ซ้ำกันได้
  2. IONQ: ควอนตัมคอมพิวเตอร์ที่มีความไดนามิก (Dynamically) ที่จะทำให้คุณสามารถเชื่อมต่อกับ qubits ได้มากถึง 11 qubits และจะช่วยให้คุณสามารถจับคู่ 2 qubits ระหว่างคู่ใดก็ได้
  3. Pasqal: Quantum Processors ที่จะเป็นการใช้ Neural atom-based ที่ทำงานอยู่ที่อุณหภูมิห้อง จะทำให้คุณสามารถเชื่อมต่อ Qubit ได้ดีมากยิ่งขึ้น โดยที่คุณสามารถลงทะเบียนล่วงหน้าเพื่อดูตัวอย่างส่วนตัวของ Azure Quantum ของ Pasqal ได้ที่ private preview
  4. Rigetti: Gate-based superconducting processors ที่จะเปิดตัวในไม่ช้าบน Azure Quantum ในอนาคต ที่จะเป็นการใช้ Quantum Intermediate Representation (QIR) เพื่อทำให้มี low latency และ เป็นการดำเนินการแบบขนาน (parallel execution) โดยที่คุณสามารถลงทะเบียนล่วงหน้าเพื่อดูตัวอย่างส่วนตัวของ Azure Quantum ของ Rigetti ได้ที่ private preview
  5. 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 ต่าง ๆ ได้ดังนี้

  1. 1QBit: Iterative heuristic algorithms ที่จะเป็นการใช้ search techniques ในการแก้ไขปัญหา QUBO
  2. Microsoft QIO: ชุดเป้าหมายหลายอย่าง (multiple targets) ที่จะช่วยเพิ่มประสิทธิภาพในการแก้ไขปัญหาให้ดีมากยิ่งขึ้น จากการวิจัยควอนตัมมายาวนานหลายทศวรรษ
  3. 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 😁

ผู้ใช้บริการเจ้าต่าง ๆ ที่ทำพันธมิตรกับ Azure Quantum

--

--

ksupasate

Computer Engineer student at KMUTT, Microsoft Learn Student Ambassadors and Quantum Evangelist