跳转至

NeUQI: Near-Optimal Uniform Quantization Parameter Initialization for Low-Bit LLMs

会议: ICML 2026
arXiv: 2505.17595
代码: 暂无公开(推理可通过 BitBLAS 支持浮点 zero-point)
领域: 模型压缩 / 低比特量化 / PTQ
关键词: 后训练量化, 均匀量化, 量化参数初始化, scale-zero point 优化, LLM 部署

一句话总结

本文指出主流后训练量化 (PTQ) 方法都沿用了 Min-Max 公式来初始化 scale 与 zero-point,而这套老公式隐含了"由极值决定参数 + zero-point 必须是整数"两个被长期忽视的约束;作者提出 NeUQI,用"给定 scale 解析地求最优 zero-point + 由粗到细搜 scale"两步把约束打掉,在 LLaMA-2 7B 2-bit 通道量化下把 C4 困惑度从 SOTA 的 47.55 (MagR) 砍到 17.50,并使轻量蒸馏后超越成本高得多的 PV-tuning。

研究背景与动机

领域现状:LLM 本地化部署(消费级 GPU、笔记本)越来越火,主流做法是 PTQ 把 BF16 权重量化到 int2/3/4。在所有 PTQ 范式里,均匀量化(uniform / affine quantization)因为硬件原生支持、推理 kernel 简单,是工业部署的事实标准;学术界从 GPTQ → AWQ → QuIP → QuaRot → MagR → GPTAQ 一路把量化方法本身打磨得很精致。

现有痛点:量化的两个核心参数 —— scale \(s\) 与 zero-point \(z\) —— 几乎所有方法都用同一行老公式(Jacob et al. 2017 的 Min-Max)初始化:\(s = (\max(\bm{x}) - \min(\bm{x}))/(2^k - 1)\)\(z = -\lfloor \min(\bm{x})/s \rceil\)。在 8-bit / 4-bit 时这样够用,但到 3-bit / 2-bit 性能就会塌方(GPTQ 在 LLaMA-2 7B 2-bit 上 C4 PPL 高达 2592)。"方法越改越多,初始化却没人动" 是该领域的一个盲点。

核心矛盾:Min-Max 公式背后藏着两个被长期忽视的硬约束 —— (i) 极值决定参数:scale 和 zero-point 都由 \(\bm{x}\) 的极值绑定,搜索算法(如 LeanQuant)只能在"极值候选对"的二维网格上搜,候选规模 \(T^2\)\(T=2048\))巨大;如果直接在 \((s, z)\) 空间搜只需 \(2^k T\),差几个量级。(ii) zero-point 必须是 \(k\)-bit 无符号整数:把 \(z\) 限制成离散整数压缩了参数空间,在 \(k=2\) 时只剩 4 个候选,搜索失败率高。

本文目标:(i) 解除两个 Min-Max 约束,让 \(z\) 可以取浮点、scale 与 zero-point 解耦优化;(ii) 在 \(\mathcal{O}(n \log n)\) 时间内给定 scale 解析地求出最优浮点 zero-point;(iii) 拿"更好的初始化"打败"更复杂的微调",证明初始化不是配角。

切入角度:作者重新审视权重量化损失(GPTQ 风格,Hessian 对角近似)\(\mathcal{L}(s, z) = \sum_i H_{i,i} (Q_{s,z}(w_i) - w_i)^2\),发现 固定 scale 后 \(\mathcal{L}(z)\) 是一个分段二次函数(piecewise quadratic),有 \(n(2^k - 1)\) 个转折点。这意味着对每个固定 scale,最优 zero-point 是可以闭式精确求解的 —— 把二维联合优化降成一维。

核心 idea:把 "scale 与 zero-point 联合搜" 拆成 "外层一维 scale 搜 + 内层 zero-point 解析求最优",再用 transition-point reduction + coarse-to-fine 两道加速把单层量化时间从 112 秒压到秒级。

方法详解

