โมเดลที่รันใน Notebook จะรับคำขอทีละรายการ แต่ Endpoint สำหรับ Production จะต้องรองรับคำขอจำนวนมากพร้อมกัน โดยแต่ละคำขอต้องใช้หน่วยความจำ GPU สำหรับ Key-Value (KV) cache, ส่วนใน Batch และสตรีมการตอบกลับ
แม้ว่า PyTorch หรือ Hugging Face Transformers จะสามารถให้บริการโมเดลได้ แต่ผู้ใช้ต้องสร้างระบบการจัดตารางคำขอ การจัดการแคช และเลเยอร์ API ขึ้นมาเอง ซึ่งเฟรมเวิร์กเหล่านี้เข้ามาทำหน้าที่นั้นแทน
1. vLLM
vLLM เป็นหนึ่งในเอนจิ้นที่ถูกนำไปใช้อย่างแพร่หลายที่สุดสำหรับการให้บริการ LLMs ในระดับสเกล และเป็นจุดเริ่มต้นสำหรับนักพัฒนาที่ย้ายจาก Transformers แบบพื้นฐาน
3. MAX
MAX เปิดเผยตัวเลือกการปรับแต่งในระดับเดียวกับ vLLM และ SGLang เช่น ขนาด Batch, การใช้หน่วยความจำ และความยาวลำดับสูงสุด ผ่านคำสั่ง max serve
4. TensorRT-LLM
รองรับการควอนไทซ์ความแม่นยำต่ำ รวมถึง FP8 บน GPU H100 ขึ้นไป, FP4 บน Blackwell GPUs และการควอนไทซ์น้ำหนักด้วย INT4 (AWQ)
7. Ollama
Ollama บรรจุการดาวน์โหลดโมเดล, การจัดการเวอร์ชัน และการให้บริการในเครื่องไว้เบื้องหลัง CLI และ API ที่เรียบง่าย ทำให้เป็นเครื่องมือ Inference แรกที่นักพัฒนาใช้บ่อย
8. MLC-LLM
MLC-LLM เป็นเอนจิ้นที่สร้างขึ้นโดยใช้ Compiler บน Apache TVM เหมาะสำหรับกรณีที่ฮาร์ดแวร์เป้าหมายไม่ปกติ หรือการติดตั้งใช้งานครอบคลุมหลายแพลตฟอร์ม
ศัพท์ที่ควรรู้
- LLMs (Large Language Models) – โมเดลภาษาขนาดใหญ่ คือ AI ที่ถูกฝึกมาเพื่อจัดการและสร้างข้อความภาษาธรรมชาติ
- GPU memory – หน่วยความจำของหน่วยประมวลผลกราฟิก ซึ่งใช้เก็บข้อมูลระหว่างการประมวลผลโมเดล
- KV cache – คือส่วนที่เก็บข้อมูลสำคัญของโมเดลที่ใช้ในการประมวลผลคำขอซ้ำๆ เพื่อเพิ่มความเร็วในการตอบสนอง
- Batch size – คือจำนวนคำขอที่ถูกรวมเข้าด้วยกันเพื่อประมวลผลพร้อมกันในครั้งเดียว
- Quantization – คือเทคนิคการลดความแม่นยำของตัวเลขที่ใช้ในโมเดล เพื่อให้ใช้ทรัพยากรในการประมวลผลน้อยลง
ที่มา: kdnuggets.com