เจาะประเด็น
Infrastructure / Cloud
เบื่อ AI Infra แพงๆ แล้วยังช้า? Unikraft ยัด Sandbox หนึ่งล้านตัวลงเซิร์ฟเวอร์เดียวแล้วบูตภายในมิลลิวินาที
เปลี่ยนโจทย์ "ใหญ่ไว้ก่อน" ให้เป็น "เบาและว่องไว" ด้วยเทคนิคที่หลายคนคิดว่ามันเป็นไปไม่ได้ในโลก Kubernetes
ทีมข่าว เอไอไทย.com
⏱ อ่าน 4 นาที
ถ้าเราบอกว่าโจทย์ใหญ่ของ AI ตอนนี้ไม่ใช่ "โมเดลเก่งพอ" แต่คือ "โครงสร้างพื้นฐานรับไม่ไหว" คุณจะเชื่อไหม?
เราคุยเรื่อง AI กันจนเบื่อแล้วว่ามันฉลาดแค่ไหน แต่ไม่ค่อยมีใครพูดถึงปัญหาที่ทำให้ผู้พัฒนาหัวเสียทุกวัน นั่นคือเรื่อง "โครงสร้างพื้นฐาน" หรือ AI Infra ที่ทั้งแพง ทั้งช้า ทั้งกินทรัพยากรแบบไม่มีเหตุผล โดยเฉพาะเวลาต้องรัน AI Agent หรือ workload ที่ต้องแยกสภาพแวดล้อมกันเพื่อความปลอดภัย
ปกติเวลาเราต้องการ Sandbox สำหรับรันโค้ดหรือ AI เรามักจะคิดถึงเครื่องเสมือน (VM) ที่แสนจะอ้วนและบูตช้า หรือไม่ก็ Container ที่เบากว่าแต่ก็ยังมี overhead เยอะอยู่ดี ยิ่งถ้าต้องเปิด Sandbox พร้อมกันเป็นพันๆ ตัวบน Kubernetes ล่ะก็ บอกเลยว่าเรื่อง "เวลา" คือตัวฆ่านักพัฒนา เพราะกว่าจะบูตเสร็จ หมดเวลาไปหลายวินาทีแล้ว
Felipe Huici จาก Unikraft ขึ้นเวที InfoQ เพื่อบอกว่าแนวคิดเดิมๆ มันผิดพลาดแล้ว เขาเสนอทางออกด้วยแนวคิดที่แทบจะสวนทางกับกระแสหลัก นั่นคือ "ทำให้มันเล็กและเร็วสุดๆ" แทนที่จะ "ใหญ่และยืดหยุ่น" และผลลัพธ์ที่ได้คือความหนาแน่นระดับที่ทำให้คนทั้งห้องต้องอึ้ง
สาเหตุที่ AI Infra มันแพงและช้า ไม่ใช่เพราะฮาร์ดแวร์อย่างเดียว แต่เพราะซอฟต์แวร์ที่เราคุ้นเคยอย่าง Linux Kernel ถูกออกแบบมาเพื่อ "ทุกอย่าง" ทำให้เวลาเปิด Sandbox ทีละล้านๆ ตัว แต่ละตัวต้องโหลด Kernel ที่หนักหน่วงขึ้นมา ถึงแม้เราจะใช้แค่ฟีเจอร์เดียวจากทั้งหมดพันฟีเจอร์ก็ตาม มันคือความสิ้นเปลืองโดยใช่เหตุ
Unikraft เลือกที่จะแก้ที่รากของปัญหา นั่นคือการไม่ใช้ Linux Kernel แบบเต็มรูปแบบ แต่ใช้แนวคิด Unikernel ที่คอมไพล์เฉพาะส่วนที่จำเป็นต้องใช้เข้าไปใน Sandbox โดยตรง ทำให้ขนาดเล็กลงอย่างมาก และที่สำคัญคือ "บูตเร็วระดับมิลลิวินาที" ซึ่งนี่ไม่ใช่การพูดเกินจริง เพราะเขาโชว์ให้ดูสดๆ บนเวทีว่า Cold Boot ใช้เวลาเพียงไม่กี่มิลลิวินาทีเท่านั้น
จุดที่น่าสนใจที่สุดไม่ใช่แค่การบูตเร็ว แต่คือเทคนิคการทำ Stateful Scale-to-Zero หรือการย่อขนาดบริการให้เป็นศูนย์เมื่อไม่ใช้งาน แล้วกลับมาทำงานได้ในทันทีเมื่อมีคำขอเข้ามา ซึ่งเป็นฝันสูงสุดของคนทำคลาวด์ เพราะหมายถึงการประหยัดต้นทุนอย่างมหาศาล และ Unikraft ทำได้ด้วยเทคนิค "Snapshotting" อันชาญฉลาด
แทนที่จะรัน Sandbox ขึ้นมาใหม่ทุกครั้ง Unikraft จะแชร์สถานะเริ่มต้นร่วมกันผ่าน Copy-on-Write และใช้เทคนิคการสแนปชอตหน่วยความจำ ทำให้การสร้าง Sandbox ใหม่หลายพันตัวแทบไม่ต้องเสียเวลาในการโหลดอะไรซ้ำๆ มันเหมือนกับการถ่ายเอกสารต้นฉบับหนึ่งแผ่น แล้วแจกจ่ายได้ทันที โดยไม่ต้องพิมพ์ใหม่ทุกครั้ง
ทั้งหมดนี้ยังทำงานร่วมกับ Kubernetes ได้แบบเนียนๆ ไม่ต้องเขียนวายแอลเอ็มแค่ไหนมาใหม่ให้ปวดหัว แถมยังรักษาระดับความปลอดภัยระดับฮาร์ดแวร์ (Hardware-level Security) ได้อีกต่างหาก เพราะมันใช้การแยก Isolation ในระดับที่ลึกกว่าแค่ Container ทั่วไป
ต้องยอมรับว่าวิธีคิดของ Unikraft มัน "ไม่เท่" ในสายตาคนที่ชอบแก้ปัญหาด้วยการเพิ่ม Node หรือเพิ่มแรม แต่ในยุคที่ค่าไฟฟ้าของ Data Center ทั่วโลกพุ่งสูงขึ้นทุกปี แนวคิดแบบ "เอาของฟุ่มเฟือยออกไป" อาจเป็นคำตอบที่ถูกต้องกว่าการ "ซื้อเพิ่ม" เสียอีก
แน่นอนว่า Unikernel ไม่ใช่ของใหม่ และเคยมีคนพยายามทำมาก่อน แต่ที่ผ่านมามันไม่เคยเกาะกระแสหลักได้ เพราะ ecosystem รอบข้างยังไม่พร้อม แต่ตอนนี้เมื่อ AI กำลังบีบให้ทุกคนต้องคิดถึงประสิทธิภาพแบบสุดโต่ง บางทีจังหวะของ Unikraft อาจมาถึงแล้วก็ได้
ถ้าใครยังคิดว่าการรัน Sandbox หลักหมื่นบนเครื่องเดียวเป็นเรื่องเพ้อฝัน ผมว่าแกต้องไปดูงานวิจัยชิ้นนี้ให้ดี เพราะอนาคตของ AI Infra อาจไม่ได้อยู่ที่ "เครื่องที่แรงกว่า" แต่อยู่ที่ "เครื่องที่รู้จักพอ" ต่างหาก
ที่มา: InfoQ AI/ML — อ่านต้นฉบับ
ความคิดเห็น 3
กำลังโหลดความคิดเห็น...