บทที่ 6 · ตอนมันตอบจริง หน้า 11/12 ~2 นาที

สรุปสูตรบทที่ 6

จำประโยคเดียวก็พอ:

ตอบจริง = อ่าน prompt รวดเดียว แล้วเขียนทีละ token → ความเร็วถูกจำกัดด้วยการอ่านหน่วยความจำ → KV cache, quantization, batching และ MoE ช่วยให้เร็วและถูกลง → ส่วนคงที่ไว้ต้นให้แคชช่วย

สิ่งที่เกิดสูตรจำง่ายๆ
เวลาตอบTTFT ≈ token prompt ÷ ความเร็ว prefill, เวลาเขียน ≈ token คำตอบ ÷ ความเร็ว decodeอ่านรวด เขียนทีละคำ
งานต่อ token≈ 2 × พารามิเตอร์ (MoE นับที่ใช้จริง)คงที่ต่อ token
KV cache2 × ชั้น × ชุด K/V × ตัวเลขต่อชุด × byte × tokenโตตามความยาว × คน
น้ำหนักโมเดลพารามิเตอร์ × บิต ÷ 88B ที่ 16 บิต = 16 GB
Quantizationscale = max|w| ÷ (2^(b−1) − 1) แล้วปัดบิตน้อย = เล็ก + เพี้ยนมาก
เพดานความเร็ว decode≈ ความเร็วหน่วยความจำ ÷ (น้ำหนัก + KV ทุกคน) ต่อคน, รวม × จำนวนคนอ่านครั้งเดียว แจกหลายคน
หน่วยความจำการ์ดน้ำหนัก + KV ของทุกคน + อื่นๆ ≤ ความจุทุกอย่างต้องลงการ์ด
MoEรวม = ส่วนที่ใช้ร่วม + ทุกชุด, ใช้จริง = ส่วนที่ใช้ร่วม + ชุดที่เลือกประหยัดคำนวณ ไม่ใช่หน่วยความจำ
ค่าใช้จ่ายtoken × ราคาต่อล้าน ÷ 1,000,000ส่วนคงที่ไว้ต้น → แคช

ตัวเลขที่คำนวณกันมา (ค่าสมมติ)

  • อ่าน prompt 1.4 วินาที เขียนคำตอบ 7.5 วินาที
  • KV cache 131,072 byte ต่อ token
  • 4 คน × 32,000 token ที่ 8 บิต = 8.39 GB
  • โมเดล 8B: 16.0 GB → 4.0 GB ที่ 4 บิต (น้ำหนักตัวอย่าง 8 ตัว error สูงสุด 0.060)
  • 62.5 → 500 token/วินาที เมื่อรวม 8 คน
  • การ์ด 24 GB กับน้ำหนัก 16 บิต เหลือที่ให้ KV cache ราว 53,405 token
  • MoE 34B ใช้จริง 10B แต่ต้องใช้ 68.0 GB
  • บิล 2,550 → 930 → 705 บาท (แคช แล้วตอบสั้นลงเหลือ 150 token)
มังคุด มาสคอตมังคุด

มังคุด

ถ้าทำได้อย่างเดียวเพื่อลดบิลน้องเฟิร์น ควรเริ่มอะไรก่อน?