จดๆจาก vLLM by mood @OpenCraft

Recap จาก Live vLLM by mood @OpenCraft พูดถึงเหตุผลที่องค์กรควรทำ Local LLM (Security, Privacy, Full Control) รวมถึง Secret Sauce ของ vLLM อย่าง PagedAttention, Fusion Passes, Speculative Decoding, Quantization และแนวทางเลือก Model/Hardware ให้เหมาะสม ปิดท้ายด้วย Q&A เรื่อง Fine-tuning vs RAG และการประเมินคุณภาพ Local LLM ภาษาไทย

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

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 ให้ได้คุ้มค่าที่สุด
- ก่อนใช้ vLLM มาทำ 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 (NVIDIA) / RocM (AMD) / Apple Silicon ตาม Chip แต่ละรุ่นนั้นเอง
  • มีเทคนิค Optimization / Tune ได้หลากหลาย
  • Scale ได้
  • ปรับตัวสำหรับ Model ใหม่ๆได้ไว อย่างเช่นการประกาศ Model ใหม่อย่าง Deekseek ที่ประกาศ Model ปุ๊บ Service พร้อมใช้เลย

📌มีหลายเทคนิค Tune อย่าง Continuous Batching / Toruch Compile/ Fusion Passes (Fusion Ops), PD Disaggregated Inference / Quantization + 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 ให้ดีขึ้น

📌และ ถ้ามีปัญหาอื่นๆ ลองมาดู Feature ของ vLLM ช่วยอะไรบ้าง

ถ้าภาพไมชัดผมทำตารางเป็น Text ไว้แล้ส

อาการของ Agentic WorkloadvLLM แก้ด้วย
ส่ง context เดิมซ้ำทุกรอบAutomatic Prefix Caching
Tool schema ยาวและซ้ำทุกคนPrefix cache ข้าม request
งานเข้ามาไม่เป็นจังหวะ ยาวไม่เท่ากันContinuous batching
JSON เพี้ยน > retry เสียรอบฟรีStructured output
Prompt ยาว output สั้น > prefill ท่วมChunked prefill + PD disagg
Memory ตึงเป็นช่วง ๆPreemption / KV offload
ต้องต่อกับ framework เดิมOpenAI-compatible API

ถ้าอยากรู้เพิ่ม 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 ตัวเดียวกัน ทั้งในขั้นตอน Ingest Data และขั้นตอนการเรียกใช้ Inference/Search เพื่อให้มิติของ Vector (Dimension) ตรงกันและสามารถค้นหาข้อมูลได้อย่างถูกต้อ

อ๋อ แล้ววันที่ 2 มีงาน Qwen เดือนหน้า / vLLM เดือนกันยาด้วย นอกจากปรับ Low Level ของ AI vLLM ถ้าสนใจส่วนของ App มาตรงนี้ได้ Performance Issue (Recap จากประสบการณ์)

Reference


Discover more from naiwaen@DebuggingSoft

Subscribe to get the latest posts sent to your email.