第 5 章 — 拆解量化
《LLM Primer VI: Scaling AI Systems》章节走读的第五篇。这一章要说的是:为什么一个 70B 模型能扛得住 4-bit 量化,而 1B 模型不能 —— 以及怎么挑那份配方。
这一章为什么存在
Decoding 是内存带宽受限的;带宽的货币是每权重字节数。70B 模型 BF16 每次前向传播读 140 GB。同一个模型 INT4 读 35 GB。算术一样。瓶颈被挪走了四倍。就这一个观察,让量化从一个研究奇观,变成了生产推理的默认部署路径。第 5 章走机制 —— 精度到底是什么意思、为什么激进量化不像毁小模型那样毁大模型、AWQ、GPTQ、SmoothQuant、GGUF 在幕后到底在做什么、以及量化从哪里开始不再安全、从哪里开始悄悄拉低质量。
5.1 为什么大模型扛得住 4-bit,小的扛不住
三个观察撑起大模型量化。第一,大 transformer 里单个权重的信息含量很低:预测行为来自数以十亿计的权重集体交互,而这些权重的分布陡峭地集中在零附近。把一个权重从 0.0031 舍到 0.003,下一层根本察觉不到。第二,训好的 transformer 落在参数空间里一块平坦区域,附近很多邻近配置产出几乎相同的输出;30B 以上的模型这块区域宽到能吸收 4-bit 扰动,MMLU 掉不到一分。第三,混合精度让敏感层 —— attention 分数、layer norm、最后的 logits —— 留在 BF16,而占大头的线性投影降到 INT4。经验上 70B 模型 INT4 跟它 BF16 的自己基本无法区分;1B 模型 INT4 就明显更差,因为那块平坦区域更小,扰动会把模型推出去。那套直觉 —— 小模型应该更容易量化 —— 正好反了。
5.2 AWQ、GPTQ、SmoothQuant、GGUF 做的事情不一样
GPTQ 一列一列地走过权重矩阵,针对一小份校准集,挑量化档位来最小化输出误差,并更新还没量化的列以吸收残差 —— 用 Hessian 近似做的补偿,让这一层的输出尽量贴近原来。AWQ 从另一个观察出发:激活的离群值和权重的离群值一样重要,所以量化前把那些"重要"的权重通道放大(激活对应地压小做补偿),让量化档位铺满这些权重真正占的那段范围。SmoothQuant 攻的是激活侧:LLM 里有那么少数几个通道幅值巨大,会把朴素的激活量化毁掉,所以把这份离群幅值按通道从激活迁到权重,让 W8A8 掉点微乎其微地落地。GGUF 是一个文件格式而不是单一算法 —— llama.cpp 用来做 CPU 和边缘推理的 Q4_K_M 那种嵌套超块缩放,生态上重要,但数据中心 GPU 上很少用。
5.3 那道安全阶梯,和那份校准纪律
经验上的安全阶梯很干净。BF16 → FP8 基本上是无损的,是生产的默认。BF16 → INT8 在 7B 以上、只要算法过得去,就是无损的。BF16 → INT4 在 30B 以上,用 AWQ 或 GPTQ 是无损的;13B 以下会掉一到三分 MMLU;7B 以下,如果不做量化感知训练,会掉五分以上。INT3 及以下是实验性的。两条纪律决定这道阶梯在生产里是否成立。第一是在对的分布上做校准:128–512 个具有代表性的样本,取自生产工作负载会取的那个分布,每六到十二个月随负载漂移重跑一次。第二是任务侧评测:标准 benchmark 会漏掉模型能力长尾上的质量变动 —— 冷门事实、多步推理、少数语种代码 —— 激进量化必须拿一份生产形状的真实流量、按对应用重要的那些维度打分来验。
第 5 章为下面铺了什么
量化缩小每权重字节数。下一章直接缩小权重的数量。第 6 章走剪枝 —— 包括 Hopper 原生加速的 2:4 结构稀疏 —— 和知识蒸馏,把大教师的行为迁到一个端到端更便宜的学生身上。三种压缩(量化、剪枝、蒸馏)合起来,就是模型侧那份用来减小第 1 章命名的带宽负担的工具箱。第 7 章接着转向运行时侧那根杠杆 —— batching —— 把新腾出来的余量换成并发用户的吞吐。
下一章 — 第 6 章:剪枝与知识蒸馏。直接攻击"权重数量"而不是"权重宽度"的两种模型侧压缩。
llm-compressor 的完整 FP8 校准流程、NVIDIA ModelOpt 里 FP8 和 NVFP4 的配方、W4A16 GPTQ 的能跑代码,以及关于"委员会投票式量化"和"生产里 FP8 对比 INT4"的两份 In Plain English 边栏。在 Amazon 上查看 LLM Primer VI →