大模型的能力还在往上爬,但真正把它送进千行百业的,是把 140GB 的 70B 模型塞进一张卡、把每百万 token 的推理成本砍到六分之一的量化技术。这篇长文分两条主线彻底讲透:一条是推理侧的训练后量化(PTQ)——从奠基的 GPTQ/AWQ 一路到用 Hadamard 旋转"抹平"离群值的 QuaRot/SpinQuant,再到 Blackwell 原生的 NVFP4;另一条是训练侧的原生低比特路线——以 BitNet b1.58 的三值权重为代表,配上 Meta 的 ParetoQ 给出的"到底该用几比特"的 scaling law 答案。每个方法都给出核心公式、直觉解释和真实 benchmark。
W_q = round(W/s + z) 换取显存和带宽。难点不在权重,而在激活里 0.1% 的离群值(outlier)会把量化范围撑爆。模型压缩的核心矛盾一句话讲清楚:大模型参数量从千亿冲向万亿,而全球 90%+ 的应用场景受限于算力、显存和延迟。一个 70B 模型在 FP16 下需要 140GB 显存——两块 A100-80GB 才勉强跑起来。而 2026 年推理已占 AI 总算力的 67%+,仅 OpenAI 一家的年推理支出就约 23 亿美元。量化正是在"能力保留"与"成本压缩"的夹缝里求最优解的关键桥梁。
量化对成本的影响是一条清晰的链条:量化 → 显存下降 → 单卡可部署更大模型 → GPU 利用率提升 → 吞吐上升 → 单 token 成本下降。以 Llama-3.3-70B 为例,这条链条的经济价值一目了然:
| 精度 | 显存需求 | 部署方式 | 吞吐 (tok/s/GPU) | 成本 ($/M tokens) |
|---|---|---|---|---|
| FP16 | 140 GB | 2×A100-80GB | ~1,200 | ~$1.90 |
| FP8 | 70 GB | 1×H100-80GB | ~2,400 | ~$0.95 |
| INT4 (AWQ) | 35 GB | 1×A100-80GB | ~2,800 | ~$0.50 |
| INT4 (GGUF) | 40 GB | CPU 服务器 | ~150 | ~$0.30 |
量化就是把连续(或高精度)的浮点数值,映射到一个有限的、低比特的离散集合。最常见的均匀仿射量化(uniform affine quantization)把浮点数 x 映射为 b-bit 整数:
其中两个关键参数由数据的动态范围决定。对于把区间 [α, β] 映射到 b-bit:
量化误差本质是"取整误差"。若量化步长为 s,单个数值的量化误差服从 [−s/2, s/2] 的近似均匀分布,其方差为:
"一个 scale 管多少个数"决定了精度与开销的权衡。粒度越细,越能贴合局部分布,但存储 scale 的开销越大:
| 量化粒度 | 精度 | 额外内存开销 | 实际采用 |
|---|---|---|---|
| Per-tensor | 最低 | 0 | 早期方案,已淘汰 |
| Per-channel | 中等 | 低 | W8A8 常用 |
| Per-group (G=128) | 高 | ~0.5% | GPTQ/AWQ 默认 |
| Per-group (G=32) | 更高 | ~2% | 精度敏感场景 |
| 逐层混合精度 | 最优 | 需搜索 | 前沿研究 |
权重量化相对好办——权重分布规整、近似高斯。真正让低比特量化举步维艰的是激活值里的离群值。
其根源在于 Transformer 结构本身:LayerNorm/RMSNorm 把特征归一化后,注意力机制会在某些"显著性特征"维度上产生集中放大效应。更麻烦的是——这些离群值不是噪声,而是模型真正依赖的重要信息,不能简单裁剪掉。
这就引出了 PTQ 领域的三条技术主线,本质都是在回答"如何驯服离群值":
arXiv:2210.17323 · Frantar et al. · ICLR 2023 · 误差补偿派的奠基之作
GPTQ 把权重量化建模成一个优化问题:寻找量化后的权重 Ŵ,使得该层输出的重构误差最小:
这个目标的 Hessian 矩阵(二阶导)恰好是 H = 2XXT。GPTQ 的核心洞察是:逐列量化权重,每量化完一列,就立即用 Hessian 信息把产生的误差"预支"补偿到还没量化的列上。补偿更新公式为:
工程上,GPTQ 用 Cholesky 分解预先算好 H-1 提升数值稳定性,并按块(block=128 列)批量处理以提升效率。效果如下:
| 模型 | 量化方案 | 困惑度 (Wiki-2) | 显存 | 推理加速 |
|---|---|---|---|---|
| LLaMA-65B | FP16 (基准) | 3.53 | 130 GB | 1× |
| LLaMA-65B | GPTQ-4bit | 3.60 (+2.0%) | ~33 GB | ~2–3× |
| LLaMA-65B | GPTQ-3bit | 3.84 (+8.8%) | ~24 GB | ~2–3× |
arXiv:2306.00978 · Lin et al. · MLSys 2024 (最佳论文) · 缩放迁移派 · 2026 生产部署首选
AWQ 的核心洞察比 GPTQ 更进一步:并非所有权重通道同等重要。不到 1% 的"显著性通道"(salient channels,对应高幅度激活的特征维度)贡献了超过 50% 的量化误差。
一个朴素想法是:把这 1% 的重要通道保留成 FP16、其余量化。但混合精度对硬件不友好。AWQ 的巧妙之处是——通过逐通道缩放,把这些重要通道"放大"后再量化,等效于给它们更多的量化精度,而不破坏统一的低比特格式。
具体地,对一个线性层 Y = WX,插入一个对角缩放矩阵 diag(s) 并保持数学等价:
缩放因子的搜索由激活幅度驱动。AWQ 用一个简洁的幂律形式定义每通道缩放,并做网格搜索确定指数 α:
| 维度 | GPTQ | AWQ |
|---|---|---|
| 核心思路 | 量化后误差补偿 | 量化前缩放优化 |
| 量化速度 | 1–4 小时 | 1–5 分钟 |
| INT4 精度 | 困惑度 +2–8% | 困惑度 +1–5% |
| 是否需反向传播 | 否(但需 Hessian) | 否(仅网格搜索) |
| 推理内核 | Marlin | Marlin / TinyChat |
| 硬件友好度 | GPU 优化 | GPU + 边缘设备 |
arXiv:2211.10438 · Xiao et al. · ICML 2023 · W8A8 的关键钥匙
GPTQ 和 AWQ 都只量化权重(激活保持 FP16,即 W4A16)。但要真正省下计算(而不只是显存),必须同时量化激活,用上 INT8 tensor core。SmoothQuant 专门解决"激活难量化"这个痛点。
它的思路极其优雅:既然激活里有离群值难量化、而权重很好量化,那就用一个逐通道的平滑因子 s,把激活的"量化难度"按比例转移一部分给权重——
平滑因子由激活和权重的幅度共同决定,用一个迁移强度超参 α 控制在两者间的分配:
从"补偿/迁移离群值"到"从根本上消灭离群值"——当前 W4A4 端到端量化的 SOTA 路线
缩放迁移派只是把离群值"搬来搬去",无法真正消除。旋转派提出了一个更彻底的思路:用一个正交变换(旋转)把权重/激活矩阵乘一下,让能量在所有维度上重新均匀分布,离群值就被"打散"消失了。
核心依据是计算不变性(computational invariance):对一个线性层,若在权重前乘一个正交矩阵 Q(QTQ = I),并在输入端乘 QT,则层的输出完全不变:
为什么旋转能消除离群值?关键概念是不相干性(incoherence)。QuIP 定义:一个矩阵是 μ-不相干的,若其元素的最大幅度被"能量均摊"后的界限约束:
实践中用 随机化 Hadamard 变换(RHT),因为 Hadamard 矩阵 H 只含 ±1、可以用 O(n log n) 的快速变换(类似 FFT)实现,几乎零额外算力:
| 方法 | arXiv / 时间 | 旋转类型 | 核心贡献 | 目标 |
|---|---|---|---|---|
| QuIP# | 2402.04396 / 2024.02 | 随机 Hadamard + E8 格点码本 | 不相干处理 + 格点矢量量化,权重量化到 2-bit 仍可用 | W2/W4 weight-only |
| QuaRot | 2404.00456 / 2024.03 | 随机 Hadamard 旋转 | 首个无需校准、端到端把权重+激活+KV cache 全部量化到 4-bit | W4A4KV4 |
| SpinQuant | 2405.16406 / 2024.05 | 可学习的旋转矩阵 | 把旋转矩阵变成可训练参数(在 Stiefel 流形上优化),进一步逼近无损 | W4A4KV4 |
QuaRot 在网络的不同位置插入四种 Hadamard 旋转(R1–R4),分别处理残差流、注意力和 FFN。得益于 RMSNorm 的计算不变性,R1/R2 可以被"吸收"进相邻权重里,推理时零额外开销;R3/R4 则是在线 Hadamard 变换,成本极低。
| 模型 | 方案 | Wiki-2 困惑度 ↓ | 0-shot 平均 ↑ |
|---|---|---|---|
| LLaMA-2-7B | FP16 基准 | 5.47 | 69.8% |
| LLaMA-2-7B | 朴素 W4A4 (RTN) | NaN / 崩溃 | 崩溃 |
| LLaMA-2-7B | QuaRot W4A4 | 6.10 (+11.5%) | 66.1% |
| LLaMA-2-7B | SpinQuant W4A4 | 5.96 (+9.0%) | 67.3% |
| LLaMA-2-70B | QuaRot W4A4 | 3.79 (vs 3.32) | 较接近 FP16 |
当整数量化撞上离群值天花板,浮点格式凭借"动态范围"另辟蹊径
INT4 是均匀量化——所有量化格子等宽。但神经网络的数值分布是钟形的:绝大多数值靠近 0,少数值很大。浮点格式(指数+尾数)天然是"非均匀"的——靠近 0 的地方格子密、远离 0 的地方格子疏,恰好契合这种分布。这就是低比特浮点的先天优势。
FP8 有两种排布,用指数位(E)和尾数位(M)的分配权衡动态范围与精度:
| 格式 | 符号/指数/尾数 | 动态范围 | 用途 |
|---|---|---|---|
| E4M3 | 1 / 4 / 3 | ±448 | 前向、权重、激活(精度优先) |
| E5M2 | 1 / 5 / 2 | ±57344 | 反向梯度(范围优先) |
NVFP4 是 NVIDIA Blackwell(B200/GB200)平台主推的 4-bit 浮点格式,采用 E2M1(1 符号 + 2 指数 + 1 尾数)编码,配块级微缩放(microscaling):每 16 个元素一个块,共享一个 FP8(E4M3) 的块缩放因子。反量化时:
| 格式 | 比特 | 缩放粒度 | 相对 INT4 精度 | 硬件 |
|---|---|---|---|---|
| INT4 | 4 | per-group (128) | 基准 | 通用 GPU |
| MXFP4 | 4 (+8bit scale/32) | 块 32 元素 | 略优 | 开放标准 |
| NVFP4 | 4 (+8bit scale/16) | 块 16 元素 | 明显更优 | Blackwell 原生 |
当上下文冲向百万 token,KV-Cache 而非权重,成了显存的头号杀手
自回归推理时,模型把每个历史 token 的 Key/Value 缓存下来避免重算。这个 KV-Cache 的大小随上下文长度线性增长:
| 方法 | 比特 | 关键技术 | 特点 |
|---|---|---|---|
| KIVI | 2-bit | Key 按通道量化 + Value 按 token 量化 | 免调优、即插即用 |
| KVQuant | <4-bit | 非均匀量化 + 离群值分离 + 敏感度感知 | 10M 上下文可行 |
| PatternKV | 2-bit | 展平 KV 表示扩大量化余量 | ICML 2026,2-bit 逼近 FP16 |
| GSRQ / RaBitQCache | sub-1-bit / binary | 增益-形状残差量化 / 旋转二值 | ICML 2026 前沿,长上下文 |
arXiv:2402.17764 · Ma et al. (Microsoft Research + 中科院) · 2024.02 · 训练侧路线的旗帜
前面所有 PTQ 方法都是"先训练一个 FP16 模型,再想办法压缩"。BitNet 提出一个截然不同的哲学:为什么不一开始就用低比特训练? 如果模型从头就知道自己要在低比特下工作,它会主动学出适合低比特的权重分布。
BitNet b1.58 把每个权重限制成三个值之一:{−1, 0, +1}。三个状态的信息量恰好是:
训练时,权重矩阵 W 先按其绝对值均值 γ 归一化,再四舍五入到 {−1,0,+1}:
激活则量化到 8-bit(用 absmax per-token 缩放)。最革命性的后果是——当权重只有 {−1,0,+1} 时,矩阵乘法里的乘法全部消失了:
训练时用直通估计器(Straight-Through Estimator, STE)解决量化不可导的问题:前向用量化值,反向假装量化是恒等函数直接传梯度:
| 指标 (对比同规模 FP16 LLaMA) | BitNet b1.58 3B | LLaMA 3B (FP16) |
|---|---|---|
| 困惑度 | ≤ (更低或持平) | 基准 |
| 显存 | 3.55× 更少 | 基准 |
| 推理延迟 | 2.71× 更快 | 基准 |
| 推理能耗 | 显著更低 | 基准 |
arXiv:2502.02631 · Meta · NeurIPS 2025 · 极低比特量化的统一 scaling law
BitNet 证明了 1.58-bit 可行,但业界一直有争论:4-bit 好还是 1.58-bit 好? ParetoQ 是第一个把 1 / 1.58 / 2 / 3 / 4-bit 放在同一个训练框架下严格对比的工作,终于给出可信答案。
ParetoQ 的意义在于把"低比特训练"从 BitNet 的单点证明,升级为一条可指导工程的 Pareto 前沿:在"模型质量-部署体积"这个二维平面上,2-bit 和 1.58-bit 占据了帕累托最优的位置。考虑硬件约束,2-bit 量化在显存压缩和加速上潜力最大。这为 BitNet 类原生低比特路线提供了强有力的理论背书。
从 ICLR/ICML 2026 收录的近百篇量化论文可以清晰看到六个研究热点,几乎覆盖了本文讲的所有主线的最新延伸:
| 研究方向 | 代表工作 (ICML/ICLR 2026) | 比特/设定 |
|---|---|---|
| Sub-1-bit 权重 | NanoQuant、Latent Geometry Alignment、Sign Lock-In | <1 bit |
| 三值 / 2-bit PTQ | CAT-Q(逼近 BitNet)、TWLA(W1.58A4)、Proteus、UniSVQ | 1.58 / 2 bit |
| 旋转量化延伸 | ReSpinQuant、Block Rotation for MXFP4、MixQuant、WUSH | W4A4 / MXFP4 |
| NVFP4 原生训练 | Clover(无偏梯度)、TetraJet-v2(抑制振荡)、GradientStabilizer | NVFP4 QAT/FQT |
| 2-bit KV Cache | PatternKV、GSRQ(sub-1-bit)、RaBitQCache(旋转二值)、STAR-KV | ≤2 bit KV |
| 推理链路量化 | ReQAT(4-bit FP 推理 QAT)、ReSET(step-aware 温度)、Mix-Quant(分阶段精度) | FP4 reasoning |
| 场景 / 目标 | 推荐方案 | 理由 |
|---|---|---|
| 生产部署,追求稳定省显存 | AWQ-INT4 + vLLM + Marlin | 量化快、精度高、生态成熟,业界最主流 |
| H100/H200,训练+推理统一 | FP8 (E4M3) | 硬件原生、几乎无损、DeepSeek-V3 同款 |
| Blackwell,追求极致 | NVFP4 | 原生 4-bit 浮点,精度优于 INT4,可用于预训练 |
| 要真加速(不止省显存) | QuaRot / SpinQuant W4A4 | 激活也量化,吃上 INT4 tensor core |
| 长上下文(100K+) | KIVI / KVQuant + 权重量化 | KV-Cache 是长上下文的显存瓶颈 |
| CPU / 端侧 / 无 GPU | GGUF (llama.cpp) 或 BitNet | CPU 优化,BitNet 可跑无 GPU 大模型 |
| 研究极限压缩 / 从头训练 | BitNet b1.58 + ParetoQ 指导 | 2-bit / 三值在体积-精度 Pareto 前沿最优 |