整体框架

  • 输入:单层权重矩阵 \(\bm{W}\) 与代理 Hessian \(\bm{H} = \mathbb{E}_{\bm{X}}[\bm{X}^\top \bm{X}]\)(GPTQ 风格、对角近似 \(H_{i,i}\))。
  • 行级量化:对 \(\bm{W}\) 的每一行 \(\bm{w}\) 独立优化 \((s, z)\)
  • 外层:从 Min-Max 给出的上界出发,均匀采 \(T\) 个候选 scale;先用 \(T_c = O(\sqrt{T})\) 个候选粗搜得到 \(s^c\),再在 \(s^c\) 邻域细搜大约 \(T/T_c\) 个候选,总评估次数 \(O(\sqrt{T})\)
  • 内层:对每个候选 scale,调 Algorithm 1(针对分段二次函数找全局最小)解析出最优浮点 zero-point \(z^*\) 与对应损失。
  • 输出:选 \(\arg\min_s \mathcal{L}(s, z^*(s))\) 作为最终量化参数。

关键设计

  1. 闭式求最优 zero-point(分段二次函数全局最小):

    • 功能:给定 scale \(s\),在 \(\mathcal{O}(n \log n)\) 时间内精确求出使量化误差最小的 zero-point \(z^*\),不再受整数约束。
    • 核心思路:单样本损失 \(\mathcal{L}_i(z) = h_i (x_i + z - \mathrm{clip}(\lfloor x_i+z \rceil, 0, 2^k-1))^2\)(其中 \(x_i = w_i/s\)\(h_i = H_{i,i} s^2\))是 \(z\) 的分段二次函数,有 \(2^k - 1\) 个转折点(每个 round 的分界)和 \(2^k\) 个区间。总损失 \(\mathcal{L}(z) = \sum_i \mathcal{L}_i(z)\) 在所有转折点的并集(共 \(n(2^k-1)\) 个)形成的细分上仍是分段二次。Algorithm 1 的关键 observation:相邻两个全局区间之间只有"贡献从某个 \(\mathcal{L}_i\) 切换"一个差异,因此可以增量维护当前区间的二次函数 \(\mathcal{L}^I(z) \leftarrow \mathcal{L}^I(z) + \delta(z)\),每次仅算这一区间内的二次最小值。整体复杂度 \(\mathcal{O}(n \cdot 2^k \log(n \cdot 2^k))\),排序占主导。
    • 设计动机:浮点 zero-point 是被 Min-Max 老公式锁住的"自由参数";解锁后,最优 \(z\) 不一定落在任何 \(w_i + j\) 网格上,只能靠分段二次的解析极值找到。把 sum 拆成 incremental update 这个 trick 是把朴素 \(\mathcal{O}(n \cdot 2^k \cdot n)\) 降到 \(\mathcal{O}(n \cdot 2^k \log(n \cdot 2^k))\) 的关键,本质上是利用了分段函数的"邻接增量结构"。
  2. Transition-point reduction:把 \(2^k - 1\) 个转折点压成 2 个:

    • 功能:进一步把内层求解从 \(\mathcal{O}(n 2^k \log(n 2^k))\) 降到 \(\mathcal{O}(n \log n)\),让 \(k=4\) 也能秒级跑完。
    • 核心思路:观察到 \(\mathcal{L}_i(z)\) 在中段 \([-1/2 - x_i,\ 2^k - 1/2 - x_i]\) 上其实是被 rounding 损失上界 \(h_i / 4\) 截顶的;构造一个超近似函数 \(\mathcal{L}_i^S(z)\),把整段中部直接替换成常数 \(h_i/4\),只保留两端 quadratic。这样每个样本只剩两个 transition point,先用 Algorithm 1 找近似最优 \(z^S\),再在 \([z^S - 1, z^S + 1]\) 这个长度为 2 的区间内回到原始 \(\mathcal{L}_i(z)\) 精化(这个小窗里每样本最多两个 transition point)。两次都是 \(\mathcal{O}(n \log n)\),且最终精度损失可忽略(Table 1 中 relative loss 仅 1.00001×–1.00003×)。
    • 设计动机:朴素分段二次有 \(n \cdot 2^k\) 个 break,但全局最小的位置一定不会被尾部的高 quadratic 拉走 —— 那些远处的 \(\mathcal{L}_i\) 早已经 saturate 在 \(h_i/4\)。先用上界做粗定位、再在小邻域精化,是经典 "outer bound + local refine" 套路在量化里的一个干净落地。
  3. Coarse-to-fine scale 搜索:

    • 功能:把 \(T = 2048\) 次内层求解砍成 \(\mathcal{O}(\sqrt{T}) \approx 90\) 次,让单层量化时间从基线 112 秒降到几秒。
    • 核心思路:scale 候选集 \(\mathcal{S}_T = \{ ((\max(\bm{w}) - \min(\bm{w}))/(2^k - 1)) \cdot (i/T) : i = 1, \dots, T \}\) 把 Min-Max 推出的 scale 作上界,均匀往下采。先在 \(T_c = O(\sqrt{T})\) 个候选上粗搜得到 \(s^c\),再在 \(s^c\) 附近约 \(T/T_c\) 个 fine candidates 上精搜。
    • 设计动机:经验上 \(\mathcal{L}(s, z^*(s))\) 作为 \(s\) 的函数是单峰 / 平滑的,没必要全网格搜;\(O(\sqrt{T})\) 候选已经够定位全局最优区。

