量化模型回归门禁:用质量切片、性能收益与回滚阈值决定上线
量化成功加载不代表可以上线。本文把候选制品、校准数据、任务质量、长尾切片、延迟吞吐和跨硬件稳定性固化为发布门禁,避免用平均分掩盖局部退化。
本文要点
- 主题聚焦:AI、大模型、DevOps、开源
- 适合人群:独立开发者、全栈工程师、AI 应用开发者
- 核心价值:快速理解背景、实践路径、常见误区和工程建议
量化模型能启动、显存下降,也可能在少数高价值请求上悄悄变差:JSON 边界多一个字符,中文专名被替换,长上下文末尾证据被忽略,安全拒答变成直接回答。只比较一个公开榜单的平均分,既证明不了生产任务正确,也无法回答“节省的显存是否值得这次退化”。量化应当作为新的模型制品发布,而不是一个可以临时切换的运行参数。
先冻结候选身份
每次测试先生成不可变清单,至少记录基础权重 digest、量化算法与实现、位宽、group size、校准数据 hash、忽略量化的层、权重与激活数据类型、推理运行时、内核版本、驱动以及 GPU 型号。model=foo-int4 不是可审计身份;同名目录重新导出后,旧报告会立刻失去意义。
candidate: sha256:8e1c...
baseModel: sha256:72ab...
quantizer: awq-0.2.9
weightBits: 4
groupSize: 128
calibrationSet: sha256:34fd...
runtime: vllm-0.10.1
gpu: NVIDIA-H100-80GB
校准集和回归集必须分离。前者用于确定 scale 或 clipping,后者才用于判断泛化;把同一批样本两用,会让结果偏向已经见过的分布。制品清单还要绑定 tokenizer 和聊天模板,避免量化候选实际携带了另一项未声明变更。关于通用评估集的构造,可沿用 LLM 评估框架 的版本化原则,但这里必须增加数值精度敏感切片。
用切片而不是总平均数放行
建立“浮点基线”和“当前生产版本”两条对照。浮点基线说明量化本身损失多少,当前生产版本则说明用户会感知什么变化。回归集应覆盖真实任务占比,同时单列中文、代码、数学、结构化输出、超长输入、重复文本、低频专名、拒答和工具参数等切片。关键合规用例采用零容忍,不能被大量简单样本的平均分抵消。
一个可执行的门禁示例是:2,000 条固定回归样本中,安全与权限类 180 条必须全部通过;主要任务总体准确率相对当前版本下降不超过 0.7 个百分点;任一流量占比超过 5% 的切片下降不超过 2 个百分点;JSON Schema 有效率不得下降;输出出现 NaN、乱码或无限重复的次数为零。阈值应来自业务损失和历史波动,而不是照抄示例。
对开放式生成,不要只比较字符串完全一致。根据任务同时使用规则校验、人工盲评、模型裁判和成对偏好,并保留原始输入、token ID、输出、评分器版本及失败原因。每次候选都重放同一冻结集合,再补充近期线上坏例。这个闭环可与 评估驱动开发 衔接,防止门禁长期只覆盖发布时已知的问题。
性能收益也必须过线
质量没有明显下降,只说明候选“无害”,不说明量化“有价值”。在相同硬件、运行时参数和请求到达序列下,分别测显存静态占用、可用 KV Cache、首 token P50/P95/P99、解码 tokens/s、最大稳定并发、功耗和每百万 token 成本。长短请求混跑至少持续 30 分钟,并包含取消、突发和缓存冷启动;单请求峰值无法代表生产收益。
例如发布契约可以要求权重显存至少下降 35%,同一延迟 SLO 下稳定吞吐提升至少 20%,P95 首 token 不恶化超过 10%,错误率不增加。若 INT4 省了显存,却因目标 GPU 缺少合适内核而降低吞吐,就应拒绝候选。容量计算继续使用 GPU 推理容量规划 中的真实 token 分布,而不是用实验室短 prompt 外推。
量化支持往往依赖具体硬件能力。至少在生产使用的每种 GPU SKU、驱动和张量并行拓扑上跑一遍冒烟与压力矩阵,检查 fallback 到慢内核、OOM、数值溢出及不同副本输出漂移。没有覆盖到的组合应在调度层禁止,而不是标成“理论兼容”。
灰度与回滚使用同一制品边界
离线门禁通过后,先影子执行脱敏请求,再按租户或稳定 hash 放 1%、5%、20% 流量。线上同时看任务成功率、重试、拒答、结构化解析、token 长度、首 token、解码速度和显存水位。观察窗至少覆盖一个真实高峰;只看五分钟健康检查抓不到长尾退化。模型服务金丝雀发布 可承载流量控制,但量化门禁负责定义何时推进或停止。
回滚不是重新导出一个“修复版”。平台必须保留已验证的浮点或上一量化 digest、对应 tokenizer、运行时镜像和容量余量。任一关键用例失败、主要切片越线、P95 延迟连续三个五分钟窗口超阈值,立即把路由切回旧 digest,并停止新会话进入候选;旧会话按风险决定排空或中断。回滚后保存候选请求样本和配置快照,区分校准问题、内核问题与数据分布变化,再生成新的候选编号。
量化门禁的最终产物不是一张“精度只掉 1%”的截图,而是一组能重复执行的证据:确定的制品、冻结的切片、双基线差异、目标硬件收益、线上停止条件和已经演练过的旧版本恢复路径。
延伸阅读
Related