Back to blog

ScalingCache: Extreme Acceleration of DiTs through Difference Scaling and

通过差分缩放和动态间隔缓存实现 DiT 的极端加速

ScalingCache: Extreme Acceleration of DiTs through Difference Scaling and Dynamic Interval Caching

一、论文概述

项目内容
标题ScalingCache: Extreme Acceleration of DiTs through Difference Scaling and Dynamic Interval Caching
作者Lihui Gu, Jingbin He, Lianghao Su, Kang He, Wenxiao Wang, Yuliang Liu
机构浙江大学软件技术学院, KlingAI Research
论文PDF
代码GitHub
主题cs.CV (计算机视觉与模式识别)

二、核心思想

问题定义

扩散 Transformer (DiT) 已成为强大的生成模型,但其迭代去噪结构和深层 Transformer 块产生了大量计算开销,限制了高质量视频生成的可访问性和实际部署。

核心挑战: 特征缓存涉及两个核心问题:

  1. 如何使用缓存: 直接重用缓存特征面临关键限制——随着时间距离增加,特征相似性迅速衰减
  2. 何时使用缓存: 固定间隔策略缺乏适应模型动态行为的灵活性

解决方案概述

ScalingCache 是一个无训练加速框架,专门针对 DiT 设计。它通过以下两个互补策略解决上述问题:

  1. 差分缩放优化: 对每个时间步和 Transformer 块离线预计算差分缩放系数,实现准确的基于缓存的预测
  2. 运行时自适应动态间隔缓存: 利用每个块的输出和计算过程中的误差变化,自适应调整全步计算的间隔

核心性能

  • 在 Wan2.1 和 HunyuanVideo 上实现约 2.5× 加速,VBench 分数仅下降 0.5%
  • 在 FLUX 上实现 3.1× 近无损加速,人类偏好测试显示与原始输出质量相当
  • 在相同加速比下,相比 SOTA 缓存策略:
    • 文本到图像生成 LPIPS 降低 45%
    • 文本到视频生成 LPIPS 降低 20-30%

三、技术架构

DiT 架构概述

扩散 Transformer 遵循分层架构:

M=B1∘B2∘⋯∘BL\mathcal{M} = B_1 \circ B_2 \circ \cdots \circ B_L

每个块 BlB_l 由多个模块组成:

Bl=FSAl∘FCAl∘FMLPl,l∈{1,2,…,L}B^l = \mathcal{F}_{SA}^l \circ \mathcal{F}_{CA}^l \circ \mathcal{F}_{MLP}^l, \quad l \in \{1, 2, \dots, L\}

其中:

  • FSAl\mathcal{F}_{SA}^l = 自注意力模块
  • FCAl\mathcal{F}_{CA}^l = 交叉注意力模块
  • FMLPl\mathcal{F}_{MLP}^l = 前馈网络

每个模块包含残差连接:ytl=xtl+AdaLN∘f(xtl)\pmb{y}_t^l = \pmb{x}_t^l + \text{AdaLN} \circ f(\pmb{x}_t^l)

差分缩放预测

差分缩放流程

Figure 4: 通过差分缩放基于块级预测获取当前步特征的完整过程

零阶与一阶特征观察

区域模式

Figure 1: 不同去噪步骤和不同块中,零阶和一阶特征相对于全计算的 L1 误差呈现不同的区域模式

关键观察:对于某些 Transformer 块在特定时间步,直接重用缓存的预时间步特征 y(0)\pmb{y}^{(0)} 相对于全计算产生的误差比应用一阶特征 y(1)\pmb{y}^{(1)} 更小。这表明组合 y(0)\pmb{y}^{(0)} 和 y(1)\pmb{y}^{(1)} 比单独依赖任一更有效。

一阶线性预测

Taylorseer 提出的一阶特征预测公式:

yt′l=yτl+kT(yτl−yτ−Tl)\boldsymbol{y}_t^{\prime l} = \boldsymbol{y}_\tau^l + \frac{k}{T}(\boldsymbol{y}_\tau^l - \boldsymbol{y}_{\tau-T}^l)

其中:

  • τ=t−k\tau = t - k = 最近的全计算步
  • τ−T\tau - T = 次近的全计算步
  • TT = 缓存间隔

修改的一阶线性预测(ScalingCache)

y^tl=yτl+αtlkΔyτl\hat{\boldsymbol{y}}_t^l = \boldsymbol{y}_\tau^l + \alpha_t^l k \Delta \boldsymbol{y}_\tau^l

其中 αtl\alpha_t^l 是一阶差分缩放系数。

离线 α 估计

通过最小二乘公式求解 αtl\alpha_t^l:

min⁡αtl∥y^tl−ytl∥=min⁡αtl∥yτl−ytl+αtlkΔyτ∥\min_{\alpha_t^l} \left\| \hat{\boldsymbol{y}}_t^l - \boldsymbol{y}_t^l \right\| = \min_{\alpha_t^l} \left\| \boldsymbol{y}_\tau^l - \boldsymbol{y}_t^l + \alpha_t^l k \Delta \boldsymbol{y}_\tau \right\|

