Tính dung lượng lượng tử hóa LLM
Dung lượng tệp GGUF = tham số × bit mỗi trọng số ÷ 8. Với 4,89 bit mỗi trọng số do llama.cpp đo, Llama 3.1 8B ở Q4_K_M là 4,58 GiB, so với 7,95 GiB ở Q8_0 và 14,96 GiB ở F16 (README quantize của llama.cpp, kiểm tra ngày 16 tháng 10 năm 2026).
Cách dùng
- Chọn mô hình để điền tham số, số lớp, số head KV và chiều head, hoặc tự nhập giá trị từ config.json.
- Đặt độ dài ngữ cảnh, độ chính xác bộ nhớ đệm KV và tỉ lệ phụ phí.
- Xem bảng: bit mỗi trọng số, dung lượng tệp và tổng bộ nhớ của từng kiểu. Phần trăm cạnh tên là dung lượng so với F16.
Cách tính
Dung lượng tệp = tham số × bit mỗi trọng số ÷ 8. Công cụ dùng số bit hiệu dụng mỗi trọng số mà llama.cpp đo trên Llama 3.1 8B: F16 16,00, Q8_0 8,50, Q6_K 6,56, Q5_K_M 5,70, Q4_K_M 4,89, Q3_K_M 4,00, Q2_K 3,16. Nguồn: tools/quantize/README.md trong kho ggml-org/llama.cpp, kiểm tra ngày 16 tháng 10 năm 2026.
Các giá trị này lớn hơn con số trong tên vì K-quant lưu một hệ số tỉ lệ và một giá trị nhỏ nhất cho mỗi khối trọng số, và một số tensor như embedding và lớp đầu ra được giữ ở độ chính xác cao hơn. Với 8,03 tỉ tham số, công thức cho 4,58 GiB với Q4_K_M, khớp README.
Bộ nhớ = dung lượng tệp + bộ nhớ đệm KV + phụ phí. Bộ nhớ đệm KV = 2 × số lớp × số head KV × chiều head × ngữ cảnh × số byte mỗi giá trị, cùng công thức với công cụ tính VRAM GPU. Phụ phí là tỉ lệ bạn đặt cho bộ đệm và môi trường chạy.
Kết quả tính bằng GiB (2^30 byte). Mô hình khác có tổ hợp tensor khác, nên tệp thực tế có thể chênh vài phần trăm.
Dung lượng tệp theo mô hình
| Lượng tử hóa | Llama 3.1 8B | Qwen2.5 32B | Llama 3.1 70B |
|---|---|---|---|
| F16 | 14,96 GiB | 61,02 GiB | 131,41 GiB |
| Q8_0 | 7,95 GiB | 32,42 GiB | 69,82 GiB |
| Q6_K | 6,14 GiB | 25,03 GiB | 53,91 GiB |
| Q5_K_M | 5,33 GiB | 21,75 GiB | 46,84 GiB |
| Q4_K_M | 4,58 GiB | 18,67 GiB | 40,20 GiB |
| Q3_K_M | 3,74 GiB | 15,24 GiB | 32,82 GiB |
| Q2_K | 2,95 GiB | 12,05 GiB | 25,95 GiB |
Nên chọn loại nào
- Q4_K_M là lựa chọn mặc định phổ biến: khoảng 31% dung lượng của F16.
- Q5_K_M và Q6_K tốn hơn Q4_K_M 16% và 34% bộ nhớ, đổi lại gần mô hình gốc hơn.
- Q8_0 bằng khoảng một nửa F16 và gần F16 nhất về chất lượng.
- Q3_K_M và Q2_K giúp chạy mô hình lớn trên card nhỏ, nhưng giảm chất lượng nhiều hơn. README của llama.cpp có perplexity của từng loại.
Câu hỏi thường gặp
Mô hình 7B ở Q4_K_M nặng bao nhiêu?
Khoảng 0,57 GiB cho mỗi tỉ tham số, nên 7 tỉ tham số khoảng 3,99 GiB. Mistral 7B v0.3 với 7,25 tỉ tham số khoảng 4,13 GiB.
Vì sao Q4_K_M lại hơn 4 bit?
Mỗi khối trọng số lưu hệ số tỉ lệ riêng, và một số tensor giữ độ chính xác cao hơn. llama.cpp đo được 4,89 bit mỗi trọng số trên Llama 3.1 8B.
Mô hình 70B ở Q4_K_M có vừa 48 GB không?
Tệp khoảng 40,2 GiB. Với ngữ cảnh 8.192 token, bộ nhớ đệm KV thêm 2,5 GiB, cộng 10% phụ phí thì tổng khoảng 47 GiB, rất sát.
Khác gì công cụ tính VRAM GPU?
Dùng cùng công thức bộ nhớ, nhưng đặt mọi kiểu GGUF vào một bảng với số bit mỗi trọng số đo thực tế để so sánh ngay.