Back to blog

DeepCache: Accelerating Diffusion Models for Free

免训练扩散模型加速框架,利用U-Net高层特征的时间冗余实现缓存复用

DeepCache: Accelerating Diffusion Models for Free

一、论文概述

项目内容
标题DeepCache: Accelerating Diffusion Models for Free
作者Xinyin Ma, Gongfan Fang, Xinchao Wang
论文arXiv:2312.00858
发布2023-12-01
主题cs.CV (Computer Vision and Pattern Recognition)
引用高影响力论文,后续工作(PostDiff等)广泛引用

二、核心思想

问题定义

扩散模型在图像合成领域展现出卓越的生成能力,但其顺序去噪过程和庞大模型规模导致高昂的计算成本。传统压缩方法需要大量重训练,面临成本和可行性挑战。

核心问题:如何在不进行额外训练的情况下,显著减少每个去噪步骤的计算开销?

核心观察

高层特征的时间冗余性:

特征冗余分析

Figure 2: U-Net上采样块U₂中的特征图示例,展示了相邻去噪步骤之间的显著时间相似性。

关键发现:

  1. 相邻去噪步骤之间存在显著的时间特征相似性
  2. 无论使用哪种扩散模型,至少10%的相邻时间步具有>0.99的余弦相似度
  3. 主分支的高层特征变化微小,存在大量冗余计算

解决方案概述

DeepCache:一种免训练的扩散模型加速范式,从模型架构角度加速扩散模型。

核心思想:

  • 利用U-Net的skip connection结构特征
  • 缓存主分支的高层特征,跳过冗余计算
  • 仅在skip branch执行浅层计算

三、技术架构

DeepCache原理

DeepCache架构

Figure 3: DeepCache原理示意图。

U-Net结构分析

U-Net由堆叠的下采样和上采样块组成,通过skip connections连接:

Concat(Di(⋅),Ui+1(⋅))\text{Concat}(D_i(\cdot), U_{i+1}(\cdot))

其中:

  • 主分支:需要大量计算遍历整个网络
  • skip分支:仅需经过浅层,计算量很小

核心算法

基本缓存策略(1:2):

对于连续时间步 tt 和 t−1t-1:

  1. 在时间步 tt,执行完整推理,缓存主分支特征: Fcachet←Um+1t(⋅)F^t_{\text{cache}} \leftarrow U_{m+1}^t(\cdot)

  2. 在时间步 t−1t-1,跳过主分支计算,复用缓存特征: Dmt−1(⋅) 仅执行浅层计算D_m^{t-1}(\cdot) \text{ 仅执行浅层计算}

扩展到1:N策略:

缓存特征计算一次,复用于连续 N−1N-1 步: k=⌈T/N⌉k = \lceil T/N \rceil

其中 kk 是缓存更新次数。

非均匀1:N策略:

针对长缓存间隔的优化: ik=unique_int({lkp+c∣lk∈L})i_k = \text{unique\_int}(\{l_k^p + c \mid l_k \in \mathcal{L}\})

其中 pp 是幂次参数,cc 是中心偏移。

复杂度分析

MACs分析

Figure 4: 每个skip branch的MACs分析。

关键洞察:

  • skip branch的计算量远小于主分支
  • 缓存策略主要节省主分支的计算开销
  • 选择合适的 mm(缓存层深度)可平衡速度和质量

四、实验结果

主要结果

Table 1: ImageNet LDM-4-G 类条件生成质量

方法MACs ↓吞吐量 ↑加速比 ↑重训练FID ↓sFID ↓
LDM-499.82G0.1781×✗3.375.14
Diff-Pruning52.71G0.2691.51×✓9.2710.59
DeepCache N=252.12G0.3341.88×✗3.395.11
DeepCache N=336.48G0.4712.65×✗3.445.11
DeepCache N=523.50G0.7334.12×✗3.595.16
DeepCache N=1013.97G1.2396.96×✗4.415.57

关键结果:

  • N=5时,4.12倍加速,FID仅从3.37增至3.59
  • 显著优于需要重训练的Diff-Pruning

Table 2: CIFAR-10, LSUN-Bedroom, LSUN-Churches结果

数据集方法MACs ↓吞吐量 ↑加速比 ↑FID ↓
CIFAR-10DDPM6.1G9.791×4.16
Diff-Pruning3.4G13.451.37×5.29
DeepCache N=24.15G13.731.40×4.35
DeepCache N=53.01G18.111.85×5.73

Stable Diffusion结果

Stable Diffusion对比

Figure 5: BK-SDM-Tiny和DeepCache生成图像的对比。

Table 3: 与PLMS和BK-SDM的对比