损失函数 / 训练策略

纯 PTQ,无梯度训练。损失就是 Eq. 5 的对角 Hessian 加权 MSE \(\mathcal{L}(s, z) = \sum_i H_{i,i} (Q_{s,z}(w_i) - w_i)^2\)。可选地与下游强微调(PV-tuning、EfficientQAT)组合 —— NeUQI 给一个更好的起点,使后续微调用更少资源就能赶上甚至超过原版。校准集与 GPTQ 一致(少量 WikiText / C4 样本)。

实验关键数据

主实验

LLaMA-2 7B 2-bit 通道量化(Wiki2 ↓ / C4 ↓ PPL,五个 zero-shot benchmark 平均 ↑ Acc):

方法 Wiki2 PPL C4 PPL 平均 Acc 备注
GPTQ 6953 2592 35.08% 完全崩
GPTAQ 1269 246 34.97% 仍崩
MagR† 129 47.55 39.54% 之前最强
NeUQI 17.14 17.50 47.24% 提升 ~3× / +7.7 pp

LLaMA-3 8B 2-bit、LLaMA-2 70B 2-bit、Qwen-2.5 7B/14B 2-bit 上趋势一致 —— NeUQI 把"崩盘的 GPTQ/GPTAQ"和"勉强能用的 MagR"都甩开。在 LLaMA-2 70B 2-bit 上 NeUQI 取得 Wiki2 7.03 / C4 8.88 / Acc 65.13%(最强基线 MagR† 是 13.95 / 68.62 / 61.80%)。

消融实验

加速消融(LLaMA-2 7B 2-bit,单层 query 投影耗时):

配置 相对 Loss 相对耗时 绝对耗时 (s)
Baseline(无任何加速) 1.0000× 1.000× 112
w/ transition-point reduction(去 coarse-to-fine) 1.00197× 0.548× ~61
NeUQI 完整版 1.00193× 0.027× ~3
  • transition-point reduction 单项约省 50% 耗时,加 coarse-to-fine 后再砍约 95%。
  • 全部加速合起来引入的 loss 退化 < 0.2%,几乎无感。

关键发现

  • 更好的初始化比更贵的微调更划算:NeUQI 仅做初始化(不微调)就把 LLaMA-2 7B 2-bit 的 C4 PPL 从 47.55 降到 17.50;再加轻量蒸馏后甚至超过 PV-tuning(一个资源消耗大得多的联合优化方法)。
  • 整数 zero-point 是最大的桎梏:放开 \(z\) 为浮点后,等比特宽度下 PPL 降幅可达 15.54%,平均 Acc 涨 3.95 pp;额外比特开销很小(zero-point 只多存一个 float,在 channel-wise 粒度下分摊后 ~0.05 bit)。
  • 3-bit NeUQI 量化的 Qwen-2.5 在等显存下能超过 BF16 原版:Figure 1 显示等内存预算下 NeUQI 3-bit 在 C4 PPL 与 5-bench 平均准确率上严格优于同 footprint 的 BF16 较小模型 —— 这是过去 PTQ 没怎么做到过的。

