การแก้ปัญหาคอขวด VRAM ของโมเดล Sparse MoE ด้วยระบบแคชบนหน่วยความจำโฮสต์

โครงการโอเพนซอร์สระดับแนวหน้าอย่าง llama.cpp ได้ทำการรวม (merge) การเปลี่ยนแปลงสำคัญผ่าน Pull Request หมายเลข #29887 ในหัวข้อ 'llama : add a GPU cache for MoE experts kept in host memory' ซึ่งเป็นการยกเครื่องกระบวนการประมวลผลโมเดลภาษาขนาดใหญ่ที่ใช้สถาปัตยกรรมแบบกระจายงานหรือ Mixture-of-Experts (MoE) เพื่อให้สามารถรันบนฮาร์ดแวร์ที่มีข้อจำกัดด้านหน่วยความจำกราฟิก (VRAM) ได้อย่างมีประสิทธิภาพมากขึ้น

ตามปกติแล้ว สถาปัตยกรรม MoE จะมีพารามิเตอร์รวมขนาดใหญ่มาก แต่ในแต่ละโทเคนของการประมวลผล จะมีเพียงส่วนย่อยของผู้เชี่ยวชาญ (experts) บางส่วนเท่านั้นที่ถูกเรียกใช้งาน การประมวลผลบนการ์ดจอระดับผู้บริโภคทั่วไปจึงมักประสบปัญหาคอขวด เนื่องจาก VRAM ไม่เพียงพอที่จะเก็บโมเดลทั้งหมด ทำให้ต้องแบ่งน้ำหนักโมเดลไปไว้ในหน่วยความจำหลักของระบบคอมพิวเตอร์ (Host DRAM) ซึ่งส่งผลให้ความเร็วในการดึงข้อมูลผ่านอินเทอร์เฟซ PCIe ช้าลงอย่างมหาศาล

Pull Request #29887 แก้ไขปัญหานี้โดยตรงด้วยการนำเสนอกลไกแคชแบบไดนามิกผ่านพารามิเตอร์คำสั่งใช้งานใหม่ ได้แก่ `-cmoe` และ `--moe-cache-mib` โดยระบบจะจัดสรรพื้นที่ VRAM บางส่วนไว้ทำหน้าที่เป็นหน้าต่างแคช เพื่อเก็บน้ำหนักของผู้เชี่ยวชาญที่ถูกเรียกใช้งานบ่อยที่สุดไว้บนการ์ดจอ ในขณะที่ปล่อยให้น้ำหนักส่วนที่ไม่ค่อยได้ใช้งานยังคงพักอยู่ในหน่วยความจำโฮสต์ DRAM ตามเดิม

ผลการทดสอบประสิทธิภาพจริงและตัวชี้วัดความเร็ว

ข้อมูลการประเมินประสิทธิภาพในบันทึกการพัฒนาแสดงให้เห็นถึงการยกระดับความเร็วที่ชัดเจน โดยเฉพาะการรันโมเดลยอดนิยม เช่น ตระกูล Qwen3.8-Flash-Next, Qwen3.6-35B-A3B รวมถึงโมเดล GLM ในรูปแบบการควอนไทซ์ (quantized models) บนการ์ดจอระดับกลางและระดับผู้บริโภคที่มี VRAM อยู่ระหว่าง 10GB ถึง 24GB

ในการทดสอบจำลองบนการ์ดจอ NVIDIA GeForce RTX 3080 ขนาดหน่วยความจำ 10GB ระบบแคชใหม่ช่วยเพิ่มความเร็วในการสร้างโทเคน (generation throughput) จากเดิมประมาณ 35 โทเคนต่อวินาที ขึ้นมาอยู่ที่ 47 โทเคนต่อวินาที นอกจากนี้ ในขั้นตอนการประมวลผลอินพุตหรือพรีฟิล (prefill phase) ความเร็วในการทำงานสามารถพุ่งทะลุไปถึง 500 โทเคนต่อวินาที

ตัวขับเคลื่อนสำคัญของประสิทธิภาพนี้คืออัตราการเข้าถึงแคชสำเร็จ (cache hit rate) ซึ่งบันทึกผลได้สูงถึง 72% ถึง 89% ระหว่างการทำงานต่อเนื่อง ซึ่งสะท้อนว่าการเรียกใช้งานเครือข่ายผู้เชี่ยวชาญในสถาปัตยกรรม MoE มีการรวมศูนย์และเกิดการใช้งานซ้ำในระดับสูงพอที่การจัดสรรแคชบน VRAM จะคุ้มค่ากับค่าใช้จ่ายในการสลับข้อมูล

เสียงสะท้อนจากชุมชนนักพัฒนาและการถกเถียงเชิงเทคนิค

