CacheQuant: Comprehensively Accelerated Diffusion Models¶
会议: CVPR 2025
arXiv: 2503.01323
代码: 已开源(论文中提到)
领域: 扩散模型 / 模型压缩
关键词: 扩散模型加速, 模型缓存, 量化, 动态规划, 训练免费
一句话总结¶
提出 CacheQuant,一种无需训练的范式,通过联合优化模型缓存(temporal level)和量化(structural level)来全面加速扩散模型,在 Stable Diffusion 上实现 5.18× 加速和 4× 压缩,CLIP score 仅损失 0.02。
研究背景与动机¶
领域现状:扩散模型在图像生成领域取得了显著成果,但推理速度慢(数千次去噪迭代)和网络复杂(数十亿参数)严重阻碍了实际部署。即使在高性能 A6000 GPU 上,Stable Diffusion 单次推理也需要超过一分钟。
现有痛点:当前加速方法分别在两个层面独立优化——时间层面(如快速求解器、模型缓存)缩短去噪轨迹但无法简化网络,结构层面(如量化、剪枝)简化网络但需要昂贵的重训练。更关键的是,每个层面独立推向极限时(如更短的去噪路径或更少参数),性能会严重下降。
核心矛盾:缓存和量化两种优化并非完全正交。实验发现,独立优化后简单组合(LDM on ImageNet),量化和缓存分别只损失 0.76 和 4.71 FID,但简单组合后 FID 损失高达 11.99。原因是两者各自引入的误差会耦合并逐步累积——量化误差导致缓存去噪路径严重偏移,而缓存误差导致量化误差大量累积。
本文目标 如何在时间层面和结构层面联合优化扩散模型加速,同时控制耦合误差以保持生成质量。
切入角度:作者观察到缓存和量化之间存在协同关系——量化可以减少缓存增加的内存开销,缓存可以缓解时间冗余带来的量化困难。关键是需要联合优化来处理耦合误差。
核心 idea:通过动态规划选择最优缓存调度来最小化缓存+量化的联合误差,再通过解耦误差校正逐步消除耦合累积误差,实现无训练的全面加速。
方法详解¶
整体框架¶
CacheQuant 的输入是一个标准扩散模型(支持 UNet 和 DiT 框架),输出是同时具备模型缓存和低精度量化的加速模型。整个流程分两个阶段:(1)通过动态规划调度(DPS)确定最优缓存时间表,同时考虑缓存和量化的特性来最小化误差;(2)通过解耦误差校正(DEC)在每个时间步逐步消除缓存和量化的耦合累积误差。对于 UNet 框架,缓存上采样块的输出特征;对于 DiT 框架,缓存两个块之间的偏差。
关键设计¶
-
动态规划调度(Dynamic Programming Schedule, DPS)
- 功能:为缓存机制寻找最优的缓存刷新时间表,最小化联合误差
- 核心思路:将缓存调度问题建模为有序样本分组的动态规划问题。对于 T 步去噪、缓存频率为 N 的模型,将所有特征图分成 \(K=T/N\) 组,组内共享同一缓存特征。定义组内误差 \(D_k(i,j) = \sum_{t=i+1}^{j} \|X_g^i - X_g^t\|_1\)(用 L1 范数衡量,因量化误差源自绝对数值差异),然后通过 DP 递推求解 \(M(T,K) = \min_{K \leq s \leq T}\{M(s-1,K-1) + D(s,T)\}\) 来找到使总误差最小的分组方案。为降低计算复杂度,限制组长度在 \([N/2, 2N]\) 范围内,将 LDM 250步的求解时间从 4 小时缩短到 8 分钟
- 设计动机:传统方法用均匀缓存调度或手动调参,无法考虑量化带来的额外误差。DPS 通过在误差计算中同时纳入缓存和量化特性,找到真正最优的调度方案
-
解耦误差校正(Decoupled Error Correction, DEC)
- 功能:在推理时逐步消除缓存和量化的耦合累积误差
- 核心思路:将总误差 \(E_o = O_g - O_{cq}\) 解耦为缓存误差 \(E_c = O_g - O_c\) 和量化误差 \(E_q = O_c - O_{cq}\),然后分别校正。对缓存误差,在输入通道维度校正 \(X_g = a_1 \cdot X_c + b_1\);对量化误差,在输出通道维度校正 \(O_c = a_2 \cdot O_{cq} + b_2\)。校正参数通过最小二乘法求解(利用通道间的强相关性)。核心优势是理论可证明:相比直接校正只调整输出通道的均值和方差,DEC 同时在输入通道和输出通道两个维度进行调整,不仅消除均值误差还有效减小方差
- 设计动机:直接对 \(O_{cq}\) 做通道校正虽能消除均值误差,但方差仍然很大(因为缓存误差源于 \(X_g\) 和 \(X_c\) 的差异,在输出端校正无法有效处理)。通过解耦并分别在不同维度校正,FID 额外改善 0.91。且量化误差的校正参数可吸收进权重量化中,推理时仅多一次矩阵乘加
-
协同加速机制
- 功能:实现缓存和量化的互补优势
- 核心思路:缓存跳过重复计算(时间层面加速),量化用低精度表示压缩模型(结构层面加速),两者叠加效果远超各自独立优化。具体而言,缓存减少了需要量化的计算量(被缓存的块不执行量化推理),而量化减少了缓存特征的存储开销
- 设计动机:单独推进任一方向到极限都会严重掉性能,但联合优化可以在更大加速比下维持质量
损失函数 / 训练策略¶
CacheQuant 是完全无训练的方案,不需要微调或重训练。DPS 的优化目标是最小化所有组的组内 L1 误差之和,DEC 的校正参数通过最小二乘法在校准集上计算。可选地与量化重建方法结合以进一步提升性能(此时需要少量训练)。
实验关键数据¶
主实验¶
| 模型/数据集 | 方法 | Bops↓ | 加速↑ | 压缩↑ | 需重训 | FID↓ |
|---|---|---|---|---|---|---|
| SD / MS-COCO | Deepcache-N=10 | 133.58T | 3.52× | 1.00× | 否 | 23.45 |
| SD / MS-COCO | CacheQuant-N=5 W8A8 | 8.44T | 5.18× | 4.00× | 否 | 23.74 |
| SD / MS-COCO | BK-SDM-Base | 57.30T | 2.79× | 3.54× | 是 | 28.47 |
| LDM-4 / ImageNet | Deepcache-N=5 | 24.06T | 4.12× | 1.00× | 否 | 3.79 |
| LDM-4 / ImageNet | CacheQuant-N=5 W8A8 | 1.50T | 7.87× | 4.00× | 否 | 4.03 |
| LDM-4 / ImageNet | EDA-DM W8A8 | 6.39T | 1.91× | 4.00× | 是 | 4.13 |
| DiT-XL/2 / ImageNet | Δ-DiT-N=2 | 87.88T | 1.31× | 1.00× | 否 | 9.06 |
| DiT-XL/2 / ImageNet | CacheQuant-N=2 W8A8 | 5.49T | 2.72× | 4.00× | 否 | 7.86 |
消融实验¶
| 配置 | FID↓ | IS↑ | 说明 |
|---|---|---|---|
| Deepcache-N=20 (FP32) | 8.08 | 159.27 | 仅缓存基线 |
| + 直接加 W8A8 量化 | 15.36 | 121.78 | 简单组合,性能严重下降 |
| + DPS | 8.47 | 154.07 | 最优调度大幅恢复性能 |
| + DPS + DEC | 7.21 | 160.68 | 解耦校正进一步提升 |
| + DPS + DEC + Recon | 6.34 | 180.42 | 加量化重建(需少量训练)最优 |
关键发现¶
- DPS 贡献最大:从简单组合的 FID 15.36 直接降到 8.47,说明最优缓存调度是联合优化的关键
- DEC 无需训练即可将 FID 从 8.47 降到 7.21,且推理开销极小(仅增加一次矩阵乘加)
- 在小缓存频率下(N=2,3),CacheQuant 甚至超过全精度模型的 FID(如 LSUN-Church 上 3.52 vs 3.99),这与量化的正则化效应一致
- 在 GPU/CPU/ARM 多平台部署测试中,GPU 加速最显著(SD 达到 5× 实际加速)
亮点与洞察¶
- 缓存+量化的协同发现:两者并非正交但可以互补——量化减少缓存的存储开销,缓存降低量化难度。这个洞察为扩散模型加速开辟了新的组合路线
- 动态规划建模很巧妙:将缓存调度转化为有序分组问题,用 DP 求解全局最优,比手动调参或启发式方法更系统化。限制组长度的优化技巧将求解时间从 4 小时压缩到 8 分钟
- 解耦校正的理论清晰:通过等价变换证明直接校正是 DEC 在 \(a_1=1, b_1=0\) 假设下的特例,而这个假设不成立,因此 DEC 严格优于直接校正
局限与展望¶
- 当前仅验证了 W8A8 和 W4A8 两种精度配置,极低比特(如 W2A4)下的效果未知
- DPS 需要预先收集所有时间步的特征图来计算分组误差,增加了初始化开销(虽然优化后只需 8 分钟)
- 仅在图像生成任务上验证,视频生成等更复杂场景的泛化性未探索
- DEC 的校正参数在校准集上计算,对不同 prompt 分布的鲁棒性有待验证
相关工作与启发¶
- vs DeepCache: DeepCache 只做缓存不做量化,且用均匀调度。CacheQuant 在同等缓存频率下通过加入量化和最优调度,Bops 降低 16× 同时 FID 相当
- vs EDA-DM: EDA-DM 只做量化需要重训练,加速有限(1.91×)。CacheQuant 无需训练即可达到 7.87× 加速且 FID 更优
- vs Δ-DiT: Δ-DiT 针对 DiT 框架做缓存,CacheQuant 在其基础上加入量化,加速比从 1.31× 提升到 2.72× 且 FID 从 9.06 降到 7.86
评分¶
- 新颖性: ⭐⭐⭐⭐ 首次联合优化缓存+量化,DPS 和 DEC 设计合理,但两个技术本身不算全新
- 实验充分度: ⭐⭐⭐⭐⭐ 覆盖 DDPM/LDM/SD/DiT 多个模型,多数据集,多平台部署,消融完整
- 写作质量: ⭐⭐⭐⭐ 问题分析清晰,理论推导完整,图表丰富
- 价值: ⭐⭐⭐⭐ 实用性强,无训练5×加速+4×压缩对部署有直接价值
相关论文¶
- [ICML 2025] ReFrame: Layer Caching for Accelerated Inference in Real-Time Rendering
- [CVPR 2025] Decentralized Diffusion Models
- [CVPR 2025] LoRACLR: Contrastive Adaptation for Customization of Diffusion Models
- [CVPR 2025] DiC: Rethinking Conv3x3 Designs in Diffusion Models
- [CVPR 2025] Articulated Kinematics Distillation from Video Diffusion Models