Skip to content
🔗 分享本题
查看我的学习进度 →

大模型量化动漫知识图:高精度权重通过校准映射到 INT8 或 INT4 离散级别,以精度换显存和带宽,选择方案需考虑量化范围、误差、硬件内核、吞吐和 KV Cache

🧠 图解记忆:量化用精度换显存和带宽,是否更快取决于硬件与内核;点击图片可查看原图。

量化 = 用更低精度的数值(INT8/INT4)表示模型权重/激活,减少显存占用并加速推理。

一句话原理

FP16: 每个权重 2 字节 → 7B 模型 ≈ 14GB
INT8: 每个权重 1 字节 → 7B 模型 ≈ 7GB  (显存减半)
INT4: 每个权重 0.5 字节 → 7B 模型 ≈ 3.5GB(再减半)

量化不是简单截断:用 Scale + Zero Point 做线性映射,把 FP16 分布压到 INT 范围,尽量保留原分布。

为什么量化能加速?

  1. 显存占用降 → 能塞进更小的卡 / 更大 batch
  2. 显存带宽需求降 → 权重搬运更快(推理常受带宽瓶颈限制)
  3. 部分硬件原生 INT8/INT4 算得快 → 计算也加速

常见方案对比(面试选型)

方案原理特点适用
GPTQ训练后量化,按 Hessian 信息逐层校准经典成熟,GPU 友好vLLM 等 GPU 推理(首选之一)
AWQ激活感知:保护对输出影响大的"重要通道"精度损失更小(实测 <1%)生产环境推荐(vLLM 支持好)
GGUFllama.cpp 的量化格式(Q4_K_M 等)CPU/边缘设备友好本地部署、CPU 推理
SmoothQuant平滑激活离群值,W8A8 全量化权重+激活都量化追求极致吞吐、需要 W8A8

精度权衡(面试话术要点)

  • 只量化权重(W8A16 / W4A16):损失小,是主流做法
  • 权重+激活都量化(W8A8):吞吐更高,损失稍大,需校准数据
  • INT4 时 7B 模型 4GB 显存可跑,但长上下文时 KV Cache 仍是显存大头

(框架级量化支持对比 → 见 19-推理框架)

面试话术:

"量化就是给权重'降精度换显存':INT8 减半、INT4 再减半。选型看部署环境:GPU 生产环境我优先 AWQ(激活感知,精度损失<1%),离线批量用 GPTQ,CPU/本地用 GGUF。核心原则是只量化权重不碰激活(W4A16),需要极致吞吐再上 W8A8 配合 SmoothQuant。7B 模型 INT4 后 4GB 显存就能跑,但别忽略 KV Cache 的占用。"