闭式解(当 k=1,T=1k=1, T=1):

αtl=⟨yt−1l−ytl,−Δyt−1l⟩⟨Δyt−1l,Δyt−1l⟩\alpha_t^l = \frac{\langle \boldsymbol{y}_{t-1}^l - \boldsymbol{y}_t^l, -\Delta \boldsymbol{y}_{t-1}^l \rangle}{\langle \Delta \boldsymbol{y}_{t-1}^l, \Delta \boldsymbol{y}_{t-1}^l \rangle}

使用指数移动平均更新以提高稳定性和泛化性:

αtl←βαt′l+(1−β)αtl\alpha_t^l \gets \beta \alpha_t^{\prime l} + (1-\beta) \alpha_t^l

实践参数:

  • 使用约 50 个提示离线预计算 αkl\alpha_k^l
  • β=0.97\beta = 0.97
  • 离线计算不引入在线推理的额外开销

特征差估计

由于两个全计算步之间的缩放因子不同,使用以下公式估计 Δyτl\Delta \boldsymbol{y}_\tau^l:

Δyτl=yτl∘yτ′l=(yτl−yτ′l)∏i=τ′+1ταi∑k=τ′+1τ∏i=τ′+1kαil\Delta \boldsymbol{y}_\tau^l = \boldsymbol{y}_\tau^l \circ \boldsymbol{y}_{\tau^{\prime}}^l = \frac{(\boldsymbol{y}_\tau^l - \boldsymbol{y}_{\tau^{\prime}}^l) \prod_{i=\tau^{\prime}+1}^{\tau} \alpha_i}{\sum_{k=\tau^{\prime}+1}^{\tau} \prod_{i=\tau^{\prime}+1}^{k} \alpha_i^l}

缓存存储需求: 每个模块需要存储两个张量:缓存特征 yt−1l\boldsymbol{y}_{t-1}^l 和特征差 Δyt−1l\Delta \boldsymbol{y}_{t-1}^l

运行时动态间隔缓存

阈值配置

Figure 5: 使用不同提示集评估不同阈值配置下的生成质量

U 形误差模式

观察发现缓存预测存在 U 形误差模式:使用一阶差分优化时,中间时间步的预测误差相对较低,而扩散过程的开始和结束阶段显示较大偏差。

动态误差定义

每个时间步 tt 的动态误差定义为:

eˉt=1L∑l=1L∥ytl−yt−1lyt−1l∥1\bar{e}_t = \frac{1}{L} \sum_{l=1}^{L} \left\| \frac{\boldsymbol{y}_t^l - \boldsymbol{y}_{t-1}^l}{\boldsymbol{y}_{t-1}^l} \right\|_1

累积误差:ϵt=∑i=τt−1eˉt\epsilon_t = \sum_{i=\tau}^{t-1} \bar{e}_t

缓存更新规则

