跳转至

GuidedQuant: Large Language Model Quantization via Exploiting End Loss Guidance

会议: ICML 2025
arXiv: 2505.07004
代码: snu-mllab/GuidedQuant
领域: 模型压缩
关键词: 后训练量化, Fisher信息矩阵, 非均匀标量量化, 端到端损失引导, LLM压缩

一句话总结

提出 GuidedQuant,通过将端到端损失的梯度信息融入逐层量化目标(保留输出通道内的权重交互),作为即插即用模块显著提升现有 SOTA PTQ 方法在标量/向量/权重-激活量化上的性能;同时提出 LNQ 算法用于非均匀标量量化,实现 2-bit 下 Llama-2-7B perplexity 从 39.58 降至 8.83。

研究背景与动机

现有 LLM 后训练量化(PTQ)方法主要依赖逐层输出重建误差作为代理目标,即最小化量化前后每层输出的 MSE:\(\|\mathbf{X}\mathbf{W} - \mathbf{X}\hat{\mathbf{W}}\|_F^2\)。这个目标存在关键缺陷:将所有隐藏特征视为同等重要,忽视了它们对最终损失的不同影响。

另一类方法如 SqueezeLLM 利用梯度信息计算每个权重的显著性分数(saliency score),通过 Fisher 信息矩阵的对角近似来衡量权重误差对端损失的影响。但对角近似过于粗糙——它忽略了权重之间的交互关系,而 Fisher 矩阵实际上具有显著的非对角结构(作者在 Llama-2-7B 上通过可视化验证)。

核心矛盾:要么忽视特征重要性差异(逐层重建),要么忽视权重交互(对角 Fisher 近似),两者都不够准确。

方法详解

整体框架

GuidedQuant 的核心思想是:用端到端损失对层输出的梯度来加权输出误差,同时保留输出通道内权重的交互依赖。

具体来说,对第 \(l\) 层,提出如下量化目标:

\[\left\|\frac{\partial \ell}{\partial \mathbf{Z}^{(l)}} \odot (\mathbf{X}^{(l)}\mathbf{W}^{(l)} - \mathbf{X}^{(l)}\hat{\mathbf{W}}^{(l)})\right\|_F^2\]

其中 \(\frac{\partial \ell}{\partial \mathbf{Z}^{(l)}}\) 是损失对该层输出的梯度,\(\odot\) 为逐元素乘积。直觉上,梯度大的输出维度对最终损失影响大,其量化误差应获得更高权重。

这个目标等价于一个更精细的二阶 Taylor 近似,其中 Hessian 采用 Fisher 信息矩阵的块对角近似——保留每个输出通道 \(j\) 内的 \(d_{in} \times d_{in}\)\(\mathbf{F}_j^{(l)}\),丢弃跨通道和跨层的交互:

\[n \sum_{l=1}^{L} \sum_{j=1}^{d_{out}^{(l)}} (\mathbf{w}_j^{(l)} - \hat{\mathbf{w}}_j^{(l)})^\top \mathbf{F}_j^{(l)} (\mathbf{w}_j^{(l)} - \hat{\mathbf{w}}_j^{(l)})\]

关键设计:Averaging Approximation

直接计算每个输出通道 \(j\) 的 Hessian \(\mathbf{H}_j^{(l)} = n\mathbf{F}_j^{(l)}\) 需要 \(O(d_{in}^2 \cdot d_{out})\) 存储——对现代 LLM(\(d_{in}, d_{out} > 10^3\))不可行。

核心近似:将 \(d_{out}\) 个输出通道分成 \(g\) 组(\(g \ll d_{out}\)),每组内的 Hessian 取平均:

\[\bar{\mathbf{H}}_k^{(l)} = \frac{1}{|J_k|} \sum_{j \in J_k} \mathbf{H}_j^{(l)}\]

利用链式法则,这等价于对梯度平方取平均:

\[\bar{\mathbf{H}}_k^{(l)} = \mathbf{X}^{(l)\top} \text{Diag}\left(\frac{1}{|J_k|}\sum_{j \in J_k} \left(\frac{\partial \ell}{\partial \mathbf{z}_j^{(l)}}\right)^2 \right) \mathbf{X}^{(l)}\]

