【文献阅读】DBellQuant: Breaking the Bell with Double-Bell Transformation for LLMs Post Training Binarizat
摘要:本文提出DBellQuant框架,通过创新的双钟形可学习变换(LTDB)算法实现大语言模型(LLM)的高效训练后量化。该方法将单钟形权重分布转换为更适配二值化的双钟形分布,同时通过逆变换平滑激活值异常值。实验表明,DBellQuant在保持模型性能的同时,首次实现近1位权重压缩与6位激活量化。在LLaMA2-13B等模型上,其困惑度(14.39)显著优于现有方法(21.35),为LLM的高效

摘要
大语言模型(LLMs)展现出卓越性能,但面临巨大的计算与内存挑战,这限制了其实际部署。量化技术已成为一种极具潜力的解决方案;然而,由于权重分布不利于量化且存在激活异常值,量化误差往往会限制其效果。
为应对这些挑战,我们提出 DBellQuant—— 一种创新性的训练后量化(PTQ)框架,该框架能实现近 1 位权重压缩与 6 位激活量化,且性能损失极小。DBellQuant 采用双钟形可学习变换(LTDB)算法,将单钟形权重分布转换为双钟形分布以减少二值化误差,并通过逆变换平滑激活值。
在激进的权重与激活量化条件下,DBellQuant 仍能保持优异的模型性能,树立了新的技术标杆。例如,在 Wikitext2 数据集上,DBellQuant 对 LLaMA2-13B 模型采用 6 位激活量化时,困惑度达到 14.39,显著优于未进行激活量化的 BiLLM 模型(困惑度 21.35),这充分体现了其在大语言模型压缩实际应用中的潜力。
1 引言
近年来,大语言模型(LLMs)发展迅速,在自然语言理解与生成等各类复杂任务中展现出卓越性能 [1, 10]。然而,这些模型通常包含数千亿个参数,巨大的计算与内存需求(例如,700 亿参数模型需约 150GB GPU 内存)使其在实际应用中部署面临严峻挑战,导致运营成本高昂且推理延迟难以接受。
在此背景下,量化作为一种有效的模型压缩技术受到广泛关注。由于大语言模型权重存在信息密度稀疏性 [30, 33],权重二值化已成为一种极具潜力的量化方案。
权重的二值化是模型量化的极端形式,核心是将神经网络中连续的权重值(如 32 位浮点数)压缩为仅两种离散二进制值(常见 ±1 或 0 和 1),从而极致降低模型存储开销与计算复杂度。其核心逻辑是:通过符号函数(Sign)或阈值判断,将原始权重映射到双值空间,同时保留权重的核心分布特征以减少性能损失 —— 比如 DBellQuant 中会先将单钟形权重转为双钟形,再进行二值化,就是为了让权重更适配双值映射,降低量化误差。应用场景集中在资源受限设备(如边缘设备),能大幅减少内存占用(权重存储量降至原 1/32),并加速推理(二进制运算比浮点运算更高效),是大语言模型等复杂模型落地的关键压缩技术之一。
PB-LLM [23] 和 BiLLM [15] 等方法通过对关键权重进行更细粒度的处理,大幅降低了二值化引入的误差。尽管在理论上具有优势,但量化技术在大语言模型压缩中的应用仍面临诸多挑战 [11]。例如,激活值中的系统性异常值会导致严重的量化误差,对模型精度产生负面影响 [25]。
尽管近期研究 [31, 24] 提出通过重新分配权重与激活值之间的缩放因子来缓解此类误差,另有研究方向 [2, 18, 26] 聚焦于利用哈达玛变换有效消除异常特征,但目前尚无二值化方法能同时实现激活值平滑。
因此,计算过程中对更高位宽激活值的需求会导致显著的计算开销。BitNet a4.8 [30] 通过量化感知训练(QAT)实现了 1 位权重、4 位激活的大语言模型,但 QAT 方法需要大量计算资源且训练时间漫长。因此,开发一种训练后量化(PTQ)方法,在实现二值化压缩的同时最小化性能损失,并通过激活值平滑降低激活位宽,仍是一项关键且具有挑战性的任务。

图 1:在 Wikitext2 数据集上的性能表现。在 8 位激活设置下,DBellQuant 优于仅权重量化方法。
为此,我们首先重新分析大语言模型中激活值与权重的分布特征(图 2 (a))。我们发现,权重分布的单峰特性会导致严重的量化误差,在 1 位低精度量化场景下尤为明显。理想情况下,双钟形权重分布(图 2 (b))能有效降低二值化误差。这引发了一个核心问题:能否将权重转换为双钟形分布,同时解决激活异常值问题,从而同时实现激活量化与权重二值化?
基于上述观察,我们提出 DBellQuant——一种新型权重 - 激活联合量化框架,用于高效的训练后量化(PTQ)。DBellQuant 支持激活量化,同时能实现近 1 位权重压缩,且精度损失极小。该框架的核心是一个可学习变换矩阵:它能将权重分布映射为双钟形,同时对输入激活值应用其逆变换以实现平滑。我们首先分析适合二值化的权重分布特征,并从理论上证明双钟形变换的可行性;在此基础上,开发了一种高效轻量的算法 —— 双钟形可学习变换(LTDB)。LTDB 采用激活感知策略初始化变换矩阵,并通过自定义目标函数优化矩阵,促使权重向两个中心聚集,形成对称的双峰分布;同时采用早停策略确保优化过程稳定高效。

