量化:方法对照表

量化:方法对照表

Charles Lv7

这一页把量化主线里的代表方法放在同一页,不只是为了记住名字,而是为了回答三个工程里最常见的问题:误差主要出现在权重、激活、KV cache,还是量化 kernel 和调度兼容性上;某种方法“更准”到底是因为二阶补偿、通道保护、平滑激活,还是训练时已经让模型适应了量化噪声;真实线上收益到底来自显存下降、吞吐增加、单卡可部署,还是仅仅减少了模型文件大小。

量化最容易被误解成“把 16 位变成 4 位”,但真正难点在于:
不同方法保护的对象不同,误差迁移的路径也不同。

初学者先抓住

读量化方法表时,先问它在保护什么:权重、激活、离群通道、二阶敏感方向、KV cache,还是 kernel 兼容性。方法名字越多,越要回到误差来源和部署约束。

难点解释:为什么“更低 bit”不必然更好

4bit 可能省显存,但如果 dequant 开销大、kernel 不成熟、关键层误差高,端到端反而不如 8bit 或 FP8。工程里经常选择“硬件和 runtime 上最稳的低精度”,而不是纸面最低 bit。

有趣例子:压缩照片和看细节

同一张照片压得越小,文件越省,但小字、边缘和暗部细节可能先坏掉。量化也是这样:有些层像大色块,误差可忍;有些层像小字和边缘,必须保得更精细。

1. 方法总表

方法 是否重训 核心关注点 更适合的场景 主要优点 主要风险
基础 PTQ 统一缩放与静态量化 快速部署 baseline 简单、成本低、易落地 容易明显掉点
GPTQ 二阶误差补偿 大模型 W-only 量化 离线效果稳,对 4bit 友好 预处理复杂,分层耗时
AWQ 激活敏感通道保护 大模型权重量化部署 对关键通道友好,实际效果常好 依赖校准数据质量
SmoothQuant 激活 outlier 平滑迁移 推进 W+A 量化 激活更平稳,利于 INT8 部署 权重侧负担增加
ZeroQuant / 类似方案 否或轻微再校准 系统化 PTQ 流程 数据中心批量部署 端到端流程更完整 对具体硬件依赖较强
QAT 训练时显式模拟量化误差 低比特高要求部署 精度通常最稳,可控性强 训练成本高
QLoRA 量化底座上的低秩适配 低资源微调 显存节省大,实用性高 域偏移大时容量不足
FP8 / 混合精度 否或少量校准 兼顾吞吐与稳定性 训练和服务混合加速 工程兼容性好,收益稳 精度收益不及 4bit 激进方案
KV Cache Quant 推理态缓存压缩 长上下文推理 减显存很直接 长程依赖可能受损

2. 用一个公式理解量化误差来自哪里

对实数张量 xx 做线性量化时,常写成:

q=clip(xs+z),x^=s(qz),q = \mathrm{clip}\left(\left\lfloor \frac{x}{s} \right\rceil + z \right), \qquad \hat{x} = s (q - z),

其中 ss 是 scale,zz 是 zero-point,qq 是低比特整数表示,x^\hat{x} 是反量化后的近似值。

如果定义误差为 e=xx^e = x - \hat{x},主要会遇到截断误差、饱和误差和传播误差:bit 数太低会让表示不够细,极值被 clip 会造成饱和,某层误差还可能被后续层继续放大。不同量化方法,本质上是在不同位置控制这三种误差。

3. 各类方法到底在保护什么

3.1 基础 PTQ:保护流程简洁,不保护极端情况

基础 PTQ 的优点是落地快。如果业务只是想快速压缩模型体积、做一个初始可用基线,或者先观察显存收益,它的价值很高。但它往往没有针对 outlier 通道、层间误差传播和不同层敏感性做细致处理,因此在 4bit 或激进 W+A 场景里容易掉点。

3.2 GPTQ:保护 Hessian 敏感方向

GPTQ 的经典直觉是
不是所有权重误差都一样危险。
如果某些方向对应更高曲率,那么在这些方向上引入同样大小的误差,会带来更大的 loss 增量。

其近似目标可以写成

ΔL12(ww^)H(ww^),\Delta \mathcal{L} \approx \frac{1}{2}(w-\hat{w})^\top H (w-\hat{w}),

其中 HH 是 Hessian 或其近似。
这就解释了为什么 GPTQ 常被理解为“带二阶补偿”的 PTQ。

3.3 AWQ:保护真正被激活放大的通道

AWQ 的核心思想很工程化
有些权重通道本身看起来不大,但一旦与高振幅激活相乘,就会对输出影响极大。
因此 AWQ 不只是看权重,而是看“权重和激活共同决定的敏感性”。

这特别适合大语言模型,因为许多层的关键通道一旦被压坏,就会造成明显的语义或推理退化。

3.4 SmoothQuant:把激活尖峰搬到权重端

激活 outlier 是 INT8 激活量化的一大障碍。
SmoothQuant 通过对权重和激活做重参数化,把激活峰值平滑掉。
直觉上可以写成

Wx=(WD1)(Dx),W x = (W D^{-1})(D x),

其中 DD 是按通道设置的缩放矩阵。
它的目的就是让 DxDx 变得更平滑,从而让激活量化更容易。

3.5 QAT:保护整个前向传播链

QAT 的直觉最直接
既然推理时一定会出现量化误差,那训练时就把这种误差显式注入,让模型自己学会适应。
这相当于把量化噪声视作训练分布的一部分。

