模型部署与推理优化

量化实践:精度-速度-显存权衡与回退策略

kp-009进阶30 分钟02-量化压缩

一句话定义

量化落地是一套决策流程:先定精度底线与显存目标,再选格式与方法,量化后必须用任务级指标验收,掉点时按固定回退阶梯逐级加保,而不是凭感觉换方案。

为什么重要

"量化了"不等于"能上线"。同一模型同一方法,换业务分布、换上下文长度、换引擎实现,结果都可能不同。只有把权衡写成流程与数字,量化决策才可复现、可审计——这是从"会用工具"到"工程师"的分水岭。

前置知识

  • 困惑度(perplexity)与任务指标(准确率/F1/人工评审)的区别。

核心概念

  • 三个决策变量:量化档位(W8/W4/W3,决定显存与带宽收益)、量化方法(AWQ/GPTQ,决定误差水平)、验收口径(PPL + 任务指标 + 长文本,决定能否上线)。
  • 一条铁律:一次只改一个变量。档位、方法、校准集、KV 精度同时改动时,结果不可归因也不可回退。
  • 回退阶梯:收紧分组 → 换方法 → 敏感层保 FP16 → 升回 W8。逐级执行并复测,而不是推翻重来。

实践步骤(可执行操作)

  1. 定底线:与业务约定"任务指标跌幅 ≤ x%"(如准确率掉 2 分以内);同时记录 FP16 基线:PPL + 任务集 + 长文本样例(4k/16k)各跑一遍。
  1. 算目标:用 kp-004 账本确认选档——显存缺口 < 2 倍选 INT8/W8,≥ 2 倍选 W4,端侧资源极紧才考虑 W3/W2。
  1. 选方法:默认 W4A16-G128;求稳/快选 AWQ,调优空间大选 GPTQ(开 act-order);硬件支持 FP8 的 Hopper 以上且追求服务端极限可评估 W8A8-FP8。
  1. 备校准集:512 条目标域真实样本(含典型长输入),不要全部用通用语料。
  1. 量化并验收:重跑第 1 步的三件套;必测长文本——量化伤害在长生成与检索型长上下文上更明显。
  1. 记录并冻结:写清方法/分组/校准集哈希/引擎版本,量化产物与基线数字一起归档。

原理与机制

权衡的物理来源很清楚:W4 把权重字节 ÷4,decode 单步时间(≈权重字节÷带宽)的收益上限随之而定,实际再被 kernel 反量化开销与调度折损吃掉一部分;误差则来自网格粗化,靠分组与误差反馈压回。速度收益集中在 decode、显存收益全局有效、精度损失随上下文长度累积——三者不共线,所以必须分别测量、分别验收,不能用单一指标代言。

权衡参考表(经验值,需自行验证)

档位典型 PPL 变化decode 速度 vs FP16适用
INT8/W8A16< 1%1.1–1.4×显存刚够、精度敏感
W4A16-G128(AWQ/GPTQ)1–5%1.5–2.5×生产默认
W4 + KV INT82–6%1.5–2.5×(并发更高)长上下文高并发
W3/W2> 10%,易崩—仅端侧极限场景+重蒸馏

排错清单

  • PPL 涨幅大:检查分组粒度(g128→g64)→ 换方法(AWQ↔GPTQ)→ 对首末层与 lm_head 保留 FP16(混合精度兜底)→ 仍不行则升 W8。
  • 长文本输出变差/重复:常见于激进档位 + KV 也量化;先恢复 KV 为 FP16 再评估。
  • 输出乱码/全是生僻词:多半是 scale/零点错位或引擎与权重量化格式不匹配(如 GGUF 档位与加载器版本),换引擎版本验证。
  • 速度没涨:确认 bottleneck 在 decode(kp-003);W4A16 对 compute-bound 的 prefill 提升有限,属预期。

实例或案例

某团队把 14B 客服模型从 FP16 迁到 AWQ W4-G128:显存 28GB → 约 8GB,单卡并发 8 → 28,困惑度 +2.1%,常规客服任务指标持平;但 16k 长文档问答下降 1.5 分。按回退阶梯仅把 KV Cache 恢复 FP16 后,长文任务回到 0.5 分以内,吞吐保留约 90%——一个典型的"整体量化 + 局部回退"落地方案。

常见误区

  • "INT4 速度是 4 倍":受 kernel 反量化开销限制,实测常见 1.5–2.5 倍。
  • 只测 PPL 就拍板:PPL 与下游任务相关性并不总强,任务级验收不可省。
  • 校准集用通用语料蒙混:业务分布偏移是量化掉点的第一大原因。
  • 量化与 KV 压缩同时上:误差叠加,应一次只改一个变量(kp-027 方法论)。

自测题

  1. 业务要求准确率跌幅 ≤2 分,W4 掉了 4 分,按本页流程怎么走?

要点:换方法/收紧分组 → 敏感层保 FP16 → 仍超线则升 W8,全程只改一个变量并复测。

  1. 为什么验收必须包含长文本用例?

要点:量化误差随上下文累积,长生成/长检索是其暴露面。

  1. W4A16 为什么对 prefill 提速有限?

要点:prefill 是计算密集,FLOPs 不变;量化收益集中在访存密集的 decode。

与其他知识点的关系

kp-012 把量化嵌入压缩流水线的位置;kp-022 演示加载量化模型的引擎参数;kp-026 是端侧的对应实践(GGUF 档位选择)。

延伸阅读

《QLoRA》(Dettmers 等,2023)附录中的量化评测方法学(含 nf4 数据格式思想)值得借鉴。

#量化实践#评测#困惑度#回退策略#W4A16