图2:(a) 应用DBellQuant前,激活值存在显著异常值,导致量化难度较大;同时,单钟形权重分布对二值化过程产生阻碍。(b) 应用DBellQuant后,激活值变得平滑且异常值数量大幅减少,使量化更易于实施;权重分布则转换为双钟形,这种形式更有利于二值化操作。
图 2 (a) 的问题是:
- 激活值有大量异常值(数值波动范围宽),量化时误差大;
- 权重是单钟形分布(数值集中在中间,比如围绕 0 附近),直接二值化(映射到 ±1)时,很多数值会 “挤在中间”,导致正负分类模糊,误差极高(比如 0.1 和 - 0.1 都接近 0,二值化后可能误判,丢失信息)。
通过这种保等变换,原本呈单钟形分布(难以二值化)的权重被映射为近似对称的双钟形分布(图 2 (b)),二值化误差大幅降低。与此同时,将学习到的变换的逆变换应用于输入激活值,能有效缩小异常值幅度并平滑分布,使激活值更易于量化,且不改变模型输出(图 2 (b))。
实验结果表明,DBellQuant 的保等变换策略显著降低了权重二值化带来的损失。在训练后量化(PTQ)条件下,该方法首次实现了近 1 位权重压缩,同时将激活值压缩至 6 位。在不同大语言模型与评估指标下,DBellQuant 均持续取得最先进性能。例如,在 Wikitext2 基准测试中,对 LLaMA2-13B 模型采用仅 6 位激活量化时,我们的方法困惑度达到 14.39(图 1),显著优于仅量化权重的 BiLLM 方法(困惑度 21.35)。
2 相关工作
2.1 大语言模型量化
大语言模型的海量参数使其在内存消耗与计算效率方面面临严峻挑战。因此,量化技术对于压缩模型、降低资源需求并保留性能以实现实际部署至关重要。大语言模型量化领域已涌现出多种创新技术,旨在提升效率的同时保持精度。GPTQ [12] 和 OBQ [14] 等方法通过调整块中未量化的剩余参数,补偿量化导致的精度损失;LLM.int8 ()[7] 和 ZeroQuant [32] 通过为定制量化块引入额外分组标签,提升量化精度;SmoothQuant [31] 和 OmniQuant [24] 则通过重新分配权重与激活值之间的缩放因子,将量化难度从激活值转移到权重;此外,近期研究利用哈达玛变换抑制激活异常值 [2, 18, 26],另有研究提出非相干处理以实现有效的低比特量化 [5, 28]。这些进展共同表明,量化技术可成功应用于数十亿参数的模型,在不影响模型性能的前提下大幅降低内存消耗与推理延迟。
2.2 二进制量化
二进制量化是一种极端的低比特量化技术,可将模型权重与激活值简化为二值(如 - 1 和 + 1 或 0 和 1),因其能大幅降低内存占用与计算复杂度,非常适合资源受限设备及大规模模型的高效部署,因而受到广泛关注。然而,由于大语言模型对精度损失敏感(尤其是注意力机制与大型嵌入层),将二进制量化应用于大语言模型面临巨大挑战。BinaryBERT [3] 探索了 BERT 模型的二进制量化,提出对关键权重采用更高精度保留,以缓解性能下降;PB-LLM [23] 则为大语言模型提出部分二值化方法,将少量重要权重保留为更高精度,其余权重进行二值化,在实现极端低比特量化的同时不损失语言推理能力。近期进展包括结构化二值化技术(利用新型稀疏形式与标准化重要性指标,选择性地对大语言模型权重进行二值化与稀疏化 [9]),以及交替精化二值化、列组位图等策略(有效降低量化误差并解决列偏差问题 [17])。这些创新共同推动了大语言模型二进制量化的可行性,在不影响性能的前提下突破了效率极限。
3 方法
我们首先分析二值化过程,在 3.1 节中分析并从理论上证明适合二值化的权重分布特征;基于此分析,在 3.2 节提出双钟形可学习变换(LTDB)算法。在研究利用可学习变换矩阵实现目标的可能性后,考虑到训练难度与任务复杂度,我们重新设计了一种高效的可学习变换,并提出合理的激活感知初始化方法。算法概述如图 3 所示。

