跳转至

LiftQuant: Continuous Bit-Width LLM via Dimensional Lifting and Projection

会议: ICML 2026
arXiv: 2606.04050
代码: https://github.com/Heliulu/LiftQuant
领域: 模型压缩 / LLM 量化 / 部署优化
关键词: 连续 bit-width, lift-then-project, 高维投影, 1-bit lattice, 帕累托最优部署

一句话总结

LiftQuant 通过"高维 1-bit lattice → 低维 weight 空间投影"的 lift-then-project 机制,把 LLM 量化 bit-width 从离散整数(2/3/4 bit)解耦为连续分数(如 2.4-bit),让 70B 模型精准塞进 24GB 显卡且 PPL 显著优于 2-bit baseline,整个解码路径只用线性变换 + 1-bit 均匀量化器,硬件友好。

研究背景与动机

领域现状:weight-only quantization 是 LLM 部署刚需。两大流派——Uniform Quantization(AWQ / QLoRA / QuIP# / QuaRot / SpinQuant 等,预处理后 INT2/3/4)和 Vector Quantization(AQLM / VPTQ / QTIP,learned codebook 精度更高但需 LUT 推理慢)。

现有痛点:(1)所有方法都被锁在整数 bit-width 上——例如 Llama-3-70B 在 24GB 卡上 3-bit 装不下、2-bit 推理灾难性掉点,2-3 bit 之间的显存被白白浪费;(2)UQ 通过改 group size 能粗调(如 EfficientQAT 从 128 到 64),但只有几档"档位"不是连续;(3)非二的幂 codebook(ternary 1.58-bit)需要专用 kernel;(4)Q-Palette 通过混搭多种量化器实现分数 bit,但需维护异构 kernel 库工程极复杂。

核心矛盾:硬件预算是连续的(24GB、12GB 等),模型 bit-width 是离散的(2/3/4),两者的不匹配让显存利用永远次优;同时 VQ 精度好但 LUT 慢、UQ 快但精度差,"精度 vs 速度"在分数 bit 上更难取舍。

本文目标:(1)让 bit-width 从整数变成连续分数(2.0, 2.4, 2.5, ...),精准匹配硬件预算;(2)保持 VQ 级精度同时享受 UQ 级硬件友好;(3)所有 bit-width 用统一算子,不需要为每个 bit 写一套 kernel。

切入角度:观察到——把高维(\(\mathbb{R}^D\))1-bit lattice(\(\{\pm 1\}^D\) 各 1 bit)通过矩阵 \(\bm M\) 投影到低维(\(\mathbb{R}^d\)\(d < D\)),有效 bit-width 就是 \(D/d\) 这个比值。\(D, d\) 是可灵活设的结构参数,所以比值可以是任意分数。由 CLT,高维 lattice 的投影自然形成 Gaussian-like dense codebook——既得到 VQ 的表达力又用 1-bit 算子做硬件友好的解码。

核心 idea:lift-then-project ——weight 表示为 \(\bm w \simeq \bm M \bm w_q\),其中 \(\bm M\) 是学到的全局投影矩阵、\(\bm w_q \in \{\pm 1\}^D\) 是 1-bit 量化向量;bit-width = \(D/d\) 连续可调。

方法详解

整体框架

三步: 1. 学投影矩阵 \(\bm M\):定义全局映射结构 + 分数 bit-width 2. 逐层 whitening 变换 \(\bm T\):把权重 reshape 成 i.i.d. Gaussian 满足投影假设 3. 量化 + 解码 pipeline:fused \(\bm o = \text{diag}(\bm s) \bm W (\bm M \bm T \bm a)\),只用线性变换 + 1-bit 量化器

记法 LQ-\(D/d\)(如 LQ-24/10 = 2.4-bit)。

关键设计

  1. Lift-then-Project 量化机制:

    • 功能:把 bit-width 从离散整数变成连续分数 \(D/d\)
    • 核心思路:weight \(\bm w \in \mathbb{R}^d\) 表示为 \(\bm w \simeq \bm M \bm w_q\)\(\bm w_q \in \{\pm 1\}^D\)(1-bit lattice)、\(\bm M \in \mathbb{R}^{d \times D}\)(投影矩阵);每个 \(w_i = \sum_j \bm M_{ij} \bm y_j\) 是独立随机变量之和,CLT 保证投影自然得到 Gaussian-like dense codebook;有效 bit-width = \(D/d\),连续可调
    • 设计动机:传统 VQ 直接学 \(\mathbb{R}^d\) 上的 codebook,bit-width 受 codebook 大小限制;UQ 用 scalar 量化更不灵活;本文通过升维 + 投影把"码本设计"和"bit-width"解耦——前者由 \(\bm M\) 控制结构,后者由 \(D/d\) 控制比例
  2. 优化 \(\bm M\) + 加速最近邻搜索:

    • 功能:把 \(\bm M\) 学到对 Gaussian 权重最优,并让量化的最近邻搜索可在合理时间内完成
    • 核心思路:\(\bm M^* = \arg\min_{\bm M} \mathbb{E}_{\bm w \sim \mathcal{N}}[\min_{\bm w_q \in \{\pm 1\}^{d_s \cdot b}} \|\bm w - \bm M \bm w_q\|]\)\(\bm M\) 初始化为正交矩阵以鼓励 uncorrelated projection;用温度 10 的 soft argmin 近似实现可微优化。最近邻搜索原本指数复杂度 \(2^D\),本文通过 pseudo-inverse 投影 + auxiliary vector pad 把搜索空间缩到 \(2^{D-d}\)
    • 设计动机:CLT 保证渐近 Gaussianity 但实际 \(D\) 有限不完美,需要显式优化 \(\bm M\);最近邻搜索若不加速则 \(D \geq 24\) 完全不实用,pseudo-inverse 初始化提供高质量起点让局部搜索 \(2^{D-d}\) 可行
  3. 逐层 whitening 变换 \(\bm T\) + Fused 推理:

    • 功能:把实际权重 reshape 成 i.i.d. Gaussian 满足投影假设;推理时把 dequantization 融入 GEMM
    • 核心思路:每层用轻量 whitening 矩阵 \(\bm T\) 把权重转近似 Gaussian;推理 \(\bm o = \text{diag}(\bm s) \bm W (\bm M \bm T \bm a)\),其中 \(\bm M, \bm T\) 是全局共享的小矩阵(推理时只算 \(\bm M \bm T \bm a\)),\(\bm W\) 是 1-bit 量化矩阵的 GEMM
    • 设计动机:LLM 权重并非完美 Gaussian,逐层 whitening 让 lift-then-project 假设成立;推理融合让 dequantization 几乎零开销——只多一个小矩阵乘 + 缩放

实验关键数据

Llama-2-7B Wikitext-2 PPL(标准 Gaussian 源)

编码 bits MSE Info PPL 搜索时间(1M params)
LQ-32/20 1.60 0.146 1.39 7.71 0.3s
LQ-16/8 2.00 0.089 1.75 6.60 ≪0.1s
LQ-32/16 2.00 0.082 1.79 6.53 4s
LQ-30/14 2.14 0.070 1.92 6.30 4s
LQ-24/10 2.40 0.053 2.12 6.10 1s
Int2 2.00 0.119 1.53 7.62
E8 (QuIP#) 2.00 0.089 1.75 6.60
TCQ (QTIP) 2.00 0.073 1.89 6.28

严格 2.00 bit 上 LQ 略弱于 QTIP(TCQ 在 64 维上更高效);但只要稍加到 2.14 bit,LQ 就超 QTIP;2.4 bit 时 PPL 6.10 显著优于所有 2-bit baseline。

70B 模型在 24GB GPU 上的帕累托部署

方法 bits 内存(GB) WikiText-2 PPL C4 PPL
QTIP 2-bit 2.00 17.5 5.21 6.94
EfficientQAT 2-bit 2.00 18.0 5.45 7.18
QTIP 3-bit 3.00 26.3
LQ-24/10 (2.4-bit) 2.40 23.6 4.92 6.51

LQ 把 70B 精准压到 24GB,PPL 比 2-bit baseline 显著低;3-bit 直接爆显存。

32B 模型在 12GB GPU 类似情景:LQ-20/8 (2.5-bit) 完美填满,PPL 同样优于 2-bit baseline。

关键发现

  • 连续 bit-width 解锁帕累托前沿:把 2-bit 升到 2.4-bit(额外 0.4 bit)换来 PPL 大幅改善,整数 bit 完全无法做到
  • CLT 保证 + 显式优化 \(\bm M\) 二者必要:CLT 给方向,但有限 \(D\) 下必须 explicit 优化 \(\bm M\) 才能压到与 QTIP 相当
  • 2-3 bit 是 LiftQuant 的甜区:4-bit 以上已近无损,分数调节边际效益小;本文聚焦 2-3 bit 部署 gap,与硬件预算实际错位最大的区间
  • 搜索复杂度可控\(D-d \leq 20\) 时搜索可在秒级完成,配合 pseudo-inverse 初始化实用

亮点与洞察

  • 解耦 bit-width 与 coding format 是真正的范式突破:以往所有 quantization 都把这两者绑定(codebook 大小决定 bit),本文用升维 + 投影把它们分开——这种解耦思路可推广到所有 codebook 设计问题
  • CLT 是连接 1-bit lattice 与 Gaussian codebook 的桥梁:用高维 lattice 投影自然得到 Gaussian-like 分布,正好匹配 LLM 权重的 Gaussian 性——理论与工程完美对齐
  • 硬件友好的代价是 0.1 bit:相比 QTIP 的复杂 Trellis Codes,LQ 只用线性变换 + 1-bit 算子,工程极简;代价是同 bit 下略弱,但补 0.1 bit 就反超——这个"用 0.1 bit 换工程简洁"的权衡是高度实用的
  • 24GB 部署 70B 是个工业实锤:消费级显卡跑 70B 的需求极迫切,本文直接给出可用方案,可立即应用

局限性 / 可改进方向

  • 最近邻搜索仍是 \(2^{D-d}\)\(D-d \leq 20\) 才实用——若想用更大维度(\(D \geq 64\) 像 QTIP 那样获得更好 coding gain)需更高效搜索
  • 4-bit 以上场景下 \(d \leq 6\),丢失高维 inter-channel 相关性——所有 VQ 共有限制
  • whitening 矩阵 \(\bm T\) 逐层学,但若分布漂移大可能需要 calibration set 重新校
  • 没与 activation quantization 联合(仅 weight-only);W4A4 / W2A4 等场景未触及
  • \(\bm M\) 全局共享,是否按 hidden dimension 或层族分组学更好未探索

相关工作与启发

  • vs Uniform Quantization (AWQ / QuIP#):UQ 受限 INT2/3/4 离散;LiftQuant 连续可调
  • vs Vector Quantization (AQLM / VPTQ / QTIP):VQ 精度好但 LUT 慢;LiftQuant 在精度接近 QTIP 的同时用线性算子,硬件友好
  • vs Q-Palette(混搭量化器达分数 bit):Q-Palette 需异构 kernel 库;LiftQuant 单一统一算子
  • 启发:lift-then-project 思路可推广到 KV-cache 量化、activation 量化、optimizer state 量化等所有需要连续压缩比的场景;CLT-based codebook 生成是个通用方法论

评分

  • 新颖性: ⭐⭐⭐⭐⭐ 首次实现连续 bit-width LLM 量化,lift-then-project 机制是真正全新
  • 实验充分度: ⭐⭐⭐⭐⭐ Gaussian source 理论分析 + Llama 7B/13B/70B PPL + 24GB/12GB GPU 帕累托部署,覆盖完整
  • 写作质量: ⭐⭐⭐⭐⭐ CLT 动机清晰,Figure 1 帕累托图直击痛点,Figure 2 codebook 可视化直观
  • 价值: ⭐⭐⭐⭐⭐ 24GB GPU 跑 70B 是工业刚需,方案可立即部署;分数 bit 思想影响后续 LLM 量化设计