vLLM 0.28 ออกแล้ววันนี้ — 584 คอมมิตจาก 270 คน ยก Kimi-K3 ทั้งสแต็ก เปิด sparse MLA ของ DeepSeek V4 ครบวง แล้วดัน max_num_batched_tokens ขึ้นเท่าตัว
ถ้าคุณเสิร์ฟโมเดลเปิดบนเครื่องตัวเอง เวอร์ชันของ vLLM คือตัวแปรที่กำหนดว่าโมเดลตัวไหน “รันได้” และรันได้เร็วแค่ไหน มากกว่าที่คนส่วนใหญ่ยอมรับ — และ วันนี้ 26 สิงหาคม 2026 เวลา 09:46 UTC (16:46 น. ตามเวลาไทย) vLLM ปล่อย v0.28.0 ออกมา รวม 584 คอมมิตจากผู้ร่วมพัฒนา 270 คน ในจำนวนนั้นเป็นหน้าใหม่ 76 คน นับจาก v0.27.0 ที่ออกเมื่อ 10 สิงหาคม
รอบนี้ไม่ใช่รีลีสที่เพิ่มฟีเจอร์ปลีกย่อย แต่เป็นรอบที่ทีมเทน้ำหนักไปกับสองอย่าง: บีบประสิทธิภาพของโมเดลใหญ่สองตระกูล (Kimi-K3 และ DeepSeek V4) ให้ถึงที่สุด กับ ทำให้ Model Runner V2 โตพอจะรับงานระดับ production และมี breaking change ที่ต้องอ่านก่อนอัปเกรด ไม่ใช่หลังอัปเกรด
Kimi-K3: การไล่บีบทีละชั้นจนถึงระดับเคอร์เนล
ก้อนที่ใหญ่ที่สุดของรีลีสคือการเร่ง Kimi-K3 แบบไล่ทั้งสแต็ก ไม่ใช่แค่แพตช์จุดเดียว:
- Decode Context Parallel (DCP) สำหรับ Kimi-K3
- เคอร์เนล FlashKDA แบบ fused ทั้งฝั่ง decode และ prefill
- รองรับ SiTU activation สำหรับ MegaMoE
- GEMM-RS สำหรับ sequence parallelism และการรวม all-gather เข้าด้วยกัน ซึ่งทีมระบุว่าได้ ความเร็วระดับเคอร์เนลขึ้น 1.5–3 เท่า
- งบโทเคน speculative แบบปรับตัวได้ ที่ทำให้ TTFT ของ DSpark ดีขึ้นราว 60%
- การชาร์ด shared expert แบบเลือกเปิดได้ ซึ่งประหยัดหน่วยความจำ ราว 17 GiB ต่อ GPU
ตัวเลข 17 GiB ต่อ GPU คือตัวที่ควรหยุดอ่านสองรอบ สำหรับทีมที่รัน Kimi-K3 บนคลัสเตอร์เช่า นี่ไม่ใช่การประหยัดเชิงสถิติ แต่คือความต่างระหว่าง “ต้องเพิ่มโหนด” กับ “ไม่ต้องเพิ่ม” และนอกจากนี้ Kimi-K3 ยัง รันบน ROCm ได้แล้วผ่าน model runner V2 ซึ่งเปิดทางให้การ์ด AMD เข้ามาเป็นตัวเลือกจริงสำหรับโมเดลระดับนี้
DeepSeek V4, speculative decoding และค่าดีฟอลต์ที่เปลี่ยน
ฝั่ง DeepSeek V4 ของเดิมที่รองรับแบบไม่ครบ ตอนนี้ sparse MLA ทำงานครบวงจรแล้ว — ทั้ง decode ธรรมดา, MTP และ speculative decoding แบบ DSpark — บวกกับการรองรับ AMD Quark NVFP4, การรับพรอมป์ที่ระบุระดับความพยายามในการคิด (reasoning effort) และการเปิดใช้บน ROCm ทั้ง gfx11 และ gfx950
ด้าน speculative decoding มีของใหม่สามชิ้น: DFlash2 ที่เพิ่ม local convolution และตัวเลือก candidate, การตรวจสอบแบบกำหนดตารางตามความมั่นใจ (confidence-scheduled verification) ของ DSpark และการเปิด async scheduling ให้ draft model โดยอัตโนมัติ
ส่วนที่จะกระทบทุกคนแม้ไม่ได้ใช้โมเดลสองตระกูลข้างบนเลย คือค่าดีฟอลต์ที่เปลี่ยน:
max_num_batched_tokensขยับจาก 8192 เป็น 16384- prefix caching เปิดเป็นค่าเริ่มต้นสำหรับโมเดลตระกูล Mamba
- ค่าดีฟอลต์ของการ capture CUDA graph บน Blackwell ขยับขึ้นเป็น 1024
ค่าแรกแปลว่า throughput น่าจะดีขึ้นทันทีหลังอัปเกรดโดยไม่ต้องแตะคอนฟิก แต่ก็แปลว่า การใช้หน่วยความจำต่อสเต็ปสูงขึ้นด้วย — ทีมที่ตั้ง gpu_memory_utilization ไว้ชิดเพดานอยู่แล้วควรทดสอบก่อนดันขึ้น production
KV cache ลงดิสก์ได้ และ Model Runner V2 ที่โตขึ้น
อีกสองแกนที่เดินหน้าชัดในรอบนี้:
Tiered KV cache offloading — ตอนนี้ offload ลงดิสก์ได้แล้ว (ไม่ใช่แค่ RAM), รองรับตัวจัดการชั้นรองแบบนอกทรีผ่าน module_path, คืนผลการโหลดชั้นรองแบบบางส่วนได้, มีเมตริกของการทำ tiering ให้ดู และมี canonical CPU layout ที่ทำให้ offload ไม่ผูกกับรูปแบบ parallelism ที่ใช้
Model Runner V2 ได้ E/P/D disaggregation, weight offloading, KV cache ของ MTP แบบหลายชั้น, CUDA graph สำหรับ encoder, pooling แบบ token-wise ฝั่ง decoder รวมถึงโมเดล pooling ของ Transformers, การรองรับโมเดลที่ไม่มี attention และรองรับ thinking_token_budget
ฝั่ง frontend ภาษา Rust ก็ขยับ: renderer แบบสแตนด์อโลน, การอินเฟอร์ภาพแบบมัลติโมดัลผ่าน gRPC, การกำหนดเส้นทางไปยัง data-parallel rank ที่ระบุได้ตรง ๆ, การควบคุมวงจรชีวิตสำหรับงาน RL และสคีมา protobuf ที่ถูกเผยแพร่ขึ้น Buf แล้ว
โมเดลใหม่ที่รองรับในรอบนี้ ได้แก่ Muse Glimmer, Ling 3.0 Flash (ทั้ง BF16, MTP, parser, รุ่น FP8 และ routed expert แบบ MXFP4 ผสม), Dots3 แบบมัลติโมดัลเนทีฟ และ Interns2mobius
Breaking change ที่ต้องอ่านก่อนอัปเกรด
รีลีสนี้มี breaking change สี่ข้อ และอย่างน้อยหนึ่งข้อจะทำให้ deployment ที่ใช้งานอยู่พัง:
- bitsandbytes ถูกย้ายออกไปเป็นปลั๊กอินนอกทรี — ใครที่เสิร์ฟน้ำหนักที่ควอนต์ด้วย bitsandbytes อยู่ ต้องติดตั้งปลั๊กอินเพิ่ม ไม่ใช่ได้มาฟรีกับแพ็กเกจหลักอีกต่อไป
- Transformers ถูกบัมป์เป็น 5.15.0
calculate_kv_scalesที่เลิกใช้ไปแล้ว (คำนวณ KV scale ตอนรันไทม์) ถูกลบออกoverride_attention_dtypeถูกลบออก
และมีอีกจุดที่ควรอ่านแม้จะไม่ใช่ breaking change: ในหมวดความปลอดภัย รีลีสนี้แก้ DoS ที่ปลอม sample rate เพื่อข้ามการจำกัดความยาวเสียงตอน decode, บังคับใช้ลิมิตเดียวกันใน NanoNemotronVL, จัดให้ DeepStream เป็น GPU backend ที่มีลิมิตพิกเซล, ป้องกัน _load_ov2_processor ด้วย resolve_trust_remote_code และ — จุดที่สำคัญที่สุดสำหรับคนที่เปิดพอร์ตออกอินเทอร์เน็ต — เพิ่มคำเตือนในเอกสารว่า --api-key ไม่ได้ปิดกั้นทุก endpoint
ฝั่งฮาร์ดแวร์ยังมีของที่ขยายวงการใช้งานออกไปนอกโลก NVIDIA อีก: backend MLA บน CPU ที่ทำให้ DeepSeek-V2/V3 รันบน CPU ได้, wheel ของ triton-cpu, การเปิด GPTQ และ AWQ บน s390x (เมนเฟรม IBM) และการเพิ่ม wheel ของ Intel XPU เข้าไปในไปป์ไลน์รีลีสอย่างเป็นทางการ
มุมมอง AI Curator
สิ่งที่ผมคิดว่าน่าสนใจที่สุดของ v0.28.0 ไม่ใช่ตัวเลข 1.5–3 เท่าหรือ 17 GiB แต่คือทิศทางที่วิ่งออกจาก NVIDIA อย่างเงียบ ๆ และสม่ำเสมอ ในรีลีสเดียวมีทั้ง Kimi-K3 บน ROCm, DeepSeek V4 บน gfx11/gfx950, backend MLA บน CPU, wheel XPU เข้าไปอยู่ในไปป์ไลน์ทางการ, GPTQ/AWQ บนเมนเฟรม s390x และ MoE แบบไม่ควอนต์บน Power (VSX) นี่ไม่ใช่ท่าทีเชิงสัญลักษณ์ แต่คืองานวิศวกรรมจริงที่ต้องมีคนดูแลต่อทุกรีลีส
สำหรับทีมไทยและอาเซียนที่เจอราคาการ์ด NVIDIA แบบที่เจอกันอยู่ นี่คือประเด็นที่มีมูลค่าจริง เพราะข้อจำกัดของการรันโมเดลเปิดในภูมิภาคนี้ไม่เคยเป็นเรื่อง “โมเดลดีพอไหม” แต่เป็นเรื่องว่าของที่ซื้อได้จริงในงบที่มี รันอะไรได้บ้าง ทุกบรรทัดที่ทำให้ MI300X, Arc Pro หรือแม้แต่ CPU ล้วน ๆ กลายเป็นตัวเลือกที่ใช้งานได้ คือการลดต้นทุนขั้นต่ำของการเข้าสู่สนามนี้ลงหนึ่งขั้น
แต่คำเตือนหนึ่งข้อที่ผมอยากให้ดังกว่าที่ release note ทำให้มันดัง: --api-key ไม่ได้ปิดกั้นทุก endpoint ประโยคนี้ถูกใส่ไว้ในหมวดความปลอดภัยแบบเป็นเพียง “อัปเดตเอกสาร” แต่ในทางปฏิบัติมันคือการยืนยันว่ามีทีมจำนวนไม่น้อยที่เข้าใจผิดมาตลอด และเปิด vLLM ออกสู่เน็ตโดยคิดว่ามีคีย์แล้วปลอดภัย ถ้าคุณเสิร์ฟ vLLM อยู่และไม่มี reverse proxy กั้นข้างหน้า วันนี้คือวันที่ควรไปดูว่า endpoint ไหนบ้างที่เปิดโล่ง — ก่อนที่จะได้รู้จากทางอื่น
ส่วนเรื่อง bitsandbytes ที่ย้ายออกนอกทรี ผมมองว่านี่คือสัญญาณของโปรเจกต์ที่เริ่มโตพอจะยอมเจ็บ: การถือ dependency ของทุก quantization backend ไว้ในทรีหลักคือหนี้ที่จ่ายทุกรีลีส การผลักออกไปเป็นปลั๊กอินคือการยอมให้ผู้ใช้บางกลุ่มเจ็บครั้งเดียว เพื่อให้ core เบาลงในระยะยาว — เป็นการตัดสินใจที่ถูก แต่ถ้าคุณ QLoRA แล้วเสิร์ฟตรง ๆ อยู่ อย่าเพิ่งพิมพ์ pip install -U vllm บนเครื่อง production วันนี้
แหล่งข่าว
อ่านเพิ่มในหมวด เครื่องมือนักพัฒนา
Betelgeuse รัน Qwen3.8 Flash Next ขนาด 68GB บน RTX 3060 กับแรม 16GB ส่วน Basalt วัดให้เห็นว่าเอนจินที่เร่งด้วยแฟล็กลัดทำให้โมเดลลืมของ
Betelgeuse ฟอร์ก llama.cpp ที่เปิดเมื่อ 31 ต.ค. ดึง expert จาก NVMe เข้า VRAM ตามต้องการ อ้าง 22 tok/s แบบไม่ทิ้ง expert แต่ README เตือนเองว่ายังทดลองและตัวเลขมาจากคนละรอบ วันเดียวกันผู้พัฒนา Basalt เผยผลวัดว่าแฟล็กเร่งความเร็วทำคุณภาพ Q8 ตกไปใกล้ Q2
กฎห้ามโคลนเกมของ Claude Code เริ่มกระทบงานจริง บริษัทรับทำเกมกระดานร้องงานลูกค้าหยุด แต่รายงานหลายชิ้นปนกับตัวกรองไซเบอร์คนละเรื่อง
ต่อจากที่เราพบกฎนี้ในไบนารี Claude Code ผู้ใช้เริ่มรายงานว่างานเชิงพาณิชย์ถูกปฏิเสธ และ Tom's Hardware กับ Mashable หยิบไปรายงาน แต่เมื่อไล่ issue ที่อ้างถึง พบว่าหลายรายการเกิดก่อนกฎจะมา จึงน่าจะเป็นตัวกรองด้านไซเบอร์ ส่วน Anthropic ยังไม่ชี้แจง
Claude Code ส่ง transcript ของ background agent ให้โมเดลทุก ~30 วินาทีเพื่อเขียนสถานะ 3–5 คำ ผู้วัดรายงานกินราว 16% และยังปิดแบบทางการไม่ได้
รายงานอิสระพบว่าฟีเจอร์ agent_summary ของ Claude Code ส่ง transcript เต็มของ background agent ไปถามสถานะทุก ~30 วินาที คิดเป็น 16.4% ของค่าใช้จ่ายในระบบของผู้วัด Issue เปิดมาตั้งแต่ ส.ค. ยังไม่มีสวิตช์ปิดที่รองรับ เราตรวจพบโค้ดนี้ใน 2.1.314 และพบกฎใหม่เรื่องเกมที่ไม่อยู่ใน changelog