Quantization 是什么?大模型量化详解

Quantization模型量化本地部署

量化是把模型权重从 16 位浮点压到 8 位、4 位甚至更低的整数表示,用可控的精度损失换取更小的显存占用和更快的推理。它是本地跑大模型、以及降低推理成本的最常用手段

量化(Quantization)是把模型里的数字用更少的位数来表示。训练完成的模型权重通常是 16 位浮点数,量化把它们压成 8 位、4 位,有时甚至更低的整数。位数少了,模型文件变小,显存占用下降,数据在显存和计算单元之间搬运得更快,推理也就更快。

这是本地跑模型的人最先遇到的概念。你在模型下载页看到的 Q4_K_MINT8AWQGPTQ 这些标记,说的都是量化方式和位数。同一个模型,全精度要 140GB 显存,4 位量化后可能 40GB 出头就够,这就是能不能在自己机器上跑起来的分水岭。

先用一句话抓住它

量化就是把模型权重的「小数位」砍掉一部分,用一点精度换显存和速度。

生活里的类比是照片压缩。一张 RAW 原片几十兆,存成 JPEG 后只有几兆,肉眼看几乎一样,但放大到像素级会发现细节被合并了。量化做的是同一件事:绝大多数情况下输出看不出差别,但在最需要精细判断的地方,损失会显出来。

它省的到底是什么

一个 70B 参数的模型,按 16 位浮点存,光权重就要约 140GB。换算关系很简单:

精度每个参数占用70B 模型权重约需
FP16 / BF16(16 位)2 字节~140 GB
INT8(8 位)1 字节~70 GB
INT4(4 位)0.5 字节~35 GB

实际占用还要加上 KV 缓存、激活值和框架开销,所以真实需求会更高。但趋势很清楚:每砍一半位数,显存需求大致减半。

速度收益的来源常被误解。大模型推理在生成阶段主要是显存带宽受限,也就是说瓶颈不在算得多快,而在把权重从显存搬到计算单元有多快。权重变小,搬运量变小,生成速度就上去了——这也是为什么量化对逐 Token 生成的提速往往比对首 Token 延迟更明显。

常见的几种做法

训练完成的模型FP16 权重 训练后量化 PTQ直接压,用少量校准数据 量化感知训练 QAT训练时就模拟低精度 仅权重量化GPTQ / AWQ / GGUF 权重+激活量化如 INT8 推理 更小显存 · 更快生成

训练后量化(PTQ) 是绝大多数人接触到的形式:模型已经训好,用一小批校准数据算出合适的缩放系数,直接压缩。GPTQ、AWQ 是两种常见的实现思路,llama.cpp 生态里的 GGUF 文件也属于这一类。它的优点是快、不需要重新训练。

量化感知训练(QAT) 在训练阶段就模拟低精度带来的误差,让模型自己适应。效果通常更好,但需要训练资源,一般只有模型发布方会做。

混合精度是实践中的常态:不是所有层都同等敏感,注意力里的某些投影、以及嵌入层和输出层,往往保留更高精度,其余部分压到 4 位。GGUF 里 Q4_K_M 这类命名中的 M(medium)就是在描述这种混合策略。

精度损失到底有多大

经验上有几条相对稳定的规律,但都需要在自己的任务上验证:

  • 8 位通常几乎无损,可以放心用。
  • 4 位在多数通用任务上损失很小,是本地部署的主流选择。
  • 低于 4 位(3 位、2 位)损失开始明显,通常只在显存极度紧张时使用。
  • 模型越大,越抗量化。同样压到 4 位,70B 模型的相对损失一般比 7B 小。因此「大模型量化到 4 位」往往优于「小模型跑全精度」,在显存预算相同的情况下。

需要特别注意:损失不是均匀分布的。日常问答看不出差别的量化模型,可能在长链推理、精确数值计算、代码生成、以及小语种上退化明显。这类差异必须靠你自己的评估去测,不能只看别人贴的困惑度数字。

和蒸馏、小模型、微调的区别

和蒸馏的区别蒸馏是训练一个结构上更小的新模型去模仿大模型,参数量真的变少了;量化不改变参数数量和结构,只改变每个参数的表示精度。两者可以叠加使用。

和小语言模型的区别SLM 是从设计之初就小;量化是把已有的大模型压小。在同样的显存预算下,二者是真实的竞争关系,需要按任务实测选择。

和 LoRA 的关系:QLoRA 把二者结合起来——把基座模型量化到 4 位冻结住,只训练一小组 LoRA 参数,让消费级显卡也能微调大模型。

容易误解的地方

「量化会让模型变笨」——说法太笼统。8 位基本无损,4 位在多数场景可用,问题出在盲目追求更低位数、或者在对精度敏感的任务上用了激进量化却没测。

「量化只对本地部署有意义」——云端服务同样广泛使用量化和低精度推理来压成本,只是对用户不可见。你在 API 中转站或者不透明的第三方服务上遇到「同名模型表现不一致」,量化差异是常见原因之一。

「文件小了就一定快」——如果模型仍然放不进显存、需要在内存和显存之间换页,速度会崩。量化的加速前提是整个模型(加上 KV 缓存)能装进显存。

什么时候该用

想在自己的电脑上跑本地模型,量化基本是必选项,从 4 位开始试即可。做云端服务时,量化是压推理成本的常规手段,但上线前要用真实任务对比全精度版本,重点测你的业务里最难的那类样本。

如果你在评估第三方 API 服务,把「用的是什么精度」列进尽调问题——这一项通常不写在定价页上,却直接影响你拿到的效果。

资料来源