大语言模型领域正在向低精度计算转变。这一转变要求我们重新思考缩放法则,以考虑量化对最终量化模型性能的影响。在这项工作中,我们证明了通过更好的量化方案设计和训练改进,可以显著地完善先前关于低比特缩放法则的结论。
我们提出了 ParetoQ,这是第一个统一二值、三值以及 2 到 4 比特量化感知训练的算法。ParetoQ 在所有比特宽度下都产生了最先进(SOTA)的模型,超越了以往针对单个比特级别定制的工作,从而展示了其鲁棒性。我们已经在 Hugging Face 上发布了MobileLLM 低比特模型集合,其中包括使用我们的 ParetoQ 方法量化的模型。最小的模型是一个超高效的 1 比特 125M 变体,等效存储大小仅约 16MB。
帕累托图中的这些最先进(SOTA)点确保了我们的缩放法则比较既可靠又一致,因为它们源于同构的设置。我们的缩放法则揭示,二值量化会显著损害准确性,而三值、2 比特和 3 比特量化的性能相当,并常常优于 4 比特。
ParetoQ 基于 PyTorch 模型,包括 LLaMA 和 MobileLLM。我们使用了流行的 PyTorch 库:HuggingFace Transformers 进行准确性实验。对于延迟实验,我们在 CPU 上通过 ExecuTorch 使用了低比特量化核。我们将它们的速度与 4 比特量化进行了比较。此外,我们实现了最先进的 2 比特 GPU 核,与 FP16 相比,其速度提升高达 4.14 倍,在 TritonBench 上比 Machete 4 比特核快 1.24 倍。
ParetoQ 已经集成到 torchao [pull] 中。通过此集成,用户可以在 torchao 的代码库中将量化方法指定为“paretoq”来利用 ParetoQ。设置完成后,用户可以利用 torchao 的 ParetoQ 工作流,优化量化参数以平衡准确性和压缩率之间的权衡,并使用帕累托前沿分析对不同量化比特进行同等条件下的比较。这使得在边缘设备上高效部署模型成为可能,无需手动调整量化设置。
要获取经 ParetoQ 量化的模型,只需导航至 torchao/prototype/paretoq 目录并执行训练脚本。
cd torchao/prototype/paretoq && bash 1_run_train.sh $w_bit
在这里,$w_bit 指定了用于量化的目标权重比特宽度。
ParetoQ 代码位于:https://github.com/facebookresearch/ParetoQ
论文链接:https://arxiv.org/abs/2502.02631
1. 针对极低比特大语言模型的更优 QAT 调度策略
1.1 训练预算分配
给定固定的训练预算 B_train = B_FPT + B_QAT,应如何在全精度训练(B_FPT)和量化感知训练/微调(B_QAT)之间进行最优分配,以最大化量化模型的准确性?
图 1:全精度预训练和 QAT 微调之间的最优分配。
发现-1 量化感知训练(QAT)微调始终优于 B_FPT = B_train 的训练后量化(PTQ)以及 B_QAT = B_train 的从零开始的 QAT。将大部分训练预算用于全精度(FP)训练,并将约 10% 用于 QAT,几乎可以实现最优性能。
1.2 微调特性
图 2:量化感知微调与从零开始训练所需训练数据量的分析。
发现-2 虽然微调能提升所有比特宽度(甚至二值和三值)的性能,但最优微调投入与比特宽度成反比。对于 3 比特和 4 比特权重,微调在邻近网格内进行调整以减轻精度损失,因此需要较少的微调数据。相比之下,二值和三值权重打破了原有网格,创建了新的语义表示以维持性能,这需要更长时间的微调。
图 3:QAT 微调后权重与全精度初始化权重的 L1 范数差异 (||W_finetune − W_init||_l1 /||W_init||_l1)。
2. 量化方法选择实用指南
在低于 4 比特的量化中,函数的选择非常敏感,可能会极大地改变缩放法则的结果。
图 4:量化网格选择在不同比特宽度下的影响。2.1.1 范围裁剪与基于统计的量化(例如,最大最小值量化)相比,将量化范围作为网络参数进行优化的可学习缩放因子,能够在抑制离群值和保持精度之间取得平衡,从而产生更稳定和更优越的性能。如图 (b)-(e) 所示,在所有比特宽度下,可学习策略始终优于基于统计的方法。
2.1.2 量化网格
量化网格中的层级对称性对较低比特量化至关重要,但常被忽视。在偶数量级量化(如 2 比特、3 比特、4 比特)中包含“0”可能导致不平衡。例如,像 (-2, -1, 0, 1) 这样的 2 比特量化选项将正值表示限制在一个层级,而 (-1.5, -0.5, 0.5, 1.5) 则提供了更平衡的表示。我们提出了拉伸弹性量化(Stretched Elastic Quant, SEQ)来解决在较低比特场景下的这一问题。
SEQ 平衡了量化层级并均匀划分了全精度权重范围,这对于极低比特量化至关重要。图表显示,SEQ 在三值和 2 比特量化中具有优势,而在 3 比特和 4 比特情况下,包含“0”的 LSQ 表现略好。
图 5:不同比特宽度下量化方法的比较。
2.2 量化函数
基于我们的分析,我们将为每个比特宽度确定的最优量化函数组合成一个公式,称为 ParetoQ。这包括用于 1 比特量化的弹性二值化(Elastic Binarization [1]),用于 3 比特和 4 比特量化的 LSQ [2],以及为 1.58 比特和 2 比特量化提出的 SEQ。
在这里,在三值情况下 k 等于 3,其他情况下等于 2Nbit;n = –2Nbit-1 且 p = 2Nbit-1 -1。在反向传播中,可以使用直通估计器(straight-through estimator)轻松计算权重和缩放因子的梯度。
通过 ParetoQ,我们提出了一个跨越五个比特宽度(1 比特、1.58 比特、2 比特、3 比特、4 比特)的稳健比较框架,每个比特宽度都达到了最先进的准确性。这有助于进行直接、同等条件下的比较,以确定最有效的比特宽度选择。
3. 与最先进技术(SoTA)的比较
3.1 1.58 比特量化比较
下图表明,ParetoQ 始终优于以往针对三值量化感知训练的方法,包括 Spectra [3] 和 1-bit Era [4]。鉴于一个全精度 LLaMA-3 3B 模型能达到 69.9 的准确率,值得注意的是,ParetoQ 的三值 3B 参数模型将差距缩小到仅 4.1 个百分点,而之前的方法性能下降超过 11.7 个百分点。
图 6:在六项任务(ARC-e、ARC-c、BoolQ、PIQA、HellaSwag 和 WinoGrande)上平均的三值量化准确性。在三值量化感知训练中,ParetoQ 始终优于所有先前的方法。
3.2 2 比特 / 3 比特 / 4 比特量化比较
如图 1 所示,与之前在 2、3 或 4 比特量化设置中最先进的 PTQ 和 QAT 方法相比,我们的方法始终处于帕累托前沿,在较低比特量化设置中优势尤为明显。这些结果证实,我们的比特-准确性权衡结论是在所有比特设置下与最先进(SoTA)结果对标的,确保了其可靠性。
图 7:8 个模型上的准确性比较。在 2、3 和 4 比特设置下,ParetoQ 优于所有最先进的 PTQ 和 QAT 方法。
4. 帕累托曲线
在许多场景中,4 比特量化感知训练(QAT)实现了近乎无损的压缩。通过 ParetoQ,我们能够进一步改善权衡曲线。图 (a) 表明,低于 4 比特的量化,包括二值、三值、2 比特和 3 比特,其性能常常优于 4 比特。值得注意的是,2 比特和三值模型位于帕累托前沿。
为评估除内存减少外的潜在加速效益,我们使用了高性能低比特算子进行 2 比特量化,并将其延迟与 4 比特量化进行比较。图 8(c) 中的曲线表明,在我们的实验范围内,2 比特量化模型在准确性-速度性能方面始终优于 4 比特模型,这使 2 比特量化成为在延迟和存储都至关重要的设备端应用中的更优选择。
图 8:(a) (b) 在低于 4 比特的范围内,1.58 比特、2 比特和 3 比特量化在准确性-模型大小权衡方面优于 4 比特。(c) 在硬件限制下,与较高比特方案相比,2 比特量化展示出更优的准确性-速度权衡。
5. GPU 延迟
我们在 H100 NVL GPU(94GB 内存)上测量了 LLaMA 3.2 模型(1B、3B、8B)的延迟。W4A16 核使用了 vLLM 的Machete核,而W2A16 核是基于 CUTLASS 混合精度骨干核实现的。所有测试均在单个 GPU 上进行,上下文长度为 2048 个 token。在核级别的延迟方面,我们在 TritonBench 上比较了 2 比特核与 4 比特 Machete 核在三种权重形状下的表现:(4096 x 4096)、(8192 x 8192) 和 (16384 x 16384)。对于较大尺寸的核,2 比特核相比 4 比特 Machete 核可实现约 24% 的速度提升。
结论
在这项研究中,我们提出了 ParetoQ,一个在所有比特宽度级别上都达到最先进性能的先进量化框架。该框架独特地实现了跨不同比特宽度的直接、一致的比较,确保了对性能指标的公平评估。我们的实证分析表明,与 4 比特相比,1.58 比特、2 比特和 3 比特的量化在准确性与有效量化模型大小之间提供了更优的权衡,突显了它们在优化模型部署方面的潜力。
欢迎按照仓库中的步骤,从 torchao/prototype/paretoq 尝试运行 ParetoQ。如果您有任何问题,请随时联系 Zechun Liu <zechunliu@meta.com>、Changsheng Zhao <cszhao@meta.com>、Andrew Or <andrewor@meta.com>
参考文献
[1] BiT: Robustly Binarized Multi-Distilled Transformer.
[2] Learned Step Size Quantization.
[3] Spectra: A Comprehensive Study of Ternary, Quantized, and FP16 Language Models.
[4] The Era of 1-bit LLMs: All Large Language Models Are in 1.58 Bits