方法吞吐量 ↑加速比 ↑CLIP Score ↑
PLMS - 50 steps0.2301.00×29.51
PLMS - 25 steps0.4702.04×29.33
BK-SDM - Base0.3431.49×28.88
BK-SDM - Small0.4021.75×27.94
BK-SDM - Tiny0.4161.81×27.36
DeepCache0.4942.15×29.46

关键结果:

  • DeepCache以2.15倍加速超越所有BK-SDM变体
  • CLIP Score保持在29.46,接近原始PLMS的29.51

非均匀策略对比

非均匀策略

Figure 6: PLMS与DeepCache均匀/非均匀策略的对比。

Table 4: 与DDIM的同等吞吐量对比

方法吞吐量 ↑FID ↓sFID ↓
DDIM - 59 steps0.7273.595.14
DeepCache0.7333.595.16
DDIM - 91 steps0.4363.4650.6
DeepCache0.4713.445.11

缓存间隔影响

缓存间隔演化

Figure 7: 随缓存间隔增加的生成图像演化。

Table 10: 缓存间隔消融(ImageNet)

间隔 NMACs ↓吞吐量 ↑加速比 ↑FID ↓
1 (原始)99.82G0.1781×3.37
252.12G0.3341.88×3.39
336.48G0.4712.65×3.44
523.50G0.7334.12×3.59
1013.97G1.2396.96×4.41
207.59G2.03411.43×8.23

关键发现:

  • 缓存间隔越大,加速比越高,但质量下降
  • N=5是速度-质量的最佳平衡点

质量可视化

Figure 8-12: 不同数据集的生成样本对比

LSUN-Churches样本

Stable Diffusion样本

LDM-ImageNet样本

LSUN-Bedroom样本

缓存特征有效性验证

Table 5: 缓存特征的有效性

模型数据集DeepCache无缓存特征
DDPMCIFAR-109.74192.98
LDM-4-GImageNet7.36312.12

关键发现:

  • 移除缓存特征导致FID急剧恶化(192.98 vs 9.74)
  • 证明缓存特征对生成质量至关重要

浅层推理有效性

Table 6: 浅层推理的有效性

DDIM步数DDIM FID↓DeepCache FID↓改善 Δ
504.674.35-0.32
206.845.73-1.11
1013.3610.38-2.98

关键发现:

  • 浅层推理不仅减少计算,还可能改善生成质量
  • 步数越少,改善效果越明显

非均匀策略超参数

Table 7-8: 非均匀策略超参数分析

中心 cFID ↓sFID ↓IS ↑
108.268.47160.3
807.367.76166.21
1207.117.34167.85
2008.097.79160.50
幂次 pFID ↓sFID ↓IS ↑
1.057.367.52166.12
1.27.117.34167.85
1.47.137.39167.68

最优超参数:c≈120, p≈1.3-1.4

五、核心创新

创新点说明实验验证
免训练加速无需任何重训练或微调所有实验均为零训练成本
时间冗余利用缓存相邻步的高层特征Table 5验证缓存特征有效性
U-Net结构利用利用skip connection的双路径特性Figure 4的MACs分析
非均匀策略针对长间隔的自适应缓存Table 7-8的超参数分析
通用性适用于DDPM/LDM/Stable Diffusion多模型验证

六、与其他方法对比

方法特点DeepCache优势
Diff-Pruning结构剪枝,需重训练免训练,效果更好
BK-SDM知识蒸馏,需训练免训练,速度更快
DDIM/PLMS减少采样步数可叠加使用,进一步加速
Spectral DPM频率先验,需重训练免训练,更通用
SnapFusion结构优化更简单,无需架构修改

七、局限性

  1. 依赖预训练模型结构:当最浅skip branch计算量占比过大(如50%)时,加速比受限
  2. 非均匀策略开销:对于大缓存间隔,非均匀策略引入不可忽略的额外计算
  3. 质量-速度权衡:大缓存间隔(N>10)会导致明显质量下降

八、总结

核心贡献

  1. 新范式提出:首次提出从模型架构角度免训练加速扩散模型
  2. DeepCache算法:利用U-Net高层特征的时间冗余实现缓存复用
  3. 非均匀策略:针对长缓存间隔的自适应优化
  4. 广泛验证:在DDPM、LDM、Stable Diffusion上验证有效性

性能总结

指标LDM-4-GStable DiffusionCIFAR-10
最大加速比6.96×2.15×2.07×
质量保持FID 3.37→4.41CLIP 29.51→29.46FID 4.16→5.73
训练成本零零零

技术影响

DeepCache开创了免训练扩散模型加速的研究方向:

  • 后续工作:PostDiff、TGATE、ToDo、ToMe等均受其启发
  • 工业应用:已集成到多个扩散模型推理框架
  • 研究范式:证明了利用时间冗余的有效性

九、参考资源