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).

Bit mỗi trọng số lấy từ llama.cpp (Llama 3.1 8B), kiểm tra ngày 2026-10-16. Chỉ là ước tính.

Công cụ có giúp được bạn không?
Ưu tiên chúng tôi trên Google

Cách dùng

  1. 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.
  2. Đặt độ dài ngữ cảnh, độ chính xác bộ nhớ đệm KV và tỉ lệ phụ phí.
  3. 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óaLlama 3.1 8BQwen2.5 32BLlama 3.1 70B
F1614,96 GiB61,02 GiB131,41 GiB
Q8_07,95 GiB32,42 GiB69,82 GiB
Q6_K6,14 GiB25,03 GiB53,91 GiB
Q5_K_M5,33 GiB21,75 GiB46,84 GiB
Q4_K_M4,58 GiB18,67 GiB40,20 GiB
Q3_K_M3,74 GiB15,24 GiB32,82 GiB
Q2_K2,95 GiB12,05 GiB25,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.