Quantization (lượng tử hóa) mô hình AI là kỹ thuật biểu diễn trọng số, và đôi khi cả phép tính, bằng ít bit hơn, ví dụ từ 16-bit xuống 8-bit hoặc 4-bit. Mô hình nhỏ đi gần tương ứng: 7 tỷ tham số ở 16-bit cần khoảng 14 GB cho trọng số, ở 4-bit chỉ còn khoảng 4 GB cộng phần phụ. Nhờ vậy mô hình chạy được trên GPU, laptop phổ thông và thường sinh chữ nhanh hơn. Đổi lại, chất lượng có thể giảm nhẹ; ở mức 4-bit với phương pháp tốt, mức giảm thường khó nhận ra trong công việc thông thường.
Quantization là gì: nén con số, không nén kiến thức
Mỗi mô hình AI là một tập hợp rất lớn các con số gọi là trọng số. Khi huấn luyện, các con số này thường được lưu ở dạng số thực 32-bit hoặc 16-bit, cho độ chính xác cao. Quantization là việc làm tròn chúng về một tập giá trị ít hơn, biểu diễn bằng ít bit hơn.
Ví dụ đời thường: bảng giá vật tư ghi đến từng đồng lẻ. Nếu làm tròn đến hàng nghìn, bảng gọn hơn nhiều, tổng tiền lệch rất ít. Lượng tử hóa cũng vậy: mỗi trọng số bị làm tròn một chút, nhưng vì có hàng tỷ trọng số và sai số phân bố đều, kết quả cuối cùng thay đổi ít.
Các mức độ chính xác thường gặp
- FP32: 32 bit mỗi số, dùng chủ yếu khi huấn luyện.
- FP16, BF16: 16 bit, định dạng phổ biến khi phát hành mô hình.
- INT8, FP8: 8 bit, giảm một nửa so với 16-bit, chất lượng gần như giữ nguyên với nhiều mô hình.
- 4-bit: giảm khoảng bốn lần so với 16-bit, mức phổ biến nhất khi chạy cục bộ.
- 2–3 bit: rất nhỏ nhưng chất lượng giảm rõ, thường chỉ dùng khi bắt buộc.
Cách tính bộ nhớ một mô hình sau lượng tử hóa
Công thức ước lượng nhanh cho phần trọng số:
Bộ nhớ (GB) ≈ số tham số (tỷ) × số bit ÷ 8
Ví dụ với mô hình 8 tỷ tham số:
- 16-bit: 8 × 16 ÷ 8 = khoảng 16 GB.
- 8-bit: khoảng 8 GB.
- 4-bit: khoảng 4 GB, thực tế thường 4,5–5 GB vì một số lớp giữ độ chính xác cao hơn và cần lưu thêm hệ số tỷ lệ.
Phần bộ nhớ ngoài trọng số
Khi chạy, mô hình cần thêm bộ nhớ cho KV cache, tức phần ghi nhớ ngữ cảnh đang xử lý. KV cache tăng theo độ dài ngữ cảnh và số người dùng đồng thời. Một mô hình 7B lượng tử hóa 4-bit thường cần khoảng 5–6 GB VRAM với ngữ cảnh vài nghìn token, nhưng có thể cần nhiều hơn đáng kể khi mở ngữ cảnh dài hàng chục nghìn token. Một số công cụ cho phép lượng tử hóa cả KV cache để tiết kiệm thêm, đổi lại có thể ảnh hưởng chất lượng với ngữ cảnh dài.
Vì vậy, khi chọn GPU, hãy cộng phần trọng số, phần ngữ cảnh và chừa khoảng trống cho hệ điều hành, ứng dụng khác.
Lượng tử hóa sau huấn luyện và trong huấn luyện
Có hai hướng chính:
- Post-Training Quantization (PTQ): lượng tử hóa mô hình đã huấn luyện xong. Nhanh, không cần dữ liệu huấn luyện gốc, đôi khi dùng một tập dữ liệu nhỏ để hiệu chỉnh. Đây là cách phần lớn bản mô hình lượng tử hóa trên mạng được tạo ra.
- Quantization-Aware Training (QAT): mô phỏng việc làm tròn ngay trong quá trình huấn luyện để mô hình “quen” với sai số. Chất lượng ở mức bit thấp thường tốt hơn PTQ, nhưng cần tài nguyên huấn luyện, nên chủ yếu do nhà phát triển mô hình thực hiện.
Lượng tử hóa trọng số và lượng tử hóa phép tính
Nhiều phương pháp chỉ nén trọng số để tiết kiệm bộ nhớ, khi tính toán vẫn giải nén về 16-bit. Cách khác lượng tử hóa cả giá trị kích hoạt để tận dụng phần cứng hỗ trợ tính toán số nguyên hoặc FP8, tăng tốc độ trên server. Với người chạy cục bộ trên một GPU, lợi ích chính thường là giảm bộ nhớ và tăng tốc nhờ đọc ít dữ liệu hơn từ VRAM.
Các phương pháp và định dạng lượng tử hóa phổ biến
Khi tải mô hình, bạn sẽ thấy nhiều tên gọi. Bảng dưới tóm tắt những định dạng phổ biến tại thời điểm viết; công cụ hỗ trợ thay đổi nhanh, hãy kiểm tra tài liệu của phần mềm bạn dùng.
| Tên | Đặc điểm | Công cụ thường dùng | Phù hợp |
|---|---|---|---|
| GGUF (k-quants như Q4_K_M, Q5_K_M, Q8_0) | Định dạng của hệ llama.cpp, chạy được trên CPU, GPU, Apple Silicon, cho phép đẩy một phần lớp lên GPU | llama.cpp, Ollama, LM Studio | Máy cá nhân, máy văn phòng |
| GPTQ | PTQ dùng dữ liệu hiệu chỉnh, tối ưu cho GPU | Thư viện Transformers và các engine phục vụ | GPU NVIDIA, server |
| AWQ | Bảo vệ các trọng số quan trọng dựa trên kích hoạt, giữ chất lượng tốt ở 4-bit | vLLM và các engine phục vụ | Server phục vụ nhiều người |
| bitsandbytes (8-bit, NF4) | Lượng tử hóa khi nạp mô hình, tiện thử nghiệm và QLoRA | Transformers, PEFT | Nghiên cứu, tinh chỉnh |
| FP8 | Số thực 8-bit, cần phần cứng thế hệ mới hỗ trợ | Engine phục vụ trên GPU trung tâm dữ liệu | Triển khai quy mô lớn |
Lượng tử hóa ảnh hưởng chất lượng thế nào
Mức giảm chất lượng phụ thuộc ba yếu tố: số bit, phương pháp, và kích thước mô hình gốc.
- 8-bit: với phần lớn mô hình, khác biệt so với bản gốc rất nhỏ trong công việc thường ngày.
- 5–6 bit: thường là điểm cân bằng tốt khi còn dư bộ nhớ.
- 4-bit: mức phổ biến; với phương pháp hiện đại, mô hình vẫn dùng tốt cho soạn thảo, tóm tắt, hỏi đáp. Có thể thấy giảm ở tác vụ cần chính xác cao như toán, lập trình, trích xuất số liệu.
- Dưới 4-bit: giảm rõ, câu trả lời dễ lặp, sai logic hơn.
Mô hình lớn chịu nén tốt hơn
Một quan sát phổ biến trong cộng đồng: mô hình lớn ở 4-bit thường cho kết quả tốt hơn mô hình nhỏ hơn ở 8-bit khi dùng cùng lượng bộ nhớ. Tuy vậy, điều này không đúng với mọi tác vụ, và tiếng Việt đôi khi nhạy hơn tiếng Anh với lượng tử hóa mạnh vì dữ liệu tiếng Việt chiếm tỷ lệ nhỏ trong huấn luyện.
Cách chắc chắn nhất là tự kiểm tra trên công việc thật của bạn, với cùng bộ câu hỏi, so sánh hai mức lượng tử hóa.
Áp dụng thực tế: chọn mức lượng tử hóa cho doanh nghiệp
Quy trình gợi ý khi triển khai mô hình nội bộ:
- Xác định bộ nhớ khả dụng: VRAM của GPU, hoặc bộ nhớ hợp nhất trên máy Apple Silicon, trừ đi phần dành cho ngữ cảnh và hệ thống.
- Chọn mô hình lớn nhất vừa bộ nhớ ở 4-bit: đây thường là điểm khởi đầu hợp lý.
- Chuẩn bị bộ kiểm tra: 20–30 câu hỏi thật của công ty, có đáp án mong đợi, gồm cả tiếng Việt có dấu, số liệu, bảng biểu.
- So sánh 2–3 mức: ví dụ 4-bit và 5-bit hoặc 8-bit, ghi lại chất lượng và tốc độ sinh chữ.
- Kiểm tra với tải thật: nhiều người dùng đồng thời làm KV cache tăng, có thể phải giảm độ dài ngữ cảnh hoặc chọn mức nén cao hơn.
Với máy chủ phục vụ cả văn phòng, các định dạng như AWQ hoặc FP8 trên engine phục vụ chuyên dụng thường cho thông lượng tốt hơn. Với máy trạm cá nhân, GGUF qua Ollama hoặc LM Studio là lựa chọn dễ triển khai.
Lỗi thường gặp và hiểu lầm về quantization
- Chỉ nhìn dung lượng file: file 4 GB không có nghĩa card 4 GB chạy được. Luôn cộng thêm KV cache và phần hệ thống.
- Nghĩ lượng tử hóa làm mô hình “ngu đi” hoàn toàn: ở mức 4–8 bit với phương pháp tốt, phần lớn năng lực được giữ lại.
- Tải bản lượng tử hóa không rõ nguồn: có thể bị lỗi, sai mẫu hội thoại hoặc thậm chí bị chỉnh sửa. Ưu tiên bản từ nhà phát triển mô hình hoặc người đóng gói uy tín.
- Lượng tử hóa nhiều lần: chuyển từ bản đã nén sang mức nén khác làm sai số cộng dồn. Luôn bắt đầu từ bản gốc 16-bit.
- Bỏ qua phiên bản phần mềm: định dạng và kiểu lượng tử hóa mới có thể cần bản công cụ mới. Lỗi nạp mô hình thường đến từ phần mềm cũ.
- So sánh không công bằng: thử bản 4-bit với prompt khác bản 8-bit rồi kết luận. Giữ nguyên prompt, tham số sinh và bộ câu hỏi khi so sánh.
Khi lập cấu hình máy chạy AI, hãy tính bộ nhớ theo mô hình bạn muốn dùng ở 4-bit cộng thêm ít nhất 20–30% cho ngữ cảnh và hệ thống. Thiếu VRAM là nguyên nhân phổ biến nhất khiến mô hình chạy chậm bất thường vì phải tràn sang RAM.
Muốn đưa AI vào công việc của doanh nghiệp? PCTech tư vấn, đánh giá mức sẵn sàng AI và triển khai chatbot, AI agent, tự động hóa cho doanh nghiệp.
10 câu hỏi, 2 phút, nhận mức độ và việc nên làm tiếp theo. Dùng thử ngay
Câu hỏi thường gặp
Lượng tử hóa 4-bit có làm mô hình kém đi nhiều không?
Với phương pháp hiện đại, mức giảm thường nhỏ trong việc soạn thảo, tóm tắt, hỏi đáp. Tác vụ cần chính xác cao như toán, lập trình có thể bị ảnh hưởng rõ hơn, nên hãy kiểm tra trên việc thật.
Mô hình 7B lượng tử hóa cần bao nhiêu VRAM?
Ở 4-bit, phần trọng số khoảng 4–5 GB, tổng thường khoảng 5–6 GB với ngữ cảnh vài nghìn token. Ngữ cảnh dài hơn hoặc nhiều người dùng cùng lúc cần thêm bộ nhớ.
GGUF, GPTQ và AWQ khác nhau thế nào?
GGUF là định dạng của hệ llama.cpp, linh hoạt trên CPU và GPU. GPTQ và AWQ là phương pháp lượng tử hóa tối ưu cho GPU, thường dùng trên server với engine phục vụ chuyên dụng.
Có tự lượng tử hóa mô hình được không?
Được, các công cụ như llama.cpp có sẵn lệnh chuyển đổi và lượng tử hóa. Cần bản mô hình gốc, đủ RAM để xử lý và nên kiểm tra chất lượng sau khi chuyển.
Quantization khác distillation thế nào?
Quantization giữ nguyên kiến trúc, chỉ biểu diễn trọng số bằng ít bit hơn. Distillation huấn luyện một mô hình nhỏ hơn học theo mô hình lớn, thay đổi cả số tham số.
Chạy mô hình lượng tử hóa trên CPU được không?
Được, đặc biệt với định dạng GGUF. Tốc độ phụ thuộc băng thông RAM và số nhân CPU; thường chậm hơn GPU đáng kể nhưng đủ cho thử nghiệm hoặc tác vụ không cần phản hồi nhanh.
Bài viết liên quan
- Từ điển thuật ngữ AI cho người làm doanh nghiệp (A–Z)
- Chọn bản mô hình GGUF (Q4, Q5, Q8) phù hợp máy của bạn
- Cần bao nhiêu VRAM để chạy LLM 7B, 14B, 32B, 70B?
- VRAM là gì? Cần bao nhiêu GB VRAM
- Ollama là gì? Chạy mô hình AI miễn phí trên máy của bạn
- Chưng cất mô hình (distillation) là gì? Mô hình nhỏ học từ mô hình lớn
- LoRA là gì? Tinh chỉnh mô hình AI tiết kiệm tài nguyên
- Máy tính chạy AI cục bộ: chọn cấu hình theo nhu cầu và ngân sách