一、先一句话定义
👉 大模型量化方法 = 把模型里的“高精度参数”压缩成“低精度表示”的技术方案
本质就是:
用更少的显存 + 更快的计算,尽量保持原来的效果
二、大模型里到底“量化”了什么?
一个大模型(比如 Qwen、LLaMA)本质是:
一堆矩阵(权重 W) + 输入(x) → 输出(y)
这些权重原来是:
- FP32(32位浮点)
- FP16 / BF16(16位)
👉 很占显存!
量化之后:
变成:
- INT8(8位)
- INT4(4位)
👉 显存直接砍一半甚至 1/4
三、核心本质(一定要理解)
量化其实做了两件事:
1️⃣ 数值压缩(核心公式)
把浮点数变成整数:
float ≈ int * scale
比如:
0.123 → 12 * 0.01
👉 scale 是关键
2️⃣ 计算方式改变
原来:
FP16 × FP16
现在:
INT4 × INT4 → 再还原
👉 GPU 可以更快算(如果有对应 kernel)
四、为什么大模型“必须量化”?
可以这样理解👇
不量化:
- 70B 模型 ≈ 140GB 显存(FP16)
- 👉 根本跑不了
量化后(INT4):
- 70B ≈ 35GB
- 👉 单机 1~2 张卡就能跑
👉 所以:
量化 = 大模型落地的前提条件
五、“量化方法”到底指什么?
重点来了👇
不同方法,本质区别在:
怎么决定“哪些信息可以丢,怎么丢”
主流量化方法分类(必须知道)
① 最简单:Naive 量化
- 直接压
- 不管误差
- ❌ 基本不可用
② GPTQ
👉 全局误差最小
- 用数学优化(Hessian)
- 精度高
- 计算复杂
③ AWQ
👉 保护重要权重
- 看激活
- 工程友好
- 现在很主流
④ SmoothQuant
👉 把激活的难度转移到权重
- 适合 INT8
- 工业部署多
⑤ KV Cache 量化
👉 压缩推理时的缓存
- 降显存
- 提升长上下文能力
六、从工程角度再分一层(非常重要)
按“量化对象”分:
🔹 权重量化(最常见)
- 只压 W
- 👉 GPTQ / AWQ
🔹 激活量化
- 压中间结果
- 👉 更难(容易掉精度)
🔹 全量化(W + 激活)
- 👉 真正高性能推理
- 👉 TensorRT-LLM 常用
七、再给一个工程级总结(重点记)
如果以后做部署:
👉 其实是在选:
| 目标 | 选什么 |
|---|---|
| 快速上线 | AWQ |
| 极致精度 | GPTQ |
| 工业 INT8 | SmoothQuant |
| 极限省显存 | INT4 + KV量化 |
八、终极一句话(帮形成认知闭环)
👉 大模型量化方法 = 在“显存 / 速度 / 精度”之间做权衡的算法体系