跳到主要内容
极客日志极客日志
首页博客AI提示词GitHub精选代理工具
搜索
|注册
博客列表
PythonAI算法

DartQuant:基于分布转换的旋转量化算法

W4A4 INT4 量化因激活异常值面临精度损失风险。DartQuant 提出基于分布转换的旋转量化算法,通过正交旋转变换平坦化激活数据分布,降低异常值影响。该算法采用可训练正交矩阵,结合 Whip 损失约束和 QR 分解优化,实现低离线校准成本与高精度推理。实验表明在 Llama2 等模型上优于 QuIP、SpinQuant 等 SOTA 算法,显著减少显存占用并提升推理性能。

修罗发布于 2026/3/15更新于 2026/4/2614 浏览
DartQuant:基于分布转换的旋转量化算法

摘要

由于 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 量化抑制异常值影响的常用方法:

算法简要说明
SmoothQuantper-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 量化面临如下技术挑战:

  1. **平坦度:**INT4 量化步长是均匀的,适合高斯分布(偏集中分布)或均匀分布;
  2. **偏斜度:**数据分布呈现非对称或偏斜时,W4A4 需采用非对称量化,但表达能力有限;
  3. **异常值分布:**INT4 动态范围窄,若数据分布偏离均匀分布、outlier 占比较高,引起 W4A4 量化误差。

旋转矩阵变换是降低激活异常值分布水平的有效方法,旋转变换之后激活数据的主分布基本不变(如均匀分布或高斯分布)、而 outlier 分布水平显著降低,因此可使数据分布平坦化(或近高斯分布),有助于大幅降低 W4A4 量化误差:

算法简要说明
QuIPWeight-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 正交旋转量化的具体原理如下:

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

文章配图

激活分布通常接近拉普拉斯分布,数据大部分集中在均值 0 附近,仅有少量较大的离群值位于远离数据中心的区域。**理想的激活分布转换:**原本中心区域数值扩展到了更广泛的区间,从而平滑了分布尖峰。与此同时,远离中心的离群点聚集到一起,缩小了分布范围,最终在区间 [-3, 3] 内形成了近似均匀分布。

受分布转换机制启发,本文提出了分布转换调整函数(Whip 函数),该函数在接近零值的区域具有较大的梯度,当将其用作优化目标时,旋转后的激活向量中的小值会被'推离'零值。在模不变的约束下,离群值(outliers)被'聚集',从而促使旋转后的激活趋向一个更小范围内的均匀分布。趋向均匀分布的激活与均匀量化更加契合,从而有效降低量化误差。此外,分布转换调整函数具有连续可导性,相较于直接使用量化损失作为优化目标,它更容易进行优化。

四、实验效果

针对 W4A4 INT4,通过 DartQuant 达成如下实验效果:

  1. Llama2-70B W4A8 通用任务精度损失<0.5%;
  2. Llama2-70B+W4A4/A8 混精精度损失<1.5%;
  3. 额外在 Llama2-7B、Llama2-13B、Llama-3 70B、Mixtral-7×8B 等模型上增加 W4A8、W4A4 等的基准测试,增加 5+ 测试集,优于 Quarot、SpinQuant、OSTQuant 等业界 SOTA 算法,证明了量化算法的泛化性;
  4. 大幅降低离线训练校准的成本,单卡小时级完成旋转矩阵校准(Llama2-7B 单卡 45 分钟完成校准),并且显存成本降低 2x~20x。

DartQuant 与其他业界 SOTA 算法的量化精度对比如下:

文章配图

DartQuant 离线校准成本如下:

文章配图

目录

  1. 一、背景
  2. 二、异常值抑制:从 SmoothQuant 到旋转量化
  3. 三、DartQuant 算法原理
  4. 四、实验效果
  • 💰 8折买阿里云服务器限时8折了解详情
  • 💰 8折买阿里云服务器限时8折购买
  • 🦞 5分钟部署阿里云小龙虾了解详情
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • C/C++ 算法入门:一维动态规划基础实战
  • 华为 OD 机试双机位 C 卷 - 评委评分与选手排名
  • 基于三省六部制的 AI Agent 协作架构 Edict 技术解析
  • 蚂蚁 KAG 开源 AI 知识库框架原理与安装使用教程
  • Windows 11 新机跳过联网激活的三种方法及 OOBE 命令解析
  • GitHub Copilot 学生身份认证教程(非校园网)
  • Android Studio 安装与 SDK、JDK、Gradle 配置详解
  • 滑动窗口算法详解与经典题目实战
  • JavaScript 集合 (Set、WeakSet) 与映射 (Map、WeakMap)
  • Llama Factory 快速切换 Alpaca 与 Vicuna 对话模板
  • Flutter EWS 组件在鸿蒙系统的适配与实践
  • Spring Boot 3.5.9 工程视角的稳健演进与核心价值
  • Cursor 配置网络代理的方法与验证
  • WhisperX:70 倍实时语音转录、词级时间戳与多说话人分离技术
  • 富途 OpenAPI Python SDK 量化交易系统构建指南
  • 数据结构:顺序表基础与实现
  • Linux 常见指令(下)
  • Linux 应用层自定义协议与序列化
  • Vue3 常用面试题总结与代码解析
  • 基于 LangChain 实现数据库问答机器人

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online