这样每层只需存储 \(g\)\(d_{in} \times d_{in}\) 矩阵,存储降为 \(O(d_{in}^2 \cdot g)\)。分组策略简单地将每 \(d_{out}/g\) 个连续通道归为一组。实践中梯度乘以 \(10^3\) 大常数防止下溢。

即插即用性:GuidedQuant 只需将现有逐层量化方法中的 Hessian \(\mathbf{H}^{(l)}\) 替换为分组平均的 \(\bar{\mathbf{H}}_k^{(l)}\),即可提升任何逐层输出型 PTQ 方法。

LNQ:Layer-wise Non-uniform Quantization

作者还提出了 LNQ 算法来改进非均匀标量量化中的优化过程。现有 SOTA(GPTVQ 1D)使用梯度下降优化 codebook + GPTQ 优化 assignment,两步都次优。

LNQ 采用交替最小化策略:

  1. Codebook 优化(固定 assignment \(\mathbf{P}\)):标准最小二乘问题,存在闭式解: $\(\mathbf{c}^{(j)*} = (\mathbf{P}^{(j)} \mathbf{H} \mathbf{P}^{(j)\top})^{-1} \mathbf{P}^{(j)} \mathbf{H} \mathbf{w}_j\)$

  2. Assignment 优化(固定 codebook \(\mathbf{c}\)):采用循环坐标下降(Cyclic CD)而非 GPTQ。CD 逐坐标最小化目标,每步有闭式解:量化到最近的 codebook 值,并补偿其他坐标的误差。

理论保证:LNQ 的目标函数值单调不增且收敛(Proposition 4.1)。

实现优化:CD 在 GPU 上通过三个技巧加速 4×——闭式坐标更新、预计算(precomputation)和惰性批量更新(lazy batch-updates)。

损失函数 / 训练策略

  • 量化目标:分组加权的逐层输出重建误差(Eq. 7),梯度权重来自一次 backpropagation
  • 仅需单次反向传播计算校准集上的梯度,存储开销 \(O(ngL)\)
  • 总内存 \(O(Lg(d_{in}^2 + n))\),各组各层可完全并行
  • 超参数简单:\(g=4\)(7B/13B),\(g=2\)(70B),\(g=1\)(权重-激活量化)
  • LNQ 超参数:交替迭代 \(T=2\), CD 循环 \(K=4\)(7B/13B),\(T=1, K=4\)(70B)

实验关键数据

主实验

非均匀标量量化(Llama-2 系列,WikiText2 PPL,context=4096):

模型 方法 Bits Wiki2 ↓ C4 ↓
Llama-2-7B SqueezeLLM 2.01 39.58 44.05
Llama-2-7B LNQ 2.01 23.31 26.71
Llama-2-7B LNQ + GQuant 2.01 8.83 11.15
Llama-2-13B SqueezeLLM 2.01 16.24 19.20
Llama-2-13B LNQ + GQuant 2.01 7.26 9.17
Llama-2-70B SqueezeLLM 2.01 9.17 13.03
Llama-2-70B LNQ + GQuant 2.01 5.04 7.04

向量量化(QTIP + GuidedQuant):

模型 方法 Bits Wiki2 ↓ C4 ↓
Llama-2-7B QTIP 2.00 6.82 8.96
Llama-2-7B QTIP + GQuant 2.00 6.11 7.99
Llama-2-70B QTIP 2.00 3.87 5.69
Llama-2-70B QTIP + GQuant 2.00 3.80 5.61

权重-激活量化(SpinQuant + GuidedQuant,W4A4KV4,Wiki2-2K):

模型 方法 Wiki2 ↓
Llama-2-7B SpinQuant 5.95
Llama-2-7B SpinQuant + GQuant 5.89
Llama-2-13B SpinQuant 5.24
Llama-2-13B SpinQuant + GQuant 5.19

消融实验

