大模型低比特量化如何验收:把权重压缩、KV 缓存与业务回归分开

四位模型文件更小,不代表运行显存同比下降,也不保证推理更快或业务质量不变。本文解释权重、激活与 KV 缓存量化的不同边界,给出带假设的显存计算、校准数据设计和逐项对照流程,并用配对样本说明如何发现平均分掩盖的关键退化。

量化验收应回答三个不同问题:压缩了什么,目标运行时是否真正利用了压缩,以及压缩后哪些任务发生了变化。本文主要讨论训练后量化,用可复算的构造示例和对照步骤,帮助团队决定采用、限制使用或回退某个量化配置。没有进行模型实测,所有容量与质量数字都仅用于说明方法。

先写完整精度配置,不只写一个“四位”

量化将连续或高精度数值映射到有限表示。以简化的均匀四位量化为例,十六个编码需要覆盖选定区间:区间扩大,同样编码数下相邻值的间隔随之增加;区间过窄,又会截断超出范围的值。真实实现还可能采用分组、缩放因子、零点与非均匀表示,因此不能仅由位数判断误差。

权重量化针对持久模型参数;激活量化针对推理过程中的中间数值;KV 缓存量化针对注意力使用的历史键和值。W4A16 通常表示四位权重与十六位激活,并没有同时声明 KV 缓存精度。交付记录应把三者分别列出,并说明哪些层保持原精度。

还要区分 FP16、BF16、INT8 与不同 FP8 格式。位宽相同也可能有不同数值范围、舍入与计算支持。本文不提供跨模型通用的最佳格式;候选必须与模型结构、目标硬件、推理引擎及其具体版本一起验收。

GPTQ 与 AWQ 提供机制依据,不提供现场性能担保

GPTQ 原始论文提出利用近似二阶信息的训练后权重量化方法。论文的局限部分明确区分减少内存搬运与减少计算,并说明该研究未涉及激活量化。[1] 这提醒团队:模型权重更小,并不能直接推导某种任务延迟按相同比例下降。

AWQ 的项目资料描述通过观察激活来寻找通道缩放、保护对误差更敏感的权重。[2] 观察激活是其选择权重表示的依据,不能因此把 AWQ 自动理解成“激活也被量化”。不同方法的校准流程和运行内核也不能混为一项开关。

实际可用性还有软件约束。vLLM 的量化文档按实现与硬件列出支持情况,并明确说明支持表会变化。[3] 一个文件能够加载,可能仍不代表使用了预期的低比特内核。验收时记录实际后端、硬件型号、驱动与框架版本,核对是否存在格式转换、回退计算或不支持的层。动态文档核查于 2026 年 10 月 10 日,不能替代现场版本冻结。

显存算例:权重少了,长请求仍然要占空间

构造一个拥有 80 亿个参数的模型。忽略附加信息时,十六位权重需要约 160 亿字节,即 16 GB;四位权重约 4 GB。这里只是参数数目乘每参数字节数的原始载荷估算,采用十进制 GB。缩放因子、零点、未量化层、对齐与加载副本会改变实际占用。

再假设它是具有常规全注意力 KV 缓存的模型,共 32 层,每层 8 个 KV 头,每头维度 128,键和值均为两字节。每 token 的缓存字节数为:2 乘层数,乘 KV 头数,乘头维度,乘每个数值字节数。本例得到 131072 字节,即 0.125 MiB。

单个请求已保留 8192 个 token 时,原始 KV 缓存约为 1 GiB;八个互不共享缓存、长度相同的请求约为 8 GiB。这里的 GiB 为二进制单位,不应直接与前面的 GB 混用。缓存长度包含已处理输入与已生成、仍需保留的输出;不能只按输入长度计算最终峰值。

这个简化模型排除了缓存分块浪费、前缀共享、滑动窗口、缓存淘汰、张量并行分片和其他架构差异。它用于说明权重与请求状态独立增长,不是某个真实模型的采购容量。总运行空间还需加上工作区、激活、引擎预留与其他进程,并在真实负载下测量。

校准集要代表工作负载,但不能兼任最终考卷

采用需要校准数据的方案时,先按线上输入设计覆盖:主要语言、短问答、长材料、数字密集文本、结构化结果和工具参数。若只用简短闲聊校准,却用它部署长文档字段抽取,团队尚未建立目标分布上的质量证据。增加校准条数也不能代替覆盖缺失类型。

保留分词器、聊天模板、截断方向和最大长度。输入被错误截断后,模型丢失的是业务信息而非单纯数值精度;这类问题应先修输入处理。校准样本、用于选择量化配置的开发集、最终验收集要分别管理,不能围绕同一组样本持续调参后再声称独立通过。

