第 13 章 第四部分:推理与部署

量化与模型压缩

INT8、INT4、FP8——在精度与效率之间寻找最优平衡

量化 INT8 INT4 GPTQ AWQ 模型压缩 FP4训练 混合架构

为什么需要量化

一个 70B 参数的模型,以 FP16 存储需要 140 GB 显存。这意味着:

  • 至少需要 2 张 H100(80GB 版)才能装下
  • 推理速度受限于从显存读取权重的带宽
  • 部署成本高昂

量化(Quantization)将模型参数从高精度(FP16/BF16)映射到低精度(INT8/INT4/FP8),带来三重收益:

  1. 显存减少:INT4 量化可将 70B 模型压缩到 ~35GB,单卡可跑
  2. 速度提升:更少的数据传输 → 更高的有效内存带宽
  3. 成本降低:更少的 GPU → 更低的部署成本

核心挑战是:如何在压缩的同时最小化精度损失。

⚠️ 这个框架在 2026 年出现了例外。 当压缩产线的恢复阶段把教师锚定在”未压缩的原始模型”而非”压缩后的全精度近似”时,4-bit 学生在 9 个基准中的 7 个反超了自己的 BF16 源模型(详见 §量化感知训练(QAT)的新浪潮)。换言之,一部分所谓的”量化损失”其实来自恢复目标选错,而不是位宽本身。这不意味着量化没有代价——而是说”损失”这个词的归因需要更小心。

量化基础

均匀量化

最简单的量化方式——将浮点数线性映射到整数:

xq=round(x−zs),s=xmax⁡−xmin⁡2b−1x_q = \text{round}\left(\frac{x - z}{s}\right), \quad s = \frac{x_{\max} - x_{\min}}{2^b - 1}

其中 ss 是 scale(缩放因子),zz 是 zero-point(零点),bb 是目标比特数。

反量化(推理时):

x^=s⋅xq+z\hat{x} = s \cdot x_q + z

对称 vs. 非对称量化

对称量化:z=0z = 0,范围关于零对称 [−α,α][-\alpha, \alpha]

xq=round(xα⋅(2b−1−1))x_q = \text{round}\left(\frac{x}{\alpha} \cdot (2^{b-1} - 1)\right)

非对称量化:z≠0z \neq 0,可以更好地利用量化范围

对于权重矩阵(通常近似零均值),对称量化足够。对于激活值(可能有偏移),非对称量化更准确。

量化粒度

粒度每个缩放因子覆盖精度开销
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) 框架,逐列量化权重,同时更新剩余列来补偿量化误差:

argminW^∥WX−W^X∥22\text{argmin}_{\hat{W}} \|WX - \hat{W}X\|_2^2

GPTQ 的关键创新:

  • 使用少量校准数据(128-256 条)计算 Hessian
  • 逐列处理,允许后续列”修正”前面列的误差
  • 一个 175B 模型约 4 GPU 小时即可完成量化

AWQ(Activation-Aware Weight Quantization)

AWQ(Lin et al., 2023)的核心洞察:不是所有权重同等重要——对应高激活值的通道更重要。

  1. 统计校准数据上的激活值分布
  2. 识别”重要通道”(激活值大的)
  3. 对重要通道使用更高精度(或等效的 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 的解决方案——数学上等价地将量化难度从激活值转移到权重:

Y=(Xdiag(s)−1)⋅(diag(s)W)=X^W^Y = (X \text{diag}(s)^{-1}) \cdot (\text{diag}(s) W) = \hat{X} \hat{W}

选择合适的 ss 使 X^\hat{X} 和 W^\hat{W} 都容易量化。实践中:

sj=max⁡(∣Xj∣)αmax⁡(∣Wj∣)1−α,α∈[0.5,0.75]s_j = \frac{\max(|X_j|)^\alpha}{\max(|W_j|)^{1-\alpha}}, \quad \alpha \in [0.5, 0.75]

这使得 W8A8(权重和激活都是 INT8)成为可能,吞吐量接近 2 倍。

一个前提在 2026-10 被拿掉了:激活量化不一定要校准数据。 注意上面这套推导真正依赖的是 max⁡(∣Xj∣)\max(|X_j|)——一个从校准集上统计出来的激活幅值。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 的 sjs_j 会把错误的幅值配比固化进权重)。

