量化格式与算法

别名:FP16 / BF16 / FP32 / INT8 / INT4 / INT2 / AWQ / GPTQ / GGUF / GGML / Weight Quantization / Activation Quantization / 权重量化 / 激活值量化

分清数值格式、量化算法和文件格式:FP16/BF16/INT8/INT4,AWQ/GPTQ,GGUF/GGML。

更新于 2026/11/08
量化推理格式

一句话定义

量化里最容易混的是三类东西:数值格式(FP16/BF16/INT8/INT4)、量化算法(AWQ/GPTQ)和文件格式/生态(GGUF/GGML)。位宽决定省多少,算法和格式决定怎么落地。

为什么需要区分

说“4 bit 量化”只说明了位宽,没说怎么量化、哪些张量被量化、用什么运行时。选错格式可能模型跑不起来,选错算法可能精度掉得厉害。

常见格式

  • FP32:32 位浮点,精度高、显存/带宽开销最大,常用于主权重和优化器状态。
  • FP16:16 位浮点,范围较小,需要 loss scaling。
  • BF16:16 位浮点,尾数少但范围大,训练/推理通常更稳。
  • INT8:8 位整数,配 scale/zero-point;常见于权重和激活。
  • INT4 / INT2:更低比特,显存更省,但精度、离群值和算子支持更挑。

常见算法与格式

  • AWQ:激活感知的权重量化,保护重要通道/权重。
  • GPTQ:逐层训练后量化,用校准数据最小化重建误差。
  • GGUF:llama.cpp 生态的模型文件格式,不是量化算法。
  • GGML:底层张量库/生态,GGUF 建立在它之上。
  • 权重量化:只压权重,激活保留高精度,部署简单。
  • 激活量化:连中间激活一起压,需要硬件和算子支持。

量化格式与算法:位宽、映射与工具

关键取舍

  • 位宽越低越省显存/带宽,但精度和硬件支持越受限。
  • 离群值会放大误差;按通道/分组通常比整张量一个 scale 更稳。
  • 算法好不代表运行时快;要看是否有对应 kernel。
  • 训练后量化(PTQ)简单;量化感知训练(QAT)效果更好但成本高。

常见误区

  • 4 bit 无损:通常只在特定模型/评测上成立。
  • GGUF 是量化算法:它是文件格式;里面可以装不同量化类型。
  • AWQ 和 GPTQ 一样:两者思路和实现不同。
  • 位宽越低越快:没有低比特 kernel 时,反量化可能更慢。

用在哪里

  • 显存/带宽受限的推理部署。
  • 边缘设备、单卡服务、QLoRA 微调。
  • 选模型文件时先看格式、量化类型和运行时支持。

相关概念