Q4_K_M、AWQ、FP8:量化到底在省什么,又会丢掉什么

三种格式,三种取舍

本地部署模型时,最先遇到的不是选模型,是选量化格式。常见的三条路: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
喜欢就支持一下吧
点赞7 分享
评论 抢沙发
头像/SUENCA
欢迎您留下宝贵的见解!
提交
头像/SUENCA

昵称

取消
昵称表情代码图片快捷回复

    暂无评论内容