摘要
由于 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 | 通过旋转与重排,降低异常值分布水平 |







