จดๆจาก vLLM by mood @OpenCraft

สำหรับงานวันนี้ผมไม่ได้ที่ OpenCraft วันนี้เฉียดมาก เหมือนนั่ง MRT ผ่านแถวบางโพ พอกลับมาถึงบ้านเห็น Post ว่าคุณ Job จะมีไปพูด ทว่ามันมี Live เลยฟัง และขอ Recap มานิดหน่อย

vLLM by mood

Speaker Natdhanai Praneenatthavee

vLLM - Open Source Inference Engine ซึ่ง Speaker มองเป็น Software ที่ดี และเหมาะสมสำหรับดันส่วน Infra AI ในไทยได้ ทำ Local LLM ซึ่งมีข้อดี

  • Security + Privacy เพื่อป้องกัน Sensitive Data รั่วไหล ไปยัง AI Model Provider เจ้าดัง อย่างพวก Gemini / Claude / OpenAI ได้ อันนี้มีเคสที่ Speaker เล่าเคยเจอคนมาถาม Solution เพราะเจอเคสที่ว่าข้อมูลพวกนี้หลุดออกไป และ track ว่าน่าจะตัว AI Model Provider เอาไปด้วย
  • Full Control Management สามารถควบคุม Traffic โดยการตั้ง Local LLM และ Policy ได้

📌ถ้าทำ Local LLM ต้องเข้าใจก่อนว่ามันมีมุมของ Model มุมไหนบ้าง

  • Training เอา Model มา Fit กับ Local Data (distillation) เช่น พวกกฏหมาย การเงิน healthcare เกษตร ซึ่งมันทำยากใช้ทรัพยากรเยอะ
  • Inference เอา Model ที่เสร็จแล้ว มา Deploy และใช้งาน ซึ่งมันจะมีความท้าทายในอีกมุม ทำให้รองรับผู้ใช้จำนวนมากได้ (Concurrent) รวมถึงการใช้ GPU ให้ได้คุ้มค่าที่สุด
- การ Inference เราต้องมาเข้าใจ 2 คำ

📌Weight - ขนาดความฉลาดในการทายคำถัดไปของตัว Transformer (เซลล์สมองเล็กอันนึง)

📌KV-Cache - ทีทดว่า เราคุยอะไรกับ Model อยู่ ไม่ต้องถาม Model บ่อยๆ

ถ้าเราจะลงทุน Hardware ต้องมาคำนึงขนาด Model ที่จะให้ใช้พื้นที่ GPU และ ส่วนที่เหลือ KV-Cache เช่น

  • GPU vRAM 160 GB ( GPU 2 ใบ)
  • LLama3 70B x 2 byte = Weight = 140 GB
  • เหลือ KV-Cache 20 GB ถ้า req ขยาด 8k Token (2.5 GB) แสดงว่ารับ User ได้ 8 คน ยิ่ง Req ใหญ่ การรับ User จะน้อยลงด้วย

📌 ถ้าเราอยากปรับ ใช้ Model ใหญ่บน HW เดิม มีเทคนิค เช่น

  • Quantization ลดความละเอียดของ Model แต่ละอัน จากความละเอียด จาก FP16 > FP4 ลดจำนวนทศนิยมดู
    ความท้าทาย เทคนิคนี้ เราต้องเข้าใจ HW ด้วย ว่า GPU ของค่ายไหน / Chip รุ่นอะไร ถ้าไม่ปรับมันขะช้ามาก
  • ปรับส่วน Inference vLLM อย่าง PagedAttention / การ Scale โดยร่วมกับ Lib ray มาช่วยจัดการ distribute data processing ให้ดีขึ้น
Secret Sauce ใน vLLM

📌vLLM = Open Source Inference Engine ดูแลโดย Linux Foundation และ PyTorch ต่อยอดมาจาก SkyLab มีปรับแต่งเ เข้ากับ HW ทุกค่ายได้อย่าง CUDA / RocM นั้นเอง (NVIDIA, AMD, TPU, CPU ของ Apple) Scale ได้ง่าย อย่างเช่นการประกาศ Model ใหม่อย่าง Deekseek ที่ประกาศ Model ปุ๊บ Service พร้อมใช้เลย