优点是稳。
缺点是贵。
尤其在超大模型上,QAT 不是一句“再训一下”就能轻松完成的。

3.6 QLoRA:保护微调资源预算

QLoRA 不是传统意义上只为部署而生的量化。它更像在问:如果底座已经是量化状态,能不能继续高效适配;能不能只训练少量低秩增量参数,而不恢复全精度主干。它在低资源场景里极其重要,因为它把“量化”和“微调”这两条线真正接了起来。

4. 一张“误差控制重点”对照表

方法 主要控制什么误差 为什么有效 最怕什么
基础 PTQ 平均量化误差 流程简单 outlier 和层敏感性
GPTQ 高曲率方向误差 二阶近似更细 校准不充分、实现复杂
AWQ 激活放大的关键通道误差 对真实推理更敏感 校准分布与线上偏离
SmoothQuant 激活饱和误差 平滑激活分布 权重端负担增大
QAT 前向链整体误差 训练时适应量化噪声 算力成本高
QLoRA 微调资源与量化兼容 底座量化仍可适配 任务复杂时容量受限
FP8 高吞吐下的数值折中 硬件友好 极低比特收益有限
KV Cache Quant 推理缓存误差 长上下文显存立减 长程注意力劣化

5. 量化方法不是“谁最准”,而是“谁最匹配瓶颈”

场景 A:你只有一块消费级 GPU,想把 70B 模型先跑起来

重点不是极致精度,而是能不能装下、有没有基本可用吞吐、能不能先验证业务链路。这时 GPTQAWQ 一类 W-only 方案往往最值。

场景 B:你要把模型放进生产服务,长上下文请求非常多

这时权重量化之外,KV cache quantization 可能更关键。
因为即使权重已经压到 4bit,在线显存仍可能被 cache 吃掉。

场景 C:你做的是企业级高精度问答系统,不允许明显掉点

这时也许应该优先考虑 FP8 / 混合精度、INT8 with SmoothQuant 或较轻量的 QAT,因为这些方案在稳定性上更容易被团队接受。

6. 一张“部署目标到方法”的映射表

部署目标 更适合的方法 主要理由
快速得到压缩基线 基础 PTQ 实现快,风险小
4bit W-only 尽量保精度 GPTQ / AWQ 对大模型经验成熟
推动 W+A 量化 SmoothQuant / QAT 激活问题是关键
在量化底座上继续微调 QLoRA 资源性价比高
长上下文显存优化 KV cache quant 在线缓存才是瓶颈
训练和服务都要兼容硬件加速 FP8 / 混合精度 工程链更稳定

7. 真正的工程瓶颈经常不在论文标题里

量化上线时,团队最常见的误判是:

误判 1:模型文件更小,系统就一定更快

不对。真实系统还会受到反量化 kernel 开销、内存访问模式、batch 大小时的并行效率和 KV cache 带宽影响。

误判 2:离线 benchmark 没掉分,线上就稳

不对。
如果校准集主要是短文本,而线上全是长推理、多轮工具调用、RAG 片段拼接,分布差异会迅速放大问题。

误判 3:所有层都该同样低比特

现实里经常需要让 embedding 层、输出层和注意力里的敏感投影保留更高精度。混合精度是常态,不是例外。

8. 一个简单的误差传播直觉

设第 ll 层输出为

hl+1=fl(hl;Wl),h_{l+1} = f_l(h_l; W_l),

量化后变成

h^l+1=fl(h^l;W^l).\hat{h}_{l+1} = f_l(\hat{h}_l; \hat{W}_l).

则某层误差不只由 WlW^l\|W_l - \hat{W}_l\| 决定,还会受后续层 Jacobian 放大。
粗略地说

δhLk=l+1L1Jkδhl.\|\delta h_L\| \lesssim \prod_{k=l+1}^{L-1}\|J_k\| \cdot \|\delta h_l\|.

这解释了为什么同样 4bit 下某些层很安全、某些层很危险;如果不做分层敏感性分析,方案很容易看起来“平均误差不大”,结果真实输出明显变差。

9. 如何看论文里的结果才不容易被误导

读量化论文时,建议固定问六件事:它量化的是权重、激活、KV cache 还是三者一起;是否需要真实校准数据;报的是困惑度、下游任务、端到端延迟还是离线指标;是否需要特殊 kernel 才能兑现速度;是否只在某一类架构上有效;真正节省的是显存、带宽还是总拥有成本。

10. 一份实用选型顺序

如果你在做实际项目,先确认瓶颈是在权重、激活还是 KV cache。若主要是模型装不下,优先试 AWQ / GPTQ 这类成熟 W-only;若主要是长上下文显存,尽快把 KV cache quant 纳入评估;若要线上稳定且可长期维护,优先考虑 FP8 或稳妥的 INT8 路线;若必须在量化状态上继续适配任务,再引入 QLoRA 或轻量 QAT。

11. 一个总判断

量化方法对照时,最关键的不是“哪篇论文更新”,而是先分清它保护的是哪种误差、牺牲的是哪种成本、适配的是离线研究、单卡部署还是生产系统。只有把误差来源、系统瓶颈和训练预算一起放进去看,量化选型才不会停留在“4bit 看起来更省”这种表面层。

12. 推荐跳转

  • Title: 量化:方法对照表
  • Author: Charles
  • Created at : 2026-01-05 09:00:00
  • Updated at : 2026-01-05 09:00:00
  • Link: https://charles2530.github.io/2026/01/05/ai-files-quantization-comparison-table/
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments