论文深度解读 · 模型量化 · PTQ / QAT / 原生低比特
大语言模型量化万字深度解析从 GPTQ 到旋转量化、NVFP4 与 1.58-bit 原生训练
覆盖 GPTQ · AWQ · SmoothQuant · QuIP# · QuaRot · SpinQuant · FP8 · NVFP4 · KV-Cache 量化 · BitNet b1.58 · ParetoQ · 附完整公式、benchmark 表格与 ICML 2026 前沿图谱
大模型的能力还在往上爬,但真正把它送进千行百业的,是把 140GB 的 70B 模型塞进一张卡、把每百万 token 的推理成本砍到六分之一的量化技术。这篇长文分两条主线彻底讲透:一条是推理侧的训练后量化(PTQ)——从奠基的 GPTQ/AWQ 一路到用 Hadamard 旋转"抹平"离群值的 QuaRot/SpinQuant,再到 Blackwell 原生的 NVFP4;另一条是训练侧的原生低比特路线——以 BitNet b1.58 的三值权重为代表,配上 Meta 的 ParetoQ 给出的"到底该用几比特"的 scaling law 答案。每个方法都给出核心公式、直觉解释和真实 benchmark。
五分钟速览
- 量化的本质是把 FP16 权重/激活映射到低比特整数或低比特浮点,用
W_q = round(W/s + z) 换取显存和带宽。难点不在权重,而在激活里 0.1% 的离群值(outlier)会把量化范围撑爆。
- PTQ 三代演进:① 误差补偿派(GPTQ,用 Hessian 逆分摊误差);② 缩放迁移派(AWQ/SmoothQuant,把量化难度在权重和激活间搬运);③ 旋转派(QuIP#/QuaRot/SpinQuant,用正交/Hadamard 旋转把 outlier 打散到所有维度,实现真正的 W4A4)。
- 数值格式在进化:INT4 → FP8(H100 原生,几乎无损)→ NVFP4(Blackwell 原生 4-bit 浮点,带块级缩放,精度优于 INT4)。KV-Cache 量化则是长上下文的生命线(128K 时 KV 能占 36% 显存)。
- 训练侧另辟蹊径:与其训完再压,不如一开始就用低比特训练。BitNet b1.58 用三值 {-1,0,+1} 权重,把矩阵乘法退化成加法;ParetoQ(Meta)系统证明 1.58/2/3-bit 在"精度 vs 模型体积"上全面优于 4-bit 和二值。
- 2026 年的答案:生产部署的黄金组合是 AWQ-INT4 + vLLM + Marlin kernel;追求极致是 NVFP4 + Blackwell;端侧和研究前沿则在 sub-1-bit、三值 QAT、NVFP4 原生训练 上激烈竞争(ICLR/ICML 2026 收录量化论文近百篇)。
1.58 bit
BitNet 三值权重
log₂3 的信息量
00为什么量化是大模型时代的刚需
模型压缩的核心矛盾一句话讲清楚:大模型参数量从千亿冲向万亿,而全球 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 |
数据来源:Spheron 推理成本分析 (2026.04)。INT4 量化后推理成本仅为 FP16 的 1/4 到 1/6——量化不只是技术优化,更是商业必需。
量化技术的三代演进
①
1.0 基础量化 (2020–2022):INT8、对称/非对称,TF-Lite / PyTorch Quantization。
②
2.0 LLM 量化革命 (2022–2024):GPTQ / AWQ / GGUF / SmoothQuant / QLoRA,INT4 权重量化、激活感知、NF4。
③
3.0 极致压缩生态 (2024–2026):FP8 / NVFP4 硬件协同 + 旋转量化 + 原生低比特训练(BitNet/ParetoQ)+ 蒸馏/剪枝一体化。
01量化的数学:scale、zero-point 与粒度
量化就是把连续(或高精度)的浮点数值,映射到一个有限的、低比特的离散集合。最常见的均匀仿射量化(uniform affine quantization)把浮点数 x 映射为 b-bit 整数:
前者是量化(浮点 → 整数),后者是反量化(整数 → 近似浮点)。s 是缩放因子 scale,z 是零点 zero-point,⌊·⌉ 表示四舍五入取整。
其中两个关键参数由数据的动态范围决定。对于把区间 [α, β] 映射到 b-bit:
若 α = −β(对称量化),则 z = 0,反量化退化为 x̂ = s·x_q——这对权重最常用,因为权重近似零均值对称分布。
量化误差本质是"取整误差"。若量化步长为 s,单个数值的量化误差服从 [−s/2, s/2] 的近似均匀分布,其方差为:
这个公式揭示了量化的第一性原理:误差 ∝ 动态范围 (β−α) 的平方,∝ 比特数的指数。每多 1 bit,步长减半,误差方差降到 1/4——但如果动态范围被离群值撑大,再多比特也救不回来。这正是所有先进量化方法要解决的核心问题。
量化粒度:per-tensor / per-channel / per-group
"一个 scale 管多少个数"决定了精度与开销的权衡。粒度越细,越能贴合局部分布,但存储 scale 的开销越大:
| 量化粒度 | 精度 | 额外内存开销 | 实际采用 |
| Per-tensor | 最低 | 0 | 早期方案,已淘汰 |
| Per-channel | 中等 | 低 | W8A8 常用 |
| Per-group (G=128) | 高 | ~0.5% | GPTQ/AWQ 默认 |
| Per-group (G=32) | 更高 | ~2% | 精度敏感场景 |
| 逐层混合精度 | 最优 | 需搜索 | 前沿研究 |
group 量化把权重矩阵每一列切成若干组(如每 128 个元素一组),每组独立算 scale,是当前 4-bit 权重量化的事实标准。
02万恶之源:激活离群值 (outlier)
权重量化相对好办——权重分布规整、近似高斯。真正让低比特量化举步维艰的是激活值里的离群值。
离群值现象
在 LLM 的注意力层里,约
0.1% 的激活通道会产生幅度 >100 的异常值,而其余 99.9% 的激活都老实待在 [−3, 3] 区间内。这些 outlier 一旦出现,就会把该通道的量化范围 (β−α) 撑大上百倍,导致其他正常值全被挤到极少数几个量化格子里——INT8 直接量化激活会产生灾难性误差。
其根源在于 Transformer 结构本身:LayerNorm/RMSNorm 把特征归一化后,注意力机制会在某些"显著性特征"维度上产生集中放大效应。更麻烦的是——这些离群值不是噪声,而是模型真正依赖的重要信息,不能简单裁剪掉。
这就引出了 PTQ 领域的三条技术主线,本质都是在回答"如何驯服离群值":
① 误差补偿派
接受离群值存在,量化后用二阶信息(Hessian)把误差分摊到其他权重上补偿掉。代表:GPTQ。
② 缩放迁移派
用逐通道缩放把量化难度在激活和权重之间"搬运",让两边都不那么难量化。代表:SmoothQuant、AWQ。
③ 旋转派
用正交/Hadamard 旋转把 outlier 的能量打散到所有维度,从根本上消灭离群值。代表:QuIP#、QuaRot、SpinQuant。
03GPTQ — 基于 Hessian 的近似二阶量化
arXiv:2210.17323 · Frantar, Ashkboos, Hoefler, Alistarh · ICLR 2023 · 误差补偿派的奠基之作
GPTQ 是把 4-bit 权重量化第一次真正推到 百亿~千亿参数规模 的方法——它能在单张 A100 上、几个小时内把 OPT-175B / BLOOM-176B 压到 3~4 bit 而困惑度几乎不掉。要真正理解它,必须先讲清它的家谱:GPTQ 不是凭空出现的,而是一条从剪枝走到量化、跨越 30 年的二阶方法演化的终点。
家谱:OBD → OBS → OBC → GPTQ
所有这些方法共享一个共同的出发点——如果要"动"一个已经训练好的网络的权重(不管是剪掉还是量化),怎么动才对损失的伤害最小?用二阶泰勒展开写出权重扰动 δw 引起的损失变化:
对一个训练收敛的模型,一阶梯度 g≈0,于是损失变化完全由二阶项(Hessian H)主导。这行公式是整条家谱的地基。
OBD (1989, LeCun)
Optimal Brain Damage:只用 Hessian 的对角线近似判断哪个权重最该剪。假设权重互相独立,简单但粗糙。
OBS (1993, Hassibi)
Optimal Brain Surgeon:用完整 Hessian 逆。剪掉权重后,给出剩余权重的闭式最优补偿——这是 GPTQ 补偿公式的直接来源。
OBC / OBQ (2022)
把 OBS 从"剪枝"推广到"量化",并逐行独立处理权重矩阵、每次贪心地挑当前误差最小的权重先量化。精度极高但 O(d³) 太慢。
GPTQ (2022)
在 OBQ 之上做三个关键工程近似,把复杂度砍到可处理 175B,同时精度几乎无损。本节主角。
OBS 的核心结论是:当你把第 q 个权重量化(或剪掉)时,为了把损失增量压到最小,其余所有未处理权重都应该按 Hessian 逆的相关性做一次闭式修正。最优补偿量和它带来的损失增量分别为:
左式:量化 w_q 产生的误差,被 H⁻¹ 的第 q 列"摊"给所有其他权重。右式:这一步的损失代价——OBQ 正是用它来贪心地决定量化顺序(每次选 ΔE 最小的权重先量化)。
GPTQ 的三个关键加速
GPTQ 把层量化建模成"让该层输出的重构误差最小"(等价于用输入激活的二阶矩当 Hessian):
W 是原始权重,X 是校准数据经过该层的输入激活。目标是让层输出贴近原始输出(而非权重本身贴近)。λI 是数值阻尼项(damping),保证 H 可逆。
朴素套用 OBQ 需要 O(d³) 且要逐行维护各自的 Hessian,175B 模型上要跑几周。GPTQ 用三招把它变得实用:
① 固定顺序,不再贪心
OBQ 每行都按"当前误差最小"重排列的顺序,各行顺序不同。GPTQ 发现:大模型上按固定列顺序(左→右)量化,精度几乎不掉,但这样所有行可以共享同一个 H⁻¹,一次算好反复用。
② Lazy Batch 惰性批更新
逐列更新受访存带宽瓶颈(算得少、读写多)。GPTQ 把权重按 128 列一"块"处理:块内立即补偿,块外的更新攒着一次性批量写回,把内存受限变成计算受限,GPU 利用率飙升。
③ Cholesky 重构 H⁻¹
反复对 H⁻¹ 做行列删除会累积浮点误差、甚至让矩阵不再正定而崩溃。GPTQ 改用一次 Cholesky 分解预先算好所需的全部 H⁻¹ 信息,数值稳定性大幅提升。
落到实现里,逐列量化 + 补偿的更新式就是 OBS 公式的向量化形式(对块内待量化列 i、补偿后续列 j):
直觉:量化第 i 列产生的误差,按 H⁻¹ 反映的"列间相关性"预支补偿到还没量化的第 j 列上——如果 j 和 i 相关,就微调 j 来抵消 i 的量化损失。全程无需反向传播,只需一遍前向收集 Hessian。
原论文 Figure(LAMBADA 精度 vs 模型规模)。横轴是参数量(对数),纵轴是 LAMBADA 零样本精度。红色=GPTQ、蓝色=RTN(朴素四舍五入)、黑色=FP16;方块为 4-bit、三角为 3-bit。关键观察:模型越大,GPTQ 越贴近 FP16 曲线;而 RTN 在 3-bit、大模型上直接崩塌(右下角蓝三角断崖)。这正是"大模型更好量化"这一经验规律的最早证据之一。来源:GPTQ 原论文 arXiv:2210.17323
原论文 Figure(OPT 家族 WikiText2 困惑度)。4-bit GPTQ 在 per-group 粒度下(g128 绿线、g1024 橙线)几乎与 FP16(黑线)重合,而无分组的纯 per-column 4bit(蓝线)在小模型上明显更差。这张图是"GPTQ/AWQ 默认用 group_size=128"这一工程惯例的实验依据。来源:GPTQ 原论文 arXiv:2210.17323
三个必须会调的工程旋钮
| 超参 | 作用 | 推荐值 / 经验 |
| group_size | 每多少个权重共享一组 scale/zero-point | 128(精度/开销甜点);32 更准但元数据涨到 ~2% |
| act-order (desc_act) | 按激活重要性从大到小排序后再量化,重要列先享受最干净的补偿 | 开启通常降 PPL,但会与部分 kernel 冲突、拖慢加载 |
| damp_percent | Hessian 阻尼 λ 占对角均值的比例,防止 H 奇异崩溃 | 0.01(1%);遇到 NaN/不收敛就调大 |
这三个旋钮几乎是所有 GPTQ 踩坑帖的高频词:忘开 act-order 掉精度、damp 太小量化中途 NaN、group_size 选太小推理反而变慢。
| 模型 | 量化方案 | 困惑度 (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× |
GPTQ 4-bit 几乎无损(困惑度仅升 2%),把 65B 模型从 130GB 压到 33GB。局限:需要校准数据(通常 128 条 2048-token 序列)、量化耗时 1–4 小时、对激活离群值处理不如后来的 AWQ(GPTQ 只治权重、不碰激活)。
社区怎么看 GPTQ
•
oobabooga 的经典横评(gptq-awq-exl2-llamacpp)里一句被反复引用的话:
"GPTQ 曾长期是 GPU 上 4-bit 的默认选择,直到 EXL2 和 AWQ 出现才被逐渐分流。"
• Hugging Face 官方博客把 GPTQ 定性为
"第一个让 175B 模型能在单卡上做 4-bit 推理的 PTQ 方法"——它的历史意义大于当下的精度排名。
• r/LocalLLaMA 上的共识:
GPTQ 对校准集比较敏感,换个领域的校准数据 PPL 会漂;而且
act-order + group_size 的组合坑最多,很多"GPTQ 精度差"的抱怨其实是参数没配对。
• 2024 年起,随着
Marlin kernel 把 GPTQ 的 W4A16 推理吞吐拉满,"GPTQ 慢"的旧印象被扭转——今天 vLLM 里 GPTQ 与 AWQ 常常共用同一套 Marlin 后端。
04AWQ — 激活感知的权重量化
arXiv:2306.00978 · Lin, Tang, Tang, Yang … Han · MLSys 2024 (最佳论文) · 缩放迁移派 · 2026 生产部署首选
如果说 GPTQ 是"接受量化误差、事后用 Hessian 补偿",AWQ 走的是一条完全不同、而且更简单的路:在量化之前,先把最重要的那部分权重保护起来。它出自 MIT 韩松组,拿下了 MLSys 2024 最佳论文,也是 2026 年 vLLM / SGLang 生产部署里最常见的 INT4 方案。它的推理侧实现 TinyChat 让 4-bit LLM 能在 RTX 4090、笔记本甚至 Jetson Orin 上流畅跑起来。
出发点:反直觉的"看激活,不看权重"
AWQ 建立在两个层层递进的观察上:
观察一:权重不平等
LLM 里存在极少数(0.1%~1%)的"显著权重"(salient weights),它们对模型输出的影响远超其他权重——只把这不到 1% 的权重保留成 FP16,量化后的困惑度就能几乎回到无损。
观察二:按激活选,不按权重选
哪些权重"显著"?反直觉的答案是——看激活幅度,而不是看权重本身的大小。某个输入通道的激活越大,与它相乘的那列权重就越关键。按权重幅度选 ≈ 随机选,几乎没有收益。
论文用一张对比图把这件事讲透了:
原论文 Figure 2(AWQ 的核心思想图)。同一个 INT3 量化下三种做法的困惑度对比:(a) 朴素 RTN 四舍五入 → PPL 43.2(灾难);(b) 按激活选出 1% 显著通道、保留 FP16(混合精度)→ PPL 13.0(几乎无损,但混合精度对硬件不友好);(c) AWQ:不留 FP16,而是先把显著通道按激活幅度"放大"再统一量化 → 同样 PPL 13.0。结论一目了然:缩放能达到和保留 FP16 一样的效果,却保持了统一的低比特格式——这是 AWQ 全部巧思所在。来源:AWQ 原论文 arXiv:2306.00978
数学:为什么"放大再量化"能减小误差
朴素做法(图 b)是把 1% 重要通道留 FP16、其余 INT3。但混合精度让 kernel 要处理两种数据类型,硬件效率很低。AWQ 的关键一步是推导出:单纯放大一个权重通道,就能等比降低它的相对量化误差。
先看单个权重 w 在 round-to-nearest 下的量化误差。量化步长(scale)为 Δ 时,舍入误差 RoundErr∈[0,0.5],期望约 0.25,与 w 无关:
舍入误差的绝对量级只由步长 Δ 决定;对某一通道单独放大,只要不显著改变整个 group 的 Δ,这个通道的绝对误差不变,但它在层输出里占的相对权重变大了——于是相对误差被压下去。
把某个通道的权重乘 s、对应激活除以 s(保持乘积不变),该通道对输出的量化误差近似按 1/s 缩小:
只要放大不明显抬高整组的步长 Δ,误差就随 s 增大而减小。这就把"保留 FP16"这种离散的、对硬件不友好的操作,替换成了连续的、硬件透明的逐通道缩放。
怎么定每个通道的缩放因子
AWQ 不去解一个复杂的优化,而是用一个极简的幂律形式,把缩放直接挂到激活幅度上,只留一个标量超参 α 做网格搜索:
s_j 由第 j 个输入通道的平均激活幅度决定,α 控制"保护强度":α=0 时不缩放,α=1 时完全按激活缩放。AWQ 只需在 [0,1] 上网格搜 α(约 20 个点),逐层选使该层重构误差最小的 α——无反向传播、无 Hessian,这就是它比 GPTQ 快一两个数量级的根本原因。
整个变换对线性层是数学恒等的,所以推理时不需要任何额外算子:
缩放因子可以离线吸收进前一层的 LayerNorm/权重里,推理时激活侧的 diag(s)⁻¹ 完全消失——这也是"不改变权重排布、对 kernel 透明"的由来。
效果与硬件收益
原论文 Figure(TinyChat 推理加速)。AWQ 的 W4A16 内核在桌面 RTX 4090、边缘 Jetson Orin、笔记本 RTX 4070 上对比 HuggingFace FP16 基线:普遍带来 ~3× 吞吐提升,而且在 FP16 直接 OOM 的模型(如 Llama-2-13B / MPT-30B)上,AWQ 靠省显存让它能跑起来。这解释了为什么 AWQ 是"端侧 LLM"事实上的首选。来源:AWQ 原论文 arXiv:2306.00978
AWQ 的优势不只在语言建模。在多模态(VLM)上,同样 W4 量化下 AWQ 生成的图像描述明显比 RTN 更准确——因为它保住了对视觉 token 最敏感的那些通道。
| 维度 | GPTQ | AWQ |
| 核心思路 | 量化后误差补偿(Hessian) | 量化前缩放保护显著通道 |
| 选谁重要 | 不区分,靠二阶补偿 | 按激活幅度选 salient 通道 |
| 量化速度 | 1–4 小时 | 1–5 分钟 |
| INT4 精度 | 困惑度 +2–8% | 困惑度 +1–5% |
| 是否需反向传播 | 否(但需 Hessian) | 否(仅网格搜索 α) |
| 校准集敏感度 | 较敏感(换域会漂) | 低(只用激活统计量) |
| 推理内核 | Marlin | Marlin / TinyChat |
| 硬件友好度 | GPU 优化 | GPU + 边缘设备 |
AWQ 不依赖反向传播、不改变权重排布、对校准集不敏感,量化又快精度又高——这使得 AWQ-INT4 + vLLM + Marlin kernel 成为 2026 年业界最常见的生产部署黄金组合。
社区怎么看 AWQ
•
presenc.ai 2026 量化质量横评的结论:
"在 Llama 3+ / Qwen 2+ 这类现代模型上,AWQ 在同比特宽下比 GPTQ 低约 0.5~1.0% 的困惑度,得益于激活感知的缩放。"
• r/LocalLLaMA 里的实践共识:
AWQ 量化几分钟就跑完、几乎不用调参,而 GPTQ 要斟酌 act-order / damp——"想省事就 AWQ"几乎成了默认建议。
• 但也有反面声音:在
ExLlama v2 (EXL2) 这类可变比特方案面前,AWQ 的固定 4-bit 在极限压缩比上不占优;纯吞吐上老牌 GPTQ+ExLlama kernel 有时还更快。
"精度稳、部署省心"才是 AWQ 的护城河。
• 韩松组后续把 AWQ 思想延伸到
QServe(W4A8KV4) 和 VLM 量化,AWQ 已经从一个算法长成了一整套端到端推理栈。
05SmoothQuant — 把量化难度从激活迁移到权重
arXiv:2211.10438 · Xiao et al. · ICML 2023 · W8A8 的关键钥匙
GPTQ 和 AWQ 都只量化权重(激活保持 FP16,即 W4A16)。但要真正省下计算(而不只是显存),必须同时量化激活,用上 INT8 tensor core。SmoothQuant 专门解决"激活难量化"这个痛点。
它的思路极其优雅:既然激活里有离群值难量化、而权重很好量化,那就用一个逐通道的平滑因子 s,把激活的"量化难度"按比例转移一部分给权重——
激活 X 被除以 s(离群通道被压小、变好量化),权重 W 被乘以 s(吸收了难度)。数学上完全等价,但两边都变得容易量化了。
平滑因子由激活和权重的幅度共同决定,用一个迁移强度超参 α 控制在两者间的分配:
α=0.5 时难度均分。α 越大,越多难度从激活转移到权重。对多数 LLM,α=0.5 就能让 W8A8 量化的困惑度损失控制在 <1% 内,同时享受 INT8 计算的全部加速。
三种缩放迁移方法的关系
SmoothQuant(激活↔权重迁移,做 W8A8)、AWQ(保护重要权重通道,做 W4A16)、以及后来的
OmniQuant / OS+ 都属于"缩放迁移派"。它们的共同数学骨架是:
插入一个对角变换 diag(s) 保持层输出不变,同时让量化更容易。区别只在于 s 的搜索目标不同。
06旋转量化 — QuIP# / QuaRot / SpinQuant
从"补偿/迁移离群值"到"从根本上消灭离群值"——当前 W4A4 端到端量化的 SOTA 路线
缩放迁移派只是把离群值"搬来搬去",无法真正消除。旋转派提出了一个更彻底的思路:用一个正交变换(旋转)把权重/激活矩阵乘一下,让能量在所有维度上重新均匀分布,离群值就被"打散"消失了。
数学基础:计算不变性与不相干处理
核心依据是计算不变性(computational invariance):对一个线性层,若在权重前乘一个正交矩阵 Q(QTQ = I),并在输入端乘 QT,则层的输出完全不变:
这和缩放迁移的 diag(s) 是同一个套路,但把"对角缩放"换成了"正交旋转"——旋转能重新混合所有维度,而缩放只能逐通道放缩。
为什么旋转能消除离群值?关键概念是不相干性(incoherence)。QuIP 定义:一个矩阵是 μ-不相干的,若其元素的最大幅度被"能量均摊"后的界限约束:
μ 越小,矩阵越"平",没有突出的离群值,越好量化。随机正交/Hadamard 旋转能以极高概率把任意矩阵变成低 μ(不相干)的矩阵——这是旋转量化的理论基石。
实践中用 随机化 Hadamard 变换(RHT),因为 Hadamard 矩阵 H 只含 ±1、可以用 O(n log n) 的快速变换(类似 FFT)实现,几乎零额外算力:
旋转后,原本集中在少数通道的离群能量被"摊薄"到全部 n 个维度上,每个维度的幅度趋于均匀——激活就能安全地量化到 4-bit 了。
图:旋转前 vs 旋转后的激活分布(QuaRot 原论文 Fig. 1)。横轴是隐层维度索引(0–4096),纵轴是激活值。左图"Before QuaRot":蓝色 Min/Max 包络里布满向上/向下的尖刺(离群值),某些通道幅度远超其余,正是这些尖刺撑爆了量化范围、让朴素 W4A4 崩溃。右图"With QuaRot":经过 Hadamard 旋转后,Min/Max、1/99 分位、25/75 分位三条包络全部被压平成一条平滑的窄带——离群能量被均摊到所有维度,激活重新变得"处处温和",这才让 4-bit 量化第一次可用。这张图是"旋转消除离群值"最直观的证据。
图源:QuaRot, arXiv:2404.00456, Fig. 1(Ashkboos et al., NeurIPS 2024)
三个代表方法的分工
| 方法 | 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 |
演进逻辑:QuIP# 证明旋转+格点码本能做极低比特权重量化 → QuaRot 把旋转扩展到激活和 KV cache,实现真正的全 4-bit → SpinQuant 发现"随机旋转不是最优的",把旋转矩阵学出来。
QuaRot 的四类旋转
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 |
关键结论:朴素 W4A4 直接量化会完全崩溃(激活离群值使量化范围爆炸);旋转后 W4A4 才第一次变得可用,且模型越大损失越小(70B 几乎无损)。SpinQuant 通过学习旋转矩阵,比随机旋转的 QuaRot 再好一截。
为什么旋转派是当前 W4A4 的 SOTA
W4A4 意味着权重和激活
都是 4-bit,才能真正用上硬件的 INT4/FP4 tensor core,把计算量也砍掉(而非只省显存)。缩放迁移派在 A4 上会失效——离群值搬到哪都还在。只有旋转能把离群能量彻底摊平。这就是 2026 年 ICML 仍有大量 ReSpinQuant、Block Rotation、MixQuant 等旋转量化论文的原因。
07FP8 与 NVFP4 — 硬件原生的低精度浮点
当整数量化撞上离群值天花板,浮点格式凭借"动态范围"另辟蹊径
INT4 是均匀量化——所有量化格子等宽。但神经网络的数值分布是钟形的:绝大多数值靠近 0,少数值很大。浮点格式(指数+尾数)天然是"非均匀"的——靠近 0 的地方格子密、远离 0 的地方格子疏,恰好契合这种分布。这就是低比特浮点的先天优势。
FP8:H100 时代的甜点
FP8 有两种排布,用指数位(E)和尾数位(M)的分配权衡动态范围与精度:
| 格式 | 符号/指数/尾数 | 动态范围 | 用途 |
| E4M3 | 1 / 4 / 3 | ±448 | 前向、权重、激活(精度优先) |
| E5M2 | 1 / 5 / 2 | ±57344 | 反向梯度(范围优先) |
FP8 在 H100/H200 上有原生 tensor core 支持,是 DeepSeek-V3 等前沿模型训练+推理都在用的格式,典型精度损失 <1%。它几乎已成为大模型的"默认高精度档"。
NVFP4:Blackwell 原生的 4-bit 浮点
NVFP4 是 NVIDIA Blackwell(B200/GB200)平台主推的 4-bit 浮点格式,采用 E2M1(1 符号 + 2 指数 + 1 尾数)编码,配块级微缩放(microscaling):每 16 个元素一个块,共享一个 FP8(E4M3) 的块缩放因子。反量化时:
FP4 E2M1 能表示的最大值是 6,所以块缩放取"块内最大绝对值 / 6"。细粒度的块缩放(每 16 个元素)让 NVFP4 能同时兼顾离群值和普通值,精度显著优于同比特的 INT4。
| 格式 | 比特 | 缩放粒度 | 相对 INT4 精度 | 硬件 |
| INT4 | 4 | per-group (128) | 基准 | 通用 GPU |
| MXFP4 | 4 (+8bit scale/32) | 块 32 元素 | 略优 | 开放标准 |
| NVFP4 | 4 (+8bit scale/16) | 块 16 元素 | 明显更优 | Blackwell 原生 |
NVFP4 已不只是推理格式——NVIDIA 的 Nemotron 3 系列(550B MoE)已用 NVFP4 做大规模预训练,报告推理吞吐相对公开 SOTA 提升约 6×。围绕它的 PTQ(ScaleSweep 块缩放初始化)、QAT(TetraJet-v2 抑制振荡)、无偏梯度估计(Clover)已成 2026 年最热研究方向之一。
08KV-Cache 量化 — 长上下文的生命线
当上下文冲向百万 token,KV-Cache 而非权重,成了显存的头号杀手
自回归推理时,模型把每个历史 token 的 Key/Value 缓存下来避免重算。这个 KV-Cache 的大小随上下文长度线性增长:
对 Llama-2-7B,128K 上下文的 KV-Cache 可占 36% 显存;上下文再长,KV 就超过权重本身成为第一瓶颈。把 KV 从 FP16 量化到 INT4/INT2 直接省下 4–8× 的这部分显存。
| 方法 | 比特 | 关键技术 | 特点 |
| 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 前沿,长上下文 |
KV 量化的难点:Key 和 Value 的分布特性不同——Key 有明显的通道级离群值(按通道量化),Value 分布均匀(按 token 量化),KIVI 的这一"分而治之"洞察被后续工作广泛沿用。2026 年前沿已把 KV 推到 sub-1-bit(GSRQ)和旋转二值(RaBitQCache)。
09BitNet b1.58 — 三值权重的原生低比特革命
arXiv:2402.17764 · Ma et al. (Microsoft Research + 中科院) · 2024.02 · 训练侧路线的旗帜
前面所有 PTQ 方法都是"先训练一个 FP16 模型,再想办法压缩"。BitNet 提出一个截然不同的哲学:为什么不一开始就用低比特训练? 如果模型从头就知道自己要在低比特下工作,它会主动学出适合低比特的权重分布。
图:BitNet b1.58 相对传统 Transformer 的 Pareto 改进(原论文 Fig. 1)。右侧传统 LLM 用 16-bit 浮点权重(矩阵里全是 0.2961、−0.0495 这样的小数),落在高"成本"位置;左侧 BitNet 用三值权重 {−1, 0, +1},在持平性能的同时把成本大幅左移——这正是一次帕累托改进(同等性能、更低成本)。它一句话点明了整篇论文的主张:低比特不必以掉点为代价。
图源:BitNet b1.58, arXiv:2402.17764, Fig. 1(Ma et al., 2024)
1.58 比特是什么意思?
BitNet b1.58 把每个权重限制成三个值之一:{−1, 0, +1}。三个状态的信息量恰好是:
这就是"1.58-bit"的由来——不是真的用 1.58 个比特,而是每个权重的信息熵约 1.58 bit。相比 FP16 的 16 bit,权重存储压缩约 10×。
核心机制:absmean 量化 + 无乘法矩阵运算
训练时,权重矩阵 W 先按其绝对值均值 γ 归一化,再四舍五入到 {−1,0,+1}:
RoundClip(x,−1,1) = max(−1, min(1, round(x)))。γ 是整个权重矩阵的平均绝对值,作为缩放因子。这样大部分接近 0 的权重被量化为 0(带来稀疏性),较大的正/负权重成为 ±1。
激活则量化到 8-bit(用 absmax per-token 缩放)。最革命性的后果是——当权重只有 {−1,0,+1} 时,矩阵乘法里的乘法全部消失了:
乘以 +1 就是加、乘以 −1 就是减、乘以 0 就是跳过。整个 GEMM 从"乘加"退化成纯"加减"——这对硬件是颠覆性的,因为加法器的面积和功耗远小于乘法器。这是 BitNet 宣称能省 71× 能耗的根本原因。
图:从"乘加"到"纯加法"的计算范式转变(原论文 Fig. 2)。上半部分是 FP16 的标准做法:权重矩阵 W 是浮点小数,计算 Y=WX 需要逐元素乘法再累加(Multiplication-then-Addition),跑在 GPU 上。下半部分是 1.58-bit:权重只有 {+1,−1,0},于是 Y 的每个分量退化成 x₀ − x₁ − x₂ + x₃ 这样的纯加减(Addition, no Multiplication)——不再需要昂贵的乘法器,为专用低功耗硬件(New Hardware)打开了大门。这张图直观解释了为什么三值权重能带来数量级的能耗下降。
图源:BitNet b1.58, arXiv:2402.17764, Fig. 2(Ma et al., 2024)
训练时用直通估计器(Straight-Through Estimator, STE)解决量化不可导的问题:前向用量化值,反向假装量化是恒等函数直接传梯度:
| 指标 (对比同规模 FP16 LLaMA) | BitNet b1.58 3B | LLaMA 3B (FP16) |
| 困惑度 | ≤ (更低或持平) | 基准 |
| 显存 | 3.55× 更少 | 基准 |
| 推理延迟 | 2.71× 更快 | 基准 |
| 推理能耗 | 显著更低 | 基准 |
论文核心结论:从 3B 规模开始,BitNet b1.58 就能在困惑度和下游任务上匹配甚至超过同规模 FP16 模型,同时显存、延迟、能耗全面占优。这打破了"低比特必然掉点"的成见——只要从训练开始就低比特。
BitNet 的现实约束(务必清醒)
①
不能直接量化现成模型——必须从头训练,成本高,无法把 Llama 直接变成 BitNet。
②
需要专用推理框架——普通 GPU 的 kernel 不为三值运算优化,必须用微软的
bitnet.cpp(CPU 上跑 100B 模型可达 5–7 token/s)。
③
激活仍是瓶颈——权重 1.58-bit 但激活还是 8-bit,后续 a4.8 才把激活也压下去。
10BitNet 生态 — a4.8 / 2B4T / Spectra
BitNet a4.8 (2411.04965)
把激活也压到 4-bit(W1.58A4)。对激活离群值用混合策略:多数走 4-bit,少数离群走 8-bit 稀疏路径。让 BitNet 真正吃上低比特计算红利。
BitNet b1.58 2B4T (2504.12285)
微软 2025 年放出的首个开源原生 1-bit LLM:2B 参数、4T token 训练。仅需 0.4GB 内存即可在 CPU 上运行,性能对标同规模全精度开源模型。
bitnet.cpp
微软官方 CPU 推理框架,专为三值权重优化的 kernel。让 100B 级 BitNet 在单台消费级 CPU 上以可用速度运行——把大模型推向"无需 GPU"。
Spectra / TriLM (2407.12327)
独立团队开源 54 个三值模型做第三方验证。Spectra 1.1 (ACL 2025) 进一步发现:"对三值模型多喂数据 ≫ 加参数"——低比特模型的 scaling 规律与全精度不同。
11ParetoQ — 到底该用几比特?
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 的三个关键发现
①
2 到 3 比特之间存在"学习相变":≥3-bit 时,微调后的模型仍贴近原始预训练分布;而学习 ≤2-bit 网络时,权重表示会
剧烈重构——低比特不是"轻微扰动",而是让模型学一套全新的表示。
②
1.58 / 2 / 3-bit 在"精度 vs 有效模型体积"上全面优于 4-bit 和二值。也就是说:给定显存预算,用更多参数的低比特模型,比更少参数的高比特模型更划算。
③
三值 600M 模型 > 此前 SOTA 三值 3B 模型——只用 1/5 的参数就超越,靠的是更优的训练方案和量化函数(提出 SEQ 量化器)。
图:精度 vs 有效量化模型体积的帕累托前沿(ParetoQ 原论文)。横轴是有效量化模型体积(相同显存预算下的等效大小),纵轴是精度。四条曲线分别是 2/4/8/16-bit。关键观察:在给定的体积预算下,2-bit 曲线(青色)几乎始终位于最上方——它用最小的体积最快爬到高精度并率先饱和;而 16-bit(粉色)要拖到体积 3000 才追平。换言之,"更多参数 + 更低比特"比"更少参数 + 更高比特"更划算,2-bit 占据了帕累托最优。这就是 ParetoQ 对"到底该用几比特"给出的量化答案。
图源:ParetoQ, arXiv:2502.02631, Fig. 1(Liu et al., Meta, NeurIPS 2025)
ParetoQ 的意义在于把"低比特训练"从 BitNet 的单点证明,升级为一条可指导工程的 Pareto 前沿:在"模型质量-部署体积"这个二维平面上,2-bit 和 1.58-bit 占据了帕累托最优的位置。考虑硬件约束,2-bit 量化在显存压缩和加速上潜力最大。这为 BitNet 类原生低比特路线提供了强有力的理论背书。
12ICML 2026 量化图谱 — 前沿在往哪走
从 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 |
两条主线在 2026 年正在合流:PTQ 越做越低(sub-1-bit、旋转 W4A4),训练侧则从 BitNet 的三值扩展到 NVFP4 原生训练(Clover/TetraJet)。数值格式、旋转变换、训练方案三者协同设计,成为共识。
13工程选型决策树 — 2026 实战建议
| 场景 / 目标 | 推荐方案 | 理由 |
| 生产部署,追求稳定省显存 | 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 前沿最优 |
14全景综述 — 一张表看懂所有方法
读到这里,别把这些方法记成一串孤立的名字。它们其实是同一个故事的不同章节。
整部量化史,可以用一条主线串起来:所有的技术进步,都是在回答"如何在更低的比特下,安放好那些不肯乖乖变小的数值"。权重好办(分布规整),难的是激活里的离群值——这是贯穿全文的那根线。顺着这根线看,六个流派的关系就清晰了:
一条主线:驯服离群值的四种世界观
①
躲(误差补偿派 · GPTQ):不管离群值,量化完用 Hessian 把误差补偿回来——只治权重,不碰激活。
②
搬(缩放迁移派 · SmoothQuant/AWQ):离群值搬不掉,那就用 diag(s) 在激活和权重之间挪一挪,让两边都别太难——能做到 W8A8/W4A16,但激活压到 4-bit 就失效。
③
抹(旋转派 · QuIP#/QuaRot/SpinQuant):用正交/Hadamard 旋转把离群能量摊平到所有维度,从根上消灭它——这才第一次实现真正的 W4A4。
④
绕(原生低比特 · BitNet/ParetoQ):干脆不做事后压缩,从训练第一步就用低比特,让模型自己长出适合低比特的分布——离群值问题被"提前规避"。
再叠加一条
正交的硬件线:INT4 → FP8 → NVFP4,用浮点的非均匀格子天然贴合钟形分布。
躲、搬、抹、绕 + 硬件格式,就是全部。
横向总表:8 大方法一屏对比
| 方法 | 流派 | 典型设定 | 需训练? | 治激活离群值? | 真加速还是仅省显存 | 一句话定位 |
| GPTQ | 误差补偿 | W4A16 | 否(需校准) | 不治 | 省显存 | 奠基之作,Hessian 补偿 |
| AWQ | 缩放迁移 | W4A16 | 否(仅搜索) | 保护重要通道 | 省显存 | 生产首选,快又准 |
| SmoothQuant | 缩放迁移 | W8A8 | 否 | 迁移一半难度 | 真加速(INT8) | 打开 W8A8 的钥匙 |
| QuaRot | 旋转 | W4A4KV4 | 否(免校准) | 彻底抹平 | 真加速(INT4) | 首个端到端全 4-bit |
| SpinQuant | 旋转 | W4A4KV4 | 学旋转矩阵 | 彻底抹平 | 真加速(INT4) | 可学旋转,逼近无损 |
| NVFP4 | 硬件格式 | W4A4 (E2M1) | 可选 QAT | 块缩放兜底 | 真加速(Blackwell) | 原生 4-bit 浮点,可预训练 |
| BitNet b1.58 | 原生低比特 | W1.58A8 | 须从头训 | 提前规避 | 乘法变加法 | 三值权重,能耗革命 |
| ParetoQ | 原生低比特 | 1–4bit 统一 | 须 QAT | 提前规避 | 2-bit 最优 | 回答"该用几比特" |
竖着读任意一列,就是一个筛选维度:想不训练直接压 → 选 GPTQ/AWQ;想真省算力而不止显存 → 必须让激活也低比特(SmoothQuant/旋转派/NVFP4);想触及理论极限 → 走原生低比特训练(BitNet/ParetoQ)。没有银弹,只有约束下的最优。
三条结论,收束全文
① 离群值是永恒的敌人,"抹平"是当前最优解。从躲(补偿)到搬(迁移)再到抹(旋转),PTQ 的每一次代际跃迁都在更彻底地处理激活离群值;旋转派之所以是 W4A4 的 SOTA,正因为它是唯一能把离群能量真正消除、而非搬运的思路。
② 省显存 ≠ 真加速,认清你到底要什么。W4A16(GPTQ/AWQ)只省显存、不省算力;只有 W8A8/W4A4(激活也量化)才吃得上低比特 tensor core。选型第一问永远是:"我是显存受限,还是算力受限?"
③ 两条路线正在合流,2026 的主旋律是"协同设计"。PTQ 越做越低(sub-1-bit、旋转 W4A4),训练侧从 BitNet 三值扩展到 NVFP4 原生训练——
数值格式 × 旋转变换 × 低比特训练方案三位一体协同优化,而非各自为战,是接下来几年的确定性方向。
一页总结全文
PTQ 的三条路——GPTQ(Hessian 补偿)、AWQ/SmoothQuant(缩放迁移)、QuaRot/SpinQuant(旋转消除离群值),本质都在驯服激活离群值;旋转派是当前 W4A4 的 SOTA。
数值格式从 INT4 走向硬件原生的 FP8 / NVFP4,用浮点的非均匀性契合权重分布。
KV-Cache 量化是长上下文时代的必备。
训练侧原生低比特——BitNet b1.58 用三值权重把乘法变加法,ParetoQ 证明 2-bit/三值在 Pareto 前沿上最优。
两条主线正在合流:
数值格式 × 旋转变换 × 低比特训练方案的协同设计,是 2026 年及以后的主旋律。