量化 (Quantization) 是指在保留模型大部分性能的情况下,降低模型参数的精度(如从 FP32 → FP16 → INT8 → INT4),从而减少模型体积、降低显存占用并加速推理。
量化方式
- PTQ (Post-Training Quantization):在模型训练完成后直接进行量化,无需重新训练,简单快速,但可能有一定精度损失。常见方案有 GPTQ、AWQ、GGUF 等。
- QAT (Quantization-Aware Training):在训练过程中模拟量化误差,使模型精度损失更小,但需要额外的训练成本。
量化类型
按数据类型精度分类:
| 类型 | 位宽 | 模型名后缀 | 说明 |
|---|---|---|---|
| FP32 | 32-bit | 单精度浮点,训练时默认精度 | |
| FP16 | 16-bit | 半精度浮点,推理常用 | |
| BF16 | 16-bit | Brain Float,保留更大动态范围,训练/推理均常用;无后缀的模型通常为此精度 | |
| FP8 | 8-bit 浮点 | FP8 | 官方量化,需支持 FP8 的 GPU(如 H100/A100),推理速度快、精度损失极小 |
| INT8 | 8-bit | GPTQ-Int8 | 整型,推理加速明显,精度损失较小 |
| INT4 | 4-bit | GPTQ-Int4 / AWQ | 极低比特,显存占用极低;GPTQ 和 AWQ 均常以 Int4 发布 |
| GGUF | 混合 | GGUF | llama.cpp 使用的格式,支持 Q2~Q8 混合量化,适合本地 CPU/GPU 部署 |
如果显卡支持 FP8(如 RTX 5090 / RTX 4090 / A100),优先使用 FP8;如果显卡不支持 FP8(如 RTX 3060 / RTX 30 系),直接使用 AWQ,没有 AWQ 版本或是时显存不足时使用 GPTQ-Int4。
量化方案
- GPTQ:基于逐层最小化重建误差的 PTQ 方法,适用于 GPU 推理。
- AWQ (Activation-aware Weight Quantization):关注激活值分布,保留关键权重精度,量化质量高。
- GGUF / llama.cpp:CPU/GPU 混合推理友好,支持多种量化粒度(Q4_K_M、Q5_K_M 等),适合本地部署。