亮点与洞察

  • 重新审视"被默认正确"的工程公式:Min-Max 公式从 2017 年沿用至今,所有人在改"量化方法",但没人质疑"参数初始化"。本文把它拆成两个具体的、可挑战的约束,是非常工程师的洞察 —— 提醒我们一个领域里被默认的 baseline 公式经常藏着可挖的金矿。
  • "分段二次 + incremental update + transition-point reduction"是干净的算法工程:把一个看似要 \(\mathcal{O}(n^2 \cdot 2^k)\) 的 brute force 问题压到 \(\mathcal{O}(n \log n)\),每步的 trick 都有清晰的几何动机(上界 / 邻接增量 / 单峰 fine search),可迁移到其他"分段凸 / 半凸"量化损失场景。
  • "初始化 > 微调"的反常识结论:现在大家默认要堆 fine-tuning 才能救低比特;本文展示了一个对照 —— 同样的 PV-tuning 接到一个好初始化上反而被超越,说明微调救不动垃圾起点("坏的初始化在大量微调后依然差")。这是个值得 BitNet / QAT 阵营反思的信号。

局限与展望

  • 目前只在 weight-only 通道量化设定下验证:activation 量化与 group-wise / mixed-precision 没系统跑;group size 较小时 transition-point reduction 的常数项可能恶化。
  • 依赖 GPTQ 风格的对角 Hessian 近似:把 cross-weight interaction 完全忽略;在某些极度耦合的 attention 矩阵上可能不够准。
  • 浮点 zero-point 的硬件友好性:作者在 Appendix E 论证 mainstream 硬件可以支持,但实际 deployment kernel 上的吞吐对比缺数据;如果硬件 fallback 到 float32,推理收益可能会被打折。
  • 可以推广到非均匀 / 学习的 quantization scheme:本文只解了 uniform 这一种;同样的 "fix one param, solve the other analytically" 思路应能推广到 logarithmic / power-of-two 量化。

相关工作与启发

  • vs GPTQ / GPTAQ (Frantar et al. 2023):他们用 OBS 思路逐权重 round + 误差补偿,但 scale/zero-point 仍 Min-Max。NeUQI 改的是它们共享的初始化层,可与 GPTQ 风格的 rounding 路线正交叠加。
  • vs LeanQuant (Zhang & Shrivastava 2025):LeanQuant 直接在 Min-Max 的两个极值上做二维网格搜(\(T^2 \approx 4{,}000{,}000\) 次评估);NeUQI 解耦后只需 \(\mathcal{O}(\sqrt{T})\) 次 scale 评估 + 内层 \(\mathcal{O}(n \log n)\) 解析求 \(z\),理论复杂度低 1000× 以上。
  • vs OmniQuant (Shao et al. 2024) / EfficientQAT (Chen et al. 2025):他们把 Min-Max clipping 当成可学参数训;NeUQI 不训只解析,直接达到 / 超过这条路线在多个设定上的性能,且不需 backward。
  • vs MagR (Zhang et al. 2024):MagR 是抑制权重 magnitude 的预处理,与 NeUQI 完全正交,理论上可叠加(论文未做此组合实验)。

评分

  • 新颖性: ⭐⭐⭐⭐ 把"老公式藏着两个约束"挑出来本身是 underrated insight;分段二次解析求 zero-point + incremental DP 是新的算法贡献。
  • 实验充分度: ⭐⭐⭐⭐⭐ LLaMA-2/3、Qwen-2.5 全 size、2/3-bit、channel-wise / group-wise、加上 PV-tuning / EfficientQAT 组合实验,覆盖度顶。
  • 写作质量: ⭐⭐⭐⭐ 算法和动机讲得清楚,但 Algorithm 1 在正文里仅给 high-level,要看 Appendix;公式排版略密。
  • 价值: ⭐⭐⭐⭐⭐ 直接把 LLaMA-2 70B 2-bit 推到可用水平(Acc 65%),对消费级 GPU 部署有现实意义;与现有 PTQ pipeline 即插即用。