Skip to main content

4 posts tagged with "litellm"

View All Tags

MiniMax-M3 - Model ใหม่ 1M Context ควบคู่กับ LiteLLM Gateway

· 7 min read

เมื่อสัปดาห์ที่แล้วผมลองเปลี่ยนโมเดลบน LiteLLM proxy จาก Qwen3.6-35B ไปเป็น MiniMax-M3 แล้วเจอว่าพารามิเตอร์ที่ใช้อยู่กับ Qwen ใช้กับ M3 ไม่ได้เลย

Qwen ผมตั้ง presence_penalty=1.5, top_k=20, chat_template_kwargs={"preserve_thinking": true} — แต่ M3 เพิกเฉย top_k (บน API), ไม่มี presence_penalty, และใช้ reasoning_split แทน preserve_thinking

Note: อย่า copy-paste config ระหว่าง model — แต่ละโมเดลมีพารามิเตอร์ default และ recommended range ต่างกัน การตั้งค่า Qwen มาใส่ M3 โดยไม่ตรวจสอบ = พารามิเตอร์ที่ถูกเพิกเฉยโดยไม่มีการแจ้งเตือน

พออ่าน docs ของ MiniMax อย่างละเอียดแล้ว เลยต้องปรับ profile ใหม่ทั้งหมด — ผลที่ได้คือชุด config ที่ผมใช้มาตลอด และอยากเอามาเล่าให้ฟัง

Virtual Models บน LiteLLM Proxy: 1 โมเดล 5 profiles ใช้ให้เหมาะกับงาน

· 10 min read

ผมเคยตั้งค่า vLLM มาหลายเดือนด้วยสูตรเดียวตลอด — temperature: 0.6, top_p: 0.95 แล้วก็ปล่อยให้ทุก client ไป override เอาเอง ไม่ว่าจะเป็น Claude Code, Hermes Agent หรือ OpenWebUI — ใช้ค่าเดียวกันหมด

ผมคิดว่า "โมเดลตัวเดียวกัน ก็ต้องตั้งค่าเหมือนกันสิ" — จนกระทั่งลองเปลี่ยน sampling ตาม use case แล้วเห็นว่า โมเดลตัวเดียวกัน + sampling ต่างกัน = พฤติกรรมต่างกันโดยสิ้นเชิง

เมื่อ timeout ไม่ใช่ปัญหา แต่ cache เป็นพระเอก: LiteLLM + DGX Spark Journey

· 9 min read

เรื่องมันเริ่มจากปัญหาที่น่ารำคาญมากตอนเที่ยงคืนครับ API ที่ผมใช้รัน backtest trading bot มัน timeout แบบสุ่ม — บาง call ผ่าน บาง call ไม่ผ่าน แถมพอลองยิง prompt เดิมซ้ำ ก็ได้ output กลับมาทันที ฟังดูขัดแย้งใช่ไหมครับ?

ผมใช้เวลาทั้งคืนไล่หาสาเหตุ จนในที่สุดก็พบว่า ปัญหาไม่ได้อยู่ที่ vLLM ไม่ได้อยู่ที่ DGX Spark และไม่ได้อยู่ที่ model เลย — มันอยู่ที่ LiteLLM proxy layer ที่ผมตั้งใจใช้เป็น "แค่ทางผ่าน" ตั้งแต่ต้น

LiteLLM Proxy: วาง Gateway ครอบ LLM ให้ทีมใช้งานแบบมีระบบ

· 13 min read

intro

ผมรัน LLM เองบน homelab มาสักพัก

เริ่มจาก llama.cpp บนเครื่องสเปกต่ำ ถามอะไรก็ตอบได้

แล้วขยับมา vLLM ที่ throughput สูงกว่า รับ request พร้อมกันได้มากกว่า

ทุกอย่างดูดี จนกระทั่งวันหนึ่งเพื่อนร่วมงานถามว่า

"ขอใช้ด้วยได้ไหม?"

ผมก็เลยเปิด port ให้เพื่อนยิง request ตรงเข้ามา

ผ่านไปสักพัก ก็เริ่มเจอปัญหา

ไม่รู้ว่าใครใช้ไปเท่าไหร่ — ไม่มี log ไม่มี metric รู้แค่ GPU ทำงานหนักขึ้น

ไม่มี API key แยกคน — ทุกคนใช้ key เดียวกัน ถ้า key หลุดก็จบเลย

ไม่มี rate limit — มีคนส่ง request ต่อเนื่อง ทำให้คนอื่นรอคิวนาน

ไม่มี cache — คำถามซ้ำๆ ถูกส่งไป LLM ทุกครั้ง เสียทรัพยากรโดยไม่จำเป็น

backend ล่มที ทุกอย่างก็หยุดทำงาน — ไม่มี fallback ไม่มี retry

ถ้าจะเขียนระบบจัดการเองก็ทำได้ แต่ต้องมานั่งทำ auth, logging, rate limit, cache, dashboard...

ไม่ใช่งานที่ผมอยากทำ

แค่อยากให้ทีมใช้ LLM ได้สะดวก โดยที่ยังคุมทุกอย่างได้