รัน LLM ต้องใช้แรมเท่าไร

หน่วยความจำที่โมเดลภาษาต้องใช้ขึ้นกับตัวเลขสามตัว: มีพารามิเตอร์เท่าไร เก็บแต่ละตัวด้วยกี่บิต และให้คอนเท็กซ์ยาวแค่ไหน นี่คือวิธีคำนวณ พร้อมผลสำหรับโมเดลขนาดที่พบบ่อยและ Mac ทุกรุ่น เพื่อให้คุณตอบคำถามนี้ได้กับทุกโมเดล

อัปเดต

สรุปสั้น ๆ

  • ค่าน้ำหนัก: พารามิเตอร์ × บิตต่อค่าน้ำหนัก ÷ 8 ด้วยฟอร์แมต 4 บิตของ MLX จะได้ราว 0.56 GB ต่อพันล้านพารามิเตอร์ ที่ 8 บิตราว 1.06 GB ที่ 16 บิต 2 GB
  • โมเดล 8B จึงต้องใช้ราว 4.5 GB ที่ 4 บิต โมเดล 32B ราว 18 GB และโมเดล 70B ราว 39 GB ยังไม่รวมคอนเท็กซ์
  • คอนเท็กซ์ (KV cache) ใช้หน่วยความจำเพิ่มและโตขึ้นทุกโทเค็น: สำหรับ Qwen3 8B คอนเท็กซ์ 32,000 โทเค็นใช้ราว 4.8 GB มากกว่าค่าน้ำหนักที่ 4 บิตของมันเสียอีก
  • บน Mac โดยค่าเริ่มต้น GPU ใช้หน่วยความจำแบบรวมได้ราว 75% Mac 16 GB จึงมีราว 12 GB สำหรับโมเดล บนพีซี โมเดลต้องใส่ใน VRAM ของการ์ดจอเองได้จึงจะรันเต็มความเร็ว

1สูตร: พารามิเตอร์ × บิต

โมเดลส่วนใหญ่คือค่าน้ำหนัก: หนึ่งตัวเลขต่อหนึ่งพารามิเตอร์ ถ้าเก็บที่ 16 บิต แต่ละตัวใช้ 2 ไบต์ โมเดลจึงต้องใช้ 2 GB ต่อพันล้านพารามิเตอร์ การควอนไทซ์เก็บค่าน้ำหนักแต่ละตัวด้วยบิตที่น้อยลง ซึ่งลดขนาดโมเดลลงเกือบตามสัดส่วน ที่ 4 บิต โมเดลส่วนใหญ่ยังคงคุณภาพใกล้เคียงต้นฉบับ

ฟอร์แมตที่ควอนไทซ์แล้วยังเก็บข้อมูลเพิ่มเล็กน้อยเพื่อสร้างค่าน้ำหนักกลับคืน MLX ของ Apple เก็บค่า scale และ bias สำหรับค่าน้ำหนักทุกกลุ่ม 64 ตัวโดยค่าเริ่มต้น ในชนิด 16 บิตของโมเดลเอง (MLX) ซึ่งเพิ่มครึ่งบิตต่อค่าน้ำหนัก ได้ขนาดดังนี้:

ความละเอียดบิตต่อค่าน้ำหนักGB ต่อพันล้านพารามิเตอร์
16 บิต (ต้นฉบับ)162.0
8 บิต8.5ราว 1.06
6 บิต6.5ราว 0.81
4 บิต4.5ราว 0.56
3 บิต3.5ราว 0.44
2 บิต2.5ราว 0.31
การควอนไทซ์แบบ affine ของ MLX ที่ขนาดกลุ่มเริ่มต้น 64 ไฟล์ GGUF ที่ความละเอียดเดียวกันมีขนาดใกล้เคียงกัน

ต่ำกว่า 4 บิต คุณภาพจะลดลงเร็วขึ้น ค่าเริ่มต้นที่ดีคือความละเอียดสูงสุดที่ใส่ได้และยังเหลือที่ว่างพอ

2หน่วยความจำสำหรับโมเดลขนาดที่พบบ่อย

ขนาดโมเดล16 บิต8 บิต4 บิต3 บิต
1B2 GB1.1 GB0.6 GB0.4 GB
3B6 GB3.2 GB1.7 GB1.3 GB
8B16 GB8.5 GB4.5 GB3.5 GB
14B28 GB14.9 GB7.9 GB6.1 GB
32B64 GB34 GB18 GB14 GB
70B140 GB74.4 GB39.4 GB30.6 GB
120B240 GB127.5 GB67.5 GB52.5 GB
235B470 GB249.7 GB132.2 GB102.8 GB
405B810 GB430.3 GB227.8 GB177.2 GB
671B1,342 GB712.9 GB377.4 GB293.6 GB
เฉพาะค่าน้ำหนัก คำนวณจากสูตรข้างบน ต้องบวกคอนเท็กซ์และเผื่อที่สำหรับตัวรันไทม์

