把大模型从演示变成能值班的系统时,量化工程 —— INT8 / FP8 / FP4 / AWQ / GPTQ几乎总会先露出工程缺口。下面按可执行的顺序来拆:先讲它解决什么、卡在哪,再讲选型时看哪些数字,最后落到智能体和网关该怎么接。本文面向要上线的工程师,不写空泛趋势。
一、为什么量化:显存、带宽、成本
系列第 14 篇。上一篇 vLLM / SGLang / TensorRT-LLM / TGI 对比了推理引擎的调度与吞吐,这里深入推理优化的另一条主轴 —— 量化(Quantization) :把模型权重、激活、KV Cache 从 FP16/BF16 压到 FP8、INT8、FP4、INT4,乃至 1.58-bit,换来显存、带宽、成本的数量级收益。
量化是 2023 年以来 LLM 推理侧最显著的工程变量之一。一块 80 GB 的 H100 放不下 Llama-3-70B BF16(140 GB),但 FP8 只要 70 GB、INT4 只要 35 GB,一张卡就能跑起来;生产环境里 decode 是 memory-bound,带宽砍一半,吞吐基本翻一倍。这里按” 为什么 → 数据类型 → 算法 → 粒度 → 硬件 → 引擎 → 实操 ”的顺序把量化这门”黑艺术”拆开。
二、浮点与整数数据类型
对一个参数量为 (N) 的模型,权重显存 (= N times b / 8) 字节,其中 (b) 是每个参数的比特数。以 Llama-3-70B 为例:
加上 KV Cache、activation buffer、CUDA graph,实际占用要再加 10%–30%。但数量级结论很清晰: BF16 → FP8 节省 50%,BF16 → INT4 节省 75% 。
三、PTQ:训练后量化
在自回归 decode 阶段,每生成一个 token 要把全部权重从 HBM 读一遍(prefill 不同,是 compute-bound)。Roofline 模型下:
[ T_{text{decode}} approx frac{text{model_size}}{text{HBM_BW}} ]
四、QAT:量化感知训练
H100 SXM 的 HBM3 带宽约 3.35 TB/s。Llama-3-70B: – BF16:140 GB / 3.35 TB/s ≈ 42 ms/token (单卡理论下界) – FP8:70 GB / 3.35 TB/s ≈ 21 ms/token – INT4:35 GB / 3.35 TB/s ≈ 10.5 ms/token
这解释了为什么量化 decode 能近似线性提速 —— 带宽减半,延迟减半。实际还要乘上 dequant 开销、kernel 实现效率,通常能拿到 60%–90% 的理想加速。
五、KV Cache 量化
IEEE 754 浮点结构: 符号位 S | 指数 E | 尾数 M ,数值为 ((-1)^S times 2^{E – text{bias}} times 1.M) 。
BF16 保留 FP32 的指数范围,牺牲尾数,解决 FP16 训练中常见的溢出问题,是当前训练的主流; FP16 精度略高但动态范围窄,训练需要 loss scaling。 TF32 是 Ampere 起 Tensor Core 内部的 19-bit 格式,用户侧仍写 FP32。
六、激活量化与 outlier 通道
Hopper(H100 / H200 / H20)和 Ada(L40S)原生支持 FP8 Tensor Core,吞吐是 BF16 的 2 倍。两种变体:
E4M3 精度高但范围窄,E5M2 相反。NVIDIA Transformer Engine(TE) 会在训练中自动做 per-tensor scaling:统计 amax,乘 scale 后转 FP8,反向用 E5M2。
落地时建议先做的 5 件事
- 用自己的 20 条真实请求测 TTFT / TPOT / 失败原因,不要只看公开榜。
- 先写显存和 KV 缓存账,再决定卡数、量化和并发上限。
- 网关层把鉴权、配额、审计和模型路由收口,应用里不要各接各的 Key。
- 工具调用默认拒绝,按白名单放开,高风险动作必须人审。
- 模型升级准备回滚:旧权重、旧 Prompt、旧评测集要能一键切回。
和智能体产品怎么接
对龙虾PRO这类要把 OpenClaw 落到中国业务场景的平台来说,量化工程 —— INT8 / FP8 / FP4 / AWQ / GPTQ决定的是延迟能不能进对话、成本能不能规模化、出了问题能不能追溯。技能市场、数字员工和网关都应该吃同一套观测与权限,而不是文章里的概念演示。
本文侧重全链路风控方法论。落地时请用自身业务单据做回放验证,不要把示例阈值直接当生产策略。 相关:风控体检 · 方案资源
常见问题 FAQ
什么是量化不是越小越好?
「量化不是越小越好」可概括为:从数据类型、PTQ/QAT 算法、KV Cache 量化到 H100/B200/MI300/昇腾硬件支持,覆盖 AutoAWQ、GPTQ、SmoothQuant、BitNet 与 vLLM/TensorRT-LLM/llama.cpp 工程落地 本文从定义、方法与实践要点展开说明。
为什么要关注量化不是越小越好?
关注量化不是越小越好,是因为它直接影响效率、风险与可复制性。文中指出:系列第 14 篇。上一篇 vLLM / SGLang / TensorRT-LLM / TGI 对比了推理引擎的调度与吞吐,这里深入推理优化的另一条主轴 —— 量化(Quantization) :把模型权重、激活、KV Cache 从 FP16/BF16 压到 FP8、INT8、FP4、INT4,乃至 1.58-bit,换来显存、带宽、成本的数量级收益。
如何落地量化不是越小越好?有哪些关键步骤?
建议按以下路径推进量化不是越小越好:1) 用自己的 20 条真实请求测 TTFT / TPOT / 失败原因,不要只看公开榜。;2) 先写显存和 KV 缓存账,再决定卡数、量化和并发上限。;3) 网关层把鉴权、配额、审计和模型路由收口,应用里不要各接各的 Key。;4) 工具调用默认拒绝,按白名单放开,高风险动作必须人审。;5) 模型升级准备回滚:旧权重、旧 Prompt、旧评测集要能一键切回。。细节见正文对应章节。
量化不是越小越好适合哪些人或团队?
量化不是越小越好更适合:产品/技术负责人、运营与增长团队、需要落地智能体或自动化的中小团队。若你只需要单次聊天式问答,可先读概念;若要上生产,请重点看步骤、权限与风控相关段落。
关于「一、为什么量化:显存、带宽、成本」,本文给出了什么结论?
在「一、为什么量化:显存、带宽、成本」部分,要点是:之一。一块 80 GB 的 H100 放不下 Llama-3-70B BF16(140 GB),但 FP8 只要 70 GB、INT4 只要 35 GB,一张卡就能跑起来;生产环境里 decode 是 memory-bound,带宽砍一半,吞吐基本翻一倍。这里按” 为什么 → 数据类型 → 算法 → 粒度 → 硬件 → 引擎 → 实操 ”的顺序把量化这门”黑艺术”拆开。 二、浮点与整数数据类型 对一个参数量为 (N) 的模型,权重显存
关于「二、浮点与整数数据类型」,本文给出了什么结论?
在「二、浮点与整数数据类型」部分,要点是:。 五、KV Cache 量化 IEEE 754 浮点结构: 符号位 S | 指数 E | 尾数 M ,数值为 ((-1)^S times 2^{E – text{bias}} times 1.M) 。 BF16 保留 FP32 的指数范围,牺牲尾数,解决 FP16 训练中常见的溢出问题,是当前训练的主流; FP16 精度略高但动态范围窄,训练需要 loss scaling。 TF32 是 Ampere 起 Tensor Core 内部