三种格式,三种取舍
本地部署模型时,最先遇到的不是选模型,是选量化格式。常见的三条路:GGUF 的 Q4_K_M、GPU 上的 AWQ、以及原生 FP8。它们省的不是同一种东西。
- Q4_K_M:4 位量化的混合方案,关键层保留更高精度,平均约 4.5 bit/权重。CPU、Apple Silicon、低显存显卡都能跑。
- AWQ:激活感知的权重量化,4 bit,需要校准数据,推理时要 GPU 内核支持。质量通常优于朴素 4 bit。
- FP8:8 位浮点,Hopper/Ada 之后有原生算力。几乎无损,但显存只省一半。
质量损失不是线性的
从 FP16 降到 8 bit,绝大多数任务感觉不到差别;降到 4 bit,日常对话依然流畅,但长尾知识、代码细节、数学步骤会开始出错,而且是那种「看起来对、其实错一步」的错。
所以别只看困惑度(perplexity)。它在 4 bit 上的变化往往很小,但任务成功率可能掉一大截——因为困惑度衡量的是平均预测,而任务失败常常只取决于一个关键 token。
显存的大头常常不是权重
以 8B 模型为例,Q4 量化后权重约 4.5GB,看起来一张 8GB 卡绰绰有余。但 KV cache 会随上下文线性增长:32 层、8 个 KV 头、头维 128、FP16,每 token 约 0.125MB,32k 上下文就是 4GB。权重加缓存,8GB 卡直接见底。
70B 模型更夸张:即便 Q4 压到 39GB 左右,32k 上下文的 KV cache 还要再吃 10GB 上下。很多「量化后能跑」的说法,跑的都是短上下文。
怎么选,看你的瓶颈
| 约束 | 优先考虑 |
|---|---|
| 只有 CPU 或统一内存 | GGUF Q4_K_M |
| 单卡、要多用户 | AWQ 4bit + 连续批处理 |
| H100/H200、要求质量 | FP8 |
| 长上下文为主 | 先算 KV cache,再决定量化档位 |
一个实操建议
准备一份自己的任务集:二十条真实问题,覆盖你最在意的能力。同一模型分别跑 FP16、FP8、Q4,比较的是答对率而不是观感。很多团队做完这一步会发现,Q4 对客服问答够用,但对代码生成不行——这比任何榜单都有用。
我的判断
量化是拿精度换显存,不是免费的午餐。真正该记住的是:先算 KV cache,再选量化。否则你会得到一台「能加载模型、但一聊长文就崩」的机器。
延伸阅读
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END










暂无评论内容