Back to blog

DiRotQ: Rotation-Aware Quantization for 4-bit Diffusion Transformers

基于 PCA 旋转的 DiT 4-bit 后训练量化框架

DiRotQ: Rotation-Aware Quantization for 4-bit Diffusion Transformers

一、论文概述

项目内容
标题DiRotQ: Rotation-Aware Quantization for 4-bit Diffusion Transformers
作者Sayeh Sharify, Mahsa Salmani, Hesham Mostafa
机构d-Matrix
论文arXiv:2605.16732
代码GitHub
发布2026年5月16日
主题cs.CV, cs.AI

二、核心思想

问题定义

Diffusion Transformers (DiTs) 在图像生成中达到 SOTA 质量,但推理时内存和计算成本巨大。将模型激进量化到 4-bit 精度可带来显著效率提升,但通常导致严重的质量退化。现有方法(平滑、混合精度、旋转、低秩残差)部分缓解了这个问题,但与 FP16/BF16 性能仍有明显差距。

核心观察

DiT 激活存在显著的时间步依赖和通道级异常值:

  1. 时间步变化: 激活幅度随去噪时间步剧烈变化
  2. 通道级异常值: 原始激活的 max/median 比高达 83×
  3. PCA 可有效隔离异常值: PCA 将异常值能量集中到少量高方差子空间
  4. 旋转进一步均衡化: 随机正交旋转将残差子空间的 max/median 比降至 2×

解决方案概述

DiRotQ 提出 PCA 引导的旋转感知 W4A4 后训练量化框架:

  • 通过 PCA 识别捕获主导激活方差的低秩子空间
  • 保留该子空间的系数为高精度(16-bit)
  • 将剩余分量量化到 4-bit
  • 使用随机正交旋转进一步均衡化低精度子空间
  • 结合 GPTQ 权重量化

核心性能

指标数值
PixArt-Σ INT W4A4 FID15.9 (vs SVDQuant 18.9)
PixArt-Σ INT W4A4 PSNR19.1 dB (vs SVDQuant 17.6 dB)
FLUX.1-dev 内存节省2.1×
FLUX.1-dev 加速 (batch=1)2.3×
FLUX.1-dev 加速 (batch=2)9.2× (避免 CPU offload)

三、技术架构

核心洞察

PCA 激活分布分析

Figure 1: PixArt-Σ Block 2 自注意力输入激活分布。(a) 通道 239 和 364 的时间方差。(b) 原始激活显示严重通道级方差(max/median=83×)。(c,d) PCA 将异常值隔离到 16-bit 子空间(红色),剩余 4-bit 通道(蓝色)比值降至 16×。(e,f) 旋转进一步均衡化 4-bit 子空间(绿色),比值降至 2×。

核心公式

基础量化

给定全精度张量 X∈RnX \in \mathbb{R}^n,kk-bit 量化:

\hat{X} = Q(X) = \lfloor \frac{X - z}{s} \rceil \cdot s + z \tag{1}

其中 ⌊⋅⌉\lfloor \cdot \rceil 为 round-and-clip 操作,ss 为缩放因子,zz 为零点。

层级量化目标

\min_{Q(W^{(l)}), Q(X^{(l)})} \sum_{l}^{L} \left( \underbrace{\|W^{(l)} - Q(W^{(l)})\|_F^2}_{\text{weight quantization error}} + \underbrace{\|X^{(l)} - Q(X^{(l)})\|_F^2}_{\text{activation quantization error}} \right) \tag{2}

PCA 引导的旋转量化

Step 1: PCA 旋转

将激活 XX 旋转到 PCA 基 UU:

\hat{X} = XU, \quad U = [U_h \quad U_l], \quad U \in \mathbb{R}^{m \times m} \tag{3}

其中:

  • Uh∈Rm×kU_h \in \mathbb{R}^{m \times k}: 对应最大特征值的 top-kk 特征向量,捕获高方差分量
  • Ul∈Rm×(m−k)U_l \in \mathbb{R}^{m \times (m-k)}: 残差低方差子空间
  • k=rmk = rm,r=10%r = 10\%(经验最优)

Step 2: 随机正交旋转

对低精度残差子空间应用随机正交旋转 R∈R(m−k)×(m−k)R \in \mathbb{R}^{(m-k) \times (m-k)}:

X~l=X^lR\tilde{X}_l = \hat{X}_l R