图3:DBellQuant框架概述:(a)首先,可见原始权重分布呈单钟形。(b)采用激活感知初始化方法生成初始变换矩阵。(c)采用双钟形可学习变换(LTDB)算法对变换矩阵进行迭代训练,并通过两种方式应用所提出的双变换损失:一是用于训练过程,二是作为训练过程的终止准则。(d)变换后的权重分布将呈双钟形。
3.1 二值化友好的权重重分布
利用符号函数可将大语言模型的权重转换为二值。逐通道二值化与反二值化过程如下:\(\beta=\frac{1}{n} \sum_{i=1}^{n} W_{i, j}, \tilde{W}=\text{Sign}(W-\beta), \alpha=\frac{1}{n} \sum_{i=1}^{n}\left|W_{i, j}-\beta_{j}\right|\)
\(\text{Sign}(W_{i,j})= \begin{cases} +1, & \text{若 } W_{i,j}>0, \\ -1, & \text{若 } W_{i,j}\leq 0, \end{cases}, W_{\text{deq}}=\tilde{W} \cdot \alpha +\beta \quad (2)\)
其中,β 为二值化的偏移因子,α 为缩放因子。已有研究 [16] 表明,神经网络权重沿通道维度呈现结构化分布,部分通道的重要性更高;整体权重分布通常近似高斯分布 [8],通道维度的分布亦是如此(图 6)。对此类权重矩阵进行二值化会引入显著的量化误差,可能严重影响模型性能。
在大语言模型二值化中,双钟形分布在理论上优于单钟形分布:其天然分为两个不同簇,与二值量化水平(如 - 1 和 1)高度契合,从而最小化量化误差。相比之下,单钟形分布的数值集中在单个峰值附近,映射到二值时易出现显著重叠,导致表示精度下降(详见附录 A.4 的详细分析)。然而,大语言模型的权重分布通常呈单钟形,传统训练后量化(PTQ)方法无法有效对其进行变换以适应二值化。尽管量化感知训练(QAT)可通过学习目标将权重分布重塑为双钟形 [29],但需大量计算资源且训练时间漫长。为解决这一问题,我们提出一种更高效的 PTQ 方法,可快速将单钟形分布转换为双钟形分布,在无需资源密集型重训练的情况下优化二值量化效果。
3.2 双钟形量化的可学习变换
3.2.1 带辅助矩阵的可学习变换
如前所述,双钟形分布有利于二值化,但核心问题在于:如何将原本呈单钟形分布的权重矩阵转换为双钟形分布,同时确保计算结果不变?本节首先探讨通过引入辅助矩阵实现该变换的可行性:
定理 1:设\(W \in \mathbb{R}^{n \times m}\)为权重矩阵,其每个通道\(w_i\)(\(i \in \{1,2,...,n\}\))服从单钟形高斯分布\(w_i \sim \mathcal{N}(\mu_i, \sigma_i^2)\),则存在可学习矩阵\(T \in \mathbb{R}^{m \times m}\),使得变换后矩阵\(W'=WT\)的通道服从双钟形分布(即两个高斯分布的混合):\(w_i' \sim \pi \mathcal{N}(\mu_1, \sigma_1^2) + (1-\pi) \mathcal{N}(\mu_2, \sigma_2^2)\)
其中,\(\pi \in (0,1)\)为混合系数,\(\mu_1、\mu_2、\sigma_1^2、\sigma_2^2\)为双钟形分布的参数。详细证明见附录 A.3。
定理 1 表明,通过引入辅助矩阵 T,可实现权重分布从单钟形到双钟形的转换。然而,该方法存在若干显著挑战:首先,大语言模型的权重矩阵通常维度极高(如 4096×4096),这意味着辅助矩阵 T 也需具备相同维度,导致计算成本高昂且难以学习;其次,为保持计算一致性,需同时对激活值应用\(T^{-1}\),这引发了 T 的可逆性这一关键问题 —— 确保严格可逆需引入额外约束与复杂设计步骤,进一步增加了实现难度;第三,即便 T 严格可逆,当前方法中缺乏优化激活量化的显式机制,无法确定该设计是否能有效促进激活量化。这些局限性表明,需要一种更高效、更稳健的设计来解决基于辅助矩阵变换的计算与实际应用挑战。
3.2.2 可学习保等变换
为应对上述挑战,我们提出一种更简洁高效的变换方法:将待学习的矩阵\(T \in \mathbb{R}^{1 \times C_{\text{in}}}\)(\(C_{\text{in}}\)为输入通道数)简化为 1×\(C_{\text{in}}\)矩阵。与上述矩阵相比,该设计大幅降低了 T 的维度,使其更易于学习。
此外,该方法可通过以下方式实现简单变换,确保计算一致性且不引入额外复杂度:\(Y = X \cdot W = X \cdot (T^{-1} \cdot T) \cdot W = (X \odot T^{-1}) \cdot (T \odot W)\)
其中,\(X \in \mathbb{R}^{N \times C_{\text{in}}}\)为输入矩阵,N 为 token 长度,\(C_{\text{in}}\)为输入通道数;\(W \in \mathbb{R}^{C_{\text{in}} \times C_{\text{out}}}\)为权重矩阵,\(C_{\text{out}}\)为输出通道数;\(\odot\)表示按元素乘法。此外,该保等变换矩阵 T 可直接融合到 LayerNorm 权重与相应的线性权重中,无需引入额外参数。然而,直接求解该矩阵难度极大,为此我们提出一种可学习方法,以有效训练并推导该矩阵。
下文介绍可学习变换矩阵 T 的初始化方法,公式如下:\(T_j = \frac{\max\left(|X_j|\right)^{\epsilon}}{\max\left(|W_j|\right)^{1-\epsilon}}\)
其中,ε 为超参数。该初始化策略对权重二值化与激活平滑均具有显著优势:在权重量化方面,当\(\max(|W_j|)\)极小时,表明权重绝对值较小,此时\(\frac{1}{\max(|W_j|)}\)的值较大,可对这些小权重进行放大;反之,当\(\max(|W_j|)\)极大时,表明权重绝对值较大,此时\(\frac{1}{\max(|W_j|)}\)的值较小,可对这些大权重进行缩小。通过这两种操作,所有权重值可向两个中心点靠拢,从而降低量化误差(详见附录 A.4)。在激活量化方面,该初始化显式考虑了激活矩阵中的异常值,本质上具备激活感知特性。这意味着,即使在后续训练中不对激活量化进行额外优化,该方法仍能支持近 1 位权重量化,同时有效将激活值压缩至低比特宽度。
3.3 双变换优化目标
3.3.1 双目标最小偏差损失
我们的学习目标是促使所有权重值向公式 (2) 计算的两个均值中心靠拢,最终形成以这两个值为峰值的双钟形分布。在二值化过程中,我们将这两个点分别记为\(m_1\)和\(m_2\)。损失函数的简单定义如下:\(\mathcal{L}_{\text{DTMD}} = \frac{\lambda_{\text{DTMD}}}{n} \sum_{i=1}^{n} \min\left(|W \cdot T_i - m_{1,i}|, |W \cdot T_i - m_{2,i}|\right)\)
其中,\(\lambda_{\text{DTMD}}\)为\(\mathcal{L}_{\text{DTMD}}\)的系数。然而,使用此类损失函数训练变换矩阵会引发一个问题:我们观察到,训练过程中变换矩阵会逐渐收缩,与 “放大原本绝对值较小的权重” 这一预期效果相反。这种非预期行为会导致严重问题 —— 实际上将量化挑战从权重转移到了激活值。
3.3.2 双目标归一化比例损失
如前所述,仅使用 DTMD 损失不足以训练出更适合二值化的权重分布,因此我们引入一种新的损失函数:\(\mathcal{L}_{\text{DTNP}} = \frac{\lambda_{\text{DTNP}}}{n} \sum_{i=1}^{n} \begin{cases} \frac{|W \cdot T_i - m_{1,i}|}{|m_{1,i}|}, & \text{若 } |W \cdot T_i - m_{1,i}| < |W \cdot T_i - m_{2,i}| \\ \frac{|W \cdot T_i - m_{2,i}|}{|m_{2,i}|}, & \text{其他情况} \end{cases} \quad (6)\)
其中,\(\lambda_{\text{DTNP}}\)为\(\mathcal{L}_{\text{DTNP}}\)的系数。通过双目标归一化比例目标,可有效训练变换矩阵以实现预期行为:缩小绝对值较大的权重,放大绝对值较小的权重,使其向双钟形分布靠拢。由于我们的目标值已转换为\(\frac{|W \cdot T_i - m_i|}{|m_i|}\),最终收敛值可能与预期结果不一致。此外,我们提出早停机制,以防止函数收敛到偏离预期目标的非期望解。研究发现,使用该损失函数训练时,DTMD 损失会先快速下降,随后缓慢上升(如图 4 所示)。因此,我们引入早停机制,并将 DTMD 作为训练停止的判断条件。
图 4:不同层的双目标最小偏差损失(DTMD)随迭代次数的变化。
3.4 可学习变换矩阵的逆矩阵对激活平滑的影响
通过 DTNP 损失训练可知,变换矩阵 T 促使权重中的所有值向公式 (2) 计算的两个均值中心靠拢。已有研究表明,权重分布通常近似高斯分布,大多数值极小且接近零,只有极少数值的绝对值相对较大 [8]。从理论上看,这意味着 T 中会包含大量大于 1 的值(用于放大众多接近零的绝对值,使其向均值中心靠拢),同时包含极少数小于 1 的值(用于缩小相对罕见的大绝对值,使其同样向均值中心靠拢)。实际上,我们对训练后的 T 进行可视化(图 5)发现,其值中低于 1 的比例不足 5%。因此,与激活值相乘的对应逆矩阵\(T^{-1}\)中,超过 95% 的值低于 1。这一特性大幅缩小了激活值的量化范围,并抑制了激活值中异常值的幅度(可视化结果见附录 A.6)。因此,该方法在进一步促进激活量化方面效果显著。
图 5:LLaMA2-7B 模型的变换矩阵 T 与逆矩阵\(T^{-1}\)的值分布可视化。
3.5 算法流程
双钟形可学习变换(LTDB)算法的流程如算法 1 所示:在 N 个 epoch 内,利用激活感知初始化的变换矩阵 T 调整全精度权重矩阵 W。该算法通过迭代最小化双目标损失函数,引导 W 形成双钟形分布,同时基于 DTMD 损失采用早停机制。
算法 1:双钟形可学习变换(LTDB)1: 函数 LTDB (W, T, N)2: 输入:W ∈ Rⁿˣᵐ —— 全精度权重矩阵;T ∈ R¹ˣᵐ —— 激活感知初始化的变换矩阵;N —— 总 epoch 数3: 输出:W ∈ Rⁿˣᵐ —— 变换后的权重矩阵4: 对于 iter = 1, 2, ..., N 循环:5: W ← T ⊙ W ▷ 执行按元素乘法6: L_DTMD, L_DTNP ← LossFunc (W) ▷ 计算 W 的两个双目标损失7: 若 L_DTMD > L_DTMD_最小值:8: 终止循环 ▷ 基于双目标最小偏差损失停止训练9: 结束条件判断10: L_DTNP.backward () ▷ 使用双目标归一化比例损失进行训练11: L_DTMD_最小值 ← L_DTMD12: 结束循环13: 返回 W14: 结束函数
4 实验
4.1 实验设置
所有实验均基于 PyTorch [20] 框架与 Huggingface 库 [20] 执行。参数规模小于 80 亿的模型在单张 24GB 内存的 NVIDIA A30 GPU 上运行,其他模型在单张 80GB 内存的 NVIDIA A100 GPU 上运行。参照 Frantar 等人 [13] 与 Huang 等人 [15] 的方法,采用从 C4 数据集 [21] 中抽取的 128 个样本作为校准数据集。
4.1.1 模型与数据集
我们对多个大语言模型家族进行了全面评估,包括 LLaMA、LLaMA-2、LLaMA-3 [27] 以及 OPT 系列 [35]。为验证 DBellQuant 的有效性,我们通过计算模型在标准基准数据集上生成文本的困惑度进行评估,包括 WikiText2 [19] 和 C4 数据集的一个子集 [21]。此外,我们还基于 7 个零样本问答任务的准确率评估模型性能,这些任务包括 ARC-c [6]、ARC-e [6]、Hellaswag [34]、PIQA [4] 和 Winogrande [22]。
4.1.2 对比方法
我们的 DBellQuant 方法主要对比基准为 BiLLM [15]—— 当前二值大语言模型的训练后量化(PTQ)基准技术。此外,我们还将其与其他主流 PTQ 算法进行对比,包括舍入到最近值(RTN)、GPTQ [13]、PB-LLM [23] 以及当前最先进的 PTQ 技术 ARB-LLM [17]。
4.2 主要实验结果
我们在不同激活量化位宽与模型规模下,对各类大语言模型的二值化性能进行了全面评估,并将 DBellQuant 的块大小设为 128。如表格 1 所示,我们对比了 OPT 和 LLaMA 家族在不同模型规模下的困惑度。结果表明,仅对权重进行量化时,DBellQuant 显著优于当前最先进的 ARB-LLMₓ方法,困惑度降低幅度高达 42.18%。此外,当激活值量化至 6 位等低位宽时,LLaMA 家族模型的困惑度较 BiLLM 降低幅度高达 76.66%。值得注意的是,对于 OPT 家族模型,BiLLM 方法在将激活值量化至 6 位时已出现输出崩溃,而 DBellQuant 仍能保持合理的语言输出能力。在问答数据集的平均准确率方面,DBellQuant 同样显著优于以往方法,平均准确率提升幅度高达 42.48%(详见表格 2)。此外,图 6 可视化了不同层权重分布的变化,清晰展示了从单钟形到双钟形的转变。这些结果表明,DBellQuant 在实现稳健低比特量化的同时,能有效保留模型性能。更多结果详见附录 A.5。
表 1:RTN、GPTQ、PB-LLM、BiLLM、ARB-LLMₓ与本文方法在 OPT 和 LLaMA 家族模型上的困惑度。各列表示不同模型规模在 WikiText2 数据集上的困惑度结果。
表 2:BiLLM 与本文方法在 OPT 和 LLaMA 家族模型上的 PIQA、ARC-e、ARC-c、HellaSwag、Winogrande 任务准确率及所有数据集的平均准确率。
图 6:上半部分:应用 DBellQuant 前,不同层不同块的单钟形权重分布。下半部分:应用 DBellQuant 后,不同层不同块的双钟形权重分布。
4.3 消融实验
4.3.1 优化目标
在 DTNP 的定义中,我们采用了公式 (6) 所述的 L1 损失。为评估 L1 损失的有效性,我们将其替换为 L2 损失并进行相同实验,结果发现整体性能不如 L1 损失。因此,我们选择 L1 损失作为 DTNP 的损失函数。此外,在激活感知初始化过程中,我们引入超参数 ε。我们对不同 ε 值进行了实验,结果表明所有测试的 ε 值均优于以往算法。对于 LLaMA-2-7B 模型,将 ε 设为 0.85 时性能最佳。结果详见表格 4。
4.3.2 块大小的影响
我们通过实验测试了 64 至 256 列的不同块大小对 DBellQuant 量化性能的影响,结果如表 3 所示。与其他 PTQ 方法一致,较小的块大小会带来更低的困惑度,但同时也会增加量化结果的多样性与权重开销。在之前所有实验中,我们将块大小设为 128,因为该大小能更好地平衡位宽与量化效果。此外,在不同块大小下,我们的方法均优于当前基准方法,体现了其在不同配置下的稳健性与通用性。
表 3:不同块大小的性能对比。
图 7:不同激活位宽的性能对比。
4.3.3 激活位宽对比
我们对比了不同模型在不同激活位宽下的结果(如图 7 所示)。具体而言,当激活值量化至 8 位时,模型困惑度几乎无变化,部分情况下甚至有所下降,这表明我们的方法缓解了激活量化面临的挑战。此外,我们发现即使在 6 位等更低比特量化下,模型仍能在很大程度上保持原始性能,困惑度仅小幅上升。值得注意的是,对于 LLaMA-2 13B 和 70B 等大规模模型,困惑度下降几乎可忽略不计,这凸显了我们的方法在大参数模型中的有效性与高效性。
表 4:LLaMA-2-7B 模型的消融实验结果(以困惑度衡量)。(a) 不同损失函数的性能对比;(b) 不同 ε 值的性能对比。
5 结论
本文提出 DBellQuant—— 一种高效的训练后量化(PTQ)方法,支持大语言模型同时实现权重二值化与激活量化。通过分析适合二值化的权重分布,我们设计了一种新颖高效的双钟形可学习变换(LTDB)算法。具体而言,我们引入两种定制损失函数与一种早停机制,以实现预期的双钟形变换。此外,我们分析并验证了该变换如何提升激活量化效果,从而实现近 1 位权重压缩与 6 位激活量化,且性能损失极小 —— 这是首次在 PTQ 框架下实现此类结果。在开源大语言模型家族上的实验表明,DBellQuant 显著突破了当前最先进(SOTA)二值 PTQ 方法的性能极限。
A 附录
A.1 局限性
目前,我们的研究仅支持将激活值量化至 6 位。当尝试将激活值量化至更低位宽时,模型会出现崩溃,导致性能显著下降。然而,近期部分研究已实现将激活值量化至 4 位同时保持具有竞争力的模型性能。受这些进展启发,我们计划采用类似方法进一步优化模型:不仅实现权重二值化,还将激活值量化至更低位宽,以实现更易部署与更快计算。
A.2 更广泛影响
我们的研究证明,大语言模型可在同时实现权重二值化与 6 位激活量化的情况下,仍保持具有竞争力的性能。该方法大幅降低了大语言模型部署的计算与内存开销,使其在资源受限环境中更易部署。通过实现高效推理,我们的方法为先进 AI 技术的普及做出贡献,同时降低了大规模模型部署对环境的影响。此外,该方法还为超低比特量化研究开辟了新方向,推动模型效率与可扩展性领域的创新。
A.3 定理 1 的证明
证明:问题设定:根据假设,原始权重矩阵 W 的行独立采样自高斯分布:\(w_{i} \sim \mathcal{N}\left(\mu_{i}, \sigma_{i}^{2}\right), \text{其中 } \mu_{i} \in \mathbb{R} \text{ 且 } \sigma_{i}>0 \text{(对所有i)}\)
我们的目标是学习一个变换矩阵\(T \in \mathbb{R}^{m \times m}\),使得变换后矩阵\(W'=WT\)的行服从双模态分布。
可学习变换定义:变换矩阵定义为:\(W'=WT\)
由于 W 的行服从高斯分布,经 T 线性变换后,每行初始仍服从新的高斯分布:\(w_{i}' \sim \mathcal{N}\left(\mu_{i}', \sigma_{i}^{\prime 2}\right)\)
其中,\(\mu_{i}'=\mu_{i} T\),\(\sigma_{i}^{\prime 2}=T^{\top} \sum _{i} T\)(\(\sum _{i}=diag(\sigma_{i}^{2})\)为\(w_{i}\)的协方差)。
双模态分布的诱导:为将高斯分布的行\(w_{i}'\)映射为双模态分布,需注意双模态分布可表示为高斯混合模型:\(g(x)=\pi \mathcal{N}\left(x ; \mu_{1}, \sigma_{1}^{2}\right)+(1-\pi) \mathcal{N}\left(x ; \mu_{2}, \sigma_{2}^{2}\right)\)
其中,\(\pi \in(0,1)\)为混合系数,\(\mu_{1}、\mu_{2}、\sigma_{1}^{2}、\sigma_{2}^{2}\)为混合分量的参数。为实现这一目标,通过学习 T,确保线性变换 WT 能将原始高斯分布重塑为两个高斯分布的混合。
参数优化:可学习矩阵 T 通过损失函数 L 进行优化,该损失函数最小化\(W'\)行的经验分布与目标双模态分布之间的 KL 散度:\(L=KL\left( p(w_{i}^{\prime })\| \pi \mathcal {N}(\mu _{1},\sigma _{1}^{2})+(1-\pi )\mathcal {N}(\mu _{2},\sigma _{2}^{2})\right)\)
优化过程通过调整 T 的元素,使变换后的行\(w_{i}'\)与预期双模态分布对齐。
结论:上述分析表明,存在这样的可学习矩阵 T,确保变换后矩阵\(W'=WT\)的行可服从双模态分布。证明完毕。
A.4 双钟形分布比单钟形分布更适合二值化的原因分析
直接证明双钟形分布比单钟形分布更适合二值化存在一定难度,需设定大量额外条件;但从值调整的角度出发,这一问题会显著简化。通过缩小双模态分布中较大绝对值的值、放大较小绝对值的值,可使所有值向两个中心点靠拢,从而形成类双钟形分布。我们可通过证明该过程能降低二值化引入的量化损失,进而说明双钟形分布更适合二值化。
定理 2:给定输入校准激活\(x \in \mathbb{R}^{n \times 1}\)与权重向量\(w \in \mathbb{R}^{n \times 1}\)(\(w_i\)从权重矩阵\(W \in \mathbb{R}^{n \times n}\)的特定通道提取),定义权重向量 w 为两个集合的并集:
- 包含若干大绝对值异常值的集合\(U_{o}=\{o_{1}^{*}, o_{2}^{*}, ..., o_{k}^{*}\}\),其中对\(i \in \{1, ..., k\}\),有\(|o_{i}^{*}| \gg 0\);
- 包含若干小绝对值正常值的集合\(U_{n}=\{n_{1}, n_{2}, ..., n_{n-k}\}\),其中对\(j \in \{1, ..., n-k\}\),有\(|n_{j}| \approx 0\);即\(w=U_{o} \cup U_{n}\)。
定义新权重向量\(w_{new }\)为以下两种情况之一:
- \(w_{new }=[n_{1}, n_{2}, ..., \gamma o_{1}^{*}, \gamma o_{2}^{*}, ..., \gamma o_{k}^{*}, ..., n_{n-k}]\),其中\(\gamma \in \left( \frac{1}{2}, 1 \right)\);
- \(w_{new }=[\eta n_{1}, \eta n_{2}, ..., o_{1}^{*}, o_{2}^{*}, ..., o_{k}^{*}, ..., \eta n_{n-k}]\),其中\(\eta \in (1, 2]\)。
则在两种情况下,\(w_{new }\)引入的量化误差(定义为\(\| x \cdot w - x \cdot binarized(w_{new}) \|\))均严格小于原始量化误差\(\| x \cdot w - x \cdot binarized(w) \|\)。
证明:
A.4.1 放大小值可降低量化误差
假设输入向量\(X=[2,2,2, ..., 2]_n\),某单通道权重 W 为\([\alpha_1, \alpha_2, ..., \alpha_k, \beta_1, \beta_2, ..., \beta_{n-k}]\),其中:
- \([\alpha_i \in U_1]\)为绝对值极大的值集合,满足\(\sum_{i=1}^k \alpha_i = A\);
- \([\beta_i \in U_2]\)为绝对值接近零的值集合,满足\(\sum_{i=1}^{n-k} \beta_i = 0\);即\(W=U_1 \cup U_2\)。这种结构在实际中较为常见,因为神经网络权重分布通常包含少量主导值与大量小值。我们观察到,权重沿通道维度的分布大多并非关于零对称,而是存在偏倚,大部分值倾向于正或负;因此,极端值大多全为正或全为负,故假设\(\alpha_i > 0\)。
输入 X 与权重向量 W 的乘积为:\(X \cdot W^T = 2\left( \alpha_1 + \alpha_2 + \cdots + \alpha_k + \beta_1 + \beta_2 + \cdots + \beta_{n-k} \right) = 2\left( \alpha_1 + \alpha_2 + \cdots + \alpha_k \right) = 2A \quad (7)\)
这是因为\(\beta_i\)的和为零。
根据量化函数,均值 M 为:\(M = \frac{\alpha_1 + \alpha_2 + \cdots + \alpha_k + \beta_1 + \beta_2 + \cdots + \beta_{n-k}}{n} = \frac{A}{n}\)
绝对均值(AbsMean)定义为:\(AbsMean = \frac{|\alpha_1 - \frac{A}{n}| + |\alpha_2 - \frac{A}{n}| + \cdots + |\alpha_k - \frac{A}{n}| + |\beta_1 - \frac{A}{n}| + |\beta_2 - \frac{A}{n}| + \cdots + |\beta_{n-k} - \frac{A}{n}|}{n}\)
由于\([\beta_1, \beta_2, ..., \beta_{n-1}]\)的绝对值均远小于\(\frac{A}{n}\),可将上式简化为:\(\begin{aligned} AbsMean &= \frac{\left( \alpha_1 - \frac{A}{n} \right) + \left( \alpha_2 - \frac{A}{n} \right) + \cdots + \left( \alpha_k - \frac{A}{n} \right) + \left( \frac{A}{n} - \beta_1 \right) + \left( \frac{A}{n} - \beta_2 \right) + \cdots + \left( \frac{A}{n} - \beta_{n-k} \right)}{n} \\ &= \frac{A + (n - 2k) \frac{A}{n} - \left( \beta_1 + \beta_2 + \cdots + \beta_{n-k} \right)}{n} \\ &= \frac{A + (n - 2k) \frac{A}{n}}{n} \\ &= \frac{2\left( A - \frac{2kA}{n} \right)}{n} \end{aligned}\)
此处,\(\beta_i\)的和因零和约束而抵消。
因此,α 的反量化值为:\(AbsMean + M = \frac{2\left( A - \frac{2kA}{n} \right)}{n} + \frac{A}{n} \quad (11)\)
每个\(\beta_i\)的反量化值为:\(- AbsMean + M = -\frac{2\left( A - \frac{2kA}{n} \right)}{n} + \frac{A}{n} \quad (12)\)
为降低小绝对值权重的量化误差,我们可将其放大 m 倍(m>1),同时相应缩小输入。具体而言,将每个\(\beta_i\)乘以 m,并将相关输入元素除以 m。新输入为\(X_{new} = [2, 2, ..., 2, \frac{2}{m}, \frac{2}{m}, ..., \frac{2}{m}]_n\),新权重为\(W_{new} = [\alpha_1, \alpha_2, ..., \alpha_k, m\beta_1, m\beta_2, ..., m\beta_{n-k}]\)。
输出保持不变:\(X_{new} \cdot W_{new}^T = 2\left( \alpha_1 + \alpha_2 + \cdots + \alpha_k \right) + \frac{2}{m} \cdot m\beta_1 + \frac{2}{m} \cdot m\beta_2 + \cdots + \frac{2}{m} \cdot m\beta_{n-k} = 2A \quad (13)\)
这种不变性至关重要:缩放操作不影响原始计算,但会影响量化误差。
对于新权重,均值为:\(M_{new} = \frac{\alpha_1 + \alpha_2 + \cdots + \alpha_k + m\beta_1 + m\beta_2 + \cdots + m\beta_{n-k}}{n} = \frac{A + m\left( \beta_1 + \beta_2 + \cdots + \beta_{n-k} \right)}{n} = \frac{A}{n}\)
这是因为\(\beta_i\)的和为零。
新的绝对均值为:\(AbsMean_{new} = \frac{|\alpha_1 - \frac{A}{n}| + |\alpha_2 - \frac{A}{n}| + \cdots + |\alpha_k - \frac{A}{n}| + |m\beta_1 - \frac{A}{n}| + |m\beta_2 - \frac{A}{n}| + \cdots + |m\beta_{n-k} - \frac{A}{n}|}{n}\)
若选择 m 使得\(\frac{A}{n}\)仍大于所有\(m\beta_i\),则可按此前方式简化:\(\begin{aligned} AbsMean_{new} &= \frac{\left( \alpha_1 - \frac{A}{n} \right) + \left( \alpha_2 - \frac{A}{n} \right) + \cdots + \left( \alpha_k - \frac{A}{n} \right) + \left( \frac{A}{n} - m\beta_1 \right) + \left( \frac{A}{n} - m\beta_2 \right) + \cdots + \left( \frac{A}{n} - m\beta_{n-k} \right)}{n} \\ &= \frac{A + (n - 2k) \frac{A}{n} - m\left( \beta_1 + \beta_2 + \cdots + \beta_{n-k} \right)}{n} \\ &= \frac{A + (n - 2k) \frac{A}{n}}{n} \\ &= \frac{2\left( A - \frac{kA}{n} \right)}{n} \end{aligned}\)
由此可见,\(AbsMean_{new}\)与\(M_{new}\)分别与 AbsMean 和 M 相同,反量化值也保持不变。这表明,放大小权重不会影响均值或绝对均值,但如后文分析所示,它能改善量化误差。
下面分析量化误差。原始输出为2A。为方便起见,令\(N = (n - k)(-AbsMean + M)\)。量化输出是所有权重反量化值的总和(A>0)。缩放前后,量化输出均包含以下项:\(2k(AbsMean + M) = 2k\left( \frac{2\left( A - \frac{kA}{n} \right)}{n} + \frac{A}{n} \right)\)
对于通常大于 100 且\(k \ll n\)的 n,有:\(0 < 2k(AbsMean + M) < 2A \quad (18)\)
这是因为量化值受平均效应影响,始终小于原始值。
对于项\(-AbsMean + M\):\(\begin{aligned} - AbsMean + M &= -\frac{2\left( A - \frac{kA}{n} \right)}{n} + \frac{A}{n} \\ &= -\frac{A}{n} + \frac{2kA}{n^2} \\ &= \frac{A}{n}\left( \frac{2k}{n} - 1 \right) \end{aligned}\)
由于\(n > 100\)、\(A > 0\)且\(k \ll n\),该值为负且绝对值较小。
缩放前的量化输出为\(2k(AbsMean + M) + 2N\),缩放后的量化输出为\(2k(AbsMean + M) + N\)。由于\(N < 0\)且\(2(AbsMean + M) < 2A\),可得:\(2k(AbsMean + M) + 2N < 2k(AbsMean + M) + N < 2A\)
这表明,放大小权重能降低量化误差,因为量化输出更接近原始值。
若\(\alpha_i < 0\),证明过程类似。
综上,放大小权重(并相应缩小输入)不会改变原始计算,但能通过使量化输出更接近原始值,系统性地降低量化误差。
A.4.2 缩小大值可降低量化误差
现在考虑缩小大绝对值权重的情况。设输入\(X = [1, 1, 1, ..., 1]_n\),权重\(W = [m\alpha_1, m\alpha_2, ..., m\alpha_k, \beta_1, \beta_2, ..., \beta_{n-k}]\),其中\(\alpha_1, \alpha_2, ..., \alpha_k\)为大值(满足\(\sum_{i=1}^k \alpha_i = A\)且\(\alpha_i > 0\)),\([\beta_1, ..., \beta_{n-k}]\)为小值(满足\(\sum_{i=1}^{n-k} \beta_i = 0\))。
输出为:\(X \cdot W^T = m\left( \alpha_1 + \alpha_2 + \cdots + \alpha_k + \beta_1 + \beta_2 + \cdots + \beta_{n-k} \right) = mA\)
均值为:\(M = \frac{m\alpha_1 + m\alpha_2 + \cdots + m\alpha_k + \beta_1 + \beta_2 + \cdots + \beta_{n-k}}{n} = \frac{mA}{n} \quad (22)\)
绝对均值为:\(AbsMean = \frac{|m\alpha_1 - \frac{mA}{n}| + |m\alpha_2 - \frac{mA}{n}| + \cdots + |m\alpha_k - \frac{mA}{n}| + |\beta_1 - \frac{mA}{n}| + |\beta_2 - \frac{mA}{n}| + \cdots + |\beta_{n-k} - \frac{mA}{n}|}{n} \quad (23)\)
由于\(\frac{mA}{n}\)远大于\(\beta_i\),可简化为:\(\begin{aligned} AbsMean &= \frac{\left( m\alpha_1 - \frac{mA}{n} \right) + \left( m\alpha_2 - \frac{mA}{n} \right) + \cdots + \left( m\alpha_k - \frac{mA}{n} \right) + \left( \frac{mA}{n} - \beta_1 \right) + \left( \frac{mA}{n} - \beta_2 \right) + \cdots + \left( \frac{mA}{n} - \beta_{n-k} \right)}{n} \\ &= \frac{m\left( \alpha_1 + \alpha_2 + \cdots + \alpha_k \right) + (n - 2k) \frac{mA}{n} - \left( \beta_1 + \beta_2 + \cdots + \beta_{n-1} \right)}{n} \\ &= \frac{mA + (n - 2k) \frac{mA}{n}}{n} \\ &= \frac{2m\left( A - \frac{kA}{n} \right)}{n} \end{aligned}\)
\(m\alpha_i\)的反量化值为:\(AbsMean + M = \frac{2m\left( A - \frac{kA}{n} \right)}{n} + \frac{mA}{n} = \frac{3mA - \frac{2mkA}{n}}{n} \quad (25)\)
每个\(\beta_i\)的反量化值为:\(- AbsMean + M = -\frac{2m\left( A - \frac{A}{n} \right)}{n} + \frac{mA}{n} = \frac{-mA + \frac{2mkA}{n}}{n} \quad (26)\)
为缩小大值\(m\alpha_i\),我们将其除以 m(m>1),并将相应输入元素乘以 m。新输入为\(X_{new} = [m, 1, 1, ..., 1]_n\),新权重为\(W_{new} = [\alpha_1, \alpha_2, ..., \alpha_k, \beta_1, \beta_2, ..., \beta_{n-k}]\)。
输出保持不变:\(X_{new} \cdot W_{new}^T = m\left( \alpha_1 + \alpha_2 + \cdots + \alpha_k \right) + \beta_1 + \beta_2 + \cdots + \beta_{n-k} = mA \quad (27)\)
对于新权重,均值为:\(M_{new} = \frac{\alpha_1 + \alpha_2 + \cdots + \alpha_k + \beta_1 + \beta_2 + \cdots + \beta_{n-k}}{n} = \frac{A}{n}\)
新的绝对均值为:\(AbsMean_{new} = \frac{|\alpha_1 - \frac{A}{n}| + |\alpha_2 - \frac{A}{n}| + \cdots + |\alpha_k - \frac{A}{n}| + |\beta_1 - \frac{A}{n}| + |\beta_2 - \frac{A}{n}| + \cdots + |\beta_{n-1} - \frac{A}{n}|}{n}\)
选择合适的 m 后,可得:\(\begin{aligned} AbsMean_{new} &= \frac{\left( \alpha_1 - \frac{A}{n} \right) + \left( \alpha_2 - \frac{A}{n} \right) + \cdots + \left( \alpha_k - \frac{A}{n} \right) + \left( \frac{A}{n} - \beta_1 \right) + \left( \frac{A}{n} - \beta_2 \right) + \cdots + \left( \frac{A}{n} - \beta_{n-k} \right)}{n} \\ &= \frac{\left( \alpha_1 + \alpha_2 + \cdots + \alpha_k \right) + (n - 2k) \frac{A}{n} - \left( \beta_1 + \beta_2 + \cdots + \beta_{n-1} \right)}{n} \\ &= \frac{A + (n - 2k) \frac{A}{n}}{n} \\ &= \frac{2\left( A - \frac{kA}{n} \right)}{n} \end{aligned}\)
\(\alpha_i\)的反量化值为:\(AbsMean_{new} + M_{new} = \frac{2\left( A - \frac{kA}{n} \right)}{n} + \frac{A}{n} = \frac{3A - \frac{2kA}{n}}{n} \quad (31)\)
每个\(\beta_i\)的反量化值为:\(- AbsMean_{new} + M_{new} = -\frac{2\left( A - \frac{kA}{n} \right)}{n} + \frac{A}{n} = \frac{-A + \frac{2kA}{n}}{n} \quad (32)\)
现在分析量化误差。原始输出为mA。缩放前的量化输出为:\(k \cdot \frac{3mA - \frac{2mkA}{n}}{n} + (n - k) \cdot \frac{-mA + \frac{2mkA}{n}}{n}\)
缩放后的量化输出为:\(\begin{aligned} &k \cdot m\left( AbsMean_{new} + M_{new} \right) + (n - k) \cdot \left( -AbsMean_{new} + M_{new} \right) \\ &= k \cdot m \cdot \frac{3A - \frac{2kA}{n}}{n} + (n - k) \cdot \frac{-A + \frac{2kA}{n}}{n} \\ &= k \cdot \frac{3mA - \frac{2mkA}{n}}{n} + (n - k) \cdot \frac{-A + \frac{2kA}{n}}{n} \end{aligned}\)
由于\(A > 0\)、\(n > 100\)、\(\alpha > 0\)且\(k \ll n\),可得:\(0 < k \cdot \frac{3mA - \frac{2mkA}{n}}{n} < mA\)
且:\(\frac{-A + \frac{2kA}{n}}{n} = \frac{A}{n}\left( \frac{2k}{n} - 1 \right) < 0\)
对比量化输出可知:\(\begin{aligned} &k \cdot \frac{3mA - \frac{2mkA}{n}}{n} + m(n - k) \cdot \frac{-A + \frac{2kA}{n}}{n} \\ &< k \cdot \frac{3mA - \frac{2mkA}{n}}{n} + (n - k) \cdot \frac{-A + \frac{2kA}{n}}{n} \\ &< mA \end{aligned}\)
若\(\alpha_i < 0\),证明过程类似。
A.5 C4 数据集上的困惑度
如表 5 所示,我们对比了 OPT 和 LLaMA 家族在不同模型规模下,在 C4 数据集上的困惑度。
表 5:RTN、GPTQ、PB-LLM、BiLLM、ARB-LLMₓ与本文方法在 OPT 和 LLaMA 家族模型上的困惑度。各列表示不同模型规模在 C4 数据集上的困惑度结果。
A.6 DBellQuant 应用前后激活值分布的可视化
本节展示了应用 DBellQuant 前后激活值分布的变化(如图 8 所示)。显然,激活值中的极端值幅度显著降低了 5 至 10 倍;例如,最大值从约 3 降至 0.4 左右。已有研究指出,激活值低比特量化的主要挑战之一是存在大幅异常值 —— 这些异常值会扩大激活值范围,进而放大量化误差。通过应用 DBellQuant,激活值范围从 [-3, 3] 有效压缩至 [-0.4, 0.4],大幅降低了量化难度。这种范围压缩为进一步探索更低比特量化(如 8 位甚至 6 位)创造了有利条件。
图 8:不同块的激活值在 DBellQuant 应用前后的分布可视化结果。
更多推荐



所有评论(0)