ในหมู่นักพัฒนาอิสระและผู้ใช้งานโมเดลโอเพนซอร์ส การผสานโค้ดนี้ได้รับการต้อนรับอย่างอบอุ่น โดยกลุ่มนักทดลองที่มีฮาร์ดแวร์จำกัดมองว่านี่คือการอัปเกรดที่สำคัญต่อคุณภาพชีวิตการทำงาน ช่วยให้เครื่องเดสก์ท็อปทั่วไปสามารถรันโมเดลขนาดใหญ่ที่มีความสามารถสูงได้โดยไม่ต้องจ่ายค่าบริการคลาวด์

อย่างไรก็ตาม มีข้อสังเกตและข้อควรระวังในเชิงเทคนิคเกิดขึ้นเช่นกัน การทดสอบเบื้องต้นโดยนักพัฒนาบางส่วนชี้ว่า ผลลัพธ์ความเร็วอาจไม่เพิ่มขึ้นหรืออาจช้าลง หากผู้ใช้กำหนดขนาดพื้นที่แคช VRAM น้อยเกินไป เช่น การจัดสรรหน้าต่างแคชต่ำกว่า 8GB ซึ่งทำให้อัตรา Cache Miss สูงจนเกิดการคัดลอกข้อมูลไปมาอย่างไร้ประโยชน์ นอกจากนี้ยังมีการเปรียบเทียบว่าการปรับแต่งนี้ยังคงต้องแข่งขันกับการดัดแปลงเคอร์เนลเฉพาะทางของโครงการแยกย่อยอื่นๆ

ในขณะเดียวกัน ประเด็นดังกล่าวยังจุดประกายการสนทนาเกี่ยวกับการบริหารจัดการโครงการโอเพนซอร์ส ว่าทีมผู้ดูแลระบบหลักควรสร้างสมดุลอย่างไรระหว่างการตรวจสอบโค้ดอย่างเข้มงวด การสนับสนุนโค้ดจากผู้ผลิตฮาร์ดแวร์ และการตอบรับข้อเสนอแนะระยะยาวจากชุมชน เพื่อพัฒนาประสิทธิภาพการประมวลผลแบบแบตช์ (batched inference) ให้ทันต่อความต้องการใช้งานระดับโปรดักชัน

นัยสำคัญต่อภาคธุรกิจและโครงสร้างพื้นฐาน AI ในประเทศไทย

สำหรับธุรกิจ สตาร์ทอัพ และสถาบันการศึกษาในประเทศไทย การเปลี่ยนแปลงในครั้งนี้ช่วยลดภาระต้นทุนด้านฮาร์ดแวร์ลงอย่างมีนัยสำคัญ ปัจจุบันองค์กรไทยจำนวนมากเผชิญข้อจำกัดด้านงบประมาณในการจัดซื้อการ์ดจอระดับเซิร์ฟเวอร์ เช่น ตระกูล A100 หรือ H100 แต่ยังมีความต้องการประมวลผลโมเดลขนาดใหญ่ภายในองค์กร (On-Premise) เพื่อรักษาความปลอดภัยของข้อมูลลูกค้าและสอดคล้องกับ พ.ร.บ. คุ้มครองข้อมูลส่วนบุคคล (PDPA)

การที่ llama.cpp สามารถดึงประสิทธิภาพของโมเดล Sparse MoE ออกมาได้บนการ์ดจอทั่วไปที่ติดตั้งแรม 10GB ถึง 24GB ทำให้ทีมวิศวกรรมข้อมูลในไทยสามารถนำเวิร์กสเตชันเดิมที่มีอยู่มาปรับใช้เป็นเซิร์ฟเวอร์รันงานเฉพาะทางได้ทันที เช่น งานสรุปเอกสารสัญญา การจำแนกประเภทข้อมูล หรือการสร้างแชตบอตบริการลูกค้า

คำแนะนำเชิงปฏิบัติสำหรับผู้นำด้านไอทีในไทยคือ การประเมินเวิร์กโหลดก่อนนำไปใช้จริง โดยจำเป็นต้องคำนึงถึงขนาดของหน่วยความจำหลัก (DRAM) ของเครื่องโฮสต์และแบนด์วิดท์ PCIe ควบคู่ไปกับการตั้งค่า VRAM cache window เพื่อให้มั่นใจว่าการจัดสรรทรัพยากรจะสร้างจุดคุ้มค่าทางเศรษฐศาสตร์สูงสุดและไม่กระทบต่อความเร็วในการตอบสนองของระบบปลายทาง

ทำไมเรื่องนี้สำคัญ

ช่วยปลดล็อกให้องค์กรและนักพัฒนาในไทยสามารถประมวลผลโมเดลสถาปัตยกรรม MoE ขนาดใหญ่บนเวิร์กสเตชันหรือการ์ดจอระดับผู้บริโภคที่มีแรม 10GB ถึง 24GB โดยไม่ต้องลงทุนซื้อเซิร์ฟเวอร์ราคาแพง

ข้อมูลอ้างอิงหลัก