บางโมเดลออกมาในความละเอียดต่ำของมันเอง gpt-oss-120b ของ OpenAI มี 117 พันล้านพารามิเตอร์ และเก็บค่าน้ำหนักแบบ mixture-of-experts ในฟอร์แมต 4 บิตชื่อ MXFP4 จึงใส่ใน GPU 80 GB ตัวเดียวได้ (OpenAI) สำหรับโมเดลที่ต้องการ เปิดหน้าของโมเดลนั้นได้: โมเดลแบบเปิดทุกตัวกับ Mac ที่ต้องใช้ เช่น gpt-oss-120b หรือ Llama 3.3 70B

3คอนเท็กซ์ก็ใช้หน่วยความจำ

ขณะที่โมเดลอ่านและเขียน มันเก็บ key และ value ของทุกโทเค็นในบทสนทนาไว้ในทุกเลเยอร์ เรียกว่า KV cache ขนาดของมันคือ 2 × จำนวนเลเยอร์ × จำนวน KV head × ขนาด head × ไบต์ต่อค่า × จำนวนโทเค็น

ตัวอย่างเช่น Qwen3 8B มี 36 เลเยอร์ 8 KV head และขนาด head 128 เก็บที่ 16 บิต (config) ได้ 147,456 ไบต์ต่อโทเค็น:

คอนเท็กซ์KV cache ของ Qwen3 8B (16 บิต)
8,192 โทเค็นราว 1.2 GB
32,768 โทเค็นราว 4.8 GB
40,960 โทเค็น (คอนเท็กซ์เต็มของมัน)ราว 6.0 GB
ค่าน้ำหนักที่ 4 บิตของมันราว 4.6 GB (8.2 พันล้านพารามิเตอร์) คอนเท็กซ์ยาว ๆ จึงอาจใช้หน่วยความจำมากกว่าตัวโมเดล

โมเดลที่ใช้ grouped-query attention แบบตัวนี้มี KV head น้อยกว่า attention head (8 ต่อ 32) ซึ่งลดขนาดแคชลงสี่เท่าอยู่แล้ว คุณประหยัดได้อีกด้วยการควอนไทซ์แคช: เซิร์ฟเวอร์ของ mlx-lm รับ --kv-bits 4 (mlx-lm) สำหรับแชต คอนเท็กซ์ไม่กี่พันโทเค็นก็เพียงพอ สำหรับเอเจนต์ เอกสารยาว หรือโค้ด ควรเผื่อไว้หลายกิกะไบต์

4Mac ใส่โมเดลได้ใหญ่แค่ไหน

หน่วยความจำของ Mac ใช้ร่วมกันระหว่าง CPU และ GPU และโดยค่าเริ่มต้น macOS ให้ GPU ใช้ได้แค่บางส่วน หน้า Compare ของเราคิดไว้ราว 75% README ของ mlx-lm แสดงวิธีเพิ่มขีดจำกัดบน macOS 15 ขึ้นไปด้วย sudo sysctl iogpu.wired_limit_mb=N (mlx-lm) แต่ macOS และแอปอื่น ๆ ของคุณยังต้องการพื้นที่

หน่วยความจำ Macสำหรับ GPU (ราว 75%)โมเดลใหญ่สุดที่ 4 บิตใหญ่สุดที่ 8 บิต
8 GB6 GBราว 10Bราว 5B
16 GB12 GBราว 21Bราว 11B
24 GB18 GBราว 32Bราว 16B
32 GB24 GBราว 42Bราว 22B
36 GB27 GBราว 48Bราว 25B
48 GB36 GBราว 64Bราว 33B
64 GB48 GBราว 85Bราว 45B
96 GB72 GBราว 128Bราว 67B
128 GB96 GBราว 170Bราว 90B
256 GB192 GBราว 341Bราว 180B
512 GB384 GBราว 682Bราว 361B
เฉพาะค่าน้ำหนัก: เผื่อไว้ไม่กี่กิกะไบต์สำหรับคอนเท็กซ์ แต่ละขนาดลิงก์ไปยังโมเดลที่รันได้ดีในหน่วยความจำนั้น

หน่วยความจำกำหนดว่าอะไรใส่ได้ แบนด์วิดท์หน่วยความจำกำหนดว่าเขียนได้เร็วแค่ไหน Mac ที่ดีที่สุดสำหรับรัน LLM อธิบายครึ่งหลังนี้ และ อันดับ Mac ทุกรุ่น รวมทั้งสองอย่างไว้ด้วยกัน