📌มีหลายเทคนิค Tune อย่าง Continuous Batching / Toruch Compile/ Fusion Passes (Fusion Ops), PD Disaggregated Inference / Quantization lib LMCache / Speculative Decoding ลองมาดูกัน

  • PagedAttention: การจัดการหน่วยความจำ KV Cache โดยย่อยเป็นบล็อกเล็กๆ เพื่อให้สามารถจัดเก็บแบบ Dynamic และนำกลับมาใช้ใหม่ (Reuse) ได้ง่ายขึ้น ลดปัญหา Memory Fragmentation
  • Fusion Passes (Fusion Ops): การปรับแต่งในระดับ Low Layer เพื่อรวมการรับส่งข้อมูล (Input / Ops) ระหว่าง RAM และหน่วยประมวลผล ช่วยลด Kernel Overhead ทำให้ประมวลผล LLM ได้เร็วขึ้น
  • PD Disaggregate Inference: การแยกส่วนการประมวลผลระหว่างขา Prefill (รับ Input) และ Decode (พ่น Output) เพื่อให้สามารถจูน Latency และ Throughput แยกตาม Layer ได้ เพื่อให้ Time to First Token (TTFT) Inter-Token Latency (ITL) หรือ Time Per Output Token (TPOT) ดีขึ้น
  • Speculative Decoding: การใช้โมเดลขนาดเล็ก (Small Model) มาช่วยเดาคำตอบเบื้องต้น แล้วใช้โมเดลใหญ่ตรวจคำตอบแบบขนาน (Parallel) ช่วยให้การตอบโต้เร็วและสม่ำเสมอขึ้น
  • Quantization: รองรับการบีบอัดโมเดลทุกรูปแบบ (เช่น NVFP4 สำหรับ NVIDIA) เพื่อให้เหมาะกับ Hardware แต่ละประเภท ว่า GPU ของค่ายไหน / Chip รุ่นอะไร ช่วยให้รันโมเดลใหญ่บน Chip ที่เล็กลงได้โดยความแม่นยำลดลงเล็กน้อย โดยการ Quantization ทำได้ทั้งมุมของ Weight หรือ KV Cache

นอกจากนี้ LMCache เอาช่วยจัดการ KV Cache ให้มีประสิทธิภาพ ย้ายออกมาจาก VRAM หรือ เอามา Reuse ลดเวลา Time-To-First-Token รวมถึง การ Scale โดยร่วมกับ Lib ray มาช่วยจัดการ distribute data processing ให้ดีขึ้น

📌vLLM ช่วยอะไร

ถ้าอยากรู้เพิ่ม Speaker แนะนำลองไปดูของ https://www.deeplearning.ai/courses/fast-and-efficient-llm-inference-with-vllm และ vLLM Office Hours

- Agent & Tools

สำหรับงานที่เอา LLM มาใช้ มีทั้งส่วน

📌Chat - ระบบถามตอบ (Single-turn) ยุคแรกของ LLM

📌Data Retrival พวก RAG ต่างๆ เอาไว้ตอบคำถาม

📌Agentic Framework

  • React (Listening & Acting) ทำงานภายใต้กระบวนการคิด วิเคราะห์ และลงมือทำ (Action) ตรงนี้มีการถามเยอะ
  • Multi-turn Conversation ถามเราได้ เพื่อให้ได้ผลลัพธ์ที่ดีที่สุด
  • Planning Mode ตัว Agent สามารถวางแผนได้
  • จัดการ Enviroment ภายนอก จากพวก Tools ต่างๆ ที่มาเชื่อมกับ LLM เช่น Query Database, Shell, Run Python เพื่อหาคำตอบ โดยมีมาตรฐานกลางอย่าง MCP (Model Context Protocol) เพื่อให้ Agent
  • Loop Engineering - วนมาคิดหาคำตอบให้ได้มีประสิทธิภาพ
  • นอกจากนี้ เวลาเรามี Agent หลายค่ายมี Protocal กลางอย่าง A2A มาช่วย

📌 Self-Adapting Agents - Agentic ปรับตัวและเก่งขึ้นได้ตามการใช้งาน จากข้อมูลเดิมอย่างพวก Chat Memory อย่างตัว OpenCraw / Hermies Agent / NemoCraw (ของ NVidia มี Policy คุม)

สำหรับ Human อย่างสาย IT ต้องปรับตัวเป็น Forward Deployment Engineer (FDE) ซึ่งต้องมีความรู้ Domain Knowledge / Business / Technical (Agent / Inference Engine + Model / Software Engineering)

ตัว vLLM ช่วยงานเบื้องหลัง Low Level ช่วยให้ตอบสนองได้ไวขึ้น

- How to choose a Model

📌ดูตำแนะนำได้จาก https://recipes.vllm.ai/ เราสามารถ Match HW (GPU) / Model / Variant ที่ช่วยให้ตัว Model มัน Run ได้ดีขึ้น ดีกว่าใช้ตัว Default Command

📌ถ้าขี้เกียจลองใช้ Product Premize เหมือนเป็น Profile ที่ช่วยให้ใช้ vLLM กับ DGX Spark ได้ดีขึ้น เห็นว่าเดือนยหน้าจะเปิด Community Edition ให้ใช้บาง Feature ช่วยเสริม Infra ของ AI ไทยได้ไวขึ้น

