คำตอบสั้น ๆ: VRAM ขึ้นอยู่กับขนาดโมเดล quantization และบริบท
ไม่มีตัวเลข VRAM ค่าเดียวที่ใช้ได้กับ local LLM ทุกตัว ความต้องการจริงคือผลรวมของ weights ของโมเดล, KV cache, overhead ของ runtime และเผื่อความปลอดภัย โมเดล Q4 ขนาดเล็กสามารถรันบนฮาร์ดแวร์ระดับพอประมาณได้ ในขณะที่โมเดล Q8 ที่ใหญ่กว่าและมีบริบทยาวอาจต้องใช้หน่วยความจำมากกว่ามาก นี่คือเหตุผลที่ผู้ใช้สองคนที่มี GPU เดียวกันอาจได้ผลต่างกัน หากคนหนึ่งต้องการแชตสั้น ๆ แต่อีกคนต้องการการเขียนโค้ดแบบบริบทยาวหรือ RAG
ตามกฎเชิงปฏิบัติ 6GB คือระดับเริ่มต้น 8GB ใช้ได้กับโมเดลขนาดเล็ก 12GB เป็น baseline เดสก์ท็อปที่สบายกว่า 16GB ให้พื้นที่เผื่อดีขึ้น 24GB เป็นระดับผู้บริโภคที่แข็งแรง และ 48GB ขึ้นไปเปิดทางสู่โมเดลที่ใหญ่กว่าและ quantization ที่สูงกว่า Apple Silicon unified memory เป็นหมวดหมู่แยก เพราะ CPU และ GPU ใช้ memory pool เดียวกัน แต่ยังต้องมีพื้นที่สำหรับ macOS, แอป และ overhead ของ runtime
Weights ของโมเดลมักกินงบหน่วยความจำมากที่สุด
ส่วนที่ใหญ่ที่สุดของงบหน่วยความจำมักเป็น weights ของโมเดล weights แบบ FP16 มีขนาดใหญ่ ขณะที่ไฟล์ GGUF ที่ quantized ลดขนาดด้วยการเก็บ weights ด้วยจำนวนบิตที่น้อยลง โมเดล 7B ใน Q4 สามารถใส่ในหน่วยความจำได้น้อยกว่ามากเมื่อเทียบกับโมเดลเดียวกันใน FP16 หรือ Q8 นี่คือเหตุผลที่ quantization เป็นหัวใจของคำแนะนำ local LLM เพราะมันเปลี่ยนสิ่งที่รันได้จริงบน GPU ผู้บริโภค
อย่างไรก็ตาม ขนาดไฟล์อย่างเดียวไม่พอ โมเดลบางตัวมี architecture, พฤติกรรมพารามิเตอร์ที่ active ของ MoE, การตั้งค่า tokenizer และค่าเริ่มต้นของบริบทที่แตกต่างกัน ไฟล์โมเดลที่ดูเหมือนจะพอดีบนกระดาษอาจยังคับเกินไปเมื่อ runtime จองหน่วยความจำแล้ว คำแนะนำจึงควรรวม margin แบบระมัดระวัง แทนที่จะถือว่าขนาดไฟล์คือความต้องการทั้งหมด
KV cache เพิ่มขึ้นตามความยาวบริบท
KV cache คือหน่วยความจำที่ใช้เก็บข้อมูล attention สำหรับ token ที่ประมวลผลไปแล้ว มันเพิ่มขึ้นตามความยาวบริบท การตั้งค่า batch จำนวน layer ขนาด hidden และรายละเอียดการใช้งานจริง นี่คือเหตุผลที่โมเดลที่ทำงานได้ที่บริบท 4K อาจไม่เสถียรหรือช้าลงที่บริบท 16K, 32K หรือสูงกว่า บริบทยาวไม่ได้ฟรีเพียงเพราะ model card ระบุไว้
สำหรับผู้ใช้ หมายความว่าเป้าหมาย VRAM ที่เหมาะสมขึ้นอยู่กับ workload แชตง่าย ๆ สามารถคงบริบทไว้ระดับปานกลางได้ การเขียนโค้ดข้ามหลายไฟล์ การสรุปเอกสารยาว และ RAG อาจดันความต้องการหน่วยความจำสูงขึ้น หากบริบทยาวเป็นสิ่งสำคัญ โมเดลที่เล็กกว่าหรือ quantized หนักกว่าอาจเหมาะกว่าโมเดลใหญ่ที่ใช้ VRAM เกือบทั้งหมดไปกับ weights เพียงอย่างเดียว
ระดับ GPU ที่ใช้งานได้จริงสำหรับ local LLMs
ที่ 6GB คาดหวังได้กับโมเดลขนาดเล็กและบริบทแบบระมัดระวัง ที่ 8GB โมเดล 3B ถึง 7B แบบ Q4 เริ่มใช้งานได้จริง แต่พื้นที่เผื่อมีจำกัด ที่ 12GB โมเดล 7B จำนวนมากและโมเดล 14B ที่ quantized บางรุ่นเริ่มใช้งานได้สะดวกขึ้น ที่ 16GB โมเดลชุดเดียวกันสามารถใช้ quantization ที่ดีกว่าหรือบริบทมากขึ้นได้ ที่ 24GB โมเดล 14B ที่แข็งแรงและโมเดลที่ใหญ่กว่าบางตัวแบบ quantized เริ่มใช้งานประจำวันได้จริง ที่ 48GB ขึ้นไป การทดลอง local ขนาดใหญ่ทำได้ง่ายขึ้นมาก
ระดับเหล่านี้ไม่ใช่คำสัญญา ความเร็วขึ้นอยู่กับ bandwidth ของหน่วยความจำ, GPU backend, CPU, RAM, driver และเครื่องมือ inference การรองรับ NVIDIA CUDA มักกว้างที่สุดในเครื่องมือ local inference AMD สามารถทำงานได้ดีใน stack ที่รองรับ แต่อาจต้องใส่ใจความเข้ากันได้ของ backend มากขึ้น Apple Silicon ใช้ unified memory ได้อย่างมีประสิทธิภาพ แต่งบโมเดลที่ใช้งานได้จริงยังต่ำกว่าตัวเลข RAM ที่โฆษณา เพราะระบบใช้หน่วยความจำนั้นร่วมกัน
เมื่อ partial offload ช่วยได้ และเมื่อมันทำให้แย่ลง
หากโมเดลไม่พอดีใน VRAM ทั้งหมด เครื่องมือบางตัวสามารถ offload บางส่วนของโมเดลไปยังหน่วยความจำ CPU ได้ วิธีนี้ทำให้โมเดลโหลดได้ แต่มักลดความเร็ว เพราะข้อมูลต้องย้ายระหว่าง GPU และหน่วยความจำระบบ บน discrete GPU, PCIe และ bandwidth ของหน่วยความจำ CPU อาจกลายเป็นคอขวด บน Mac ที่ใช้ unified memory บทลงโทษจะแตกต่างกัน แต่ bandwidth ของหน่วยความจำและแรงกดดันต่อระบบยังคงสำคัญ
ควรนำเสนอ partial offload อย่างตรงไปตรงมา มันมีประโยชน์สำหรับการทดลอง คำตอบยาวเป็นครั้งคราว หรือการทดสอบโมเดลที่ใหญ่กว่า แต่ไม่ควรเป็นคำแนะนำเริ่มต้นสำหรับผู้ใช้ทั่วไปที่คาดหวังความเร็วแบบโต้ตอบได้ Local LLM ควรให้ความสำคัญกับคำแนะนำแบบรันเต็มบน GPU เมื่อเป็นไปได้ และแยกป้าย partial offload ให้ชัดเจนเมื่อโมเดลรันได้ทางเทคนิคแต่ไม่ค่อยสบาย
FAQ
VRAM 8GB พอสำหรับ local LLM หรือไม่? พอ สำหรับโมเดลขนาดเล็กและ quantized อย่างระมัดระวัง แต่ไม่พอสำหรับทุกโมเดล และบริบทยาวจะลดช่วงที่ใช้งานได้
VRAM 12GB พอหรือไม่? เป็นจุดเริ่มต้นที่สมเหตุสมผลสำหรับโมเดล 7B จำนวนมากและโมเดล 14B ที่ quantized บางรุ่น โดยเฉพาะเมื่อใช้การตั้งค่าที่สมดุล
VRAM มากขึ้นหมายถึงคำตอบดีขึ้นเสมอหรือไม่? ไม่เสมอไป VRAM ที่มากขึ้นขยายชุดตัวเลือก แต่คุณภาพโมเดล การ tune, quantization และ use case ยังเป็นตัวกำหนดคำแนะนำที่ดีที่สุด
จะประเมินเครื่องของตัวเองได้อย่างไร? ใส่ VRAM, RAM, ระบบปฏิบัติการ และ use case ของคุณใน Local LLM เครื่องมือจะใช้ขนาดโมเดล quantization, KV cache และกฎ margin กับข้อมูลโมเดลปัจจุบัน