- vLLM 0.26 มีอะไรใหม่? สรุปฟีเจอร์สำคัญสำหรับงาน LLM Serving
- 1. รองรับโมเดลใหม่
- 2. DeepSeek-V4 ทำงานเร็วขึ้น
- 3. Generation Head แบบ FP32
- 4. เลือก Attention Backend ได้ยืดหยุ่นขึ้น
- 5. KV Cache Offloading และ Tiered Storage
- 6. Speculative Decoding ที่สมบูรณ์ขึ้น
- 7. Quantization เพิ่มเติม
- 8. Rust Frontend รองรับ Multimodal
- 9. รองรับฮาร์ดแวร์มากขึ้น
- 10. Security และ Stability
- 11. Dependency และสิ่งที่ถูกถอดออก
- 12. แนวทางอัปเกรด
- Checklist ก่อนอัปเกรด Production
- ควรอัปเกรดหรือไม่
- สรุป
- แหล่งอ้างอิง
#vLLM 0.26 มีอะไรใหม่? สรุปฟีเจอร์สำคัญสำหรับงาน LLM Serving
vLLM เป็นระบบสำหรับให้บริการโมเดลภาษาขนาดใหญ่หรือ LLM Serving Engine ที่ได้รับความนิยมในงาน AI Infrastructure เนื่องจากรองรับการประมวลผลแบบต่อเนื่อง การจัดการ KV Cache อย่างมีประสิทธิภาพ การทำ Quantization และการเปิด API ที่ทำงานร่วมกับ OpenAI-compatible clients ได้
ในรุ่น vLLM 0.26.0 ทีมพัฒนาได้รวมการเปลี่ยนแปลงจำนวน 411 commits จากผู้ร่วมพัฒนา 212 คน โดยเน้นการรองรับโมเดลรุ่นใหม่ การเพิ่มประสิทธิภาพ DeepSeek-V4 การขยายระบบ KV Cache Offloading การพัฒนา Speculative Decoding และการรองรับฮาร์ดแวร์หลายแพลตฟอร์มมากขึ้น
บทความนี้สรุปประเด็นสำคัญจาก Release Notes อย่างเป็นทางการ พร้อมอธิบายผลกระทบต่อการนำ vLLM ไปใช้ในระบบจริง
#1. รองรับโมเดลใหม่
vLLM 0.26 เพิ่มการรองรับโมเดลและงานประมวลผลหลายประเภท โดยรายการเด่นประกอบด้วย
- Inkling model family
BertForMaskedLMRobertaForTokenClassificationXLMRobertaForTokenClassification- LongCat-Flash-Lite สำหรับ n-gram embedding
- Cosmos3 Edge Reasoner
- Cosmos3-Super
- TranslateGemma-12B-IT
Inkling ได้รับการรองรับค่อนข้างครบทั้งการทำงานพื้นฐาน, Piecewise CUDA Graph, FlashAttention 4 บน Hopper, MTP Speculative Decoding, LoRA และ NVFP4 Quantization
นอกจากนี้ โมเดลอย่าง Olmo, Olmo2, MistralLarge3 และ HunyuanVL ถูกปรับให้ใช้ Transformers Modeling Backend มากขึ้น ทำให้ vLLM สามารถใช้โมเดลจากระบบนิเวศ Hugging Face Transformers ได้เป็นมาตรฐานมากกว่าเดิม
#ผลต่อผู้ใช้งาน
การเปลี่ยนแปลงนี้ช่วยลดภาระในการเขียน Model Adapter เฉพาะสำหรับ vLLM และทำให้โมเดลใหม่ที่รองรับผ่าน Transformers สามารถนำมาให้บริการได้รวดเร็วขึ้น
#2. DeepSeek-V4 ทำงานเร็วขึ้น
DeepSeek-V4 เป็นหนึ่งในเป้าหมายหลักของการปรับปรุงประสิทธิภาพในรุ่นนี้ โดยมีการเพิ่มและปรับแต่ง Kernel หลายส่วน เช่น
- Specialized Routing Kernel
fused_topk_bias- การลดคำสั่ง
repeatและcopyที่ไม่จำเป็น - Sparse Decode และ Sparse Prefill
- Two-stage Compressor บน AMD ROCm
- DSpark Speculative Decoding บน AMD และ Intel XPU
Release Notes รายงานผลการทดสอบเฉพาะส่วนไว้ว่า
- Specialized Routing Kernel ลด End-to-End TPOT ประมาณ 2.94%
fused_topk_biasเร็วขึ้นประมาณ 1.5–2 เท่าในระดับ Kernel- การลด Repeat/Copy ช่วยลด TPOT ประมาณ 1.8%
ตัวเลขประสิทธิภาพข้างต้นเป็นผลจากสภาพแวดล้อมที่ทีมพัฒนาใช้ทดสอบ ไม่ได้หมายความว่าทุกระบบจะเร็วขึ้นในอัตราเดียวกัน ควรทำ Benchmark ด้วยโมเดล ฮาร์ดแวร์ และ Workload ของระบบจริงอีกครั้ง
#TPOT คืออะไร
TPOT — Time per Output Token คือเวลาที่ระบบใช้ในการสร้าง Token แต่ละ Token หลังจากเริ่มตอบแล้ว ค่า TPOT ที่ต่ำลงทำให้การ Streaming คำตอบรู้สึกลื่นไหลและตอบสนองเร็วขึ้น
#3. Generation Head แบบ FP32
vLLM 0.26 เพิ่มตัวเลือก head_dtype เพื่อให้ lm_head ทำงานด้วยชนิดข้อมูล FP32 ได้ แม้ว่าส่วนอื่นของโมเดลจะใช้ BF16 หรือ Precision ที่ต่ำกว่า
ฟีเจอร์นี้รองรับทั้ง
- โมเดล Generation ทั่วไป
- LoRA path
- Fast path บน AMD ROCm ด้วย
torch.mm
#เหตุผลที่สำคัญ
Output Head เป็นส่วนที่แปลง Hidden State ไปเป็น Logits ของคำศัพท์ทั้งหมด หากโมเดลมีความไวต่อ Numerical Precision การคง lm_head เป็น FP32 อาจช่วยลดความคลาดเคลื่อนของผลลัพธ์ได้ โดยแลกกับหน่วยความจำและต้นทุนการคำนวณที่เพิ่มขึ้นบางส่วน
#4. เลือก Attention Backend ได้ยืดหยุ่นขึ้น
ก่อนหน้านี้ การเลือก Attention Backend มักมีผลในระดับโมเดลหรือ Engine แต่ vLLM 0.26 สามารถเลือก Backend แยกตาม KV-cache group ได้
นอกจากนี้ Sliding-window Attention ถูกกำหนดเป็นความสามารถของ Backend อย่างชัดเจน ทำให้ระบบตรวจสอบได้ว่า Backend ใดรองรับรูปแบบ Attention ที่โมเดลต้องการ
#เหมาะกับ Hybrid Model
โมเดลสมัยใหม่อาจผสม Attention หลายรูปแบบ เช่น
- Full Attention
- Sliding-window Attention
- Sparse Attention
- Multi-head Latent Attention หรือ MLA
การเลือก Backend แยกตามกลุ่มช่วยให้แต่ละส่วนของโมเดลใช้ Kernel ที่เหมาะสม ลดข้อจำกัดจากการบังคับใช้ Backend แบบเดียวทั้งโมเดล
#5. KV Cache Offloading และ Tiered Storage
KV Cache เป็นองค์ประกอบที่ใช้หน่วยความจำจำนวนมาก โดยเฉพาะเมื่อระบบต้องรองรับ
- Context ยาว
- ผู้ใช้พร้อมกันจำนวนมาก
- Batch ขนาดใหญ่
- Multimodal Input
- Multi-turn Conversation
vLLM 0.26 เพิ่มความสามารถด้าน KV Cache Offloading และ Tiered Storage หลายส่วน ได้แก่
- Metrics สำหรับ KV Offloading
- แยก CPU Cache Usage เป็น Read และ Write
- Histogram สำหรับ Tiering Lookup Delay
- Object Storage เป็น Secondary Tier
- Workload Identity
- Tiering ที่รับรู้ Data Parallel Replica
- Encoder-cache Connector
- CPU Offloading สำหรับ Encoder Cache
- Partial Prefix-cache Hit สำหรับ Hybrid Model
- Selective Hybrid Cache Retention
#สถาปัตยกรรมแบบหลายระดับ
ระบบสามารถวาง KV Cache ไว้หลายระดับ เช่น
GPU VRAM
↓
CPU RAM
↓
Local Disk หรือ Object Storage
ข้อมูลที่มีการใช้งานบ่อยจะอยู่ใน Tier ที่เร็วกว่า ส่วนข้อมูลที่ใช้งานน้อยสามารถย้ายไปยัง Tier ที่มีต้นทุนต่ำกว่าได้
#ประโยชน์ต่อ Production
- รองรับ Context Length ที่ยาวขึ้น
- ลดแรงกดดันต่อ GPU VRAM
- เพิ่มจำนวน Concurrent Requests
- ตรวจสอบพฤติกรรม Offloading ผ่าน Metrics ได้ละเอียดขึ้น
- วางระบบ Cache สำหรับ Distributed Serving ได้เป็นระบบมากขึ้น
อย่างไรก็ตาม Offloading ไม่ได้ทำให้ระบบเร็วขึ้นเสมอไป เพราะการย้ายข้อมูลระหว่าง GPU, CPU และ Storage มีต้นทุนด้าน Latency จึงต้องปรับ Threshold และ Cache Policy ให้เหมาะกับ Workload
#6. Speculative Decoding ที่สมบูรณ์ขึ้น
Speculative Decoding ใช้ Draft Model หรือ Draft Strategy สร้าง Candidate Tokens ล่วงหน้า จากนั้น Main Model ตรวจสอบว่า Token เหล่านั้นถูกต้องหรือไม่ หากยอมรับได้หลาย Token พร้อมกัน ระบบจะลดจำนวนรอบการประมวลผลของ Main Model
vLLM 0.26 เพิ่มความสามารถสำคัญ ได้แก่
- อัปเดต Draft Model Weights ระหว่าง Runtime
- DFlash สำหรับ Hybrid Attention ที่ผสม Sliding-window กับ Full Attention
- Sliding-window Support สำหรับ
qwen-eagle3 - Gemma4-12B DSpark Draft Model
- DSpark สำหรับ DeepSeek-V4 บน AMD
- กำหนด
kv_cache_dtypeของ Speculative Model แยกจาก Main Model - ปรับ TPOT ของ Thinking Budget เมื่อใช้ร่วมกับ Speculative Decoding
#การกำหนด KV Cache Precision แยกกัน
การกำหนด kv_cache_dtype ของ Draft Model แยกจาก Main Model ช่วยให้เลือกสมดุลระหว่าง
- ความเร็ว
- หน่วยความจำ
- ความแม่นยำ
- Acceptance Rate
ตัวอย่างเช่น Main Model อาจใช้ KV Cache ที่มี Precision สูง ขณะที่ Draft Model ใช้ Precision ต่ำกว่าเพื่อลดหน่วยความจำและเพิ่ม Throughput
#7. Quantization เพิ่มเติม
vLLM 0.26 ขยายการรองรับ Quantization ทั้งสำหรับ Dense Model และ Mixture-of-Experts หรือ MoE
รายการสำคัญประกอบด้วย
- Humming Weight-only แบบ W2–W7 และ Activation 4/8-bit
- INT4 สำหรับ Emulation MoE Backend
- INT2 Weight-only Linear บน Intel XPU
- Online
nvfp4_per_tokenสำหรับ MoE - MXFP4 ผ่าน CuTe-DSL และ FlashInfer
- จำกัด Peak Memory ระหว่าง Repack FP4 MoE Weights
- ลด Peak Memory ระหว่างโหลด NVFP4 MoE Weights
- Hybrid W4A16 Linear Kernel บน ROCm
kv_cache_dtype_skip_layersสำหรับ MLA
#ทำไม Quantization จึงสำคัญ
Quantization ช่วยลด
- ขนาด Model Weight
- GPU Memory Usage
- Memory Bandwidth
- ต้นทุนต่อคำขอ
แต่ต้องพิจารณาผลกระทบต่อคุณภาพโมเดลและตรวจสอบว่า GPU Architecture รองรับ Kernel ที่เลือกใช้งานหรือไม่
#8. Rust Frontend รองรับ Multimodal
Rust Frontend ใน vLLM 0.26 ได้รับการพัฒนาให้รองรับงานมากขึ้น ได้แก่
- Video Input
- Audio Input
- Seed-OSS Tool Parser
- Native Rust
vllm-bench - การจัดการ
continue_final_message
ส่วน OpenAI-compatible API เพิ่มความสามารถ เช่น
bad_wordsใน/v1/completionslogprob_token_idsinclude_reasoningสำหรับโมเดลที่ไม่ใช่ Harmonynum_cache_creation_tokensใน Messages Response- Endpoint Plugin Framework
- DeepStream Video Decoding Backend
#ผลต่อระบบ Agent และ Multimodal
การรองรับ Audio และ Video ใน Rust Frontend ช่วยให้สามารถออกแบบระบบที่รับ Input หลายชนิด เช่น
- Video Understanding
- Audio Transcription
- Multimodal Chat
- Tool Calling Agent
- Streaming Inference Gateway
Rust Frontend ยังมีโอกาสช่วยลด Overhead ในส่วนรับ Request, Parsing และ Routing เมื่อเทียบกับ Frontend ที่ใช้ Python เพียงอย่างเดียว
#9. รองรับฮาร์ดแวร์มากขึ้น
vLLM 0.26 ปรับปรุงการรองรับฮาร์ดแวร์หลายแพลตฟอร์ม
#NVIDIA GPU
- Kernel และ Quantization เพิ่มเติม
- Arm64 Blackwell SM10x/SM110 Image Builds
- การทำงานร่วมกับ FlashInfer, CuTe-DSL และ CUTLASS ที่ดีขึ้น
#AMD ROCm
- DeepSeek-V4 Sparse Decode/Prefill
- Two-stage Compressor
- MXFP8
- AITER Optimizations
- Hybrid W4A16
- DSpark Speculative Decoding
- FP32
head_dtypeFast Path
#Intel XPU
- Batch-invariant Kernels
- HND KV Layout
- DSpark สำหรับ DeepSeek-V4
- INT2 Weight-only Quantization
- Official Nightly และ Release Container Images
#CPU และ Apple Silicon
- DFlash Speculative Decoding สำหรับ GDN Model บน CPU
- s390x NUMA Topology
- Native macOS Arm64 CPU Wheels
- IBM POWER Optimizations
การมี Native macOS Arm64 Wheels ช่วยให้นักพัฒนาทดลอง vLLM บน Apple Silicon ได้ง่ายขึ้น แต่สำหรับงาน Production ที่ต้องการ Throughput สูง GPU Server ยังคงเป็นตัวเลือกหลัก
#10. Security และ Stability
รุ่นนี้มีการแก้ไขด้านความปลอดภัยและความเสถียรที่ควรให้ความสำคัญ โดยเฉพาะระบบที่เปิดให้บริการผ่านเครือข่าย
รายการสำคัญ ได้แก่
- เปลี่ยนจาก
diskcacheเพื่อลดความเสี่ยงจาก Pickle Deserialization - แก้ Concurrent Sparse-invariant Race ที่อาจข้ามการป้องกันช่องโหว่เดิม
- เพิ่ม Resource Bounds ให้ Derender Endpoints
- ปกปิด Server File Path จาก Validation Error
- จำกัดจำนวน Prompt ใน Completion Request
- เพิ่ม Timeout ให้การ Compile Regular Expression ของ
lm-format-enforcer - Grammar Compilation ล้มเหลวแล้วไม่ทำให้ Engine Crash
- แก้ Host Memory Leak จาก
new_block_ids - แก้ความถูกต้องของ DeepSeek-V3.2 เมื่อใช้ MTP และ Sequence Parallel
#คำแนะนำสำหรับ Production
หลังอัปเกรดควรทดสอบอย่างน้อยในประเด็นต่อไปนี้
- API Compatibility
- Structured Output และ Grammar
- Tool Calling
- Long-context Requests
- Concurrent Requests
- Memory Usage
- Prefix Cache Hit Rate
- Speculative Decoding Acceptance Rate
- P50, P95 และ P99 Latency
- TTFT และ TPOT
#11. Dependency และสิ่งที่ถูกถอดออก
Dependency สำคัญใน vLLM 0.26 ประกอบด้วย
- Transformers 5.13.0
- FlashInfer 0.6.14
- NIXL 1.3.1
- TPU Inference 0.24.0
- NVIDIA CUTLASS DSL 4.6.0
- vLLM XPU Kernels 0.1.11.1
โมเดลที่ถูกถอดออกจากรุ่นนี้ ได้แก่
- TeleChat
- Persimmon
- Fuyu
ดังนั้นผู้ที่ใช้งานโมเดลเหล่านี้ควรตรวจสอบ Migration Path หรือคง Environment รุ่นเดิมไว้จนกว่าจะมีทางเลือกที่เหมาะสม
#12. แนวทางอัปเกรด
#ติดตั้งผ่าน pip
python -m pip install --upgrade "vllm==0.26.0"
ตรวจสอบเวอร์ชัน:
python -c "import vllm; print(vllm.__version__)"
#ใช้งานผ่าน Docker
ดาวน์โหลด Image:
docker pull vllm/vllm-openai:v0.26.0
ตัวอย่างเปิด OpenAI-compatible API Server:
docker run --rm \
--gpus all \
--ipc=host \
-p 8000:8000 \
-v "$HOME/.cache/huggingface:/root/.cache/huggingface" \
vllm/vllm-openai:v0.26.0 \
--model Qwen/Qwen3-8B
ตรวจสอบ API:
curl http://localhost:8000/v1/models
ตัวอย่างเรียก Chat Completions:
curl http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "Qwen/Qwen3-8B",
"messages": [
{
"role": "user",
"content": "อธิบายว่า KV Cache คืออะไร"
}
],
"temperature": 0.7
}'
#Checklist ก่อนอัปเกรด Production
ไม่ควรอัปเกรด Production โดยแทนที่ระบบเดิมทันที ควรแยก Environment สำหรับทดสอบก่อน
[ ] บันทึก Configuration เดิม
[ ] Pin Version ของ Container และ Dependency
[ ] สำรอง Model Configuration และ Chat Template
[ ] ตรวจสอบ Custom Model / Custom Kernel
[ ] ทดสอบ OpenAI-compatible API
[ ] ทดสอบ Tool Calling และ Structured Output
[ ] ทดสอบ LoRA Adapter
[ ] วัด TTFT, TPOT และ Throughput
[ ] ตรวจสอบ GPU/CPU Memory
[ ] ทดสอบ Prefix Cache และ KV Offloading
[ ] ทดสอบ Error Handling และ Timeout
[ ] วางแผน Rollback
#กลยุทธ์ที่แนะนำ
ใช้ Blue-Green Deployment หรือ Canary Deployment เพื่อเปรียบเทียบ vLLM รุ่นเดิมกับ 0.26 ภายใต้ Workload เดียวกัน
ตัวชี้วัดที่ควรเก็บ ได้แก่
| Metric | ความหมาย |
|---|---|
| TTFT | เวลาตั้งแต่ส่ง Request จนได้ Token แรก |
| TPOT | เวลาเฉลี่ยต่อ Output Token |
| Throughput | จำนวน Token หรือ Request ที่รองรับต่อวินาที |
| P95/P99 Latency | Latency ของคำขอที่ช้ากว่าส่วนใหญ่ |
| GPU Memory | หน่วยความจำ GPU ที่ใช้งาน |
| Cache Hit Rate | สัดส่วนที่ Prefix/KV Cache ถูกนำกลับมาใช้ |
| Acceptance Rate | สัดส่วน Token ที่ Main Model ยอมรับจาก Draft Model |
| Error Rate | สัดส่วนคำขอที่ล้มเหลว |
#ควรอัปเกรดหรือไม่
#ควรพิจารณาอัปเกรด เมื่อ
- ใช้ DeepSeek-V4
- ต้องการ KV Cache Offloading หลายระดับ
- ใช้ Context ยาวหรือรองรับผู้ใช้พร้อมกันจำนวนมาก
- ต้องการ Speculative Decoding ที่ยืดหยุ่นขึ้น
- ใช้ Multimodal Audio หรือ Video
- ต้องการ Quantization แบบ NVFP4, MXFP4, INT2 หรือ INT4 เพิ่มเติม
- ใช้ AMD ROCm หรือ Intel XPU
- ต้องการ Security Fixes ในรุ่นล่าสุด
#ควรทดสอบอย่างละเอียด เมื่อ
- มี Custom Attention Backend
- มี Custom Model Implementation
- ใช้ Custom Kernel หรือ Plugin
- ใช้ LoRA Adapter จำนวนมาก
- พึ่งพาพฤติกรรมของ Transformers รุ่นเก่า
- ใช้ TeleChat, Persimmon หรือ Fuyu
- มี SLA ด้าน Latency และ Availability ที่เข้มงวด
#สรุป
vLLM 0.26 เป็นรุ่นที่เน้นการทำให้ระบบ LLM Serving รองรับโมเดลและฮาร์ดแวร์ได้หลากหลายขึ้น พร้อมปรับปรุงองค์ประกอบสำคัญของ Production Infrastructure ได้แก่
- ประสิทธิภาพ DeepSeek-V4
- การเลือก Attention Backend แบบยืดหยุ่น
- KV Cache Offloading และ Tiered Storage
- Speculative Decoding
- Quantization
- Multimodal Rust Frontend
- Hardware Support
- Security และ Stability
สำหรับระบบที่ให้บริการโมเดลขนาดใหญ่ รองรับ Long Context หรือมีปริมาณคำขอสูง การอัปเกรดรุ่นนี้มีประโยชน์อย่างชัดเจน อย่างไรก็ตาม ควร Benchmark ด้วย Workload จริงและเตรียม Rollback Plan ก่อนนำไปใช้ใน Production
#แหล่งอ้างอิง
-
vLLM v0.26.0 Release Notes
https://github.com/vllm-project/vllm/releases/tag/v0.26.0 -
vLLM Documentation
https://docs.vllm.ai/ -
vLLM GitHub Repository
https://github.com/vllm-project/vllm