5RAM, VRAM และหน่วยความจำแบบรวม

บนพีซีที่มีการ์ดจอ โมเดลจะรันเต็มความเร็วได้ก็ต่อเมื่อใส่ในหน่วยความจำของการ์ดเองได้ คือ VRAM: 32 GB บน RTX 5090 (NVIDIA) เลเยอร์ที่ใส่ไม่ได้รันจาก RAM ของระบบแทนได้ แต่หน่วยความจำนั้นอ่านช้ากว่ามาก โมเดลจึงช้าลงมาก

Mac ไม่มี VRAM แยก: GPU อ่านหน่วยความจำแบบรวมเดียวกับ CPU นี่คือเหตุผลที่ Mac 64 GB หรือ 128 GB จุโมเดลที่การ์ดจอสำหรับผู้ใช้ทั่วไปใบเดียวจุไม่ได้ ตอนนี้มีพีซีบางรุ่นที่ทำงานแบบเดียวกัน เช่น DGX Spark ของ NVIDIA และเครื่อง Ryzen AI Max ของ AMD ที่มี 128 GB ใช้ร่วมกันระหว่าง CPU และ GPU: ดู M5 Max vs DGX Spark และ M5 Max vs RTX 5090

6โมเดลแบบ mixture-of-experts

โมเดลแบบ mixture-of-experts เก็บพารามิเตอร์ทั้งหมดไว้ในหน่วยความจำ แต่ใช้แค่บางส่วนสำหรับแต่ละโทเค็น หน่วยความจำตามจำนวนทั้งหมด ความเร็วตามส่วนที่ใช้งาน gpt-oss-20b มี 21 พันล้านพารามิเตอร์ ใช้งานจริง 3.6 พันล้าน (OpenAI): ต้องใช้หน่วยความจำเท่าโมเดล 21B และเขียนได้เร็วพอ ๆ กับโมเดล 4B

โมเดลแบบ mixture-of-experts จึงเหมาะกับ Mac ซึ่งมีหน่วยความจำมากเมื่อเทียบกับแบนด์วิดท์ หากเทียบกับการ์ดจอ หน้า Compare แสดงตัวเลขทั้งสองของโมเดลยอดนิยมทุกตัว

7คำถาม

รันโมเดล 70B ต้องใช้แรมเท่าไร?
ราว 39 GB สำหรับค่าน้ำหนักที่ 4 บิต บวกคอนเท็กซ์: ในทางปฏิบัติคือ Mac ที่มี 64 GB ขึ้นไป หรือการ์ดจอหลายใบ ที่ 8 บิตต้องใช้ราว 74 GB จึงต้องมี 128 GB
แรม 16 GB พอสำหรับรัน LLM ไหม?
พอ สำหรับโมเดลถึงราว 14B พารามิเตอร์ที่ 4 บิต: Mac 16 GB ให้ GPU ใช้ได้ราว 12 GB โดยค่าเริ่มต้น โมเดล 8B รันได้สบายและยังเหลือที่สำหรับคอนเท็กซ์ ดู LLM ที่ดีที่สุดสำหรับ Mac 16 GB
โมเดล 8B ต้องใช้ VRAM เท่าไร?
ราว 4.5 GB ที่ 4 บิต 8.5 GB ที่ 8 บิต และ 16 GB ที่ 16 บิต บวกราว 1.2 GB สำหรับคอนเท็กซ์ 8,000 โทเค็นในกรณีของ Qwen3 8B
ความยาวคอนเท็กซ์ใช้หน่วยความจำไหม?
ใช้ KV cache โตขึ้นทุกโทเค็นในบทสนทนา สำหรับ Qwen3 8B คือราว 147 KB ต่อโทเค็นที่ 16 บิต: ราว 4.8 GB ที่ 32,000 โทเค็น
รันโมเดลที่ใหญ่กว่าแรมได้ไหม?
ไม่ได้ในทางปฏิบัติ ถ้าค่าน้ำหนักใส่ไม่พอ ระบบจะสลับไปใช้ swap หรืออ่านจากหน่วยความจำที่ช้ากว่า และการสร้างข้อความจะช้ามาก ใช้ความละเอียดที่ต่ำลง โมเดลที่เล็กลง หรือโมเดลแบบ mixture-of-experts หรือกระจายไปหลายเครื่อง: ดูคลัสเตอร์ AI ด้วย Mac

แหล่งที่มา

  1. MLXml-explore.github.io
  2. OpenAIhuggingface.co
  3. confighuggingface.co
  4. mlx-lmgithub.com
  5. mlx-lmgithub.com
  6. NVIDIAnvidia.com
  7. OpenAIhuggingface.co

อ่านต่อ