模型量化(Model Quantization)
3 秒看懂
一句话定义: 模型量化是将神经网络的权重和/或激活值从高精度浮点数(如 FP32/BF16)转换为低比特整数或浮点格式(如 INT8、INT4、FP8)的技术,核心目的是降低内存占用、提升推理吞吐、减少能耗,同时尽量保持模型精度。
类比: 把高清无损音频转成 MP3——码率大幅下降,多数人听不出区别,但存储和传输效率翻倍。
关键词: INT8/INT4/FP8 · PTQ vs QAT · GPTQ/AWQ/SmoothQuant · 推理部署
3 分钟产业解释
为什么量化突然火了?
大语言模型(LLM)从数十亿到数千亿参数,原始精度(FP16/BF16)下单卡显存早已放不下:
- 70B 参数模型 FP16 需要约 140 GB 显存仅存放权重,远超单张消费级 GPU 的 24 GB,也超出单张数据中心级 GPU 的显存容量。
- 即使用多卡部署,显存成本和推理延迟仍然居高不下。
量化是成本最低、见效最快的”压缩杠杆”:
- INT8 量化:权重体积约为 FP16 的 1/2。
- INT4 量化:权重体积约为 FP16 的 1/4。
- 70B 模型 INT4 量化后约 35 GB,一张 48 GB 显存的专业卡即可放下。
谁在用?
| 场景 | 典型需求 | 常用精度 |
|---|---|---|
| 云端推理服务(API) | 吞吐优先、多并发 | FP8/INT8(需 H100 等新硬件) |
| 边缘/端侧部署 | 显存/内存极有限 | INT4/W4A16 |
| 本地开源模型跑通 | 消费级 GPU 友好 | GGUF Q4_K_M 等 |
| 训练阶段 | 保精度、省显存 | BF16(通常不量化) |
产业影响
量化直接降低了推理硬件门槛——一张消费级 GPU 就能跑 7B~13B 模型,这让本地 AI、端侧 AI、小团队实验成为可能,也推动了开源社区(llama.cpp、Ollama、vLLM 量化推理支持)的爆发。
15 分钟专家深入
核心权衡:精度 vs 效率
量化本质是一个有损压缩问题:
精度损失 ←→ 显存节省 / 吞吐提升
但”有损”的程度高度依赖于:
- 量化粒度:per-tensor(最粗)→ per-channel → per-group(最细,精度损失最小)。
- 量化方法:Round-to-Nearest(简单但粗糙)→ 基于校准数据的最优量化(GPTQ/AWQ)→ 训练中感知量化(QAT)。
- 量化对象:仅量化权重(W-only)对精度影响最小;同时量化权重和激活(W+A)精度风险更高,但硬件加速收益更大。
两大范式
1)训练后量化(PTQ, Post-Training Quantization)
- 模型训练完成后,用少量校准数据(calibration data)确定量化参数(scale/zero-point)。
- 优势:无需重新训练,成本极低,适合快速部署。
- 代表方法:
- GPTQ:基于 OBQ(Optimal Brain Quantization)的逐层量化,用 Hessian 信息最小化每层输出误差,支持 INT4 权重量化。
- AWQ(Activation-Aware Weight Quantization):根据激活值分布识别”重要通道”,对重要权重保护性量化(混合精度),在 INT4 下精度保持通常优于 GPTQ。
- SmoothQuant:将激活中的 outlier(极端值)“平滑”转移到权重侧,使激活变得容易量化,实现 W8A8(权重和激活均为 INT8)推理。
- GGUF / llama.cpp 系列量化:采用 block-wise 量化(如 Q4_K_M, Q5_K_S),K 代表使用 k-quant(对不同层应用不同比特宽度),实测在消费硬件上效果好。
- bitsandbytes / QLoRA:将基础模型量化至 4-bit(NF4 格式),在此基础上训练 LoRA 适配器,实现大模型的低成本微调。
2)量化感知训练(QAT, Quantization-Aware Training)
- 在训练过程中模拟量化效果(用伪量化节点 forward,反向传播时用 Straight-Through Estimator 近似梯度)。
- 优势:精度通常优于 PTQ,尤其在低比特(INT4 及以下)场景。
- 劣势:需要训练资源和原始训练数据。
- 典型场景:移动端部署(手机芯片 INT8 加速)、对精度要求极高的工业场景。
量化数学基础(简述)
对称量化(Symmetric):
x_q = round(x / scale)
scale = max(|x|) / (2^(bits-1) - 1)
非对称量化(Asymmetric):
x_q = round((x - zero_point) / scale)
scale = (max(x) - min(x)) / (2^bits - 1)
zero_point = round(-min(x) / scale)
反量化:x_hat = x_q * scale + zero_point(非对称)或 x_hat = x_q * scale(对称)。
技术原理
量化粒度示意
┌─────────────────────────────────────────────┐
│ 权重矩阵 W (d_out × d_in) │
├─────────────────────────────────────────────┤
│ │
│ per-tensor: 整个矩阵共享一组 (scale, zp) │
│ ┌─────────────────────────────────────┐ │
│ │ s=0.023, zp=0 │ │
│ └─────────────────────────────────────┘ │
│ │
│ per-channel: 每个输出通道一组 │
│ ┌──────┬──────┬──────┬──────┐ │
│ │ s_0 │ s_1 │ s_2 │ ... │ │
│ └──────┴──────┴──────┴──────┘ │
│ │
│ per-group: 每 g 个元素一组 (g=128 常见) │
│ ┌────┬────┬────┬────┬────┬────┐ │
│ │g=0 │g=1 │g=2 │g=3 │g=4 │... │ │
│ └────┴────┴────┴────┴────┴────┘ │
│ s_0 s_1 s_2 s_3 s_4 │
└─────────────────────────────────────────────┘
粒度越细 → scale/zero-point 存储开销越大,但量化误差越小。
实践中 INT4 per-group(group_size=128)是精度/开销的良好平衡点。
W8A8 推理的计算流程
输入激活 (BF16/FP16)
│
▼
┌──────────┐
│ 激活量化 │ ──→ A_q (INT8) × scale_a
└──────────┘
│
▼
┌───────────────────┐
│ INT8 × INT8 矩阵乘 │ ── 通过硬件 INT8 Tensor Core 执行
└───────────────────┘
│
▼
┌──────────────┐
│ 反量化 + 输出 │ ──→ C = A_q × W_q * scale_a * scale_w
└──────────────┘
│
▼
输出激活 (BF16/FP16)
硬件层面,NVIDIA 从 Turing 架构(如 Tesla T4)开始引入 INT8 Tensor Core 支持,后续的 Ampere(A100)、Hopper(H100)持续强化整数计算能力。Hopper 架构进一步引入了 FP8(E4M3 / E5M2 两种格式)原生支持,在精度和性能之间提供了新的帕累托前沿。
W4A16 权重量化推理
对于仅权重量化(Weight-Only Quantization):
权重 W (BF16) ──量化──→ W_q (INT4, per-group)
│
▼ 存储在显存中,节省 ~75% 权重显存
│
推理时: 输入激活 (BF16) ──────┤
│
反量化 W_q → W_d (BF16)
│
BF16 矩阵乘(正常精度)
│
▼
输出激活 (BF16)
W4A16 的关键点:激活不量化,因此对模型精度影响较小;瓶颈从计算转为显存带宽(需要实时反量化权重),所以适合 memory-bandwidth-bound 的自回归生成场景。
技术演进史
| 时期 | 里程碑 | 关键特征 |
|---|---|---|
| ~2016-2018 | 早期量化研究(Binary/ternary networks, XNOR-Net) | 激进二值/三值量化,精度损失大,学术探索为主 |
| 2018-2019 | 量化推理硬件成熟(NVIDIA Turing INT8 Tensor Core(如 Tesla T4),Google TPU INT8) | INT8 量化成为部署标配,TensorRT 量化工具链成型 |
| 2020-2021 | 训练时混合精度(AMP)普及,BF16 标准化 | 训练侧从 FP32 转向 BF16/FP16,推理侧 INT8 成熟 |
| 2022 | SmoothQuant 发布(MIT & NVIDIA),实现 W8A8 大模型推理 | 将激活中的 outlier 平滑转移,突破”激活难以量化”的瓶颈 |
| 2023 | GPTQ、AWQ、bitsandbytes/QLoRA 爆发 | INT4 权重量化成为 LLM 部署标配;QLoRA 让单卡微调大模型成为可能;GGUF 格式推动本地推理社区爆发 |
| 2023-2024 | FP8 生态成形(NVIDIA Hopper 原生支持 E4M3/E5M2) | FP8 在训练和推理中逐步替代 FP16 作为新的效率-精度平衡点;微软 FP8-LM 等探索 |
| 2024-2025 | 2-bit/1-bit 量化探索(AQLM、QuIP#、BitNet b1.58) | 极低比特量化开始有可行性,BitNet 提出”1-bit LLM”概念(权重为 {-1, 0, 1}),挑战传统浮点矩阵乘范式 |
技术路线对比
| 维度 | FP16/BF16(基线) | FP8 | INT8(W8A8) | INT4(W4A16) | INT4(W4A8) | 2-bit 及以下 |
|---|---|---|---|---|---|---|
| 权重比特 | 16 | 8 | 8 | 4 | 4 | 2 或更低 |
| 激活比特 | 16 | 8 | 8 | 16 | 8 | 因方案而异 |
| 显存节省(vs FP16) | 基线 | ~50% | ~50% | ~75% | ~75% | ~87.5%+ |
| 推理吞吐提升 | 基线 | ~1.5-2×[估算] | ~1.5-2×[估算] | 主要省带宽,计算提升有限 | 较大 | 视硬件而定 |
| 精度保持 | 100% | 接近无损(主流任务) | 良好(需校准) | 良好到较好(方法依赖) | 中等 | 有损,需评估 |
| 硬件依赖 | 通用 | 需 Hopper+ | 需 INT8 Tensor Core | 通用(CPU/GPU 均可反量化) | 需 INT8 核心 | 需专用 kernel 或硬件 |
| 代表方法 | — | FP8-LM, TensorRT-LLM FP8 | SmoothQuant, TensorRT | GPTQ, AWQ, GGUF | 混合方案 | AQLM, QuIP#, BitNet |
| 适用场景 | 训练/小模型推理 | 大规模云端推理 | 高吞吐推理服务 | 显存受限部署 | 追求极致效率 | 研究前沿/极端受限 |
注: 吞吐提升倍数高度依赖具体硬件、模型规模、batch size 和序列长度,上表为数量级估算,不同工作负载下差异显著。
上下游
上游(量化依赖什么)
┌─────────────────────────────────────────────────────┐
│ 上 游 │
├──────────────┬──────────────────────────────────────┤
│ 原始训练好的 │ FP16/BF16 权重 checkpoint │
│ 浮点模型 │ (量化质量的上限由基模型决定) │
├──────────────┼──────────────────────────────────────┤
│ 校准数据集 │ PTQ 需要少量代表性输入分布数据 │
│ │ (几百~几千条文本,量化后丢弃) │
├──────────────┼──────────────────────────────────────┤
│ 量化算法/工具 │ GPTQ (AutoGPTQ)、AWQ (AutoAWQ)、 │
│ │ bitsandbytes、GGUF(llama.cpp)、 │
│ │ TensorRT-LLM、ONNX Runtime 等 │
├──────────────┼──────────────────────────────────────┤
│ 硬件 INT/FP │ GPU Tensor Core (INT8/FP8)、 │
│ 计算单元 │ CPU VNNI/AMX、NPU、移动端 DSP │
└──────────────┴──────────────────────────────────────┘
下游(量化服务什么)
┌─────────────────────────────────────────────────────┐
│ 下 游 │
├──────────────┬──────────────────────────────────────┤
│ 云端推理服务 │ vLLM、TensorRT-LLM、TGI 等框架 │
│ │ 使用量化模型提升吞吐、降低 TCO │
├──────────────┼──────────────────────────────────────┤
│ 端侧/边缘 AI │ 手机(高通/联发科 NPU)、PC(NPU)、 │
│ │ 嵌入式设备上的模型部署 │
├──────────────┼──────────────────────────────────────┤
│ 本地 AI 应用 │ Ollama、LM Studio、llama.cpp 等 │
│ │ 让消费级 GPU/甚至 CPU 能跑 LLM │
├──────────────┼──────────────────────────────────────┤
│ 微调/训练 │ QLoRA:4-bit 量化基模型 + LoRA 训练 │
│ │ 大幅降低微调显存需求 │
└──────────────┴──────────────────────────────────────┘
关键指标
| 指标 | 定义 | 量化关注点 |
|---|---|---|
| Perplexity(PPL) | 语言模型在测试集上的困惑度,越低越好 | 量化后 PPL 相对原始模型的”退化”是最核心的质量指标 |
| 显存占用(GB) | 模型推理时占用的 GPU 显存 | 直接决定能否在给定硬件上运行 |
| 吞吐量(tokens/s) | 每秒生成的 token 数 | batch 推理场景下的核心效率指标 |
| 首 token 延迟(TTFT, ms) | 从请求到首个 token 输出的时间 | 交互式应用的体感指标;prefill 阶段 compute-bound |
| 精度恢复比例 | 量化后任务精度 / 原始精度 | 下游任务(MMLU、HumanEval 等 benchmark)评分保持度 |
| 量化时间/成本 | 完成一次量化所需时间 | GPTQ 对 70B 模型量化可能需要数小时及数百 GB 内存[估算] |
| group_size | per-group 量化的分组大小 | 越小精度越好,但 scale 存储开销越大(128 为常见平衡) |
供需与市场数据
需求侧
- 大模型推理成本是 AI 产业最大的运营支出之一。据行业估算,推理算力消耗在 2024 年已超过训练算力消耗,且比例仍在扩大。
- 量化是降低推理成本最直接的手段——无需改变架构、无需重新训练(PTQ),即可获得显著的显存和吞吐改善。
- 端侧 AI(智能手机、PC)对模型大小有严格限制(通常需在几 GB 以内),量化是必经之路。
供给侧
| 供给侧要素 | 现状 |
|---|---|
| GPU 硬件 | NVIDIA H100/H200 原生支持 FP8;B100/B200(Blackwell)继续强化低精度计算能力;消费级 RTX 4090 有 INT8 支持 |
| 开源工具 | AutoGPTQ、AutoAWQ、bitsandbytes、llama.cpp/GGUF、ExLlamaV2 等成熟可用 |
| 商业工具 | NVIDIA TensorRT-LLM 集成 INT8/FP8/INT4 量化推理;Intel OpenVINO 支持 INT8/INT4;Qualcomm AI Engine 支持移动端量化 |
| 框架支持 | PyTorch 原生量化工具(torch.ao)、ONNX Runtime 量化、Hugging Face optimum 集成 |
市场规模(间接指标)
模型量化本身不构成独立市场品类,而是嵌入在推理优化工具链中。其价值体现在推理成本节约上。据行业估算,有效的量化策略可使单次推理成本降低 50%-75%,这在大规模 API 服务中意味着数千万到数亿美元级别的年度成本节省[行业估算]。
代表公司与资本映射
| 公司/组织 | 与量化的关系 | 代表性贡献 |
|---|---|---|
| NVIDIA | 硬件 + 软件全栈 | H100 FP8 Tensor Core、TensorRT-LLM 量化推理引擎、cuLASS 量化内核 |
| Meta | 开源模型 + 工具 | bitsandbytes(8-bit 优化器、QLoRA 底层实现);Llama 系列模型是量化社区的首要靶标 |
| Microsoft | 研究 + 产品 | SmoothQuant(与 MIT 合作)、OnnxRuntime 量化支持、探索 FP8 训练 |
| 硬件 + 框架 | TPU 原生 INT8 支持、TensorFlow Lite 量化工具链、Gemma 模型量化部署方案 | |
| Intel | CPU 推理优化 | AMX 指令集(INT8/BF16 加速)、OpenVINO 量化工具 |
| Qualcomm / Apple / 联发科 | 端侧 AI 芯片 | NPU/DSP 的 INT8/INT4 推理加速,驱动端侧量化需求 |
| 开源社区 | 工具创新 | llama.cpp(GGUF 格式)、AutoGPTQ、AutoAWQ、ExLlamaV2、vLLM 量化推理支持 |
| IST(TinyCorp)/ 芯片创业公司 | 极端低比特硬件 | 探索 1-bit/2-bit 专用硬件加速器 |
资本映射逻辑
量化并非一个独立可投资的赛道,而是一个使能技术层——其价值传导到:
- 推理芯片公司:低精度计算能力是芯片竞争力的核心卖点。
- 推理平台/MaaS 公司:量化能力直接影响毛利率和定价竞争力。
- 端侧 AI:量化是端侧部署大模型的必要条件。
投资逻辑
量化技术的投资含义
-
降低推理门槛 → 扩大 AI 部署面
- 量化让更多硬件能跑模型 → 推理市场 TAM 扩大。
- 产业链关联:推理芯片(消费级 GPU、NPU)、边缘计算。
-
降低模型使用成本 → 加速 AI 产品化
- 更低的推理 TCO = 更多应用能算得过账。
- 产业链关联:AI 应用层公司、MaaS 平台。
-
与 MoE/稀疏架构形成互补
- MoE 架构通过减少激活参数来降低计算量,量化通过降低数值精度来降低计算量和显存。
- 两者可叠加使用,形成”架构级 + 数值级”的双重压缩。
-
关注技术演进对产业链的影响
- 若 2-bit/1-bit 量化成熟,可能重塑推理硬件需求——从”需要大显存”变为”需要高带宽 + 专用整数运算”。
- FP8 训练成熟后,训练显存压力减小,可能影响 GPU 租赁定价。
风险/局限
- 量化是有损压缩,不是万能药——任务越敏感、模型越小,量化越困难。
- 工具链碎片化严重(GPTQ vs AWQ vs GGUF vs TensorRT),模型到部署的路径仍有摩擦。
- 激活量化的精度瓶颈(outlier 问题)在部分模型上仍未完全解决。
常见误读纠偏
❌ 误读 1:“INT4 量化后的 70B 模型效果和 FP16 一样好”
纠正: 不可能完全一样。INT4 量化是有损压缩,精度会有不同程度的下降。下降幅度取决于量化方法、模型架构和下游任务。主流 PTQ 方法(GPTQ/AWQ)在常见 benchmark(MMLU、HellaSwag 等)上通常保留 95%-99% 的精度[以具体 benchmark 结果为准],但在数学推理、代码生成、长文本理解等对精度敏感的任务上,退化可能更明显。需要针对具体场景做评估,不能笼统说”无损”。
❌ 误读 2:“量化只对推理有用,训练阶段不需要”
纠正: 训练阶段同样受益——
- 混合精度训练(AMP) 本身就是一种训练时的精度优化,BF16/FP16 forward + FP32 梯度累积。
- QLoRA 将基模型量化至 4-bit(NF4)后再训练 LoRA,大幅降低微调显存需求——一张 24 GB GPU 就能微调 33B 甚至更大的模型。
- FP8 训练 正在逐步落地(NVIDIA Hopper 硬件支持 + 软件栈成熟),有望进一步降低训练成本。
❌ 误读 3:“GPTQ 和 AWQ 只是品牌不同,效果一样”
纠正: 底层算法逻辑不同——
- GPTQ 基于二阶 Hessian 信息逐列量化,最小化层输出的 L2 误差。
- AWQ 的核心思想是根据激活分布识别”重要权重通道”(weight saliency),对重要通道保持更高精度,其余通道大胆量化。
- 在实际对比中,AWQ 在多种模型和任务上精度略优于 GPTQ(尤其在 INT4 极低比特下),且推理时可融合 kernel,实际吞吐也往往更好。但具体哪个更好取决于模型和硬件,需要实测。
❌ 误读 4:“量化 = 模型剪枝,两者是一回事”
纠正: 这是两种完全不同的模型压缩技术——
- 量化:保持所有参数,但降低数值精度(从 FP16→INT4)。
- 剪枝(Pruning):移除部分参数(置零或删除整个结构),减少参数量/计算量。
- 两者可以正交组合:先剪枝再量化,或在稀疏化架构上做量化。
学习路径
🟢 入门(1-2 天)
- 理解浮点数表示(FP32/FP16/BF16/FP8/INT8/INT4 的位宽和动态范围)。
- 理解量化的数学基础:scale、zero-point、对称/非对称量化。
- 实操:用 llama.cpp 下载一个 GGUF Q4 量化模型,体验本地推理。
🟡 进阶(1-2 周)
- 精读 GPTQ 论文(Frantar et al., 2022)和 AWQ 论文(Lin et al., 2023)。
- 精读 SmoothQuant 论文(Xiao et al., 2022)——理解激活 outlier 问题及其解法。
- 实操:用 AutoGPTQ / AutoAWQ 量化一个 7B 模型,在多个 benchmark 上评估精度变化。
- 理解 QLoRA(Dettmers et al., 2023)——量化如何与微调结合。
🔴 专家(持续)
- 研读 AQLM(Egiazarian et al., 2024)、QuIP#(Tseng et al., 2024)——极低比特量化前沿。
- 研读 BitNet b1.58(Microsoft Research, 2024)——1-bit 权重的 LLM 可行性。
- 关注 TensorRT-LLM 和 vLLM 的量化推理内核实现——了解实际部署中的工程权衡。
- 跟踪 FP8 训练和推理的最新进展。
一句话总结
模型量化是用”更少的比特数表示相同的模型”的有损压缩技术,它以最小的精度代价换取显著的显存节省和推理加速,是大模型从实验室走向大规模落地部署的关键使能技术。
延伸阅读与来源
核心论文
- GPTQ: Frantar et al., “GPTQ: Accurate Post-Training Quantization for Generative Pre-trained Transformers”, ICLR 2023
- AWQ: Lin et al., “AWQ: Activation-aware Weight Quantization for LLM Compression and Acceleration”, MLSys 2024
- SmoothQuant: Xiao et al., “SmoothQuant: Accurate and Efficient Post-Training Quantization for Large Language Models”, ICML 2023
- QLoRA: Dettmers et al., “QLoRA: Efficient Finetuning of Quantized Language Models”, NeurIPS 2023
- BitNet b1.58: Ma et al., “The Era of 1-bit LLMs: All Large Language Models are in 1.58 Bits”, Microsoft Research, 2024
- AQLM: Egiazarian et al., “Extreme Compression of Large Language Models via Additive Quantization”, 2024
- QuIP#: Tseng et al., “QuIP#: Even Better LLM Quantization with Hadamard Incoherence and Lattice Codebooks”, ICML 2024
工具与框架
- AutoGPTQ: https://github.com/AutoGPTQ/AutoGPTQ
- AutoAWQ: https://github.com/casper-hansen/AutoAWQ
- bitsandbytes: https://github.com/TimDettmers/bitsandbytes
- llama.cpp (GGUF): https://github.com/ggerganov/llama.cpp
- NVIDIA TensorRT-LLM: https://github.com/NVIDIA/TensorRT-LLM
- Intel Neural Compressor: https://github.com/intel/neural-compressor
来源标注说明
- 本文中”FP8 E4M3/E5M2 格式”、“Hopper 架构原生 FP8 支持”、“H100 具备 INT8 Tensor Core”等硬件规格来自 NVIDIA 官方技术文档。
- 论文结论以原始论文为准。
- 标注为 [估算] 的数字为基于公开信息的数量级推断,非精确数据。
- 标注为 [行业估算] 的数据为行业普遍认知范围,非特定来源。
⚠️ 声明: 本文技术规格基于截至知识截止日期的公开信息撰写。硬件型号的具体性能数字(如某 GPU 上的 tokens/s)受驱动版本、batch size、序列长度、框架版本等多因素