量化不只是压缩模型:FP8、MXFP4 与 KV Cache 的质量边界
量化经常被简化成一句话:把模型从更高精度压到更低精度,省显存、提速度。但在真实推理系统里,量化不是一个单独的开关,而是一组工程取舍:权重要不要量化,激活要不要量化,KV Cache 要不要量化,哪些层必须保留高精度,哪些任务会先出现质量下滑。

量化不只是压缩模型:FP8、MXFP4 与 KV Cache 的质量边界
量化经常被简化成一句话:把模型从更高精度压到更低精度,省显存、提速度。但在真实推理系统里,量化不是一个单独的开关,而是一组工程取舍:权重要不要量化,激活要不要量化,KV Cache 要不要量化,哪些层必须保留高精度,哪些任务会先出现质量下滑。
这也是 FP8、MXFP4 这类格式受到关注的原因。它们不是为了“把数字变小”这么简单,而是在硬件吞吐、显存占用和模型稳定性之间重新划线。
为什么 INT4 不是万能答案
低比特量化最直观的收益是显存下降。同样一张卡,可以放下更大的模型,或者在同一模型上承载更长上下文、更高并发。但比特数越低,表示范围越窄,误差越容易集中到少数关键层。模型表面上还能回答,细节推理、代码生成、数学步骤和长输出一致性却会先变差。
工程上真正难的地方不是“能不能跑”,而是“跑起来以后哪一类请求先坏”。有些模型在聊天任务里看起来正常,但在结构化输出里开始漏字段;有些模型短问答没问题,一进入长链路推理就出现格式漂移。
FP8 的价值
FP8 保留浮点格式的动态范围,比纯整数格式更适合处理激活值和离群值。对推理服务来说,它的吸引力在于:如果硬件原生支持 FP8,就能在较小质量损失下获得更高吞吐。
但 FP8 也不是自动安全。不同层对精度的敏感程度不同,注意力层、归一化层、输出头的误差会被后续计算放大。成熟的部署通常会采用混合精度:大部分矩阵乘法走低精度,少数敏感路径保留 BF16 或 FP16。
MXFP4 的边界
MXFP4 这类更激进的格式,把问题推向另一个方向:是否可以用更细粒度的缩放因子,让 4bit 也保留足够有效信息。它适合追求极致吞吐的场景,但对校准数据、分块策略和硬件支持要求更高。
如果校准数据只覆盖常规聊天,模型上线后遇到代码、数学、法律条文、表格抽取,就可能出现质量悬崖。所谓质量悬崖,不是分数平滑下降,而是某些能力突然失效。
KV Cache 量化更容易被低估
长上下文推理时,KV Cache 往往比权重更先吃满显存。压缩 KV Cache 可以显著提高上下文长度和并发,但它直接影响注意力读取历史信息的精度。短文本里不明显,长文档、多轮对话和跨段引用时,错误会被放大。
实际部署可以把 KV Cache 量化作为分层策略:普通问答启用,长文档分析保守启用,高价值任务保留高精度。同时监控输出一致性、引用准确率和格式错误率。
实用结论
量化应该被当成服务等级策略,而不是一次性模型转换。先确定任务类型,再决定权重、激活、KV Cache 分别用什么精度;先做小流量影子评估,再扩大到生产。真正可靠的量化方案,不是压得最低,而是在成本下降时清楚知道质量边界在哪里。
留言区
欢迎分享你的想法!
加载留言中…