章节导航 第 13 章 / 共 16 章
量化与模型压缩
INT8、INT4、FP8——在精度与效率之间寻找最优平衡
为什么需要量化
一个 70B 参数的模型,以 FP16 存储需要 140 GB 显存。这意味着:
- 至少需要 2 张 H100(80GB 版)才能装下
- 推理速度受限于从显存读取权重的带宽
- 部署成本高昂
量化(Quantization)将模型参数从高精度(FP16/BF16)映射到低精度(INT8/INT4/FP8),带来三重收益:
- 显存减少:INT4 量化可将 70B 模型压缩到 ~35GB,单卡可跑
- 速度提升:更少的数据传输 → 更高的有效内存带宽
- 成本降低:更少的 GPU → 更低的部署成本
核心挑战是:如何在压缩的同时最小化精度损失。
⚠️ 这个框架在 2026 年出现了例外。 当压缩产线的恢复阶段把教师锚定在”未压缩的原始模型”而非”压缩后的全精度近似”时,4-bit 学生在 9 个基准中的 7 个反超了自己的 BF16 源模型(详见 §量化感知训练(QAT)的新浪潮)。换言之,一部分所谓的”量化损失”其实来自恢复目标选错,而不是位宽本身。这不意味着量化没有代价——而是说”损失”这个词的归因需要更小心。
量化基础
均匀量化
最简单的量化方式——将浮点数线性映射到整数:
其中 是 scale(缩放因子), 是 zero-point(零点), 是目标比特数。
反量化(推理时):
对称 vs. 非对称量化
对称量化:,范围关于零对称
非对称量化:,可以更好地利用量化范围
对于权重矩阵(通常近似零均值),对称量化足够。对于激活值(可能有偏移),非对称量化更准确。
量化粒度
| 粒度 | 每个缩放因子覆盖 | 精度 | 开销 |
|---|---|---|---|
| Per-Tensor | 整个权重矩阵 | 低 | 极小 |
| Per-Channel | 权重矩阵的一行/列 | 中 | 小 |
| Per-Group | 一组连续元素(如 128 个) | 高 | 中 |
| Per-Element | 每个元素独立 | 最高 | 大 |
现代方法通常使用 per-group 量化(group size = 64 或 128),在精度和开销之间取得好的平衡。
训练后量化(PTQ)
PTQ(Post-Training Quantization)不需要重新训练模型,直接在已有权重上进行量化。
GPTQ
GPTQ(Frantar et al., 2022)是最早的高效 LLM 量化方法之一。基于 OBS(Optimal Brain Surgeon) 框架,逐列量化权重,同时更新剩余列来补偿量化误差:
GPTQ 的关键创新:
- 使用少量校准数据(128-256 条)计算 Hessian
- 逐列处理,允许后续列”修正”前面列的误差
- 一个 175B 模型约 4 GPU 小时即可完成量化
AWQ(Activation-Aware Weight Quantization)
AWQ(Lin et al., 2023)的核心洞察:不是所有权重同等重要——对应高激活值的通道更重要。
- 统计校准数据上的激活值分布
- 识别”重要通道”(激活值大的)
- 对重要通道使用更高精度(或等效的 scale 调整)
# AWQ 的核心思想(简化)
activation_scales = calibration_data.abs().mean(dim=0)
important_channels = activation_scales > threshold
# 对重要通道放大 scale,相当于给它们更多的量化精度
w_scaled = w.clone()
w_scaled[:, important_channels] *= scale_factor
w_quantized = quantize(w_scaled)
AWQ 在 INT4 量化上通常比 GPTQ 精度更高,尤其是在极端量化(INT3)时。
SmoothQuant
SmoothQuant(Xiao et al., 2023)解决了激活值量化的难题。
问题:权重通常分布均匀,容易量化;但激活值可能有极端 outlier(某些通道的值比其他通道大 100 倍),导致量化精度极差。
SmoothQuant 的解决方案——数学上等价地将量化难度从激活值转移到权重:
选择合适的 使 和 都容易量化。实践中:
这使得 W8A8(权重和激活都是 INT8)成为可能,吞吐量接近 2 倍。
一个前提在 2026-10 被拿掉了:激活量化不一定要校准数据。 注意上面这套推导真正依赖的是 ——一个从校准集上统计出来的激活幅值。DualQuant(arXiv:2610.13767,Salmani / Sharify / Mostafa,2026-10-09)的观察是:最小化权重重建 MSE 得到的缩放因子,本身就已经是有效的逐通道激活重缩放——也就是说,为权重算出来的那组 scale,顺带解决了激活侧的问题,激活量化因此可以完全免校准。它把问题写成不可微的权重重建问题,用变量分裂 + 块坐标下降求解(每个子问题有闭式更新),并统一支持整个 MX 家族与 NVFP4——作者称是首个正式支持 MX / NV 块格式的双尺度方法。在 WikiText-2、C4 与零样本下游任务上,它在多数模型与格式上达到或超过需要校准的 SmoothQuant,并大幅超过此前的免校准基线(MX / NV 块格式上增益尤其大)。
要点不是”又多了一个方法”,而是“没有校准集”不再构成 W+A 量化的否决条件——这对校准集与线上分布不一致的场景尤其关键,而那恰恰是”校准”最容易失效的地方(校准集代表性不足时,SmoothQuant 的 会把错误的幅值配比固化进权重)。
⚠️ 口径:论文给的真实打包 W4A4 推理路径实测为 RTX 4090 上的 Llama-3.1-8B,相对 BF16 最高 2.61× 显存下降、2.46× 吞吐提升(摘要原文为 “up to”,是上界不是典型值)。这个分母与本章 Minima 那组 B200/DGX Spark 上的 3.1×/3.9× 不是同一硬件、同一模型、同一 batch,不可并列比较,也不要拿它去替换本章已有的速度数字。
FP8 量化
H100 GPU 原生支持 FP8 计算(E4M3 和 E5M2 两种格式),这为量化带来了新范式。
FP8 vs. INT8
| 特性 | INT8 | FP8 (E4M3) |
|---|---|---|
| 范围 | [-128, 127] | [-448, 448] |
| 精度 | 均匀分布 | 靠近 0 精度更高 |
| 硬件支持 | 通用 | H100+ |
| 动态范围 | 需要精心选择 scale | 自带指数位 |
| Tensor Core 加速 | 有 | 有(H100 更快) |
FP8 的优势在于更大的动态范围——对于有 outlier 的激活值更友好。
训练时 FP8
DeepSeek V3 开创性地在训练中使用 FP8:
- 前向传播:FP8 GEMM
- 反向传播:FP8 梯度
- 主权重:FP32(用于精确更新)
训练 FLOPs 减少约 40%,质量几乎无损。
异常值的根本来源:TWEO(Transformers Without Extreme Outliers,CVPR 2026)
传统观点认为激活中的异常值是数据驱动的工程难题,DeepSeek V3 等方案用复杂的 per-channel 缩放/分块量化来”转移”或”压制”这些异常值。TWEO 从根本上挑战了这一观点——极端异常值是训练的机械伪影,源于权重矩阵的共线性(colinearity)结构属性。
- 核心洞察:异常值不是数据本身的问题,而是权重矩阵结构在训练中的副作用
- 解决方案:一个简单的非侵入式损失项,将异常值从 10000+ 压缩到 20 以下
- 效果:
- 全模型 FP8 预训练,训练吞吐量提升 36%
- 性能与 BF16 基线相当
- 硬件友好的 W8A8 per-tensor 静态量化(之前因异常值被认为完全不可用)首次达到 SOTA
TWEO 的启示:从根源消除异常值(loss 设计)比”转移”(SmoothQuant)或”分块绕开”(DeepSeek V3 工程技巧)更优雅。代表量化技术从”对抗异常值”到”消除异常值”的范式转变。
第四条路线:不消除,而是重新分组来”容纳”它。 TWEO 的方案优雅,但它有一个隐含前提——你必须能改训练(要加一个 loss 项)。对已经训好、无法重训的 checkpoint,选项仍然只能在量化侧做文章。
OCGQuant(2026-08)把 NVFP4 的异常值问题重新表述了一遍:在一个量化块内,大激活会主导 block scale,抬升同块内其余取值的量化误差——作者给这个量起了个名字,叫附带量化误差(Collateral Quantization Error)。已有的 PTQ 手段(混合精度、旋转、残差补偿)要么不是专为 NVFP4 设计,要么引入额外计算。OCGQuant 的做法是从通道分组入手:自适应地把异常值通道与一个低幅度”伴生通道(companion channel)“配成一组,让 block scale 的动态范围被两个通道分摊,而不是被一个通道吃掉。在 Llama 3 与 Qwen 3 上,它在所评测的 PTQ 方法中取得最低的 WikiText-2 困惑度与最高的平均下游准确率,prefill 加速接近 RTN 基线,峰值解码显存与 RTN 持平。
把四条路线按是否需要动训练排一遍,工程选型时这个维度比”哪条更新”更实用:
| 路线 | 代表 | 对异常值做什么 | 需要重训? | 适用前提 |
|---|---|---|---|---|
| 转移 | SmoothQuant | 把难度从激活搬进权重 | 否(PTQ) | 已有 checkpoint 即可,但除 DualQuant 一类免校准方法外,仍需代表性校准数据 |
| 绕开 | DeepSeek V3 分块量化 | 分块缩小异常值的影响范围 | 否(PTQ) | 已有 checkpoint 即可 |
| 容纳 | OCGQuant | 重排块内通道构成,让 scale 被分摊 | 否(PTQ) | 已有 checkpoint 即可 |
| 消除 | TWEO | 用 loss 项抑制权重共线性,从源头去掉异常值 | 是(训练期) | 能介入预训练/微调 |
注意这张表的读法:“消除”是唯一需要重训的一条,也是唯一一条对存量模型不可用的。剩下三条都是 PTQ,可以叠在同一个 checkpoint 上比。所以”TWEO 更优雅”不等于”TWEO 更可落地”——对拿到一个已训好权重、只想把它压到 4-bit 的人,可用的只有前三条。
量化感知训练(QAT)的新浪潮:ACL 2026
长期以来,PTQ 主导了 LLM 量化的工业实践——因为全量 QAT 训练成本过高,“QAT 太贵”的刻板印象深入人心。但 ACL 2026 上涌现的 QAT 论文集群表明,这一格局正在被打破。四条技术路线齐头并进:
参数高效 QAT → PE-QAT。 PE-QAT(Shresth Mishra, ACL 2026 SRW)冻结基座模型,仅训练 LoRA 适配器(1.26% 参数),在合并权重上施加伪量化后微调——让适配器显式补偿量化噪声。在 Llama-2-7B 零样本任务上,精度仅比全精度基线低 0.11 个百分点。证明了”QAT 太贵”不再成立。
渐进式多精度 QAT → Bit-by-Bit。 Bit-by-Bit(Binxing Xu et al., ACL 2026 Long Paper)是目前最激进的 QAT 方案之一。三个核心组件:(1) 逐块渐进训练——逐阶段降低精度确保低比特优化起点稳定;(2) 嵌套整数量化网格——实现“一次训练,任意精度部署”(train once, deploy any precision),单一模型支持多种位宽无需重训;(3) 舍入感知离群通道分裂。W2A2 下比 BF16 加速 11×,WikiText-2 PPL 仅比全精度高 2.25。
推理导向 QAT → ReQAT。 ReQAT(Janghwan Lee et al., ICML 2026)针对大推理模型的部署瓶颈,提出 FP4 全量化方案(W4A4KV4)。关键洞察:FP4 失败集中在低熵 token——数字、运算符等精确符号承诺——量化噪声在此放大采样误差并通过推理链级联。它用三个组件叠加:TAQ(token 对齐 QAT)、Q-FIT(KV 缩放平移 + 损失)、SEM(低熵 token 置信度强化),消融显示精度随三者叠加单调上升。
但”反超”是模型相关的,不是无条件成立的。 在论文自己的两个基座上:
| 模型 | 基准 | BF16 基线 | BF16 全微调 | ReQAT(NVFP4 W4A4KV4) | 相对 BF16 微调 |
|---|---|---|---|---|---|
| R1-Qwen-14B | AIME-120 | 56.83 | 65.46 | 65.94 | +0.48(反超) |
| R1-Llama-8B | AIME-120 | 36.67 | 48.75 | 41.85 | −6.90(落后) |
也就是说,本章常被引用的那句”4-bit 反超全精度”,在论文里是 1 胜 1 负:同一个方法、同一套训练预算,在一个基座上刚够到全精度微调的肩部,在另一个基座上差了近 7 个百分点。选型前必须在自己的基座模型上实测,不能把单一模型上的反超直接外推。
值得对比的是吞吐侧——那里没有这种模型依赖性:Blackwell 上基于 TensorRT-LLM 的端到端 serving 吞吐为 B200 3.1×、DGX Spark 3.9×(相对 BF16 基线)。精度收益是条件性的,速度收益不是,这正是 FP4 QAT 的现实形态。
📌 一个容易漏掉的评测细节:FP4 对低熵 token 的损伤在贪心解码下会被部分掩盖,只有采样解码才充分暴露。论文的解码对照表(R1-Llama-8B)显示:采样(T=0.6、top-p=0.95)下 BF16 微调与 FT+PTQ 的差距稳定在 11.05–15.42 个百分点,而贪心(T=0、top-k=1)下只有 7.50–15.00、且随训练 epoch 剧烈波动。原因是量化抬高的是尾部的概率质量比,即使 argmax 排序不变,采样也会把质量挪到错误分支上。评估量化后的推理模型,不能只报 greedy 分数。
数据高效 QAT → LC-QAT。 LC-QAT(Haoyu Wang et al., 2026-07-01)切换到向量量化路线——通过学习仿射映射在离散向量上表示量化权重。核心优势:仅需 0.1% 训练数据即可超越 SOTA QAT 方法。推翻了”QAT 需要大量数据”的固有认知。
教师选择 → QAH(Quantization-Aware Healing)。 前四条都在改”学生怎么练”,QAH 改的是“跟谁学”。
这里有一个容易被忽略的事实:结构化压缩后的 BF16 checkpoint 从来不是独立训练出来的全精度模型,它本身就是对原始模型的一次蒸馏近似,已经携带了压缩带来的容量损失。默认方案(QAT)拿它当教师,等于把学生的天花板钉在了一个降级目标上。此外 QAT 还有两个毛病——收敛慢,且过了峰值会崩,需要靠留出信号小心翼翼地早停。
QAH(Multiverse Computing)的改动只有一处:把教师换回未压缩的原始模型(冻结、离线预计算 teacher logits,KL 目标蒸馏 4-bit 学生)。在 GPT-OSS 120B→60B→MXFP4 产线上,9 个基准中 7 个达到或超过自己的 BF16 源——AA-LCR 长上下文 +7.4、AIME 2025 +5.6、Aider +2.7、τ²-bench +2.3、GPQA Diamond +1.7、IFBench +1.5、LiveCodeBench +1.0,落后的只有 MMLU-Pro(−0.2)与 SciCode(−1.4);权重显存约为 1/4、参数量为教师一半。相对配对的 QAT 基线,峰值快约 7× 达到且继续训练不崩,无需人工早停。已开源 Hypernova-60B。
⚠️ 局限(论文自述):仅验证 GPT-OSS 单一压缩链路与 9 个固定任务;不同分布式训练后端之间存在可复现的质量差距;结构化压缩所用工具未完全开源。
📌 待核实:上一段中 GPQA Diamond +1.7、IFBench +1.5、LiveCodeBench +1.0 三项为 Figure 2 图表读数,论文正文未以文字给出(正文只逐条列出 AA-LCR / AIME 2025 / Aider / τ²-bench 四项增益与 MMLU-Pro / SciCode 两项回退)。三者的正负方向与”7/9 反超”的计数自洽(4 项正文增益 + 3 项图读增益 = 7),但具体数值引用前建议回看 Figure 2。
五篇论文的共同信号:QAT 正从”补偿量化噪声”进化为”以低精度为目标训练”,再进化到”向原始模型而非压缩近似学习”——从 PTQ 的”先训练再压缩”到 QAT 的”训练即压缩”,再到 QAH 的”教师的正确性”。ACL 2026 是这一转变的标志性会议。
极端量化:INT4 及以下
GGUF 格式
llama.cpp 定义的 GGUF 格式支持多种量化方案:
| 格式 | 位宽 | 方法 | 70B 模型大小 | 质量 |
|---|---|---|---|---|
| Q8_0 | 8-bit | 对称量化 | ~70 GB | 几乎无损 |
| Q6_K | 6-bit | 超级块混合 | ~54 GB | 很小损失 |
| Q5_K_M | 5-bit | 超级块混合 | ~48 GB | 小损失 |
| Q4_K_M | 4-bit | 超级块混合 | ~40 GB | 可接受 |
| Q3_K_M | 3-bit | 超级块混合 | ~30 GB | 明显损失 |
| Q2_K | 2-bit | 超级块混合 | ~25 GB | 显著损失 |
“K-quant” 方法使用超级块(super-block)结构,不同的块使用不同的量化参数,在极端低比特下维持更好的精度。
混合精度量化
不同层对量化的敏感度不同。SpQR 等方法识别出”敏感”权重(outlier),将它们保持在高精度,其余量化到低精度:
典型策略:
- 第一层和最后一层:INT8(对精度敏感)
- 中间层:INT4(不敏感)
- Attention 的 Q, K 投影:INT8(位置信息敏感)
- FFN 权重:INT4(最容易量化)
限定:以上策略针对标准 Transformer,属于经验归纳。层敏感度的直觉在新架构上会失效——见下。
反例:混合架构里”大家都保护的那层”,其实是”最不敏感的那层”。 在含 Gated DeltaNet(GDN)的混合架构模型上,社区对 4-bit 量化的惯例是把 GDN 块、尤其是其 decay 与 write-strength 门控留在 8/16-bit,理由是”循环结构里的误差会随上下文累积”。MNMA AI 的 Minima 实验把这个直觉推翻了:把全部 496 个线性层(含门控)量化到 NVFP4 W4A4,结果在种子噪声范围内追平 BF16(5 任务平均 −0.52),而且是对比方案中最小的(17.5 GiB)与 prefill 最快的(+14–19%)。
四条机理值得记住:
- NVFP4 的 16 元素块缩放把残差流的极端异常值局限在自身块内;
- softplus/exp 与 sigmoid 参数化对误差是压缩性的——约 11% 的 GEMM 误差被压成约 2% 的输出误差。让门控”概念上脆弱”的非线性,在算术上其实是减震器;
- delta rule 不是累加器,而是不断被覆写的寄存器,因此误差不累积(注入的噪声在 32K token 内保持平坦);
- 每 token 的量化代价随上下文被冲淡而非累积——最反直觉的实测是:32K 困惑度差距随位置增大而缩小,上下文越长,量化模型相对越好。
结论:谁最脆弱不能靠直觉定,要靠敏感度实测(arXiv:2609.04098)。这条对本节开头那张经验表同样适用。
论文还给出三条对部署直接有用的工程结论,本章此前未写入:
- 一个静默失败模式:全局 scale 失配。 按 module 分别校准出来的 NVFP4 checkpoint,如果被”把这些 module 融合成单个 GEMM”的 kernel 服务,就会出现全局 scale 失配。它的危害在于不报错,只静默降质——而且坏了 GDN 门控之后,长上下文困惑度反而看起来更好(伪造的改善)。这类故障没有堆栈、没有告警,只能靠”分模块校准 vs 融合 serving”两套数对拍才能发现。同一个失效模式在参考实现层面也出现过,而且更极端:1-bit 参考实现的 FFN 激活函数错配让困惑度从 17.1 变成 99.8,同样不报任何错(见 §1-bit 模型的当前限制第四条)。
- 校准过的 FP8 KV-cache scale 是”免费”的性能开销,应当随 checkpoint 一起发布。 FP8 KV 把 KV 显存减半且不移动任何任务分数,唯一可见代价是 32K 处 +0.41 的困惑度惩罚(在量化模型上被放大约 3 倍);改用校准的 per-layer scale 后这个惩罚消除 83%,而吞吐变化在 0.4% 以内——即服务期零成本。作者把整套配方概括成一句话:quantize everything, ship KV scales。
- 评测侧:对 thinking 类模型,raw-completion harness 是无效的。 lm-eval 的 local-completions 路径不套 chat template 直接发 few-shot prompt,于是”关闭思考”这条指令根本到不了模型:在 MMLU-Pro 上,50 道采样题里有 25–48 道仍然打开了
<think>,随后被截断或自我中断,导致逐科目分数在两个方向上摆动 ±40–60 分(无效读数 66.3/58.6,对比正确 harness 下的 80.4/79.7,BF16/Minima)。量化前后差 3 个点的结论,完全可能被 harness 选型错了带来的 ±50 点噪声吞掉——评量化模型之前,先确认你的 harness 走的是 chat template。
📌 顺带一提:第 2 条意味着”KV cache 用什么精度”这个问题的答案在 2026 年已经比较明确——不是精度越高越好,而是 scale 校准得对不对。显存减半是白拿的,代价只在校准。
向量量化:INT2 领域的探索
当量化推向 2-bit 极端时,传统的标量量化(逐元素映射)精度崩塌。AQLM(Additive Quantization for LLMs)和 QuIP#(随机化 Hadamard 变换 + 向量量化)代表了另一种思路——向量量化(VQ),将多个权重联合编码到一个 codebook 条目中。在 2-bit 量化下,AQLM 和 QuIP# 显著优于 GPTQ/AWQ 等标量方法。当前限制在于 codebook 查找的推理速度开销,实际加速效果因硬件和实现而异。
NVFP4 时代的缩放优化:ScaleSweep
随着 NVFP4 成为 Blackwell 架构的事实标准,块缩放(block scaling)初始化成为新的关键技术问题。ScaleSweep(arXiv 2026)解决 NVFP4 PTQ 中的缩放初始化难题:
- 背景:NVFP4 与传统 INT4 量化的两个关键区别——微块缩放(micro-block scaling)的使用 + FP4 数据类型本身——使得现有的缩放初始化技术(针对 INT 量化的 AbsMax、4/6 策略)无法直接适用
- 方案:ScaleSweep 专门针对 NVFP4 的块缩放初始化,比 AbsMax 启发式和 4/6 策略更接近最优解
- 意义:NVFP4 在激进压缩下实现实际低比特 LLM 推理的关键支撑
ScaleSweep 标志着 PTQ 工具链正在从”INT 时代”向”FP 时代”分化——量化的物理特性变了,缩放策略必须重新设计。
闭式配比与块缩放,其实可以一起优化。 到这里为止,本章写了两条彼此独立的线:SmoothQuant 的 是一个闭式启发式(按激活/权重最大值的 次幂配比, 要人工调),ScaleSweep 解决的是块缩放的初始化。OSFP4(arXiv:2610.08231,Ben David / Meir / Ordentlich,2026-10-06)把这两件事合成一个联合优化问题:对每个线性投影学一个对角平滑矩阵,其元素与 NVFP4 块缩放联合优化,目标直接是矩阵乘量化误差的平方。
关键差别在两处:
- 舍入方式被纳入了优化目标——优化时显式考虑用的是 round-to-nearest 还是 GPTQ 式逐次干扰消除。此前的平滑类方法都是先定 scale 再谈舍入,OSFP4 把顺序反了过来。
- 联合优化之所以可行,是因为它分析的是乘性抖动 FP4 量化器,而不是那个固定的确定性量化器——后者会让平滑条目与块缩放的联合目标不可解。
在所评测设置中它的平均精度最高,同时保留厂商 NVFP4 prefill 吞吐的约 94–97%。
一句话落点:SmoothQuant 的 是一个需要人工调的启发式,OSFP4 把它变成了一个可优化量。 这与本章从「对抗异常值」(分块)到「消除异常值」(TWEO)再到「容纳异常值」(OCGQuant)的演化是同一条脉络的继续——从手工配方转向目标驱动。另外,94–97% 这条对本章「精度 vs 速度」的取舍讨论是个有用的锚点:不是所有精度补丁都要付出吞吐代价,把”提精度”默认等同于”降速度”是一种常见的误判。
知识蒸馏
知识蒸馏(Knowledge Distillation)是另一种模型压缩方法——用大模型(teacher)教小模型(student):
其中 是温度参数(通常 1-4),升高温度使 teacher 的概率分布更”软”,传递更多的暗知识(dark knowledge)。
LLM 蒸馏的特点
- 逐 token 蒸馏:对齐 teacher 和 student 在每个位置的输出分布
- 特征蒸馏:对齐中间层的 hidden states
- 数据蒸馏:用 teacher 生成高质量训练数据,给 student 训练
Phi 系列(Microsoft)是数据蒸馏的典范——用 GPT-4 生成高质量”教科书”数据,训练出远超同规模的小模型。
开源蒸馏案例
| Teacher | Student | 方法 | 效果 |
|---|---|---|---|
| GPT-4 | Phi-3 3.8B | 数据蒸馏 | 3.8B 接近 Mixtral 8x7B |
| LLaMA 70B | LLaMA 8B | 逐 token | 8B 提升 5-10% |
| DeepSeek R1 671B | DeepSeek R1 系列 | 数据蒸馏 | 7B/14B/32B 等 |
剪枝(Pruning)
剪枝移除模型中不重要的参数/结构:
非结构化剪枝
SparseGPT 可以将 LLM 剪枝到 50-60% 稀疏度,几乎不损失精度:
- 逐列处理权重矩阵
- 找到可以安全移除的权重
- 更新剩余权重补偿误差
问题:非结构化稀疏在通用 GPU 上无法加速(需要稀疏计算硬件支持)。
结构化剪枝
移除整个 attention head、FFN 神经元或整层:
- LLM-Pruner:基于梯度信息选择剪枝目标
- ShortGPT:发现中间层高度冗余,直接删除
- Width pruning + Depth pruning 组合
结构化剪枝可以直接加速,但通常需要后续微调恢复精度。
量化实战建议
场景选择
| 场景 | 推荐量化方案 | 原因 |
|---|---|---|
| 生产部署(精度敏感) | FP8 或 W8A8 | 几乎无损,硬件加速好 |
| 生产部署(成本敏感) | AWQ INT4 | 精度/成本最优平衡 |
| 本地推理(消费级 GPU) | GGUF Q4_K_M | llama.cpp 生态好 |
| 本地推理(MacBook) | GGUF Q5_K_M/Q6_K | Metal 加速 |
| 边缘设备 | INT4 + 蒸馏小模型 | 极端资源受限 |
| 研究/评估 | FP16/BF16 | 基线精度 |
量化质量检查
验收的默认假设应当是「出了问题是无声的」。 量化故障很少以报错的形式出现——它更常表现为一个跑得通、输出通顺、只是更差的结果。本章已经记录了两个同族案例:Minima 的全局 scale 失配(坏了门控之后长上下文困惑度反而看起来更好),以及 1-bit 参考实现的 FFN 激活函数错配(困惑度 99.8 vs 17.1,无告警)。因此下面四项检查不能只做第一项(PPL):PPL 会被”伪造的改善”骗过,需要一个下游 benchmark 与人工抽检同时过线才算验收完成。
量化后务必做以下检查:
- Perplexity 对比:量化模型 vs. FP16 模型在验证集上的 PPL 差异
- Benchmark 对比:关键评估指标(MMLU、HumanEval 等)的变化
- 人工抽检:特别关注长文本生成、数学推理、代码生成的质量
- 边界情况:罕见语言、专业术语、长上下文等场景
适用路线限定:以下门槛针对 PTQ(先训练、再压缩)。对 QAT / QAH 这类”以低精度为目标训练”的路线,学生超过全精度源模型已经可复现,这套”损失可接受度”判据并不适用——用它去衡量 QAT 产物,会把好结果误判成异常。
可接受的精度损失参考:
- PPL 增加 < 0.5: 优秀
- PPL 增加 0.5-1.0: 可接受
- PPL 增加 > 1.0: 需要谨慎评估
- MMLU 下降 < 1%: 优秀
- MMLU 下降 1-3%: 可接受
- MMLU 下降 > 3%: 需要重新评估量化方案
2025-2026 前沿:FP4 训练与 1-bit 模型
量化技术在 2025-2026 年分化为三个层次:
原生低精度训练(FP8/FP4)
DeepSeek V3 首次在生产级模型训练中全面使用 FP8,证明了在不牺牲模型质量的前提下可以将训练成本降低约 40%。2025 年,FP4 训练从”未来方向”快速变为”已可实验”——Quartet(IST-DASLab, 2025.05)在 NVIDIA Blackwell 架构上实现了端到端 FP4 训练,包括线性层前向/反向和梯度累积均使用 FP4,在 LLaMA 系列模型上训练精度与 FP16 可比。NVIDIA 官方也确认 Blackwell 第五代 Tensor Core 原生支持 FP4 推理和训练,开源工具链(FP-Quant 集成到 transformers 和 vLLM)已就绪。
进一步,Metis(ICLR 2026)从各向异性参数分布的理论视角解释了 FP4 训练的核心困难:权重矩阵的少量大奇异值产生宽数值范围,导致均匀量化时产生严重的量化偏差。Metis 的解决方案是通过谱分解将宽分布拆分为窄子分布,对各子分布独立量化,从而从根本上消除了大奇异值对量化的干扰。在 LLaMA-3 8B / 100B tokens 上,Metis 实现了 W4A4G4(权重、激活、梯度均为 4-bit)的全 FP4 训练,仅 0.4% loss gap 和 0.1% 下游精度下降,且超越了 NVIDIA 官方 FP4 方案。Metis 的贡献使 FP4 训练从”已可实验”推进到”有理论支撑的可靠方案”。
第三条路线:振荡与异常值双控 → TetraJet-v2。 清华与 Bosch AI Research 指出,低精度训练还有两个此前被低估的瓶颈——权重振荡与异常值,并给出三个组件:无偏双块量化(使 NVFP4 线性层达到近乎最优的收敛)、OsciReset(首个有效抑制权重振荡的算法)、OutControl(用混合精度保住异常值精度)。所有线性层的激活、权重、梯度全部使用 NVFP4,在最大 370M 参数、212B tokens 的规模上,把 FP4 与 BF16 的性能差距平均缩小 51.3%,相对 FP8 端到端加速 1.67×(arXiv:2510.27527,ICML 2026)。
值得注意的是,论文明确指出 NVIDIA 官方的 NVFP4 预训练配方并非全 4-bit——部分 Transformer block 仍用 BF16,最终阶段还要提精度。因此”端到端全 4-bit”仍有开放空间。
⚠️ 规模限制:370M 参数距生产级模型还有几个数量级,不可与 DeepSeek V3 的 FP8 生产验证并列看待。
值得注意的是,2026 年主流推理框架(vLLM、SGLang、TensorRT-LLM、LMDeploy)均已默认支持 FP8 量化推理,FP8 从”新选项”变为”默认选项”——这为 FP4 的后续普及奠定了生态基础。
SharQ:FP4 + 激活稀疏协同(2026 H1)
SharQ(arXiv 2026)是一种训练无关的推理方法,将激活稀疏性与 FP4 量化协同使用:
- 架构创新:N:M 稀疏掩码提取”异常值主导”的稀疏主干 + 密集 FP4 残差补偿掩码引起的激活损失和稀疏路径量化误差
- 三个实用化设计:
- 融合准备核(吸收掩码生成、残差构建、层归一化)
- 共享 FP4 权重
- 路径特定缩放视图
- 性能:Llama-3.1-8B FFN 上 GEMM 加速 28-34%,相比 NVFP4 仅 11.2% prefill 开销
SharQ 开辟了”稀疏+低比特”组合加速的新路径——硬件加速稀疏(如 Ampere/Hopper 的 2:4 稀疏模式)与 NVFP4 兼容,训练无关意味着可以直接在现有 FP4 量化模型上叠加使用。
NVIDIA 官方 FP4 技术综述(2026-06-29)
NVIDIA EAI 2026-06-29 发布”Pushing Intelligence to 4-bit”技术综述,标志着 FP4 从纯存储压缩演变为训练+推理+长视频生成的完整生命周期支持。核心要点:
- FP4 仅 15 个数量级的表征能力是最大挑战,NVFP4 通过细粒度两级缩放(micro-block scaling)解决
- NVFP4 的微块缩放由 Blackwell 原生执行——这是硬件和算法深度协同的标志
- FP4 已扩展到 LLM 权重/激活、KV Cache、注意力、扩散视频生成全栈
AutoRound:综合量化工具链(Intel 2026-06 集成 vLLM-Omni)
Intel AutoRound 2026-06 正式集成到 vLLM-Omni(多模态推理),已演化为量化生态基础设施:
- 支持 INT2-INT4 多种位宽 + FP8 块量化
- 混合精度(AutoScheme API)
- 10+ VLM 模型支持
- 提供模型无关 RTN 模式(无需校准)
- 已集成到 vLLM、SGLang、Transformers、LLM-Compressor、TensorRT-LLM 等主流框架
AutoRound 标志着量化工具链从”单一方法(GPTQ/AWQ/SmoothQuant)“向”全场景综合平台”的演进。
1-bit 模型:从激进愿景到初步落地
BitNet 提出了从头训练 1-bit 权重模型的路线(权重只取 {-1, 0, +1}),理论上可将推理中的矩阵乘法替换为加减法,计算效率提升数倍。到 2025 年,这条路线出现了两个里程碑式进展:
原生训练路径:BitNet b1.58 2B4T(Microsoft Research, 2025.04)是首个开源的原生 1-bit LLM——2B 参数、4T tokens 训练,权重仅取 {-1, 0, +1},在 PPL 和下游任务上匹配同规模 FP16 模型的性能。Microsoft 同步开源了 BitNet 推理框架,声称 16x 内存节省。
后训练路径:PT-BitNet(Neural Networks, 2025.11)提出后训练方法将现有 LLM 量化为 1-bit,突破了 BitNet 必须从头训练的限制。这意味着 1-bit 不再是”另一种训练范式”——现有模型也可以走这条路。
当前限制:BitNet 2B4T 在 2B 规模上已充分验证,但 7B 及以上规模尚缺开源验证;推理框架虽已开源,但硬件生态(专用加减法指令加速)仍需完善。
第三条限制(2026-10 实测):1-bit 已从生成模型扩展到检索侧。 微软于 2026-07 上线 BitNet-embedding-0.6B 与 270M,是首批 1-bit 嵌入模型(HF 记录 0.6B 创建于 2026-07-15,最后更新 2026-07-17),用 I2_S 内核在 CPU prefill 上相对 FP16 快 1.32–2.28×(8 线程),面向 RAG / 语义检索 / 推荐。这条对本章的落点在于:嵌入模型比生成模型对精度损失更宽容(输出是一个向量而非一串 token,误差不会随解码步累积),因此 1-bit 的产业化很可能先在检索侧发生,而不是在 7B+ 对话模型上。
⚠️ 这条也有它自己的坑:官方仓库 issue #640(open)指出「已发布的 BitNet embedding GGUF 文件声明的是 MEAN pooling,而模型卡写的是 last-token」。即连池化方式这一层元数据都存在自相矛盾——用之前必须先自己验一遍,不要相信声明值。
第四条限制,也是本章最该写的一条:参考实现自身的健康度。 上述两条限制讲的是”技术还不成熟”,但 2026-10 的实际情况还有一层——参考实现 microsoft/BitNet 本身是一个需要 pin 和打补丁的研究产物(下列均为官方仓库一手状态,2026-10-16 核):
| 事实 | 一手来源 |
|---|---|
41,175 stars、MIT、无 tagged release(tags 端点返回空)、最后推送 2026-07-27 | GitHub API repos/microsoft/BitNet |
| 开放 issue + PR 合计 373 | 同上(open_issues_count) |
| FFN 用了 SiLU 而非 ReLU²,困惑度 99.8 vs 17.1(所有 CPU 后端) | issue #588(open) |
| FFN 激活函数错配导致每个后端的 logits 都是错的 | issue #602(open) |
| bitnet.cpp 困惑度比参考实现高约 6 倍(x86 与 aarch64) | issue #639(closed) |
| I2_S 在 ARM64/NEON、无 AVX2 的 x86、aarch64 上输出为垃圾 | issue #585 / #600 / #547 / #598 |
macOS / Apple Silicon:setup_env.py 构建失败,绕过之后 Metal 崩溃、CPU 输出为垃圾 | issue #641(open) |
为什么这一条值得单独占一段:它和前面 Minima 那条「全局 scale 失配——不报错,只静默降质」是同一类失效,只是发生在参考实现层面而非部署层面。PPL 99.8 vs 17.1 是一个不抛异常、不打印警告、只返回一个看起来正常的更差结果的 bug;一个静默产出低质量输出的实现,比”跑得慢”危险得多,因为你没有理由去怀疑它。
📌 一句话判据:评估任何低比特方案时,「跑起来了吗」和「跑对了吗」是两个问题。默认假设应当是”出了问题是无声的”,所以必须拿一个已知答案的基准(困惑度、下游分数)去对拍,而不是看着输出通顺就放行。这一条对 §量化质量检查 同样适用,见该节的四项检查。
注意力 1-bit 量化:上述 1-bit 路线均聚焦于权重量化,但 1-bit 化的潜力不止于此。BinaryAttention(CVPR 2026)将 QK 注意力量化为 1-bit,通过 XNOR + popcount 位运算替代浮点点积,在 A100 上比 FlashAttention2 快 2x+。这意味着 1-bit 模型的维度从权重扩展到了注意力计算本身——权重 1-bit 和注意力 1-bit 的组合有望带来更深层次的计算范式变革。
量化技术分层
| 层次 | 方法 | 精度 | 特点 |
|---|---|---|---|
| 原生训练 | FP8 Native | 8-bit | DeepSeek V3 生产验证,H100 原生支持,2026 年已成为框架默认 |
| 原生训练 | FP4 Native | 4-bit | Blackwell 原生支持,Quartet 端到端训练验证 |
| 训练后量化 | GPTQ/AWQ | INT4 | 成熟可用,精度损失小 |
| 训练后量化 | SmoothQuant | W8A8 | 激活量化,吞吐提升明显 |
| 极端压缩 | AQLM/QuIP# | INT2 | 向量量化,2-bit PTQ SOTA,推理速度仍受限 |
| 极端压缩 | BitNet/PT-BitNet | 1-bit | 2B 模型开源 + 推理框架就绪,>7B 尚未验证 |
2026 判断:FP8 已成为训练和推理的新默认精度(主流框架均已默认支持),H100/B200 原生支持。INT4 量化是端侧部署的标配。FP4 在 Blackwell 上已可用(Quartet 端到端验证),1-bit 原生模型首次开源(BitNet 2B4T),但大规模生产部署仍需硬件生态和 >7B 验证的完善。
2026-09 补充:(a) FP4 训练方面,除 Quartet 外已出现 Metis(谱分解,有理论支撑)与 TetraJet-v2(振荡/异常值双控)两条独立路线,但验证规模仍在 370M 参数量级,尚未到生产级;(b) 量化与蒸馏的边界正在模糊——QAH 表明 4-bit 学生可以反超全精度源模型,“量化必然有损”不再是无条件成立的前提(见 §量化感知训练的新浪潮)。但该结论具明显的模型依赖性:同为 FP4 QAT,ReQAT 在 R1-Qwen-14B 上以 65.94 反超 BF16 微调的 65.46,在 R1-Llama-8B 上却是 41.85 vs 48.75、落后 6.9 个百分点——即”能反超”是在某些模型上成立,不是普遍规律。引用这一条时请带上它的边界。
量化前沿:从推理端到预训练端。 Full-Stack FP4 Pretraining(中科院自动化所/四川大学/浙大等,2026-07-07)将 4-bit 量化前移到预训练阶段——不仅推理用 4-bit,训练本身也在 4-bit 精度下进行。框架覆盖了 LoRA-SVD 投影层噪声抑制、FP4 优化器变换和混合精度平衡三个核心模块,实现了端到端稳定的 4-bit 预训练。这开辟了量化技术栈的全新叙事线:量化不再只是”让已训练好的模型变轻”,而是开始参与训练过程本身。如果能在千亿参数规模验证成功,将量化的”全链路压缩”从口号变为现实。
章节小结
| 方法 | 压缩比 | 是否需要校准 | 硬件要求 | 适用阶段 |
|---|---|---|---|---|
| FP8 | 2x | 可选 | H100+ | 训练 + 推理 |
| W8A8 (SmoothQuant) | 2x | 需要(存在免校准替代,见 §SmoothQuant 末尾 DualQuant) | 通用 | 推理 |
| GPTQ (INT4) | 4x | 需要 | 通用 | 推理 |
| AWQ (INT4) | 4x | 需要 | 通用 | 推理 |
| GGUF (Q4) | 4x | 不需要 | CPU/GPU | 推理 |
| 知识蒸馏 | 可变 | 需要训练 | 通用 | 训练 |
量化不是万能药,但它是让大模型”飞入寻常百姓家”的关键技术。随着硬件对低精度计算的支持越来越好(H100 的 FP8、未来可能的 FP4),量化的边界还在不断拓展。