KV 缓存需要单独处理。vLLM 的相关文档提供缓存量化与缩放校准路径,并说明某些配置受注意力后端约束。[4] 因此,先固定权重方案,再比较原精度缓存与候选缓存配置;若同时改权重、激活和缓存,就难以定位哪一步造成长上下文任务退化。

保存校准数据版本、量化工具与配置、原始权重标识、输出文件校验值及运行时加载配置。相同的“四位”名称可能对应不同分组大小、保留层和内核;没有这些记录,后续复现或回退只能靠猜测。

配对对照要寻找新增错误,而不只是比较平均分

先确定原精度参考模型,固定权重来源、分词器、提示模板、检索输入、工具定义、生成上限与采样条件。第一轮只改一种量化因素,逐条运行相同任务。条件允许时固定随机种子;即使如此,也不把不同内核的输出差异自动归为量化错误,应按业务标准判定。

构造一个 1000 条任务的结果:900 条两者都合格,25 条参考合格而候选不合格,15 条参考不合格而候选合格,60 条两者都不合格。参考合格率为 92.5%,候选为 91.5%,净差为一个百分点;但候选新增失败有 25 条,不能只说“少了十条”。

对这 25 条检查错误类别和后果:金额单位、否定条件、必填参数、长文档后半段证据、应该拒答却给出结论等。若其中出现不可接受的关键错误,即使其他任务改善,也不能由总体平均值抵消。这个示例不代表任何真实模型表现,也不能据其样本规模推断可靠置信区间。

参考模型不是绝对真值。两者都错的 60 条应单独进入系统缺陷清单;候选修复的 15 条也要有独立依据。业务标签有争议时先裁决,开放式输出需要盲评或明确评分规则。对有随机生成的任务重复采样,并分别报告任务数与生成次数,避免把相关重复当成独立业务样本。

速度验收要固定负载,再确认瓶颈真的改变

质量达标后,先在相同硬件、并发和长度分布下比较参考与候选,分开测量短输入、长输入、短输出和长输出。报告客户端首 token 延迟、完整任务时间、输出速率、峰值显存及失败数量,写清统计分位数、预热条件和测试持续时间。

第一轮固定并发,用于观察替换本身的影响;第二轮才利用释放的显存增加并发,寻找在既定质量与延迟条件下的有效容量。两轮回答不同问题。把候选增加批量后的总吞吐与参考单请求延迟放在一起,不能证明每位用户都更快。

若低比特配置变慢,依次检查实际内核支持、反量化开销、输入长度阶段、批处理条件与其他组件等待。量化在内存带宽受限阶段可能更有价值;当任务主要等待检索或工具时,权重压缩未必是主要优化方向。这些是需要测量的工程假设,不是通用加速比例。

私有化部署的服务容量验收可以承接这些结果:将通过的精度配置写入允许的上下文长度、并发、任务组合和时间承诺。既要给出稳定运行范围,也要记录超出范围时限流、排队或切换路径的规则。

发布的是一份配置边界,回退也应可复现

最后按三类结果决策。全部关键切片与负载条件通过,可在该范围内采用;仅部分范围通过,应明确限制任务或上下文长度;核心质量或稳定性不满足要求,则保留参考配置。不能只因为模型文件更小就放行。

上线包应包含原始与量化模型的标识、完整精度与校准配置、软件环境、逐条配对结果、负载轨迹、回退目标与触发条件。若后来修改缓存精度、引擎版本或硬件,应把它视作新配置,至少复测受影响路径。

回退不仅是保存旧权重,还包括旧格式能否在现有引擎加载、设备是否仍有足够空间,以及队列中的请求如何处理。对资源紧张的单机,可事先约定维护窗口或人工接管;不要在量化版本故障后才发现原精度版本已无法启动。可复算、可定位、可回退,才让低比特优化成为可交付的工程结果。

参考资料

  1. [1] Frantar et al. — GPTQ: Accurate Post-Training Quantization for Generative Pre-trained Transformers (ICLR 2023, v2)
  2. [2] MIT Han Lab — AWQ: Activation-aware Weight Quantization for LLM Compression and Acceleration
  3. [3] vLLM — Quantization (documentation consulted 10 October 2026)
  4. [4] vLLM — Quantized KV Cache (documentation consulted 10 October 2026)
返回洞察
鲁ICP备2024109755号-2
可拖动移动。右键、长按或按 Shift+F10 可选择停靠位置。