📌เลือก Model + Think Level ให้เหมาะสมด้วย คุม Cost ได้

- Q&A

📌 การตั้ง Server ทำ Local LLM / Frontier Model ของ Provider อย่าง Gemini / Claude
Ans ตามงาน Enterpise (ติดตาม Token) มันลด Cost / Security + Privacy / Full Control / ปรับ Tune เข้ากับ Data เราเอง

📌 Local LLM พวก DGX Spark ทั้ง Quality มัน Drop ลง รวมถึงการตอบสนองที่ช้า อันนี้เราจะรู้ได้ไงว่ามัน OK จริง หรือต้องขยับเพิ่ม RTX 6000 ราคาจะโดดไปเลย

Ans

  • เลือกงานที่เหมาะสมกับ HW เช่น งาน Batch ที่ไม่ได้ใช้ Model เยอะ เอกสาร / Coding ขนาดเล็ก
  • ปรับงานแบบ Streaming
  • Group งานที่คล้ายกันมาใช้
  • รวมถึงการปรับ LowLevel ของ vLLM ช่วยการตอบสนองในแต่ละ Concurrent ได้ไวขึ้น
  • การที่เราเอา Local LLM + Quantization มาใช้่ Quality จะ Drop ลง แต่ก่อนนำมาใช้ของต้องทำการ Evaluation ตรวจจาก Bible Text ของภาษาไทย เช่น ThaiSafetyBench รวมถึง
    - Faithfulness: ตรวจสอบว่าโมเดลตอบตามข้อมูลที่มีอยู่จริงหรือไม่ หรือมี Hallucination หรือไม่
    - Relevancy: ตรวจสอบว่าคำตอบที่ AI ให้มานั้นตรงกับบริบทหรือสิ่งที่ผู้ใช้ถามมากน้อยแค่ไหน
    - Correctness: ตรวจสอบความถูกต้องของเนื้อหาในคำตอบ

📌 เรื่องของ Harness ใช้แบบ Default หรือต้องปรับแต่งเอง

Ans ตัว Agent (Model + Harness) อย่าง Claude Code(Harness) ถ้าสาย Open Source ลองใช้ตัว OpenCode ได้ ซึ่งเราปรับแต่งได้ระดับนึง

📌 เรื่องของ Qwen

Ans

  • ตอนนี้มี Qwen 3.8 แล้วนะ ใน vLLM Office Hours จะเอามาลองเยอะด้วย
  • Model ภาษาไทยของไทยอย่าง ThaiLLM / Typhoon อันนี้ถูก Post Traning โดย Qwen
  • ถ้าไม่มี Server แรงๆ สามารถไปใข้บน Cloud ได้
    - อย่างตัว Qwen ซึ่งราคาถูกกว่าตัว Kimi3 ที่เพิ่งออก
    - ใช้ พวก Agent ต่อกับ Client อย่าง ClaudeCode / QwenCoder / Qoder / QwenPaw พวก Agent อย่าง OpenClaw / Hermes
    - ถ้าขี้เกียจจัดการเยอะ ไปใช้ Service ของ Alibaba Cloud / QwenCloud ได้
  • เลือก Model + Think Level ให้เหมาะสมด้วย

📌 Local LLM for Software Dev
Ans เริ่มต้นจากตัว DGX Spark + Qwen 3.5 35B ถ้าอยากเร็วๆต้องใช้ 5090 2 ตัวต่อกัน ส่วน DGX Spark ใช้ NVLink เชื่อมกัน 4 ตัว สามารถ Run GLM Model ได้เลย แต่ราคาก็แรง

📌 จำเป็นไหมที่ต้องทำ Fine Tuning
Ans ควรทำที่ RAG ถ้า Data ไม่เยอะมากๆ เยอะระดับ 10-20 ล้าน หน่วยน่าจะ Record คุ้มกับ Fine Tuning นะ สำหรับภาษาไทย

  • ถ้าทำ RAG Model ของ Typhoon ไม่มีตัว Embleding มาใช้ ลองใชเ BGE-m3 หรือ Qwen มี Embedding เหมือนกัน
  • แล้วต้องเลือก Model Embedding ตาม Text ภาษาไทย จีน หรือ พวก Image
  • และเลือก Embedding ตัวเดียวกัน ทั้งในขั้นตอน Injest Data และขั้นตอนการเรียกใช้ Inference/Search เพื่อให้มิติของ Vector (Dimension) ตรงกันและสามารถค้นหาข้อมูลได้อย่างถูกต้อ

อ๋อ แล้ววันที่ 2 มีงาน Qwen เดือนหน้า / vLLM เดือนกันยาด้วย


Discover more from naiwaen@DebuggingSoft

Subscribe to get the latest posts sent to your email.