量化是降低模型权重精度的过程,用以节省显存(VRAM)并提升速度。理解它有助于你在质量、速度和硬件要求之间做出正确的取舍。
量化:质量 vs 显存(7B 模型)
各种格式
GGUF(GPT-Generated Unified Format)
当前 CPU 与 Apple Silicon 推理的标准格式。它允许模型在 CPU 内存和 GPU 显存之间拆分。
- 最适合: Mac 用户、显存较低的用户。
- 工具: Ollama、LM Studio。
EXL2(ExLlamaV2)
NVIDIA GPU 上最快的格式。它要求模型完全装入显存。
- 最适合: 追求极致速度的 RTX 3090/4090 用户。
AWQ(Activation-aware Weight Quantization)
一种稳健的格式,被 vLLM 等众多服务引擎支持。
命名规范(GGUF)
- Q2_K: 2 位。困惑度损失高。仅在小硬件上运行超大模型时使用。
- Q3_K_M: 3 位。对 70B 模型来说尚可。
- Q4_K_M: 4 位。甜蜜点。 在大多数任务上与 FP16 难以区分。
- Q5_K_M: 5 位。略好一点,也略慢一点。
- Q6_K / Q8_0: 收益递减。仅在显存有富余时使用。
选择合适的量化
| 场景 | 推荐格式 | 原因 |
|---|---|---|
| 显存充足(模型轻松装下) | Q8_0 | 近乎无损,速度快 |
| 显存紧张(模型勉强装下) | Q4_K_M | 每 GB 质量最优 |
| 模型部分溢出到 CPU | Q4_K_M 或 Q3_K_M | 尽量减少不在 GPU 上的层 |
| 硬件非常有限(树莓派、老 GPU) | Q2_K 或 Q3_K_M | 唯一装得下的选项 |
| 追求最高精度(研究) | FP16 或 Q8_0 | 无压缩伪影 |