第3章 量化精度与性能权衡 导读:量化不是免费午餐。这一章教你如何客观地度量「模型变笨了多少」,以及如何在速度、显存、精度三者之间做工程取舍。我们会谈困惑度(perplexity)这种可量化指标、谈内存带宽为何常是推理瓶颈、谈 KV Cache 与上下文长度对显存的二次放大,最后给出混合精度这种「既不省干净、也不笨」的折中策略。 本章你将学到 困惑度(PPL)与真实任务回归测试的区别 为什么「带宽受限」场景下 INT4 提速最明显 KV Cache 如何让显存随上下文二次放大 混合精度:保住关键层、放过其余层 3.1 怎么度量精度损失 最直观的指标是困惑度(perplexity,PPL):在一段标准验证文本上,量化前后模型的 PPL 越接近,说明信息损失越小。
导读:量化不是免费午餐。这一章教你如何客观地度量「模型变笨了多少」,以及如何在速度、显存、精度三者之间做工程取舍。我们会谈困惑度(perplexity)这种可量化指标、谈内存带宽为何常是推理瓶颈、谈 KV Cache 与上下文长度对显存的二次放大,最后给出混合精度这种「既不省干净、也不笨」的折中策略。
最直观的指标是困惑度(perplexity,PPL):在一段标准验证文本上,量化前后模型的 PPL 越接近,说明信息损失越小。经验上,INT4 级别对 30B 以上模型,PPL 通常只上升零点几个点;而对 7B 以下小模型,上升可能更明显。除了 PPL,还应在真实任务上做小样本评测:问答、摘要、代码补全各抽几十条,看输出质量是否塌方。
要强调的是:PPL 只是代理指标。一个 PPL 几乎不变、但在某类长上下文任务上突然「失忆」的量化模型,实战里并不少见。所以本教程第 4 章的实战流程里,会要求你在量化完成后跑一组属于自己的回归测试,而不是只看平台给出的「平均精度」宣传。
很多人以为量化后「算力更够、所以更快」。对计算受限的场景确实如此;但对带宽受限的推理——尤其自回归逐 token 生成——真正的瓶颈是「把权重从显存搬到计算单元」的带宽。INT4 把权重体积砍到四分之一,意味着每生成一个 token 要搬的数据更少,因此首 token 之后的生成速度往往提升明显,这正是本地聊天体验最在意的指标。
量化主要压缩的是权重,但推理时还有一块显存是 KV Cache——它随上下文长度线性增长,且不受权重量化影响。所以你常会看到:模型加载只要 20GB,但开到 32K 上下文、多轮对话后,显存悄悄涨到 30GB+。规划本地部署时,要把「权重量化后的体积」与「目标上下文长度对应的 KV Cache」加在一起算总账。
当你发现 INT4 全量量化后某类任务明显退化,最实用的办法是混合精度:把对精度敏感的层(通常是前几层、embedding、以及部分注意力相关层)保留在 FP16,其余压到 INT4。GGUF 的 k-quants、GPTQ 的逐层配置都支持这种思路。代价是省下的显存略少,但换回的精度往往远超这点代价——这是工程中「80% 收益来自 20% 关键层」的典型体现。