llama.cpp v0.9.0 อัปเดต เพิ่มการรองรับ FP8, ปรับปรุง KV Cache และเร่ง Prefill ของ Gemma 4

โปรเจกต์ llama.cpp ประกาศอัปเดตเวอร์ชัน 0.9.0 เมื่อวันที่ 4 พฤศจิกายน 2026 โดยรอบนี้มีการเปลี่ยนแปลงหลายส่วนที่เกี่ยวข้องกับการรัน Large Language Model (LLM) บนเครื่องส่วนตัว ทั้งการจัดการหน่วยความจำ การประมวลผลหลาย Sequence การรองรับโมเดลใหม่ และการประมวลผลเสียงและภาพ
สิ่งที่น่าสนใจคือการอัปเดตครั้งนี้ไม่ได้เน้นเพียงเพิ่มรายชื่อโมเดลที่รองรับ แต่ยังปรับปรุงโครงสร้างการทำงานภายในของ llama.cpp และ ggml ซึ่งเป็นส่วนสำคัญในการประมวลผลโมเดลบนฮาร์ดแวร์ที่แตกต่างกัน
1. เพิ่มการรองรับ OCP FP8 E4M3
หัวข้อที่มีชื่อว่า “1. เพิ่มการรองรับ OCP FP8 E4M3”หนึ่งในการเปลี่ยนแปลงสำคัญของ llama.cpp v0.9.0 คือการเพิ่มชนิดข้อมูล OCP FP8 E4M3 สำหรับการจัดเก็บและประมวลผล Tensor ในรูปแบบ FP8
FP8 เป็นรูปแบบตัวเลข Floating Point ที่ใช้พื้นที่จัดเก็บน้อยกว่า FP16 และ BF16 โดย E4M3 หมายถึงการใช้ 1 บิตสำหรับเครื่องหมาย 4 บิตสำหรับ Exponent และ 3 บิตสำหรับ Mantissa
การรองรับครั้งนี้ช่วยขยายตัวเลือกด้านรูปแบบข้อมูลสำหรับโมเดลและระบบที่สามารถทำงานกับ FP8 ได้ โดยใน Release นี้ยังเพิ่ม Conversion Helpers และชนิด FType ที่เกี่ยวข้องเข้ามาด้วย
อย่างไรก็ตาม การเพิ่ม FP8 ใน llama.cpp ไม่ได้หมายความว่าการ์ดจอทุกตัวจะสามารถประมวลผลโมเดล FP8 ได้ด้วยประสิทธิภาพเท่ากัน เพราะยังขึ้นอยู่กับความสามารถของ GPU, Backend และ Kernel ที่ใช้งาน
สำหรับผู้ใช้ Local AI จึงควรมองว่านี่เป็นการขยายความสามารถของระบบ มากกว่าจะเป็นการอัปเกรดความเร็วที่ทุกคนจะได้รับทันที
2. ปรับปรุง Unified KV Cache ด้วย flash_attn_ext_rows
หัวข้อที่มีชื่อว่า “2. ปรับปรุง Unified KV Cache ด้วย flash_attn_ext_rows”อีกหนึ่งการเปลี่ยนแปลงที่มีความสำคัญต่อการใช้งาน LLM คือการเพิ่ม Operation ใหม่ชื่อ flash_attn_ext_rows
การเปลี่ยนแปลงนี้มีเป้าหมายเพื่อทำให้ Unified KV Cache ทำงานได้มีประสิทธิภาพมากขึ้น โดยเฉพาะการประมวลผลหลาย Sequence พร้อมกัน
KV Cache เป็นหน่วยความจำที่ใช้เก็บ Key และ Value จากการประมวลผล Attention ก่อนหน้า ช่วยให้โมเดลไม่ต้องคำนวณข้อมูลเดิมซ้ำทุกครั้งที่สร้าง Token ใหม่
ส่วน Unified KV Cache เป็นแนวทางจัดการพื้นที่ KV Cache ที่ใช้ร่วมกันระหว่างหลาย Sequence ซึ่งมีประโยชน์กับการให้บริการโมเดลหลายคำขอพร้อมกัน
ปัญหาที่ต้องจัดการคือการประมวลผลแบบ Unified KV Cache อาจมีค่าใช้จ่ายเพิ่มเติมในบางรูปแบบ โดยเฉพาะช่วง Prefill
การเพิ่ม flash_attn_ext_rows จึงช่วยให้แต่ละ Query Slice สามารถเข้าถึงรายการแถว K/V ที่เกี่ยวข้องกับตัวเองได้อย่างเหมาะสม และช่วยฟื้นฟูประสิทธิภาพ Prefill ในกรณีที่ใช้ Unified KV Cache เมื่อเทียบกับการจัดการ KV Cache แบบไม่รวม
ประเด็นนี้มีความสำคัญกับผู้ที่ใช้ llama.cpp เป็น Local AI Server หรือเปิดให้หลายแอปพลิเคชันเชื่อมต่อเข้ามาใช้งานพร้อมกัน เพราะประสิทธิภาพของระบบไม่ได้ขึ้นอยู่กับความเร็วในการสร้าง Token เพียงอย่างเดียว แต่ยังขึ้นอยู่กับการจัดการคำขอและหน่วยความจำระหว่างแต่ละ Session ด้วย
3. เพิ่มการรองรับโมเดลใหม่ 4 สถาปัตยกรรม
หัวข้อที่มีชื่อว่า “3. เพิ่มการรองรับโมเดลใหม่ 4 สถาปัตยกรรม”llama.cpp v0.9.0 เพิ่มการรองรับโมเดลใหม่ 4 กลุ่ม ได้แก่
Clover-35B-A3B-Preview
โมเดลขนาด 35B ที่มี Active Parameters ประมาณ 3B ในรูปแบบ Diffusion Model และรองรับโหมด Autoregressive (AR) ด้วย
Limite 1B - Violetto
เพิ่มการรองรับโมเดล Limite ขนาด 1B ซึ่งเป็นอีกหนึ่งตัวเลือกสำหรับการทดลองโมเดลขนาดเล็ก
Metis-1.6
รองรับโมเดลในตระกูล Metis-1.6 ได้แก่ Praxis ขนาดประมาณ 2.9B และ Logos ขนาดประมาณ 10.2B
จุดที่น่าสนใจคือสถาปัตยกรรมแบบ Hybrid ซึ่งผสมผสาน Mamba-2 และ GQA Attention พร้อม Fixed-depth Recurrence และ LatentMoE
การรองรับโมเดลลักษณะนี้แสดงให้เห็นว่า llama.cpp กำลังขยายขอบเขตจาก Transformer แบบทั่วไปไปสู่สถาปัตยกรรมที่มีโครงสร้างแตกต่างออกไป
Mistral Large 4
เพิ่มการรองรับ Mistral Large 4 ซึ่งเป็นโมเดลขนาดใหญ่ในตระกูล Mistral
การเพิ่มโมเดลทั้ง 4 กลุ่มนี้ทำให้ผู้ใช้มีตัวเลือกสำหรับการทดลองมากขึ้น แต่การรองรับสถาปัตยกรรมไม่ได้รับประกันว่าไฟล์โมเดลทุก Quantization หรือทุกเวอร์ชันจะใช้งานได้ทันที ผู้ใช้ควรตรวจสอบไฟล์ GGUF และข้อกำหนดของโมเดลแต่ละตัวประกอบด้วย
4. ปรับปรุงประสิทธิภาพ Gemma 4 และการทำงานของโมเดลอื่น
หัวข้อที่มีชื่อว่า “4. ปรับปรุงประสิทธิภาพ Gemma 4 และการทำงานของโมเดลอื่น”ในส่วน Core Changes มีการปรับปรุงที่น่าสนใจหลายรายการ โดยเฉพาะ Gemma 4
Gemma 4 E2B และ E4B
มีการปรับ Graph Optimization ซึ่งทีมพัฒนาระบุว่าช่วยเพิ่มประสิทธิภาพ Prefill ได้อย่างมาก
Prefill คือช่วงที่โมเดลอ่านและประมวลผล Prompt ก่อนเริ่มสร้างคำตอบ การปรับปรุงส่วนนี้จึงมีผลกับงานที่ต้องส่ง Prompt ยาว ๆ เข้าไป เช่น การวิเคราะห์เอกสาร การสรุปข้อความ และการสนทนาที่มีประวัติยาว
อย่างไรก็ตาม Release Notes ไม่ได้ระบุตัวเลข Benchmark ที่ใช้ยืนยันอัตราการเพิ่มประสิทธิภาพ จึงยังไม่ควรนำไปสรุปเป็นเปอร์เซ็นต์ความเร็วที่เพิ่มขึ้น
Liquid Foundation Models (LFM3)
เพิ่มความสามารถในการใช้งาน GGUF ที่ผ่านการ Quantization แบบ NVFP4 รวมถึงรองรับ Tensor Split และการ Quantize Audio Codec Decoder
การเปลี่ยนแปลงเหล่านี้ช่วยขยายทางเลือกในการจัดการโมเดลและองค์ประกอบด้านเสียงของ LFM3
Speculative Decoding และ dFlash
มีการปรับปรุงการจัดการ Hidden State ของ MTP ใน Context Checkpoint และเปลี่ยนวิธีคัดลอก Hidden Features ของ dFlash ให้ใช้ Device Copies
ส่วนนี้เกี่ยวข้องกับระบบ Speculative Decoding ซึ่งเป็นเทคนิคที่ใช้โมเดลหรือกลไกช่วยคาดการณ์ Token ล่วงหน้า เพื่อลดต้นทุนในการสร้างคำตอบ โดยมีรายละเอียดด้านการจัดการข้อมูลระหว่างอุปกรณ์ที่ได้รับการปรับปรุงเพิ่มเติม
5. ขยายความสามารถด้านเสียง ภาพ และวิดีโอ
หัวข้อที่มีชื่อว่า “5. ขยายความสามารถด้านเสียง ภาพ และวิดีโอ”การอัปเดตครั้งนี้มีความเปลี่ยนแปลงด้าน Multimodal หลายรายการ ซึ่งน่าสนใจสำหรับผู้ที่ต้องการใช้ Local AI มากกว่า Chatbot แบบข้อความทั่วไป
Chatterbox TTS
เพิ่มการรองรับ Chatterbox Text-to-Speech สำหรับการสร้างเสียงจากข้อความ และเพิ่ม API สำหรับจัดการเสียงที่สร้างขึ้น
Nemotron 3.5 Transcribe
เพิ่มการรองรับระบบถอดเสียงแบบ Offline ที่รองรับ 40 ภาษา พร้อม Prompt Context และ Speaker Attribution
หมายความว่าระบบสามารถใช้บริบทจาก Prompt ประกอบการถอดเสียง และระบุผู้พูดในบทสนทนาได้
Pocket TTS
เพิ่มการรองรับเสียงสำเร็จรูป (Predefined Voices) โดยไม่จำเป็นต้องใช้ Voice Cloning
Qwen3-VL
ปรับปรุงการจัดการ Video Prompt Format ให้สอดคล้องกับรูปแบบที่ Qwen3-VL ใช้งานมากขึ้น
นอกจากนี้ยังมีการปรับปรุงการ Resize ภาพของ Gemma 4 โดยไม่ใช้ Letterbox Padding และแก้ไขลำดับ CLS Token ของ InternVL
การเปลี่ยนแปลงเหล่านี้ช่วยให้ llama.cpp มีความสามารถด้าน Multimodal ครอบคลุมมากขึ้น ทั้งการสร้างเสียง การถอดเสียง และการรับข้อมูลวิดีโอ
6. อัปเดต ggml v0.29.0 ปรับปรุง Backend หลายแพลตฟอร์ม
หัวข้อที่มีชื่อว่า “6. อัปเดต ggml v0.29.0 ปรับปรุง Backend หลายแพลตฟอร์ม”นอกจากตัว llama.cpp แล้ว การอัปเดตครั้งนี้ยังมาพร้อม ggml v0.29.0 ซึ่งเป็นส่วนสำคัญที่ทำหน้าที่เกี่ยวกับ Tensor และการประมวลผลบนฮาร์ดแวร์
สิ่งที่น่าสนใจ ได้แก่
- เพิ่ม FP8 E4M3 และ Flash Attention แบบใหม่
- เพิ่ม Batched Tensor Copy API เพื่อจัดการการคัดลอก Tensor หลายรายการ
- เพิ่มการรองรับ Multi-node Tensor Parallelism ในระดับเริ่มต้นผ่าน Multi-process Communicator Interface
- ปรับปรุง CPU Backend ด้วย SVE Kernels
- ปรับปรุง CUDA ด้วย Fused MoE MMQ
- ปรับปรุง Metal ด้วยการเพิ่มความเร็ว MXFP4 Mat-Vec
- ปรับปรุง SYCL ด้วย DPAS Flash Attention สำหรับ Quantized KV
- ปรับปรุง Vulkan ด้วย Split-K Tuning
- ขยายการรองรับ Quantized GEMM/GEMV ใน OpenCL
- เพิ่ม Operation ใหม่ให้ Hexagon Backend
จุดที่ควรอธิบายเพิ่มเติมคือ Multi-node Tensor Parallelism เป็นความสามารถสำหรับการกระจายงานประมวลผลระหว่างหลายเครื่อง ไม่ใช่เพียงการใช้การ์ดจอหลายใบในคอมพิวเตอร์เครื่องเดียว และการเพิ่มการรองรับระดับเริ่มต้นยังไม่ได้หมายความว่าระบบพร้อมใช้งานในทุกสภาพแวดล้อม
สำหรับผู้ใช้ทั่วไป การปรับปรุง Backend อาจมีผลกับประสิทธิภาพที่ได้รับแตกต่างกันไปตาม GPU และระบบที่ใช้งาน จึงไม่ควรนำผลการปรับปรุงของ Backend หนึ่งไปสรุปว่า GPU ทุกค่ายจะเร็วขึ้นพร้อมกัน
7. ปรับปรุง llama-server และ Web UI
หัวข้อที่มีชื่อว่า “7. ปรับปรุง llama-server และ Web UI”llama.cpp v0.9.0 ยังมีการปรับปรุงส่วน Server และหน้า Web UI ด้วย
ตัวอย่างการเปลี่ยนแปลง ได้แก่
- ปรับการจัดการ Shared Decision Prefix
- ปรับปรุงการคืนค่า Speculative Checkpoint
- เพิ่ม MCP Group Checkboxes ในส่วน Tools Settings
- ปรับปรุงการจัดการ Persistent Storage
- แก้ไขพฤติกรรมการเลื่อนหน้าจอในหน้า Chat
- ปรับปรุงการแสดงปุ่ม Submit เมื่อมีข้อความในช่อง Input
- ปรับปรุงการจัดการ Tool Calls ที่ไม่สามารถส่งผลลัพธ์กลับมาได้
ส่วนนี้อาจไม่ได้มีผลกับผู้ที่ใช้ llama.cpp ผ่าน Command Line โดยตรงมากนัก แต่มีประโยชน์กับผู้ที่ใช้ Web UI และต้องการเชื่อมต่อเครื่องมือหรือใช้งานโมเดลผ่าน Server
สรุป: llama.cpp v0.9.0 มีอะไรที่ผู้ใช้ Local AI ควรสนใจ?
หัวข้อที่มีชื่อว่า “สรุป: llama.cpp v0.9.0 มีอะไรที่ผู้ใช้ Local AI ควรสนใจ?”การอัปเดต v0.9.0 เป็นการพัฒนาในหลายระดับ ตั้งแต่การเพิ่มรูปแบบข้อมูล FP8 การจัดการ KV Cache ไปจนถึงการขยายการรองรับสถาปัตยกรรมโมเดลและ Multimodal
หากแบ่งตามลักษณะการใช้งาน สามารถสรุปได้ดังนี้
- ผู้ใช้ Local LLM ทั่วไป: ควรสนใจการรองรับโมเดลใหม่และการปรับปรุง Gemma 4
- ผู้ที่ใช้งาน Context ยาว: ควรติดตามการปรับปรุง KV Cache และ Prefill
- ผู้ที่สร้าง Local AI Server: ควรสนใจ Unified KV Cache, Multi-sequence Inference และการปรับปรุง Server
- ผู้ทดลอง AI Audio และ Multimodal: ควรติดตาม Chatterbox, Nemotron 3.5 Transcribe และ Qwen3-VL
- ผู้พัฒนาระบบที่ใช้ GPU หลายตัว: ควรติดตามการพัฒนา Multi-node Tensor Parallelism และ Backend แต่ละค่าย
สำหรับผู้ที่กำลังทดสอบ Local AI ด้วย llama.cpp อยู่แล้ว เวอร์ชันนี้เป็นรุ่นที่น่าสนใจสำหรับนำมาทดลอง โดยเฉพาะการเปรียบเทียบประสิทธิภาพ Prefill ของ Gemma 4 และการทดสอบ Unified KV Cache เมื่อมีหลาย Sequence
อย่างไรก็ตาม การเปลี่ยนเวอร์ชันของ Runtime ไม่ได้หมายความว่าประสิทธิภาพของโมเดลทุกตัวจะดีขึ้นโดยอัตโนมัติ ผลลัพธ์ยังขึ้นอยู่กับโมเดล Quantization, Backend, GPU, RAM และการตั้งค่าที่ใช้ในการทดสอบ
แหล่งอ้างอิง
หัวข้อที่มีชื่อว่า “แหล่งอ้างอิง”- GitHub Release: llama.cpp v0.9.0
- โครงการ llama.cpp: ggml-org/llama.cpp