进一步均衡化方差,改善共享量化缩放因子的效率。

Step 3: 组合旋转

组合旋转矩阵 V=[UhUlR]V = [U_h \quad U_l R],前向计算:

Y = XW = XVV^T W = [XU_h \quad \tilde{X}_l] \begin{bmatrix} U_h^T W \\ (U_l R)^T W \end{bmatrix} \tag{4}

Step 4: 离线权重融合

逆旋转 (UlR)T(U_l R)^T 和 UhTU_h^T 可离线融合到权重中:

W~h=UhTW,W~l=(UlR)TW\tilde{W}_h = U_h^T W, \quad \tilde{W}_l = (U_l R)^T W

前向计算简化为:

Y = [XU_h \quad \tilde{X}_l] \begin{bmatrix} \tilde{W}_h \\ \tilde{W}_l \end{bmatrix} \approx [XU_h \quad Q(\tilde{X}_l)] \begin{bmatrix} \tilde{W}_h \\ Q(\tilde{W}_l) \end{bmatrix} \tag{5}

关键设计

设计选择说明
PCA 基共享每层跨所有时间步聚合校准激活计算 PCA,避免权重内存膨胀
随机旋转复用对相同残差维度 (m−k)(m-k) 的所有层共享同一随机正交矩阵(固定种子)
前向旋转在线因 AdaLN、softmax、GELU 等非线性层阻止融合到前序权重
逆旋转离线融合到同层权重,零推理开销
高精度尾部比例r=10%r = 10\%,QSNR 在此饱和,每增加 5% 增益 <0.5 dB

激活 QSNR 提升

激活 QSNR 对比

Figure 2: PixArt-Σ 28 个 Transformer 块在 5 个时间步的自注意力输出投影逐块激活 QSNR。DiRotQ 在所有块和时间步上一致超越 RTN 和 SVDQuant 5-10 dB。

量化格式

格式权重激活缩放因子分组大小
INT W4A44-bit INT4-bit INT (非对称)16-bit64
NVFP W4A4NVFP4NVFP4FP816
W4A84-bit INT8-bit 动态-per-token/channel

四、核心创新

创新点说明理论/实验依据
PCA 旋转感知量化在激活空间而非权重空间操作,直接捕获激活统计max/median 比从 83× 降至 16×
混合精度子空间高方差子空间保留 16-bit,低方差子空间 4-bitr=10%r=10\% 即可,QSNR 提升 5-10 dB
随机正交旋转均衡化进一步均衡低精度子空间方差max/median 比从 16× 降至 2×
离线权重融合逆旋转融合到权重,零推理开销仅前向旋转在线
VLM-as-a-Judge 评估首次将 VLM 评估引入扩散模型量化InternVL2-8B / Qwen2-VL-7B 评估一致性
Triton 旋转内核高效端到端推理实现2.1× 内存节省,2.3× 加速

五、实验结果

测试配置

配置值
模型PixArt-Σ (600M), FLUX.1-dev (12B), SANA-1.6B
校准128 COCO Captions prompts
评估数据集MJHQ-30K (5K), sDCI (5K)
硬件NVIDIA RTX 4090 (24 GB)
指标FID↓, IR↑, LPIPS↓, PSNR↑
VLM 评估InternVL2-8B, Qwen2-VL-7B-Instruct

精度对比 (PixArt-Σ, MJHQ-30K)

方法精度FID↓IR↑LPIPS↓PSNR↑
FP16 BaselineFP1616.60.952--
PTQ4DiTINT W4A839.80.5720.53112.8
Q-DiTINT W4A819.60.8740.50013.8
ViDiT-QINT W4A421.10.8960.69810.0
SVDQuantINT W4A418.90.8710.31917.6
DiRotQINT W4A415.90.9410.23619.1
SVDQuantNVFP W4A416.80.9330.26418.6
DiRotQNVFP W4A416.00.9460.22419.6

关键发现: DiRotQ INT W4A4 甚至超越 FP16 baseline(FID 15.9 vs 16.6),且显著优于 SVDQuant。

跨模型泛化

模型精度DiRotQ FIDSVDQuant FIDDiRotQ PSNRSVDQuant PSNR
PixArt-ΣINT W4A415.918.919.117.6
FLUX.1-devINT W4A419.819.724.621.0
SANA-1.6BINT W4A416.016.123.518.1

消融实验 (PixArt-Σ, MJHQ-30K)