配置 Wiki2 (2-bit) 说明
LNQ (g=0, 无梯度引导) 23.31 仅逐层重建目标
LNQ + GQuant (g=1) 9.00 单组平均已有大幅提升
LNQ + GQuant (g=2) 8.82 边际改善
LNQ + GQuant (g=4) 8.83 最佳,g 对高比特不敏感
LNQ + GQuant (GPTQ 做 assignment) 9.65 CD 优于 GPTQ 做 assignment
LNQ + GQuant (CD 做 assignment) 8.83 验证 CD 选择正确

关键发现

  1. GuidedQuant 在极低比特(2-bit)场景提升最大——7B 模型 PPL 从 39.58 → 8.83,降幅 78%
  2. Fisher 矩阵确实具有强块对角结构——可视化显示同一输出通道内的权重交互远强于跨通道
  3. LNQ 的闭式 codebook + CD assignment 优于 GPTVQ 的梯度下降 + GPTQ——单独使用 LNQ 即超越 GPTVQ 1D
  4. 推理吞吐量不受影响——GuidedQuant 只优化 codebook 和 assignment 值,复用现有 CUDA kernel
  5. Llama-3 上同样有效——Llama-3-8B 2-bit 从 SqueezeLLM 的 163k+ → LNQ+GQuant 的 30.80
  6. 量化成本合理——Llama-2-7B 全流程(含 Hessian 缓存)约 1-2 小时,可跨配置复用

亮点与洞察

  • 理论优雅:从二阶 Taylor 展开自然推导出梯度加权输出误差 = 块对角 Fisher 近似,比对角(SqueezeLLM)和忽略梯度(GPTQ)都更准确
  • 工程精妙:averaging approximation 将不可行的 \(O(d_{in}^2 d_{out})\) 降至 \(O(d_{in}^2 g)\),完美平衡精度与效率
  • 通用性极强:作为即插即用模块适用于标量/向量/权重-激活三种量化格式
  • LNQ 的 CD + 闭式 codebook 设计比现有 alternating minimization 方法更优,且有收敛保证

局限与展望

  1. 跨层和跨通道交互仍被忽略——当前块对角近似丢弃了这些信息,可能在跨层量化误差累积时损失精度
  2. 分组策略过于简单——仅按连续通道分组,更智能的聚类(如基于梯度相似性)可能进一步提升
  3. 需要一次完整的反向传播——对 70B 模型仍需 A100 级 GPU 做梯度缓存
  4. 非均匀标量量化的推理延迟与均匀量化相当,但 lookup table 解码在某些硬件上可能有开销
  5. 实验主要在 Llama 系列——缺乏对 Mistral、Qwen 等其他架构的验证

相关工作与启发

  • SqueezeLLM (Kim et al., ICML 2024):对角 Fisher 近似 + weighted k-means,GuidedQuant 的直接改进对象
  • GPTQ (Frantar et al., ICLR 2023):逐层输出重建 + OBQ 风格量化,忽略梯度信息
  • QTIP (Tseng et al., NeurIPS 2024):SOTA 向量量化方法,GuidedQuant 可直接集成
  • SpinQuant (Liu et al., 2024):旋转矩阵减少激活 outlier 后做均匀量化,GuidedQuant 改进其权重量化
  • WoodFisher (Singh & Alistarh, NeurIPS 2020):块对角 Fisher 用于 CNN 剪枝,但无法扩展到 LLM 规模
  • 启发:梯度信息是廉价但有效的 saliency signal,关键在于如何在保留足够交互信息的同时控制计算/存储开销

评分

  • 新颖性: ⭐⭐⭐⭐ — 块对角 Fisher + averaging approximation 组合新颖,但各单独组件在前人工作中有迹可循
  • 实验充分度: ⭐⭐⭐⭐⭐ — 覆盖三种量化格式、三种模型规模、多个基线,消融丰富,还有推理吞吐量和下游任务评估
  • 写作质量: ⭐⭐⭐⭐⭐ — 理论推导清晰,从动机到方法到实验逻辑链完整
  • 价值: ⭐⭐⭐⭐⭐ — 即插即用地提升多个 SOTA 方法,2-bit 量化改进巨大,实用价值极高

相关论文