量化的核心目标很简单:用少量精度损失,换取更小体积、更低显存占用和更快推理速度。
对本地部署用户来说,选对量化版本,往往比盲目追求大参数更重要。
什么是量化
量化是指把模型参数从高精度格式(如 FP16)压缩为更低位宽格式(如 Q8、Q4)。
可以把它理解为:
- 原始模型:像高精度照片,清晰但文件大。
- 量化模型:像压缩照片,细节略损但更轻更快。
常见量化版本对比
| 量化版本 | 精度/位宽 | 体积 | 质量损失 | 推荐场景 |
|---|---|---|---|---|
| FP16 | 16 位浮点 | 最大 | 几乎无损 | 研究、评测、追求极致质量 |
| Q8_0 | 8 位整数 | 较大 | 几乎无损 | 高配电脑,兼顾质量与性能 |
| Q5_K_M | 5 位混合 | 中等 | 轻微损失 | 日常主力,平衡方案 |
| Q4_K_M | 4 位混合 | 较小 | 可接受损失 | 通用默认,性价比高 |
| Q3_K_M | 3 位混合 | 很小 | 明显损失 | 低配设备,能跑优先 |
| Q2_K | 2 位混合 | 最小 | 较大损失 | 极限资源场景,临时可用 |
量化命名规则
以 gemma-4:4b-q4_k_m 为例:
gemma-4:4b:模型名称与参数规模。q4:4 位量化。k:K-quants(改进量化方法)。m:medium(中等级别,常见还有s/small、l/large)。
如何按显存快速选型
| 内存/显存 | 推荐量化 |
|---|---|
| 4 GB | Q3_K_M / Q2_K |
| 8 GB | Q4_K_M |
| 16 GB | Q5_K_M / Q8_0 |
| 32 GB+ | FP16 / Q8_0 |
建议先从能稳定跑起来的版本开始用,再逐步提高精度,而不是一上来就追求最大模型。
实战建议
- 默认从
Q4_K_M开始,先验证真实任务效果。 - 如果答案质量不够,再升到
Q5_K_M或Q8_0。 - 如果主要瓶颈是显存或速度,再降到
Q3_K_M。 - 每次切换量化版本,都用同一批测试问题做对比。
用 llama-quantize 生成量化 GGUF
输入应优先使用 FP16、BF16 或 F32 GGUF。不要把重度量化文件再次量化;--allow-requantize 可能进一步破坏质量。
|
|
Windows 构建通常使用:
|
|
量化前后记录文件大小和哈希:
|
|
显存估算为什么不能只看位宽
权重之外还要给 KV cache、计算缓冲区、多模态 projector、桌面程序和后端开销留空间。因此,理论上接近 8GB 的模型并不代表一定能完整装入 8GB 显卡。建议预留 10% 到 20%,再通过后端日志确认 GPU offload。
做一次可比较的验收
用相同模型、后端、上下文和提示词分别运行两个版本:
|
|
| 项目 | 需要记录的值 |
|---|---|
| 模型 | 完整文件名与哈希 |
| 后端 | CUDA、ROCm、Metal、Vulkan 或 CPU |
| 上下文 | -c 与实际 prompt token |
| 内存 | 峰值 RAM、VRAM、是否部分 offload |
| 速度 | prompt processing 与 generation token/s |
| 质量 | 固定问题的错误、格式和遗漏 |
代码、数学、长上下文和结构化输出对量化更敏感。不要用单次聊天就宣称某种量化“几乎无损”。
结论
- 质量优先:
FP16或Q8_0。 - 平衡优先:
Q5_K_M。 - 通用默认:
Q4_K_M。 - 低配兜底:
Q3_K_M或Q2_K。
选型的本质不是“越大越好”,而是“在你的硬件条件下,达到最稳定可用的效果”。