ytl={f(xtl),if ϵt>δs or t∈[0,Sf−1]yt−1l+αtlΔyt−1l,otherwise.\boldsymbol{y}_t^l = \begin{cases} f(\boldsymbol{x}_t^l), & \text{if } \epsilon_t > \delta_s \text{ or } t \in [0, S_f - 1] \\ \boldsymbol{y}_{t-1}^l + \alpha_t^l \Delta \boldsymbol{y}_{t-1}^l, & \text{otherwise.} \end{cases}

其中:

  • SfS_f = 初始预热步数(必须进行全计算以捕获早期扩散阶段的快速变化特征)
  • δs\delta_s = 动态误差阈值(限制预测与全计算特征之间的偏差)

自适应阈值估计

  • 高变化视频生成任务需要更小的阈值 δs\delta_s
  • 低变化场景可以使用更大的 δs\delta_s,获得更高的加速比
  • δs\delta_s 可从第一批 SfS_f 时间步估计

算法流程

Algorithm 1: ScalingCache 推理策略

输入: DiT 模型 M, [α_t^l]
参数: S_f (初始预热步数)
输出: {y_t^L | t = 1, ..., N}

1. 初始化 ε_t = 0, E = ∅
2. for t = 1 to N do
3.   计算 δ_s = 1/|E| Σ_{ε∈E} ε
4.   if t ∈ [0, S_f-1] or ε_t > δ_s then
5.     y_t^L = M(x_t)  # 全计算
6.     ε_t = ē_t
7.     E ← E ∪ ε_t
8.   else
9.     for l = 1 to L do
10.      y_t^l = y_{t-1}^l + α_t^l Δy_{t-1}^l  # 缓存预测
11.      Δy_t^l = α_t^l Δy_{t-1}^l
12.    end for
13.    ε_t = ε_t + ē_t  # 更新累积误差
14.  end if
15. end for

四、核心创新

创新点说明理论/实验依据
差分缩放系数为每个时间步和块预计算 α 系数离线最小二乘优化,EMA 更新
区域模式发现零阶特征在某些情况下优于一阶L1 误差分析(Figure 1)
动态间隔缓存自适应调整全计算间隔U 形误差模式,累积误差阈值
自适应阈值根据任务变化程度调整 δ_s高/低变化任务的不同需求
单参数调节仅需调整 S_f 参数简单易用,无需复杂调参

五、实验结果

基准测试

加速比较

Figure 2: ScalingCache 在不同缓存策略下始终实现更高的加速比和更低的 L1 相对误差

文本到视频生成

模型方法加速比PSNR ↑SSIM ↑LPIPS ↓VBench (%) ↑
Wan2.1 1.3B原始1×---83.31
+ 40% steps2.5×14.500.5230.43780.30
+ Teacache2.0×22.570.8060.12881.04
+ Taylorseer1.9×13.520.5100.44781.97
+ EasyCache2.5×25.240.8340.09582.48
+ ScalingCache2.5×26.610.8900.07182.92
Wan2.1 14B原始1×---84.05
+ ScalingCache2.5×25.630.8610.08383.87
HunyuanVideo原始1×---81.40
+ ScalingCache2.3×30.800.9300.04981.13

文本到图像生成

方法加速比PSNR ↑SSIM ↑LPIPS ↓CLIP Score (%) ↑
FLUX 1.dev 原始1×---80.17
+ 50% steps2.0×29.360.6830.31878.88
+ Teacache2.0×28.080.4000.69081.79
+ Taylorseer2.8×30.760.7800.23080.17
+ ScalingCache3.1×32.280.8190.13180.25

人类偏好评估

人类偏好

Figure 7: 人类偏好评估结果

ScalingCache 加速的图像被选择的比率与原始图像大致相同,证明加速生成保持了与原始相当的视觉质量。

消融实验

模型α动态缓存加速比PSNR ↑SSIM ↑LPIPS ↓
Flux 1.dev2.9×29.150.6520.324
√2.9×29.830.7010.259
√2.6×31.040.7720.192
√√3.0×32.280.8190.131
Wan2.1 1.3B2.4×24.530.8570.092
√2.4×25.950.8760.079
√2.5×22.500.8090.129
√√2.5×26.610.8900.071

关键发现: 差分缩放系数 (α) 和动态缓存间隔对效率和生成质量都至关重要。

跨任务鲁棒性分析

子任务motioncompositionhumanmaterialmechanicsdynamicstaticrandom
|α_i - ᾱ|0.0080.0070.0090.0220.0150.0110.0170.006

关键发现: 大多数子任务的 α 值与全局均值偏差在 2.5% 以内,表明 α 具有良好的跨任务稳定性。

加速比与 S_f 参数

加速比

Figure 8: 不同模型使用不同 S_f 实现的加速比

对于 S_f ≤ 14,所有评估模型都实现了超过 2.0× 的端到端推理加速。

六、生成结果展示

生成结果

Figure 3: Wan2.1-14B 和 FLUX 1.dev 上的视频和图像生成结果

即使在高加速因子下,ScalingCache 也实现了与原始视频/图像几乎相同的视觉保真度。

VBench 消融

Figure 9: 不同 S_f 下的 VBench 和视觉保持评估

将 S_f 从 6 降低到 4 会明显降低生成质量。虽然整体 VBench 分数仅下降 2%,但更高加速会显著损害动态程度和人类动作性能。

七、相关工作

相关工作与本文关系
Taylorseer使用高阶泰勒展开,但存储开销大且性能提升有限
Teacache动态缓存策略,但仅基于第一块输入和最后块输出
EasyCache动态缓存,但未充分考虑中间块的动态性
MixCache混合缓存策略,在 HunyuanVideo 上对比
蒸馏方法需要大规模数据和计算,非训练方法

八、总结

核心贡献

  1. 差分缩放优化: 为每个时间步和 Transformer 块预计算差分缩放系数,实现准确的缓存预测
  2. 运行时自适应动态间隔缓存: 利用块输出和误差变化自适应调整计算间隔
  3. 近无损加速: 在多个 SOTA 模型上实现 2.3-3.1× 加速,质量损失极小
  4. 单参数调节: 仅需调整 S_f 参数,简单易用
  5. 跨任务稳定性: α 系数在不同任务间具有良好的稳定性

技术影响

  • 无训练加速: 避免了蒸馏等方法的高昂训练成本
  • 即插即用: 可应用于任何 DiT 架构的生成模型
  • 高质量保持: 在高加速比下仍保持专业级视觉质量
  • 实际部署: 使高质量视频生成更加可访问

局限性

  • 当前策略可能不适用于所有实例(如从静态开始但后来转变为动态的场景)
  • 离线 α 计算需要约 50 个提示和 5 个随机种子
  • 高加速比下动态程度和人类动作性能会下降

九、参考资源