Learning Grouped Lattice Vector Quantizers for Low-Bit LLM Compression¶
会议: NeurIPS 2025
arXiv: 2510.20984
代码: GitHub
领域: 模型压缩
关键词: 格向量量化, 低比特压缩, 后训练量化, 可学习码本, companding变换
一句话总结¶
GLVQ 提出为 LLM 权重的每个分组学习专属的格(lattice)码本(由可学习生成矩阵定义),配合分组特异的 μ-law companding 变换适应重尾分布,在 2-bit 量化下 Llama-2-70B 的 Wikitext-2 困惑度达到 3.36,大幅领先 QuIP#(3.91)和 QTIP(3.78)。
研究背景与动机¶
领域现状:后训练量化(PTQ)是 LLM 部署压缩的主流方案。标量量化(如 GPTQ)在 4-bit 以上效果尚可,但低于 3-bit 时性能严重退化。向量量化(VQ)方法(如 QuIP#、AQLM)通过利用高维空间的结构化码本提升量化保真度。
现有痛点:QuIP# 使用固定的 \(E_8\) 格来量化所有组/层的权重,忽略了不同权重组统计特性的差异,导致某些组量化失配。AQLM 学习自由形式的 VQ 码本,虽灵活但解码需要查表操作,速度慢。
核心矛盾:固定格(如 \(E_8\))结构化程度高但适应性差;自由形式 VQ 适应性强但计算复杂度高——需要在码本灵活性和解码效率之间取得平衡。
本文目标 设计一种既保持格量化的高效解码(简单矩阵乘法),又能自适应不同权重组分布的量化方案。
切入角度:每个权重组学习一个独立的生成矩阵 \(\mathbf{G}_g\) 定义格码本,配合可学习的 companding 变换 \(F_g\) 处理非均匀分布。
核心 idea:分组学习格生成矩阵 + 分组 μ-law companding = 保持格结构化解码效率的同时适配局部权重分布。
方法详解¶
整体框架¶
输入:LLM 权重矩阵 \(\mathbf{W}\)。首先通过 Salience-Determined Bit Allocation 确定每组比特宽度 → 各组权重经分组 companding 变换 → Babai rounding 量化到学习的格码本 → 反向 companding 重建。解码时仅需矩阵-向量乘法 \(\hat{\mathbf{w}} = F_g^{-1}(\mathbf{G}_g \mathbf{z})\)。
关键设计¶
-
Salience-Determined Bit Allocation (SDBA):
- 功能:在全局比特预算约束下为每个权重组分配最优比特宽度
- 核心思路:最小化量化后输出的 KL 散度 \(D_{KL}(\mathbf{WX} \| \hat{\mathbf{W}}\mathbf{X})\),约束 \(\frac{1}{G}\sum_g b_g = N\) 且高 1-bit 和低 1-bit 的组数相等
- 搜索算法:双指针法,仅需 \(\mathcal{O}(\log m)\) 次迭代
- 例如 2-bit 目标:高 salience 组用 3-bit,低 salience 组用 1-bit,其余用 2-bit
-
可学习格码本(Lattice Codebook Learning):
- 功能:为每个权重组学习专属的格结构
- 核心公式:把权重组 \(\mathbf{W}_g \in \mathbb{R}^{m_g \times n_g}\) reshape 为 \(d \times \ell_g\),通过生成矩阵量化:\(\hat{\mathbf{W}}_g = \mathbf{G}_g \mathbf{Z}_g\)
- 优化目标:\(\mathcal{L}_g = \|\mathbf{W}_g \mathbf{X} - \mathbf{G}_g \mathbf{Z}_g \mathbf{X}\|_2^2 + \lambda \|\mathbf{G}_g - \mathbf{G}_g^{(0)}\|_2^2\)
- 交替优化:(i) 固定 \(\mathbf{G}_g\),Babai rounding 更新整数索引 \(\mathbf{z}_i = \lfloor \mathbf{G}_g^{-1} \mathbf{w}_i \rceil\)(复杂度 \(\mathcal{O}(d^3)\));(ii) 固定 \(\mathbf{Z}_g\),梯度下降更新 \(\mathbf{G}_g\),梯度 \(\nabla_{\mathbf{G}_g} \mathcal{L}_g = -2(\mathbf{W}_g \mathbf{X} - \mathbf{G}_g \mathbf{Z}_g \mathbf{X})(\mathbf{Z}_g \mathbf{X})^\top\)
- 初始化:\(\mathbf{G}_g^{(0)}\) 由组协方差矩阵的 Cholesky 分解得到,使初始格方向对齐权重的主分布
- 稳定化:谱归一化限制 \(\mathbf{G}_g\) 的奇异值在 \([\sigma_{\min}, \sigma_{\max}]\) 范围内
- 关键区别:QuIP# 全局用固定 \(E_8\) 格,AQLM 学习自由码本需查表解码;GLVQ 学习组特异的格但保持格结构,解码仅需矩阵乘法
-
分组 μ-law Companding:
- 功能:在量化前将重尾权重分布压缩为更均匀的分布,减少低幅值区域的量化误差
- 变换公式:\(F_g(x) = \text{sgn}(x) \frac{\ln(1 + \mu_g |x|)}{\ln(1 + \mu_g)}\),反变换 \(F_g^{-1}(y) = \text{sgn}(y) \frac{(1+\mu_g)^{|y|}-1}{\mu_g}\)
- 可学习参数:\(\mu_g > 0\) 控制压缩强度,与 \(\mathbf{G}_g\) 联合梯度优化
- 初始化:\(\mu_g^{(0)} = 100 \tanh(\kappa_g / 10)\),\(\kappa_g\) 为组的样本峰度——重尾组初始压缩更强
- 约束:\(\mu_g \in [10, 255]\),保证数值稳定性
- 完整编解码链:\(\tilde{\mathbf{W}}_g = F_g(\mathbf{W}_g) \to \mathbf{Z}_g = \lfloor \mathbf{G}_g^{-1} \tilde{\mathbf{W}}_g \rceil \to \hat{\mathbf{W}}_g = F_g^{-1}(\mathbf{G}_g \mathbf{Z}_g)\)
运行时特性¶
- 存储开销极小:每组只需存储 \(d \times d\) FP16 生成矩阵 + 1个 FP16 标量 \(\mu_g\),对 Llama 2-7B 仅增加约 2MB(总量 1.1GB 的 0.2%)
- 解码高效:每个子块仅需 \(d^2 + d\) 次乘法,端到端延迟比 4-bit uniform PTQ 仅增加 2-3%
- 流式解码:推理时仅物化少量子块,即用即释,峰值内存比预先解压整层降低 >10×
实验关键数据¶
Perplexity 主表(2-bit 量化)¶
| 方法 | Llama1-7B | Llama1-13B | Llama1-65B | Llama2-7B | Llama2-13B | Llama2-70B |
|---|---|---|---|---|---|---|
| FP16 | 5.68 | 5.09 | 3.53 | 5.12 | 4.57 | 3.12 |
| OmniQuant | 15.5 | 13.2 | 7.58 | — | — | — |
| QuIP# | 6.86 | 5.97 | 4.36 | 6.19 | 5.35 | 3.91 |
| QTIP | 6.52 | 5.80 | 4.21 | 5.91 | 5.26 | 3.78 |
| GLVQ-8D | 6.28 | 5.64 | 4.01 | 5.69 | 5.02 | 3.62 |
| GLVQ-32D | 6.00 | 5.38 | 3.81 | 5.41 | 4.80 | 3.36 |
GLVQ-32D 在所有模型规模上均取得最低困惑度,Llama2-70B 2-bit 下 PPL=3.36 vs QuIP# 3.91(降低0.55)。
Zero-Shot 准确率(Llama-2-70B,4-bit)¶
| 方法 | ARC-C | ARC-E | PIQA | WINO |
|---|---|---|---|---|
| FP16 | 51.1 | 77.7 | 81.1 | 77.0 |
| QuIP# | 50.6 | 78.1 | 81.4 | 77.1 |
| QTIP | 50.0 | 77.6 | 81.5 | 77.0 |
| GLVQ-8D | 51.2 | 78.0 | 81.6 | 77.3 |
4-bit 下 GLVQ-8D 在多数任务超越 QuIP# 和 QTIP;2-bit 下优势更加明显。
GLVQ-8D vs GLVQ-32D 对比¶
| 维度 | GLVQ-32D | GLVQ-8D |
|---|---|---|
| PPL | 更低,更好保真度 | 略高于 32D |
| 编码速度 | Babai rounding \(\mathcal{O}(d^3)\) 更慢 | 更快 |
| 适用场景 | 追求极致压缩质量 | 平衡效率与质量 |
关键发现¶
- 比特宽度越低,GLVQ 的优势越明显(2-bit > 3-bit > 4-bit),说明组自适应格在极端压缩下价值最大
- 更大的格维度 \(d\) 带来更好的量化保真度,但编码复杂度为 \(\mathcal{O}(d^3)\)
- Companding 的贡献在重尾分布权重组上最显著
- Cholesky 初始化比随机初始化收敛更快、最终 PPL 更低
- 存储开销仅 0.2%,延迟增加仅 2-3%,实用性极强
亮点与洞察¶
- 结构化与灵活性的巧妙平衡:GLVQ 保持了格量化的高效解码(矩阵乘法),同时通过学习生成矩阵获得了自由码本的灵活性。这种"在约束空间内最优化"的思路值得借鉴
- Companding 的优雅应用:将通信工程中经典的 μ-law 变换引入权重量化,且每组学习不同的 \(\mu_g\),配合峰度初始化策略,用简单手段解决了重尾分布问题
- 极低存储开销:每组仅需一个小矩阵+一个标量的额外存储,几乎可忽略,工程部署友好
- Babai rounding 代替精确最近格点搜索:虽然是近似,但有形式化的误差界,且可微训练流程自然补偿误差
局限与展望¶
- 仅在 Llama 1/2 系列验证,缺少 Llama 3、Qwen、Mistral 等新模型的实验
- SDBA 的比特分配策略来自 Slim-LLM,不是本文的原创贡献
- 格维度 \(d\) 的选择缺乏自适应机制,目前为手动设定
- 未与 PV-Tuning(分阶段优化连续参数和离散赋值)进行对比
- 推理速度实验仅在 RTX 4090 上测试,不同硬件上的实际加速比可能有差异
- 未验证权重+激活联合量化的场景
相关工作与启发¶
- vs QuIP#: 使用固定 \(E_8\) 格 + Hadamard 旋转预处理,所有组用相同码本;GLVQ 为每组学习独立生成矩阵,2-bit 下 PPL 持续低 0.4-0.5 点
- vs AQLM: 学习自由形式向量码本,灵活但需查表解码;GLVQ 保持格结构,解码仅需矩阵乘法,速度更快
- vs QTIP: 通过有状态解码实现超高维 VQ,解耦了码本大小与比特率;GLVQ 思路不同,在固定格维度下优化格几何结构
- vs GPTQ/AWQ: 标量量化方法,4-bit 以上竞争力强,但 2-3 bit 下大幅落后于 VQ 方法
评分¶
- 新颖性: ⭐⭐⭐⭐ 分组可学习格码本 + 分组 companding 的组合是有意义的创新,但各单项技术(格量化、μ-law、SDBA)已有先例
- 实验充分度: ⭐⭐⭐⭐ Llama 1/2 全系列、PPL+zero-shot 双评估、8D/32D两个配置对比,但缺少更多模型族
- 写作质量: ⭐⭐⭐⭐⭐ 方法推导严谨,pipeline 图清晰,算法伪代码完整,存储/延迟分析透彻
- 价值: ⭐⭐⭐⭐⭐ 在极低比特量化这个工程价值极高的方向上取得实质性突破,代码开源、延迟增加微小,部署友好