⚠️ 口径:论文给的真实打包 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

特性INT8FP8 (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-14BAIME-12056.8365.4665.94+0.48(反超)
R1-Llama-8BAIME-12036.6748.7541.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_08-bit对称量化~70 GB几乎无损
Q6_K6-bit超级块混合~54 GB很小损失
Q5_K_M5-bit超级块混合~48 GB小损失
Q4_K_M4-bit超级块混合~40 GB可接受
Q3_K_M3-bit超级块混合~30 GB明显损失
Q2_K2-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%)。

四条机理值得记住:

  1. NVFP4 的 16 元素块缩放把残差流的极端异常值局限在自身块内;
  2. softplus/exp 与 sigmoid 参数化对误差是压缩性的——约 11% 的 GEMM 误差被压成约 2% 的输出误差。让门控”概念上脆弱”的非线性,在算术上其实是减震器;
  3. delta rule 不是累加器,而是不断被覆写的寄存器,因此误差不累积(注入的噪声在 32K token 内保持平坦);
  4. 每 token 的量化代价随上下文被冲淡而非累积——最反直觉的实测是:32K 困惑度差距随位置增大而缩小,上下文越长,量化模型相对越好。

结论:谁最脆弱不能靠直觉定,要靠敏感度实测(arXiv:2609.04098)。这条对本节开头那张经验表同样适用。

论文还给出三条对部署直接有用的工程结论,本章此前未写入:

  1. 一个静默失败模式:全局 scale 失配。 按 module 分别校准出来的 NVFP4 checkpoint,如果被”把这些 module 融合成单个 GEMM”的 kernel 服务,就会出现全局 scale 失配。它的危害在于不报错,只静默降质——而且坏了 GDN 门控之后,长上下文困惑度反而看起来更好(伪造的改善)。这类故障没有堆栈、没有告警,只能靠”分模块校准 vs 融合 serving”两套数对拍才能发现。同一个失效模式在参考实现层面也出现过,而且更极端:1-bit 参考实现的 FFN 激活函数错配让困惑度从 17.1 变成 99.8,同样不报任何错(见 §1-bit 模型的当前限制第四条)。
  2. 校准过的 FP8 KV-cache scale 是”免费”的性能开销,应当随 checkpoint 一起发布。 FP8 KV 把 KV 显存减半且不移动任何任务分数,唯一可见代价是 32K 处 +0.41 的困惑度惩罚(在量化模型上被放大约 3 倍);改用校准的 per-layer scale 后这个惩罚消除 83%,而吞吐变化在 0.4% 以内——即服务期零成本。作者把整套配方概括成一句话:quantize everything, ship KV scales。
  3. 评测侧:对 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 的 sjs_j 是一个闭式启发式(按激活/权重最大值的 α\alpha 次幂配比,α\alpha 要人工调),ScaleSweep 解决的是块缩放的初始化。OSFP4(arXiv:2610.08231,Ben David / Meir / Ordentlich,2026-10-06)把这两件事合成一个联合优化问题:对每个线性投影学一个对角平滑矩阵,其元素与 NVFP4 块缩放联合优化,目标直接是矩阵乘量化误差的平方。

关键差别在两处:

  1. 舍入方式被纳入了优化目标——优化时显式考虑用的是 round-to-nearest 还是 GPTQ 式逐次干扰消除。此前的平滑类方法都是先定 scale 再谈舍入,OSFP4 把顺序反了过来。
  2. 联合优化之所以可行,是因为它分析的是乘性抖动 FP4 量化器,而不是那个固定的确定性量化器——后者会让平滑条目与块缩放的联合目标不可解。

在所评测设置中它的平均精度最高,同时保留厂商 NVFP4 prefill 吞吐的约 94–97%。

一句话落点:SmoothQuant 的 α\alpha 是一个需要人工调的启发式,OSFP4 把它变成了一个可优化量。 这与本章从「对抗异常值」(分块)到「消除异常值」(TWEO)再到「容纳异常值」(OCGQuant)的演化是同一条脉络的继续——从手工配方转向目标驱动。另外,94–97% 这条对本章「精度 vs 速度」的取舍讨论是个有用的锚点:不是所有精度补丁都要付出吞吐代价,把”提精度”默认等同于”降速度”是一种常见的误判。

知识蒸馏

