LLM Cal

LOCAL LLM FIELD GUIDE

Quantization: ลดอะไร และควรเลือกอย่างไร

Weight quantization ลดพื้นที่ของโมเดลที่อยู่คงที่ ส่วน KV cache quantization ลดพื้นที่ที่โตตาม context และจำนวน request. เลือก format จาก runtime ที่โหลดได้จริงก่อนเลือกจำนวนบิต.

มาสคอตแมวดำ STH ประกอบคู่มือ Quantization: ลดอะไร และควรเลือกอย่างไร

สองก้อนที่ต้องแยก

weights อยู่คงที่. KV cache โตตามงาน

Weights
ลด model footprint และ bytes read ต่อ token
KV cache
ลด memory ต่อ context × sequence
แมวดำ STH กำลังลดขนาด blocks ของโมเดลข้างกระแส KV cache
แผนภาพสรุปสรุปกลไกสำหรับใช้เทียบกับค่าใน calculator
แผนภาพอธิบาย Quantization: ลดอะไร และควรเลือกอย่างไร

ใช้กับงานจริง

ใช้ quant เพื่อแก้คอขวดที่ถูกจุด

เริ่มจาก runtime ที่จะรันจริง แล้วจึงเลือก artifact และจำนวนบิต. การลด weights กับการลด KV cache แก้ปัญหาคนละก้อน จึงต้องดู memory breakdown แยกกัน.

ถ้า model ยังไม่พอดี ให้ดู weight quant ก่อน. ถ้า model พอดีแล้วแต่ context หรือจำนวน request ไม่พอ ให้ดู KV cache, working context และ batch.

อาการสิ่งที่ควรปรับตรวจให้ชัด
weights ไม่พอดี memoryเลือก weight quant ที่ runtime โหลดได้checkpoint, kernel และคุณภาพงานจริง
context ยาวแล้ว KV เต็มเลือก KV dtype ที่ runtime รองรับKV ต่อ sequence และ long-context prompt
ใช้ Macเลือก MLX หรือ GGUF/Metal pathartifact ที่แปลงมาสำหรับ runtime นั้น

เช็กก่อนดาวน์โหลด model

  • บันทึก runtime และรุ่นของ runtime ที่จะใช้
  • แยก weight quant ออกจาก KV cache dtype
  • ตั้ง working context จาก request ปกติ ไม่ใช่เพดานสูงสุด
  • ทดสอบ prompt สำคัญก่อนลด bit เพิ่ม
ตัวอย่างบันทึก configuration ที่ต้องเทียบ
runtime = vllm
weight_format = AWQ
kv_cache_dtype = fp8_e4m3
working_context = 32768

Weights กับ KV cache เป็นคนละงบ

Weights อยู่ใน memory ตลอดช่วงรัน จึงเป็นตัวตัดสินว่าโมเดลเริ่มต้นพอดีหรือไม่. KV cache โตตาม tokens ที่ใช้งานและ sequence พร้อมกัน. งาน context ยาวอาจติด KV cache แม้ weights เล็กแล้ว.

เลือก artifact ให้ตรง runtime

  • vLLM / SGLangใช้ checkpoint และ kernel ที่ runtime รองรับ
  • llama.cpp / Ollamaใช้ไฟล์ GGUF
  • MLXใช้ weights ที่แปลงสำหรับ MLX

อย่าเลือกจากชื่อ quant อย่างเดียว: Q8, AWQ หรือ GPTQ ที่ชื่อเหมือนกัน อาจโหลดข้าม runtime ไม่ได้.

ความเสี่ยงต่อคุณภาพ

4-bit มักช่วยให้โมเดลพอดีกับเครื่อง แต่ต้องตรวจ task สำคัญ เช่น reasoning, code, tool calling และภาษาไทยด้วย prompt จริง. KV ที่ลด precision อาจกระทบงาน context ยาวต่างจากการลด weights.

ใช้ calculator อย่างถูกลำดับ

เลือก hardware และ framework ก่อน ตรวจ weights, KV cache และ overhead แยกกัน จากนั้นลด quantization เฉพาะก้อนที่เป็นคอขวด และ benchmark request จริงก่อน production.

แหล่งอ้างอิง

ลองกับ configuration ของคุณ

นำ model, quantization, context, framework และ hardware ที่คิดไว้ไปลองใน calculator จากนั้นยืนยันด้วย benchmark ที่ใกล้ production.

เปิดเครื่องคำนวณ