摘要
由于 INT4 表达能力有限,以及大模型激活异常值分布显著,大模型 W4A4 INT4 量化面临严峻的精度损失风险。本文分析了旋转量化的数学原理,并提出了基于分布转换的旋转量化算法(DartQuant),通过激活数据分布的平坦化,可有效降低 W4A4 量化误差。
一、背景
昇腾 A2/A3 硬件支持 INT4/INT8 格式,W4A4 比 W8A8 能够进一步压缩模型、提升推理性能。然而,W4A4 量化面临严峻的精度损失挑战,特别是在高精度任务中(如 Reasoning、Function call),精度损失不可忽视。我们提出了基于分布转换的旋转量化方法,通过精确优化旋转矩阵,能够有效缓解 W4A4 量化的精度误差,提升量化后模型的精度。这一方法不仅适用于昇腾 NPU,也能广泛应用于各种低精度计算平台,为实际生产环境中的模型部署提供了更加高效、精确的解决方案。
二、异常值抑制:从 SmoothQuant 到旋转量化
众所周知,大模型权重激活量化面临的首要问题便是激活异常值(outliers)的影响,异常值被饱和截断(增加截断误差)或包含在量化动态范围(增加舍入误差),都会引起较大的量化误差。通过 per-channel scaling 与 bias correction,可有效降低跨通道数据分布差异、并提升数据分布的对称性,是 W8A8 量化抑制异常值影响的常用方法:
| 算法 | 简要说明 |
|---|---|
| SmoothQuant | per-channel scaling,降低跨通道数据分布差异 |
| Outlier suppression+ | per-channel scaling 与 bias correction,且优化搜索 smooth scale,降低跨通道数据分布差异、并提升数据分布的对称性 |
| OmniQuant | 针对每个 sub-module,引入可训练 SmoothQuant |

昇腾 A2/A3 NPU、以及 NV A100 GPU 等硬件支持 INT4 数值格式,为进一步提升大模型推理性能,W4A4 INT4 量化进入大众视野。W4A8 量化仍可通过两级量化、per-channel scaling 等策略保证精度(参考 Qserve),然而 W4A4 量化面临如下技术挑战:
- **平坦度:**INT4 量化步长是均匀的,适合高斯分布(偏集中分布)或均匀分布;
- **偏斜度:**数据分布呈现非对称或偏斜时,W4A4 需采用非对称量化,但表达能力有限;
- **异常值分布:**INT4 动态范围窄,若数据分布偏离均匀分布、outlier 占比较高,引起 W4A4 量化误差。
旋转矩阵变换是降低激活异常值分布水平的有效方法,旋转变换之后激活数据的主分布基本不变(如均匀分布或高斯分布)、而 outlier 分布水平显著降低,因此可使数据分布平坦化(或近高斯分布),有助于大幅降低 W4A4 量化误差:
| 算法 | 简要说明 |
|---|---|
| QuIP | Weight-only 旋转变换 |
| QuaRot | 正交 Hadamard 旋转变换,同时应用于权重与激活 |
| DuQuant | 通过旋转与重排,降低异常值分布水平 |
| SpinQuant | 引入可训练旋转变换,由于全局共享 R1 矩阵,端到端训练开销大 |
| OSTQuant | 联合可训练旋转变换与 per-channel scaling,端到端训练开销大 |
| FlatQuant | 联合可训练仿射变换与 per-channel scaling;不同 layer 采用不同的仿射变换矩阵,layer-wise 训练可降低离线开销,但无法被等价吸收,依赖 Kronecker 分解降低在线矩阵乘开销 |
| DartQuant | 可训练正交旋转变换,离线训练校准开销低,且旋转矩阵可被等价吸收 |
如上表所示,旋转量化从早期的 Hadamard 变换(QuaRot)、演进到可训练方式(如 SpinQuant、FlatQuant)。然而,类似 SpinQuant,基于离线训练的量化校准存在较高的应用成本;另一方面,类似 FlatQuant,在线变换矩阵不能被等价吸收,导致在线计算开销上升,影响模型的端到端推理性能。针对上述两个问题,本文提出了基于可训练正交旋转变换的 DartQuant 量化算法,在保证低离线校准成本的同时,能确保旋转矩阵被等价吸收,从而提供了高效、且精确的 W4A4 量化方案。DartQuant 旋转矩阵设置与 SpinQuant 相同,如下图所示:

三、DartQuant 算法原理
基于分布变换的旋转矩阵量化算法 (DartQuant) 如下图所示,基于激活正交旋转变换降低异常值水平,且通过低成本的离线训练校准方法获得正交变换矩阵:

DartQuant 正交旋转量化的具体原理如下:
- 旋转矩阵分离校准框架:实现旋转量化校准与 LLM 推理的解耦,大幅降低校准显存需求,加快校准速度;
- 高效的 Whip 损失:基于 Whip loss 约束旋转后激活,使其趋向均匀分布,亲和 INT4 均匀量化,降低量化误差。并且 Whip 损失计算简单,连续可导,比 MSE 量化误差等优化目标更容易优化;
- 高效的正交优化:通过结合 QR 分解与常规优化器设计了一种正交约束优化方案,降低了正交优化的计算复杂度,加快了旋转矩阵校准速度;
- **正交旋转量化:**基于正交矩阵 R,对线性层输入激活进行旋转量化;R 的作用位置包括 R1、R2 矩阵等。

激活分布通常接近拉普拉斯分布,数据大部分集中在均值 0 附近,仅有少量较大的离群值位于远离数据中心的区域。**理想的激活分布转换:**原本中心区域数值扩展到了更广泛的区间,从而平滑了分布尖峰。与此同时,远离中心的离群点聚集到一起,缩小了分布范围,最终在区间 [-3, 3] 内形成了近似均匀分布。
受分布转换机制启发,本文提出了分布转换调整函数(Whip 函数),该函数在接近零值的区域具有较大的梯度,当将其用作优化目标时,旋转后的激活向量中的小值会被'推离'零值。在模不变的约束下,离群值(outliers)被'聚集',从而促使旋转后的激活趋向一个更小范围内的均匀分布。趋向均匀分布的激活与均匀量化更加契合,从而有效降低量化误差。此外,分布转换调整函数具有连续可导性,相较于直接使用量化损失作为优化目标,它更容易进行优化。
四、实验效果
针对 W4A4 INT4,通过 DartQuant 达成如下实验效果:
- Llama2-70B W4A8 通用任务精度损失<0.5%;
- Llama2-70B+W4A4/A8 混精精度损失<1.5%;
- 额外在 Llama2-7B、Llama2-13B、Llama-3 70B、Mixtral-7×8B 等模型上增加 W4A8、W4A4 等的基准测试,增加 5+ 测试集,优于 Quarot、SpinQuant、OSTQuant 等业界 SOTA 算法,证明了量化算法的泛化性;
- 大幅降低离线训练校准的成本,单卡小时级完成旋转矩阵校准(Llama2-7B 单卡 45 分钟完成校准),并且显存成本降低 2x~20x。
DartQuant 与其他业界 SOTA 算法的量化精度对比如下:

DartQuant 离线校准成本如下:



