โฮสต์เอง

เครื่องมือวางแผนหน่วยความจำ GPU

Beam เป็นโมเดล Mixture-of-Experts: มีพารามิเตอร์เพียง 23 พันล้านตัวที่ทำงานกับแต่ละโทเค็น แต่ต้องเก็บพารามิเตอร์ทั้งหมด 501 พันล้านตัวไว้ในหน่วยความจำ เลือกความแม่นยำ บริบท และฮาร์ดแวร์เพื่อดูว่าต้องใช้อะไรบ้าง

beam-501b-a23b
ความแม่นยำของน้ำหนักโมเดล
ความแม่นยำของ KV cache
สมมติฐานเกี่ยวกับ Attention

Reflection ระบุว่าใช้ attention แบบ local และ global สลับกัน แต่ยังไม่ได้เผยแพร่ config.json ค่าตัวอย่างเหล่านี้ใช้คำนวณประมาณการ KV cache; เปลี่ยนค่าได้เมื่อมีการเผยแพร่ค่าจริง

หน่วยความจำทั้งหมดKV cache ต่อโทเค็น: 26.0 KB
น้ำหนักโมเดล
501 GB
KV cache
16.6 GB
โอเวอร์เฮด
51.8 GB
หน่วยความจำทั้งหมด
569 GB
น้ำหนักโมเดลKV cacheโอเวอร์เฮด
ต้องใช้ NVIDIA H200 141GB
ขั้นต่ำ 5 ตัว, แนะนำ 8 ตัวสำหรับใช้งานจริง
ใช้งานได้บนเซิร์ฟเวอร์ 8-GPU เครื่องเดียว

จำนวน GPU ที่ต้องใช้สำหรับ weights เพียงอย่างเดียว

จำนวนอุปกรณ์ขั้นต่ำต่อ precision ก่อนรวม KV cache โดยถือว่าใช้หน่วยความจำของแต่ละอุปกรณ์ได้ 92%

ตัวเร่งประมวลผล BF16 / FP16
1,002 GB
FP8
501 GB
GGUF Q4_K_M
304 GB
INT4 / FP4
251 GB
NVIDIA H100 80GB × 14× 7× 5× 4
NVIDIA H200 141GB × 8× 4× 3× 2
NVIDIA B200 180GB × 7× 4× 2× 2
NVIDIA B300 288GB × 4× 2× 2× 1
NVIDIA A100 80GB × 14× 7× 5× 4
NVIDIA RTX PRO 6000 96GB × 12× 6× 4× 3
NVIDIA L40S 48GB × 23× 12× 7× 6
NVIDIA RTX 5090 32GB × 35× 18× 11× 9
NVIDIA RTX 4090 24GB × 46× 23× 14× 12
AMD Instinct MI300X 192GB × 6× 3× 2× 2
AMD Instinct MI325X 256GB × 5× 3× 2× 2
AMD Instinct MI355X 288GB × 4× 2× 2× 1
Apple M3 Ultra 512GB (unified) × 3× 2× 1× 1

วิธีคำนวณค่าประมาณ

  • Weights: พารามิเตอร์ 501 พันล้านตัว × บิตต่อ weight ÷ 8 รูปแบบ GGUF รวม block scales ไว้แล้ว ดังนั้น Q4_K_M จึงใช้ประมาณ 4.85 บิต
  • KV cache: 2 × KV heads × head dimension × bytes ต่อค่า สำหรับทุก token ที่แคชไว้ในทุก layer ส่วน global layers จะแคช context ทั้งหมด ขณะที่ local layers จะแคชเฉพาะ window ของตัวเอง
  • ค่า overhead ครอบคลุม activations, CUDA graphs และ fragmentation ค่า 10% เป็นจุดเริ่มต้นที่เหมาะสมสำหรับ vLLM หรือ SGLang ควรวัดค่าจากการตั้งค่าของคุณเอง
  • จำนวนอุปกรณ์คำนวณโดยสมมติว่าใช้หน่วยความจำได้ 92% และปัดขึ้นตามขนาดกลุ่ม tensor parallel ที่ 1, 2, 4 หรือ 8 ต่อเซิร์ฟเวอร์

คำถาม

ใช้งาน Beam บน GPU ตัวเดียวได้ไหม

ไม่ได้ GPU สำหรับผู้ใช้ทั่วไปหรือศูนย์ข้อมูลไม่มีหน่วยความจำเพียงพอ แม้ใช้ 4-bit ก็ต้องใช้ weights ประมาณ 250 GB จึงต้องใช้ตัวเร่งประมวลผลขนาดใหญ่หลายตัว หรือเครื่องที่มีหน่วยความจำ unified ขนาดใหญ่มาก

ทำไมโมเดลที่มีพารามิเตอร์ active 23B ถึงต้องใช้หน่วยความจำมากขนาดนี้

แต่ละ token จะถูกส่งไปยัง expert เพียงไม่กี่ตัว แต่ expert ที่เลือกจะเปลี่ยนไปในแต่ละ token ดังนั้น expert ทุกตัวจึงต้องพร้อมใช้งาน จำนวนพารามิเตอร์ที่ active กำหนดความเร็ว ส่วนจำนวนพารามิเตอร์ทั้งหมดกำหนดการใช้หน่วยความจำ

สามารถเก็บ expert ไว้ใน system RAM ได้ไหม

engine บางตัว เช่น llama.cpp สามารถเก็บ weights ของ expert ไว้ในหน่วยความจำ CPU แล้วส่งไปยัง GPU ได้ วิธีนี้ใช้งานได้แต่ช้ากว่ามาก ควรวางแผนใช้เฉพาะกับการทดลองเท่านั้น

ตัวเลขเหล่านี้จะถูกต้องแน่นอนเมื่อไร

การใช้หน่วยความจำของ weights ถูกต้องแน่นอนอยู่แล้วสำหรับ precision ที่กำหนด ส่วนค่าประมาณ KV cache จะแม่นยำแน่นอนเมื่อ Reflection เผยแพร่การตั้งค่าของโมเดล