知识蒸馏(Knowledge Distillation)是另一种模型压缩方法——用大模型(teacher)教小模型(student):

LKD=α⋅KL(log⁡pT(y∣x)τ,log⁡pS(y∣x)τ)+(1−α)⋅LCE\mathcal{L}_{\text{KD}} = \alpha \cdot \text{KL}\left(\frac{\log p_T(y|x)}{\tau}, \frac{\log p_S(y|x)}{\tau}\right) + (1 - \alpha) \cdot \mathcal{L}_{\text{CE}}

其中 τ\tau 是温度参数(通常 1-4),升高温度使 teacher 的概率分布更”软”,传递更多的暗知识(dark knowledge)。

LLM 蒸馏的特点

  • 逐 token 蒸馏:对齐 teacher 和 student 在每个位置的输出分布
  • 特征蒸馏:对齐中间层的 hidden states
  • 数据蒸馏:用 teacher 生成高质量训练数据,给 student 训练

Phi 系列(Microsoft)是数据蒸馏的典范——用 GPT-4 生成高质量”教科书”数据,训练出远超同规模的小模型。

开源蒸馏案例

TeacherStudent方法效果
GPT-4Phi-3 3.8B数据蒸馏3.8B 接近 Mixtral 8x7B
LLaMA 70BLLaMA 8B逐 token8B 提升 5-10%
DeepSeek R1 671BDeepSeek 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_Mllama.cpp 生态好
本地推理(MacBook)GGUF Q5_K_M/Q6_KMetal 加速
边缘设备INT4 + 蒸馏小模型极端资源受限
研究/评估FP16/BF16基线精度

量化质量检查

验收的默认假设应当是「出了问题是无声的」。 量化故障很少以报错的形式出现——它更常表现为一个跑得通、输出通顺、只是更差的结果。本章已经记录了两个同族案例:Minima 的全局 scale 失配(坏了门控之后长上下文困惑度反而看起来更好),以及 1-bit 参考实现的 FFN 激活函数错配(困惑度 99.8 vs 17.1,无告警)。因此下面四项检查不能只做第一项(PPL):PPL 会被”伪造的改善”骗过,需要一个下游 benchmark 与人工抽检同时过线才算验收完成。

量化后务必做以下检查:

  1. Perplexity 对比:量化模型 vs. FP16 模型在验证集上的 PPL 差异
  2. Benchmark 对比:关键评估指标(MMLU、HumanEval 等)的变化
  3. 人工抽检:特别关注长文本生成、数学推理、代码生成的质量
  4. 边界情况:罕见语言、专业术语、长上下文等场景

适用路线限定:以下门槛针对 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 残差补偿掩码引起的激活损失和稀疏路径量化误差
  • 三个实用化设计:
    1. 融合准备核(吸收掩码生成、残差构建、层归一化)
    2. 共享 FP4 权重
    3. 路径特定缩放视图
  • 性能: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-27GitHub 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 Native8-bitDeepSeek V3 生产验证,H100 原生支持,2026 年已成为框架默认
原生训练FP4 Native4-bitBlackwell 原生支持,Quartet 端到端训练验证
训练后量化GPTQ/AWQINT4成熟可用,精度损失小
训练后量化SmoothQuantW8A8激活量化,吞吐提升明显
极端压缩AQLM/QuIP#INT2向量量化,2-bit PTQ SOTA,推理速度仍受限
极端压缩BitNet/PT-BitNet1-bit2B 模型开源 + 推理框架就绪,>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 预训练。这开辟了量化技术栈的全新叙事线:量化不再只是”让已训练好的模型变轻”,而是开始参与训练过程本身。如果能在千亿参数规模验证成功,将量化的”全链路压缩”从口号变为现实。

章节小结

方法压缩比是否需要校准硬件要求适用阶段
FP82x可选H100+训练 + 推理
W8A8 (SmoothQuant)2x需要(存在免校准替代,见 §SmoothQuant 末尾 DualQuant)通用推理
GPTQ (INT4)4x需要通用推理
AWQ (INT4)4x需要通用推理
GGUF (Q4)4x不需要CPU/GPU推理
知识蒸馏可变需要训练通用训练

量化不是万能药,但它是让大模型”飞入寻常百姓家”的关键技术。随着硬件对低精度计算的支持越来越好(H100 的 FP8、未来可能的 FP4),量化的边界还在不断拓展。