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))\) 作为最终量化参数。
关键设计¶
-
闭式求最优 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))\) 的关键,本质上是利用了分段函数的"邻接增量结构"。
-
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" 套路在量化里的一个干净落地。
-
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 即插即用。