DeepSeek โอเพนซอร์ส DeepInfer ขุมพลังเบื้องหลังโมเดล V4.1-Flash

DeepSeek ประกาศ open-sourced DeepInfer ซึ่งเป็นเฟรมเวิร์กการประมวลผล (inference framework) ที่ใช้งานจริงในระบบของบริษัท โดย DeepSeek DeepInfer คือเอนจินหลักที่อยู่เบื้องหลัง DeepSeek-V4.1-Flash ซึ่งเปิดตัวภายใต้ Apache 2.0 license
นอกจากนี้บริษัทยังได้ปล่อย deepseek-recipe ซึ่งเป็นเลเยอร์สำหรับการเข้ารหัสและถอดรหัส token ภายใต้ลิขสิทธิ์ MIT ให้นักพัฒนาได้ใช้งาน ถือเป็นโอกาสหายากที่จะได้ศึกษาระบบการให้บริการจริงของแล็บ AI ระดับโลก
TL;DR
- ขนาด / ขอบเขต: รองรับโมเดล DeepSeek-V4.1-Flash พร้อม context window ขนาด 1 ล้าน token ตาม model card
- ฮาร์ดแวร์: รันบน NVIDIA SM100 (Blackwell) GPUs และ Huawei Ascend 950 NPUs โดยการทดสอบใช้ 4 GPU สำหรับ prefill และ 64 GPU สำหรับ decode
- ประสิทธิภาพ: รองรับการประมวลผลระดับใช้งานจริง โดยระบุว่า 1 คลัสเตอร์สามารถให้บริการได้สูงสุดถึง 155 ล้านล้าน token ต่อวัน
- ความเร็วสูงสุด: ทำได้มากกว่า 25,000 output tokens/s/GPU ที่ 256 requests per rank (EP64, 131,072 context)
- ข้อจำกัด: ปัจจุบันรองรับเฉพาะการประมวลผลแบบออฟไลน์เท่านั้น ยังไม่รวมระบบ KV cache, การแยกส่วน P/D (P/D disaggregation) และการทำ load balancing
DeepInfer คืออะไร?
DeepInfer คือเอนจินการประมวลผลประสิทธิภาพสูงที่ DeepSeek พัฒนาขึ้นสำหรับโมเดลของตนเองโดยเฉพาะ ข้อมูลจาก GitHub README ระบุว่าเป็นหัวใจสำคัญที่ช่วยขับเคลื่อนบริการขนาดใหญ่ของบริษัท
การเปิดตัวครั้งนี้ครอบคลุมการประมวลผลแบบออฟไลน์พร้อมฟีเจอร์หลักที่จำเป็นสำหรับการขยายระบบ เดิมทีพัฒนาต่อยอดมาจาก vLLM และผสมผสานแนวคิดจาก SGLang รวมถึง TensorRT-LLM เข้าด้วยกัน
จากข้อมูล deployment Q&A ระบุว่าในบริบทการใช้งานจริง หนึ่งคลัสเตอร์สามารถให้บริการได้ 155 ล้านล้าน token ต่อวัน โดยมีรายงานรายได้รวมอยู่ที่ 38 ดอลลาร์สหรัฐต่อ GPU-hour ในช่วงราคาการใช้งานต่ำ (valley pricing)
DeepInfer ทำงานอย่างไร?
เอนจินนี้รวบรวม kernel ต่างๆ ของ DeepSeek เข้าด้วยกัน อาทิ FlashMLA, DeepGEMM, DeepEP, TileKernels, DeepSelect และ custom TileLang kernels โดยมีแนวคิดหลัก 5 ประการ ดังนี้:
Parallelism: Attention DP ร่วมกับ Wide-EP
ในส่วน Attention จะใช้ data parallelism ขณะที่เลเยอร์ MoE จะใช้ expert parallelism พร้อมตัวจัดสมดุลภาระงานแบบ expert-parallel (EPLB) โดยการ Decode จะรัน EP64 ถึง EP128 ภายใน supernode ส่วน Prefill จะใช้ EP ขนาดเล็กที่สุดเท่าที่หน่วยความจำรองรับ ซึ่งโดยปกติคือ EP2 ถึง EP8
DSpark: การทำ speculative decoding แบบกำหนดตารางตามความเชื่อมั่น
โมเดลร่าง (draft model) จะเสนอ 5 token ในแต่ละขั้นตอน โดยมี Confidence Head คอยทำนายอัตราการยอมรับของแต่ละ draft token จากนั้นตัวกำหนดตาราง (scheduler) จะตรวจสอบเฉพาะส่วนที่คุ้มค่าที่สุดเท่านั้น
ข้อมูลระบุว่าวิธีนี้ช่วยลดการตรวจสอบ draft token ลงได้ราว 30% (จาก 5.00 เหลือ 3.2 ถึง 4.4) โดยที่ความยาวที่ถูกยอมรับ (accepted length) แทบไม่เปลี่ยนแปลง คืออยู่ที่ 3.20 เทียบกับ 3.29
SWA bounded replay
เมื่อเกิด cache hit ระบบ DeepInfer จะคำนวณใหม่เฉพาะ 128 token สุดท้ายของสถานะ sliding-window attention ช่วยให้ค่าใช้จ่ายในการคำนวณใหม่คงที่เสมอไม่ว่า context จะยาวเท่าใด ในเลเยอร์ของ decoder วิธีนี้ช่วยลดการคำนวณ prefill ทั้งหมดลงได้เกือบครึ่งหนึ่ง
การกำหนดตารางแบบอะซิงโครนัส, ความแน่นอน และ output แบบมีโครงสร้าง
การกำหนดตาราง batch บน CPU จะทำงานซ้อนทับกับการประมวลผลบน GPU เพื่อป้องกัน GPU ว่างงาน การประมวลผลแบบ Batch-invariant และการสุ่มตัวอย่างแบบตายตัว (deterministic sampling) มีให้ใช้งานบน NVIDIA เท่านั้น ส่วนการจัดโครงสร้าง output รองรับทั้ง regex, JSON schema และไวยากรณ์ EBNF
DeepInfer เร็วแค่ไหน?
DeepSeek เผยแพร่ Pareto curves สำหรับ DeepSeek-V4.1-Flash ที่ 131,072 context โดยใช้ 4 GPU SM100 สำหรับ Prefill และ 64 GPU สำหรับ Decode ซึ่งมีตัวเลขประสิทธิภาพดังนี้:
- Decode (EP64DP64): ความเร็วสูงกว่า 25,000 tokens/s/GPU ที่ 256 requests per rank หรือเกือบ 100 tokens/s ต่อผู้ใช้ และหากอยู่ที่ 8 requests ความเร็วจะพุ่งเกิน 300 tokens/s ต่อผู้ใช้
- Prefill (EP4DP4): ทำได้ประมาณ 60,000 non-cached tokens/s/GPU ที่ 4,096 tokens per rank และอาจสูงถึง 90,000 ที่ 65,536 tokens โดยใช้เวลาประมาณ 730 ms ต่อขั้นตอน
- ผลลัพธ์ของ Wide-EP: ชาร์ต EP8 vs EP64 แสดงให้เห็นว่า EP64 มีประสิทธิภาพเหนือกว่าในทุกขนาด batch
การตรวจสอบแบบไดนามิกของ DSpark ช่วยเพิ่มอัตราการประมวลผล 4% ถึง 7% เมื่อมีประมาณ 60 sequences per rank แต่หากมีเพียง 16 sequences จะช้ากว่าการตรวจสอบแบบคงที่เล็กน้อย
DeepInfer เปรียบเทียบกับ vLLM, SGLang และ TensorRT-LLM อย่างไร?
| ฟีเจอร์ | DeepInfer | vLLM | SGLang | TensorRT-LLM |
|---|---|---|---|---|
| ผู้ดูแล | DeepSeek | โปรเจกต์ vLLM | โปรเจกต์ SGLang | NVIDIA |
| ลิขสิทธิ์ | Apache 2.0 | Apache 2.0 | Apache 2.0 | Apache 2.0 |
| การรองรับโมเดล | 1 (DeepSeek-V4.1-Flash) | 200+ สถาปัตยกรรม | LLMs, VLMs, diffusion | ตารางการรองรับ |
| ฮาร์ดแวร์ | NVIDIA SM100, Huawei Ascend 950 | NVIDIA, AMD, Intel, CPUs, ปลั๊กอินรวมถึง Ascend, TPU | NVIDIA, AMD, TPU, Intel, Apple, Ascend, Moore Threads | NVIDIA GPUs |
| Expert parallelism | รองรับ พร้อม EPLB | รองรับ | รองรับ | Wide-EP |
| Speculative decoding | DSpark | n-gram, suffix, EAGLE, DFlash | รองรับ ผ่าน SpecForge drafts | รองรับ |
| P/D disaggregation | ไม่มีในเวอร์ชันนี้ | รองรับ | ผ่าน llm-d, Dynamo และอื่นๆ | รองรับ |
| การบริการออนไลน์ | เฉพาะออฟไลน์ | เซิร์ฟเวอร์ที่เข้ากันได้กับ OpenAI | รองรับ | รองรับ |
ข้อจำกัดของ DeepInfer
การให้บริการเต็มรูปแบบยังต้องอาศัยระบบภายนอก เช่น การจัดการ KV cache และการแยกส่วนงาน Prefill/Decode รวมถึงการทำ load balancing ซึ่ง DeepSeek ระบุว่าส่วนประกอบเหล่านั้นผูกติดกับโครงสร้างพื้นฐานภายในบริษัทอย่างใกล้ชิดจึงไม่ได้เปิดซอร์สในตอนนี้
ด้านฮาร์ดแวร์ต้องการ Linux, GCC 13 ขึ้นไป, Python 3.12 และ CUDA 13 หรือ CANN 9.2 โดยหน่วยการผลิตที่เล็กที่สุดต้องใช้ 64 GPU สำหรับ prefill และ 64 GPU สำหรับ decode ทั้งนี้ kernel FlashMLA ในเวอร์ชันสาธารณะยังช้ากว่าตัวที่ใช้ภายในบริษัทอยู่ราว 5% ถึง 10%
ประเด็นสำคัญ
- DeepInfer คือเอนจินใช้งานจริงของ DeepSeek ที่เปิดเป็น Apache 2.0 บน GitHub
- ปัจจุบันรองรับเฉพาะ DeepSeek-V4.1-Flash บน NVIDIA SM100 และ Ascend 950
- ความเร็ว Decode สูงสุดทำได้มากกว่า 25,000 tokens/s/GPU บน 64 GPU
- เทคโนโลยี DSpark ช่วยลดการตรวจสอบ draft token ได้ 30% โดยยังคงประสิทธิภาพการยอมรับไว้ได้ดี
- ยังเป็นเวอร์ชันออฟไลน์: ไม่มีระบบ KV cache, การแยกส่วน P/D หรือตัวจัดสมดุลภาระงานในตัว
ความคิดเห็น (0)
เข้าสู่ระบบเพื่อร่วมแสดงความเห็น
สมัครสมาชิกมาเป็นคนแรกที่แสดงความเห็นกันเลยโบร