PCARotationGPTQ精度FID↓IR↑PSNR↑
✗✗✗INT W4A440.30.51213.0
✓✗✗INT W4A419.70.89214.6
✓✓✗INT W4A419.20.90414.8
✓✓✓INT W4A415.90.94119.1
✗✗✗NVFP W4A427.70.71014.7
✓✗✗NVFP W4A416.70.89917.1
✓✓✗NVFP W4A416.70.91217.3
✓✓✓NVFP W4A416.00.94619.6

关键发现:

  • PCA 旋转是最关键组件:FID 从 40.3 降至 19.7
  • 随机旋转提供额外一致增益
  • GPTQ 与旋转协同,将 DiRotQ 推近 FP16 质量

高精度尾部比例

尾部比例扫描

Figure 7: PixArt-Σ 激活 QSNR 随 FP16 尾部比例 rr 的变化。QSNR 在 r=10%r=10\% 前急剧提升,之后饱和(每增加 5% 增益 <0.5 dB)。

效率评估

内存与延迟

Figure 4: FLUX.1-dev 在 batch size 1 和 2 下的内存使用和单步延迟。

指标BF16DiRotQ INT W4A4提升
内存 (batch=1)~24 GB~11.4 GB2.1× 节省
延迟 (batch=1)基准-2.3× 加速
延迟 (batch=2)需 CPU offloadGPU 内9.2× 加速

关键发现: batch=2 时 BF16 需要 CPU offload,DiRotQ 完全在 GPU 内存中运行,避免了 offload 开销。

VLM-as-a-Judge 评估

VLM 评估

Figure 5(a): INT4 量化下 DiRotQ vs SVDQuant 的 VLM 评估对比。InternVL2-8B 在 Overall 分数上偏好 DiRotQ 48.1% vs SVDQuant 39.9%。

逐块激活 QSNR

逐块 QSNR

Figure 6: PixArt-Σ 各层类型的逐块激活 QSNR 对比。DiRotQ 在所有层类型上一致超越 RTN 和 SVDQuant。

六、与 SVDQuant 的关键区别

方面SVDQuantDiRotQ
操作空间权重空间激活空间
异常值处理SVD 低秩分解PCA 子空间分离
旋转无PCA + 随机正交旋转
时间步处理平滑跨时间步共享 PCA 基
PixArt-Σ INT W4A4 FID18.915.9
PixArt-Σ INT W4A4 PSNR17.6 dB19.1 dB

七、相关工作

相关工作与本文关系
QuaRotLLM 旋转量化,但不适用于 DiT 的时间步变化
ResQPCA 旋转用于 LLM,DiRotQ 扩展到 DiT
SpinQuant学习旋转矩阵,DiRotQ 使用数据驱动 PCA
SVDQuant权重空间低秩分解,DiRotQ 在激活空间操作
PTQ4DiTW4A8 方法,DiRotQ 达到 W4A4
ViDiT-Q旋转+平滑,DiRotQ 更精细的子空间分离
Q-DiT动态量化粒度,DiRotQ 通过旋转解决

八、总结

核心贡献

  1. PCA 旋转感知 W4A4 PTQ: 首个在激活空间使用 PCA 旋转的 DiT 4-bit 量化框架
  2. 混合精度子空间: 高方差子空间 16-bit + 低方差子空间 4-bit,r=10%r=10\% 即可
  3. VLM-as-a-Judge 评估: 首次将 VLM 评估引入扩散模型量化领域
  4. 高效 Triton 实现: 2.1× 内存节省,2.3× 加速(RTX 4090)
  5. 超越 FP16: PixArt-Σ INT W4A4 FID 15.9 vs FP16 16.6

技术影响

  • 激活空间是 DiT 量化的正确方向: 相比权重空间方法,直接捕获激活统计更有效
  • PCA 是处理 DiT 异常值的有效工具: 集中异常值能量到少量主成分
  • 旋转量化可扩展到 DiT: 解决了 AdaLN 和时间步变化的挑战
  • W4A4 可达到甚至超越 FP16 质量: 在 PixArt-Σ 上实现

局限性

  • 前向旋转仍需在线计算(因非线性层阻止融合)
  • PCA 基跨时间步共享,无法适应单个时间步的特殊统计
  • 仅在 text-to-image 任务验证,未扩展到视频生成
  • 需要 128 个校准样本

九、参考资源