Lượng tử hóa MXFP4/MXFP8 — Chạy model lớn trên máy cá nhân
MXFP4/MXFP8 là chuẩn lượng tử hóa 4-bit mới cho LLM. Nhờ đó, model 120B tham số chạy trên một GPU 80GB, với llama.cpp và vLLM.
Từ 2025-2026, một cuộc cách mạng về định dạng số đã thay đổi cục diện chạy LLM local. MXFP4 (Microscaling FP4) — chuẩn 4-bit floating-point do OCP (Open Compute Project) công bố — cho phép model 120B tham số chạy vừa vặn trên một GPU 80GB với chất lượng gần như FP16.
MXFP4 là gì?#
MXFP4 là định dạng block floating-point 4-bit, chuẩn hóa bởi OCP (v1.0, 9/2023), backed by Microsoft, AMD, Arm, Intel, Meta, NVIDIA, Qualcomm.
Cấu trúc: Block 32 phần tử chia sẻ một scale 8-bit (E8M0). Mỗi phần tử là E2M1 (1 sign, 2 exponent, 1 mantissa). Giá trị trong khoảng [-6, 6]. Chi phí: 4.25 bits/phần tử (32×4 + 8 bits / 32).
Họ MXFP gồm: MXFP8 (E5M2/E4M3), MXFP6 (E3M2/E2M3), MXFP4 (E2M1), MXINT8.
NVFP4 (NVIDIA, 6/2025): Biến thể block size 16 (thay vì 32), scale dùng FP8 E4M3 (không phải E8M0), thêm per-tensor FP32 scale. Độ chính xác cao hơn ở chi phí 4.5 bits/phần tử. Thiết kế cho Blackwell FP4 tensor cores.
HiF4 (2026): Biến thể 4-bit BFP khác. Tuyên bố accuracy cao hơn NVFP4 trên LLaMA, Qwen, Mistral, DeepSeek-V3.1.
Các model dùng MXFP4/NVFP4#
| Model | Format | Chi tiết |
|---|---|---|
| DeepSeek-V4 (1.6T MoE) | NVFP4 QAT | Expert weights + sparse-attention indexer ở FP4 |
| GPT-OSS 120B/20B | MXFP4 QAT | MoE experts (>90% params) trained in MXFP4. 120B vừa 1 GPU 80GB |
| Llama 4 Scout/Maverick | NVFP4 | NVIDIA checkpoint có sẵn |
| Qwen 3, 3.6 | NVFP4 | Quantized qua nvidia-modelopt |
| DeepSeek-R1 | NVFP4/MXFP4 | NVIDIA: NVFP4; AMD: MXFP4-ASQ |
Đến 4/2026, OpenAI, Anthropic, Google và hầu hết open-source-as-a-service provider đều chạy MXFP4 làm inference format mặc định.
llama.cpp với FP4#
llama.cpp hỗ trợ FP4 từ đầu 2026:
- NVFP4 (mainline llama.cpp): Type ID
GGML_TYPE_NVFP4 = 40. CUDA dp4a kernel, generic MMQ kernel, SYCL, Vulkan — tất cả đã có. Blackwell-native dispatch trong build b8967 (4/2026). - MXFP4 (ik_llama.cpp fork của Iwan Kawrakow): Hỗ trợ từ 11/2025, bao gồm GPT-OSS với fused-MoE optimizations.
Hiện thực hardware:
| GPU | NVFP4 performance |
|---|---|
| Blackwell (RTX 5090, B200, GB200) | Full tensor-core acceleration |
| Ada Lovelace (RTX 4090) | Memory savings, speedup nhỏ |
| Ampere (RTX 3090, A100) | Memory savings, không compute win |
| AMD MI300X | MXFP4-aligned qua ROCm |
vLLM với FP4#
vLLM hỗ trợ cả MXFP4 W4A4 và NVFP4 ModelOpt format trên Blackwell GPU:
- MXFP4 W4A4: Cả weights và activations đều ở
float4_e2m1fn_x2. Hai phương pháp: single-scale (online, baseline) và dual-scale (cần checkpoint prep). - NVFP4: Load model pre-quantized từ HF với
--quantization modelopt. Dense và MoE đều hỗ trợ. - KV cache FP8:
--kv-cache-dtype fp8— quantize KV cache tại runtime.
Benchmark (Spheron, 4/2026) — Llama 3.3 70B:
| GPU | Precision | Tok/s | VRAM (weights) | Cost/1M tok |
|---|---|---|---|---|
| B200 SXM6 | NVFP4 | ~12,841 | ~35 GB | ~$0.161 |
| B200 SXM6 | FP8 | ~6,972 | ~70 GB | ~$0.296 |
| H100 SXM | FP8 | ~3,066 | ~70 GB | ~$0.263 |
| A100 80G | AWQ INT4 | ~1,800 | ~35 GB | ~$0.253 |
Tùy chọn lượng tử hóa động#
llama.ccp (tĩnh, offline)#
llama-quantize áp dụng quantization offline, không động. Các tùy chọn:
- K-quants: Q2_K → Q6_K với S/M/_L kiểm soát mix per-tensor
- I-quants: IQ1_S → IQ4_NL, IQ4_XS — non-linear, cần calibration
- NVFP4/MXFP4: Static format mới nhất
- KV cache runtime:
--cache-type-k q4_0 --cache-type-v q4_0
vLLM (động)#
- FP8 online dynamic:
--quantization fp8. Activations dynamic per-tensor scale. Không cần calibration. - FP8 static + dynamic activations: Weights static, activations dynamic.
- FP8 KV cache dynamic:
--kv-cache-dtype fp8. Per-head scales. - NVFP4: Static weights (ModelOpt). Activations static hoặc dynamic.
Chất lượng vs bits#
- MXFP4 baseline mất tới 10% MMLU-Pro với DeepSeek-R1 so với FP16.
- NVFP4 thu hẹp phần lớn gap này.
- Kỹ thuật mới (OAS, MBS từ ICML 2026) đưa MXFP4 trong 1% của NVFP4 với 6.2% GEMM overhead.
- AMD đánh giá (10/2025): MXFP4 accuracy scale theo model size. DeepSeek-R1-0528 giữ 96%+ với MXFP4. Model nhỏ hơn (70B) degrade nhiều hơn — MXFP6 hoặc mixed MXFP4-MXFP6 cải thiện đáng kể.
Kết luận#
MXFP4 và NVFP4 đã thay đổi cuộc chơi: model 120B tham số chạy trên một GPU 80GB giá 1M+. Với llama.ccp và vLLM hỗ trợ đầy đủ, self-hosting LLM mạnh không còn là điều xa vời.