Liệu nửa bit dữ liệu dôi ra trên mỗi trọng số có thực sự cứu vãn được năng lực suy luận của một mô hình ngôn ngữ lớn khi nén về 4-bit? Câu trả lời nằm ở cách bộ giải thuật phân bổ độ chính xác cục bộ cho từng nhóm ma trận thay vì ép phẳng toàn bộ mạng nơ-ron.
Cơ chế super-block và sự phân hóa giữa Q4_K_M với Q4_K_S
Khi đưa mô hình như Llama 3 8B vào môi trường container để phục vụ suy luận, áp lực dung lượng bộ nhớ là bài toán cốt lõi. Bản F16 chiếm tới 14,97 GiB, trong khi Q4_K_M rút xuống 4,58 GiB và Q4_K_S dừng ở 4,37 GiB. Khoảng chênh lệch 0,21 GiB này không xuất phát từ thuật toán nén khác biệt mà đến từ chiến lược miễn trừ tensor.
Theo cấu trúc block_q4_K khai báo trong ggml/src/ggml-common.h, 256 trọng số được gom thành một super-block gồm 8 block nhỏ 32 phần tử. Mỗi block nhỏ chứa hệ số tỉ lệ (scale) và giá trị min riêng ở mức 6-bit. Chi phí lưu dữ liệu phụ trợ khiến kích thước thực tế đạt 4,5 bit mỗi trọng số thay vì 4 bit thuần túy. Bài phân tích chi tiết từ TechnologySpot chỉ ra rằng bản Medium (Q4_K_M) nâng các tensor nhạy cảm gồm attn_v và ffn_down lên chuẩn block_q6_K (6,5625 bit), đồng thời đưa attn_qkv lên mức Q5_K.
Nhờ việc giữ độ chính xác cao ở các lớp rìa và một phần ba số lớp giữa qua hàm use_more_bits(i, n), perplexity đo trên tập Wikitext-2 của Q4_K_M đạt 6,407, vượt trội so với mức 6,501 của Q4_K_S và 6,700 của chuẩn block_q4_0 cũ.
Tối ưu phân bổ tài nguyên khi đóng gói inference container
Trong kiến trúc microservice, việc lựa chọn đúng định dạng nén giúp kiểm soát ngưỡng cấp phát tài nguyên và tránh xung đột bộ nhớ giữa các tiến trình:
FROM ghcr.io/ggerganov/llama.cpp:server
ENV MODEL_PATH=/models/llama-3-8b-instruct-q4_k_m.gguf
CMD ["-m", "/models/llama-3-8b-instruct-q4_k_m.gguf", "-c", "4096", "--host", "0.0.0.0"]
Nguyên tắc thực tế khi cấu hình tài nguyên cho service suy luận:
- Khi phân vùng bộ nhớ khả dụng cho container dưới 4,5 GiB, định dạng Q4_K_S là ngưỡng an toàn để tránh kích hoạt cơ chế Out-Of-Memory (OOM) killer.
- Khi hệ thống còn dư khoảng trống cho context cache, Q4_K_M là lựa chọn phù hợp để duy trì tính nhất quán logic đầu ra mà không làm thay đổi đáng kể độ trễ xử lý.
Top comments (0)