BPDQ:面向大语言模型的可变网格比特平面分解量化 BPDQ: Bit-Plane Decomposition Quantization on a Variable Grid for Large Language Models
通过比特平面构造可变量化网格,突破固定网格在2-bit极限压缩下的精度瓶颈
前置知识
后训练量化(PTQ)
Post-Training Quantization 是在模型训练完成后、不重新训练的前提下,将模型权重从高精度浮点数(如FP16)映射到低比特整数表示的技术。核心思想是在一个小型校准数据集上,通过最小化量化前后的输出误差来确定最优的量化参数(如缩放因子、零点)。PTQ 的优势在于不需要重新训练,计算成本远低于量化感知训练(QAT)。典型的 PTQ 流程包括:收集校准数据的激活统计、确定每组权重的量化参数、逐列量化并进行误差补偿。GPTQ 是当前最主流的 PTQ 方法之一。
BPDQ 本质上是一种改进的 PTQ 方法,它沿用了 GPTQ 的优化框架但替换了量化网格结构,理解 PTQ 的基本流程是理解本文的前提。
Hessian 诱导几何与误差补偿
在优化型 PTQ 中,量化问题被表述为最小化输出重建误差,其中 = XX^T$ 是由校准数据构成的近似 Hessian 矩阵。GPTQ 利用 ^{-1}$ 的上三角 Cholesky 分解 $(即 ^{-1} = U^T U$)在 Hessian 诱导的几何空间中逐列量化。每当量化一列后,通过三角更新将误差传播到后续列,以补偿量化引入的扰动。具体来说,定义误差坐标 {:,l} = (W_{:,l} - \hat{W}_{:,l}) / U_{l,l}$,然后执行 {:,l:} \leftarrow W_{:,l:} - E_{:,l} U_{l,:}$ 进行补偿。这种机制确保了优化过程在 Hessian 度量下的一致性。
BPDQ 的整个迭代优化框架(比特平面更新、系数拟合、delta 校正)都建立在 Hessian 诱导几何之上,理解这个数学框架才能理解 BPDQ 为何能做到理论一致。
量化网格的形状不变性(Shape Invariance)
传统量化方法(如 UINT2)对每个权重组使用固定模板,例如均匀网格 $\{0, 1, 2, 3\}$ 或非均匀网格 $\{a_0, a_1, a_2, a_3\}$,然后通过一个缩放因子 $ 来适配不同组。虽然 $ 可以在组间变化,但四个量化级别之间的相对间距比例是所有组共享的——每个组只是同一个模板的缩放副本。这种约束称为形状不变性,它将可行解集限制在了一个低维流形上,导致在极低比特(2-bit,仅有 4 个可选值)下优化空间严重受限。
本文的核心洞察就是识别出形状不变性是导致优化型 PTQ 在 2-bit 下失效的根本原因,BPDQ 通过构造可变网格来打破这一限制。
比特平面分解(Bit-Plane Decomposition)
比特平面分解是一种将整数矩阵分解为二进制位矩阵的技术。对于一个 8-bit 无符号整数矩阵 $,可以分解为 = \sum_{i=0}^{7} 2^i P_i$,其中每个 \in \{0, 1\}^{d_{out} imes g}$ 是第 $ 个比特平面。最重要的比特平面(MSB)携带了主要的幅度信息。在本文中,BPDQ 选取 $ 个 MSB 平面作为比特平面,并为每个平面引入独立的标量系数 $,从而构造出可变量化网格。
比特平面分解是 BPDQ 方法的数学基础,它使得量化网格从固定的形状不变模板变为每个组可以独立调整的可变网格。
研究动机
大语言模型推理时的内存占用和带宽瓶颈使得量化技术成为部署的关键手段。虽然现有 PTQ 方法(如 GPTQ、AWQ)在 4-bit 精度下能保持接近全精度的效果,但当压缩到 2-bit 时性能会严重退化。以 Qwen2.5-72B 为例,2-bit AWQ 在 GSM8K 数学推理任务上直接崩溃到 0.00%,2-bit GPTQ 也仅有 40.49%(W2-G64),相比全精度的 90.83% 损失了超过 50 个百分点。根本原因在于:2-bit 仅有 4 个可选值,而传统方法强制所有权重组共享相同的量化级别相对间距模式(形状不变性)。这就好比给所有人发同一把尺子,但不同组的权重分布可能完全不同——有的组集中在 0 附近,有的组有极端离群值,用同一把尺子无法精确刻画所有组的分布。这个可行解集的刚性才是优化型 PTQ 在极低比特下失败的真正原因,而非优化目标本身的问题。
本文的目标是本文的直接目标是突破形状不变量化网格对优化型 PTQ 的限制,在 2-bit 极限压缩率下实现高保真度的大语言模型推理。具体来说,作者希望:第一,在 2-bit 权重量化下,使大模型(如 72B 参数)能够在消费级 GPU(如 RTX 3090,24GB 显存)上运行;第二,在 2-bit 压缩后保持尽可能多的推理能力,特别是数学推理和代码生成等对量化敏感的任务;第三,提出的方法要保持硬件友好的推理格式,而非像向量量化那样引入巨大的推理开销。作者的量化目标是使 72B 模型压缩到约 22GB,恰好适配 RTX 3090 的 22.69GB 可用显存。
与已有工作不同的是,现有工作从多个角度试图解决低比特量化的精度问题:分布感知方法(如 AWQ)通过保护离群值来减少失真,但在 2-bit 时保护离群值本身不足以弥补网格的粗糙性;向量量化方法(如 VPTQ)通过码本映射实现高保真度,但量化时间开销高达 GPTQ 的 40 倍;已有的比特平面方法(如 AnyBCQ)虽然支持硬件友好的位并行运算,但缺乏严格的输出对齐优化目标,依赖微调来维持精度。本文的独特切入点是:它不改变优化目标(仍然使用 GPTQ 的 Hessian 感知优化),而是改变量化网格的结构——从固定模板变为可变网格。这一视角转换意味着,优化框架本身是好的,问题在于搜索空间太小。BPDQ 通过比特平面系数引入额外的自由度,将可行解集从低维扩展到高维,让优化器有更大的空间去寻找最优解。
核心方法
BPDQ 的核心直觉可以这样理解:想象你要用 4 个钉子在墙上固定一幅画。传统方法规定所有画必须用同一种钉子间距(形状不变性),但每幅画的重量分布不同,有些地方需要更密的钉子。BPDQ 则允许每幅画根据自身需要独立调整钉子间距。技术上,BPDQ 在 GPTQ 的 Hessian 感知优化框架基础上,用比特平面分解和标量系数构造可变量化网格。对于每个权重组(例如 128 列),传统 UINT2 只允许 $\{0, s, 2s, 3s\}$ 这样的等间距量化级别,而 BPDQ 通过两个比特平面 , B_2$ 和对应的独立系数 , c_2$ 构造 $\{0, c_1, c_2, c_1+c_2\}$,使得 /c_1$ 的比值可以自由调整。整个流程包括三个阶段:初始化(比特平面选取 + 系数闭式拟合)、迭代优化(列级比特平面更新 + 组级系数重拟合 + delta 校正)、最终输出(量化后的权重矩阵)。迭代次数固定为 10 轮,选取使组内传播误差最小的迭代结果。
BPDQ 最核心的创新在于识别并解决了「形状不变性」这一根本约束。在 Hessian 诱导几何中,优化型 PTQ 本质上是一个最近点投影问题——在可行解集 $ 中找到最接近原始权重的量化版本。可行解集 $ 越丰富,投影误差越小。传统 UINT2 网格将量化级别约束为 \cdot \{0, 1, 2, 3\}$,虽然 $ 可以在组间变化,但相对间距比例是全局共享的,可行解集是一个一维射线。而 BPDQ 的可变网格 $\{0, c_1, c_2, c_1+c_2\}$ 有两个独立参数 , c_2$,可行解集扩展为二维平面。作者在附录中严格证明了两个命题:(1)UINT2 均匀网格是 BPDQ 可变网格的真子集,因此 BPDQ 的量化误差上界不大于 UINT2;(2)存在一个非空开集 $,使得 BPDQ 在该集合上严格优于任何形状不变固定网格。这意味着可变网格不是渐进优势,而是在特定条件下必有严格改善。从几何角度看,每个比特平面模式 $ 生成一个最高 3 维的仿射子空间(张成 $\{1, b_1, b_2\}$),而固定模板仅生成最高 2 维子空间(张成 $\{1, z\}$),多出一个系数自由度。
方法步骤详情
BPDQ 的完整量化流程分为以下步骤:(1)初始化——比特平面选取:对每个列组使用逐组仿射量化器(RTN)将其量化为 8-bit 无符号整数矩阵 \in \{0, \ldots, 255\}$,然后进行比特平面分解 = \sum_{i=0}^{7} 2^i P_i$,选取 $ 个最重要的比特平面(MSB),即 = P_{7-k+i}$,丢弃剩余的低位平面。对 2-bit 量化,=2$,选取第 7 和第 6 个比特平面。(2)初始化——标量系数闭式拟合:在比特平面固定的前提下,每组的量化权重是标量系数 \in \mathbb{R}^{k+1}$ 的线性函数。通过求解行级加权最小二乘问题得到闭式解,其中 {loc}$ 是局部 Cholesky 因子。加入阻尼因子 $?lpha = 10^{-4}$ 保证数值稳定性。(3)迭代优化——比特平面列级更新:在标量系数固定的条件下,逐列更新比特平面。对第 $ 列的第 $ 行,枚举 ^k$ 个比特向量候选值 (b) = C_{0,r,s/g} + \sum_{i=1}^{k} C_{i,r,s/g} b_i$,选择使当前工作列重建误差最小的 ^*$。每列更新后执行 Hessian 感知误差传播。(4)迭代优化——标量系数组级重拟合:在比特平面固定后,重新更新标量系数,构造新的可变网格。(5)delta 校正:系数重拟合会改变量化权重块,破坏误差传播状态的一致性。通过求解校正量并更新传播坐标来维护一致性。(6)结果选择:重复步骤 3-5 共 10 次迭代,保留使组内传播误差 $\|E_{:,s:(s+g)}\|_F^2$ 最小的迭代结果。
技术新颖性
BPDQ 的技术新颖性体现在三个层面。首先是视角创新:作者首次将低比特 PTQ 的精度退化归因于量化网格的形状不变性而非优化目标的缺陷。这一洞察将问题从「如何改进优化算法」转移到「如何扩展搜索空间」。其次是构造创新:通过比特平面分解构造可变网格是一种优雅的数学工具。比特平面本身是 $\{0,1\}$ 二值矩阵,硬件友好;而标量系数是实数,提供连续优化空间。这种「离散结构 + 连续系数」的组合既保持了硬件效率,又扩展了优化自由度。现有比特平面方法(如 AnyBCQ)虽然也使用比特平面,但缺乏输出对齐的优化框架,仅依赖残差校正或微调。第三是理论创新:附录中的两个命题严格证明了可变网格对固定网格的真包含关系和严格误差减少,这在量化领域的理论工作中是少见的。特别是命题 2 的构造性证明——通过构造特定的差分比率来展示 BPDQ 能达到而固定网格无法达到的可行点——既有数学严谨性又有直觉可解释性。
实验结果
BPDQ 在 2-bit 极限压缩下的表现令人瞩目。以 Qwen2.5-72B 为例,在 GSM8K 数学推理任务上,BPDQ-W2-G64 达到 87.72%,而 GPTQ-W2-G64 仅为 40.49%,AWQ-W2-G64 更是崩溃到 0.00%,BPDQ 的提升幅度高达 47.23 个百分点。在 W2-G256 的最极端压缩设置下(2.19 BPW),72B 模型被压缩到 22.69GB,恰好适配单张 RTX 3090(24GB),同时保持 83.85% 的 GSM8K 准确率(保留了 92.32% 的基线精度)。在更广泛的基准测试中,BPDQ-W2-G256 在 BoolQ 上达到 89.72%(保留 99.15%),在 HellaSwag 上达到 81.69%,在 MMLU 上达到 75.89%,总体保留超过 91.01% 的基线性能。在 Qwen3-32B 上,BPDQ-W2-G64 达到 80.89% GSM8K,而 GPTQ-W2-G32 仅 44.20%,AWQ-W2-G32 为 0.00%。在 Ministral3-8B 上,BPDQ-W2-G64 达到 42.46% GSM8K,GPTQ-W2-G32 仅 12.36%,AWQ-W2-G32 为 0.00%。在与其他比特平面和向量量化方法的对比中(Qwen2.5-7B),BPDQ-W2-G64(44.50% GSM8K)虽然低于 VPTQ-W2(67.63%),但量化时间仅为 GPTQ 的约 3 倍,而 VPTQ 需要约 40 倍。AnyBCQ-W2-G128 仅 4.47%,远落后于 BPDQ。在长上下文任务上,2-bit BPDQ 在 PassageRetrieval 检索任务上保持 53.75% 的准确率,而 GPTQ 暴跌至 4.98%。激活离群值分析显示,2-bit GPTQ 严重压制了离群特征(DiagR 下降 32.89%,Cnt10 下降 23.61%),而 BPDQ 几乎完全保留(DiagR 仅下降 4.98%,Cnt10 仅下降 1.85%),验证了可变网格在保持模型质量方面的内在优势。在 3-bit 和 4-bit 精度下,BPDQ 的优势逐渐缩小但仍然稳健,大多数场景下与 GPTQ 和 AWQ 持平或略优。在 Llama3.1-8B、Gemma2-9B、Phi4-14B 等非 Qwen 系列模型上,BPDQ 同样表现出一致的 2-bit 优势,例如 Phi4-14B 上 BPDQ-W2-G64 达到 66.19% GSM8K,GPTQ-W2-G32 仅 5.99%。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| Qwen2.5-72B GSM8K (2-bit, G64) | GSM8K 准确率 | 87.72% | GPTQ: 40.49% / AWQ: 0.00% | +47.23pp vs GPTQ |
| Qwen2.5-72B GSM8K (2-bit, G256) | GSM8K 准确率 | 83.85% | GPTQ: 63.46% / AWQ: 0.00% | +20.39pp vs GPTQ |
| Qwen3-32B GSM8K (2-bit, G64) | GSM8K 准确率 | 80.89% | GPTQ: 5.91% / AWQ: 3.18% | +74.98pp vs GPTQ |
| Ministral3-8B GSM8K (2-bit, G64) | GSM8K 准确率 | 42.46% | GPTQ: 1.52% / AWQ: 0.00% | +40.94pp vs GPTQ |
| Qwen2.5-7B GSM8K (2-bit, G64) | GSM8K 准确率 | 44.50% | GPTQ: 0.00% / AWQ: 0.00% / VPTQ: 67.63% | +44.50pp vs GPTQ |
| Qwen2.5-7B LongBench Retrieval (2-bit) | PassageRetrieval 准确率 | 53.75% | GPTQ: 4.98% | +48.77pp vs GPTQ |
| 系统效率: 量化时间 | 量化耗时 (Qwen2.5-7B) | ~40 min (10轮迭代) | GPTQ: 16 min / VPTQ: ~640 min (4GPU) | ~3x GPTQ, ~16x faster than VPTQ |
局限与改进
尽管 BPDQ 在 2-bit 下表现优异,但仍存在明显的局限性。首先是保真度差距:与向量量化方法(VPTQ)相比,BPDQ 在某些任务上仍有差距。例如在 Qwen2.5-7B 的 GSM8K 上,BPDQ-W2-G64 为 44.50%,而 VPTQ-W2 达到 67.63%,差距约 23 个百分点。作者在局限性章节中也承认了这一点,并提出可以通过集成旋转技术(如 Quarot)或增强序列求解器(如 Qronos)来弥补。其次是存储开销:BPDQ 需要为每个比特平面存储标量系数,导致实际 BPW 略高于 GPTQ。例如 BPDQ-W2-G64 的 BPW 为 2.75,而 GPTQ-W2-G64 为 2.28,BPDQ 需要更大的分组大小(如 G128 或 G256)来对齐 BPW。第三是 4-bit 下优势不明显:在 4-bit 精度下,大多数方法都达到了高保真度,BPDQ 的优势并不显著,这说明可变网格的价值主要体现在极限压缩场景。第四是小模型效果有限:在 Qwen3-0.6B 这样的极小模型上,2-bit 量化后的精度普遍很低(GSM8K 不足 1%),BPDQ 虽然优于 GPTQ 和 AWQ,但绝对精度仍然很低,说明极限压缩对小模型的伤害更大。
独立分析的弱点
从独立分析的角度,BPDQ 存在以下几个值得关注的弱点。第一,迭代次数固定为 10 轮,缺乏自适应机制。在权重分布较为简单的组中,可能 3-5 轮迭代就够了,而复杂组可能需要更多轮次。改进方向是引入早停策略(如连续两轮误差变化小于阈值则停止),以减少不必要的计算。第二,比特平面初始化依赖 RTN 量化。BPDQ 首先用 round-to-nearest 将权重量化为 8-bit 整数,然后取 MSB 平面。这个初始化步骤可能不是最优的,特别是当权重分布有严重偏斜时。可以考虑用聚类或优化方法直接学习比特平面的初始值。第三,列级更新的穷举搜索复杂度为 (2^k)$。虽然 =2$ 时仅 4 个候选值可以高效枚举,但如果想扩展到 3-bit(=3$,8 个候选)或更高,穷举搜索的开销会指数增长。可以考虑使用贪心算法或束搜索来降低复杂度。第四,delta 校正的数学正确性依赖于 \succ 0$ 的假设。在实际应用中,如果校准数据不足或存在秩亏缺,Hessian 矩阵可能不是严格正定的,阻尼因子 $?lpha = 10^{-4}$ 只是一种经验性的数值稳定化手段。第五,与旋转/通道混合技术的正交性未充分探索。作者在展望中提到可以结合 Quarot 等旋转技术,但没有给出实验验证。旋转技术可以在量化前重新排列权重的离群值结构,可能与 BPDQ 的可变网格产生协同效应。
未来方向
作者和本文成果共同指向了多个有前景的研究方向。第一,与旋转技术(Quarot)和增强求解器(Qronos)的结合。作者明确指出未来工作可以集成这些技术来缩小与向量量化的保真度差距。旋转技术可以在量化前将离群值分散到更多维度,而 Qronos 可以改进误差补偿的时序一致性。第二,FPGA/ASIC 硬件部署。比特平面的二值特性天然适合 FPGA 或 ASIC 实现,可以用简单的加法替代浮点乘法,显著提升能效和面积效率。第三,混合精度和多精度服务。BPDQ 的统一基础结构可以通过分配更多或更少的比特平面来实现混合精度,无需硬件支持多种数据类型。这一特性还可以支持多精度推理——在同一模型上动态切换精度以平衡准确率和延迟。第四,扩展到激活量化。本文仅处理权重量化(weight-only quantization),如果将可变网格思想扩展到激活量化(weight-activation quantization),可能进一步压缩模型和加速推理。第五,3-bit 及更高比特平面的自适应选择。目前 BPDQ 固定选取 $ 个 MSB 平面,可以考虑自适应地为不同组选择不同的比特平面数量或不同的比特平面组合。
复现评估
BPDQ 的复现条件相当友好。作者已将代码开源于 GitHub,基于 GPTQModel 库实现,该库是一个成熟的量化工具,支持 GPTQ 和 AWQ 等方法。校准数据使用 C4 数据集的 1024 个样本,这是公开可获取的标准数据集。实验在单张 NVIDIA H20 GPU 上完成,量化 7B 模型(BPDQ-W2-G64)仅需约 40 分钟,72B 模型的量化时间相应更长但仍在合理范围内。推理时使用了 LUT(Look-Up Table)核来支持比特平面格式的高效解码。主要的复现难度在于:(1)需要较大的 GPU 显存来加载全精度模型作为量化起点(72B 模型需要约 140GB,可以用多卡或 CPU offloading);(2)LUT 核的实现需要适配 BPDQ 的比特平面格式,可能需要一定的 CUDA 编程经验;(3)迭代 10 轮的量化过程虽然比 VPTQ 快很多,但仍比 GPTQ 慢约 3 倍。总体而言,对于有量化经验的研究团队,复现难度为中等;对于入门者,可以直接使用作者的开源代码。
论文图表