DDiT:用于高效扩散Transformer的动态Patch调度 DDiT: Dynamic Patch Scheduling for Efficient Diffusion Transformers
通过动态调整去噪步骤中的patch大小,在保持生成质量的同时实现3.5倍加速
前置知识
扩散Transformer (Diffusion Transformers, DiTs)
扩散Transformer是一种结合了扩散过程和Transformer架构的生成模型。它通过逐步去噪的过程生成图像或视频:从纯噪声开始,经过多个时间步迭代去除噪声,最终得到清晰的输出。DiT使用Vision Transformer (ViT)作为骨干网络,在VAE的潜在空间中操作,将输入图像编码为潜在表示z ∈ R^{H×W×C},然后通过L层Transformer块处理。每个块包含注意力机制和前馈层,计算复杂度与token数量N = HW/p²成正比,其中p是patch大小。
理解DiT的架构和去噪过程是理解本文方法的基础,因为DDiT正是通过修改DiT的patch处理方式来实现效率提升的。
Patch嵌入 (Patch Embedding)
Patch嵌入是将输入图像或潜在表示分割成固定大小的patch,然后通过线性投影层映射到高维嵌入空间的过程。在标准DiT中,输入被分成p×p大小的不重叠patch,每个patch通过权重矩阵w_emb ∈ R^{p×p×C×d}和偏置b_emb ∈ R^d投影到d维嵌入空间。这一步骤将空间信息转换为token序列,供后续Transformer处理。patch大小p直接影响token数量N,进而影响计算复杂度。
DDiT的核心创新在于动态调整patch大小,因此理解标准patch嵌入的工作原理对于理解本文的修改至关重要。
LoRA (Low-Rank Adaptation)
LoRA是一种参数高效的微调技术,通过在预训练模型的权重矩阵旁边添加低秩分解的旁路来实现适配。具体来说,对于原始权重W ∈ R^{d×k},LoRA添加两个小矩阵A ∈ R^{d×r}和B ∈ R^{r×k},其中r << min(d,k)是秩参数。前向传播变为h = Wx + BAx。这种方法只需训练少量参数(通常只有原始模型的0.1%-1%),就能使模型适应新任务,同时保持预训练模型的原始能力。
DDiT使用LoRA来使预训练的DiT模型能够处理不同大小的patch,这是实现动态patch调度的关键技术之一。
有限差分 (Finite Difference)
有限差分是一种数值方法,用于近似函数的导数。在本文中,作者使用不同阶数的有限差分来量化潜在表示在去噪过程中的演化速度。一阶差分Δz_t = z_t - z_{t+1}捕捉连续时间步之间的位移;二阶差分Δ²z_{t-1} = Δz_{t-1} - Δz_t描述位移变化的速率(速度);三阶差分Δ³z_{t-1} = Δ²z_{t-1} - Δ²z_t量化速度的变化(加速度)。这些差分提供了潜在流形演化动态的信息。
DDiT使用三阶有限差分来估计每个时间步的生成复杂度,这是决定使用何种patch大小的核心机制。
VAE潜在空间 (VAE Latent Space)
变分自编码器(VAE)是一种生成模型,它将高维输入(如图像)编码到低维的潜在空间中。在扩散模型中,VAE的编码器将图像I压缩为潜在表示z ∈ R^{H×W×C},其中H、W、C分别是高度、宽度和通道数。扩散过程在这个压缩的潜在空间中进行,而不是在原始像素空间中,这大大降低了计算复杂度。最后,VAE的解码器将去噪后的潜在表示解码回图像空间。
DDiT在VAE潜在空间中操作,动态调整patch大小实际上是在改变如何将这个潜在表示分割成token,因此理解潜在空间的特性对于理解方法至关重要。
研究动机
当前扩散Transformer(DiTs)在图像和视频生成中取得了最先进的性能,但这种性能是以巨大的计算成本为代价的。例如,使用Wan-2.1模型在RTX 4090上生成一个5秒720p视频需要30分钟!这种低效主要源于固定的tokenization过程:在整个去噪阶段使用恒定大小的patch,完全忽略了内容的复杂度。现有加速方法如特征缓存、剪枝、量化和蒸馏等存在两个关键限制:第一,许多方法采用硬性的静态减少策略,如移除固定数量的权重、操作或token,这种静态方法可能导致显著的质量下降,因为对特定输出至关重要的计算可能被永久丢弃;第二,大多数现有方法采用一刀切的策略,对输入不敏感,这导致像'a blue sky'这样简单的提示与'a scene crowded with many zebras'这样复杂的提示需要相同的计算资源。
本文的目标是本文的目标是实现显著的计算加速,同时最小化图像和视频生成的感知质量损失。具体来说,作者希望在FLUX-1.Dev上实现3倍以上的加速,在Wan 2.1上实现3倍以上的加速,同时保持FID、CLIP分数、ImageReward等指标与基线模型相当。此外,方法应该是通用的,能够应用于任何基于DiT的模型,且只需最小的架构修改。
与已有工作不同的是,本文的独特切入角度基于一个关键观察:扩散模型生成的视觉内容在不同细节层次上演化。一些去噪时间步建立粗略的场景结构,而其他时间步则细化精细的视觉细节。作者假设:如果潜在流形在短时间内演化缓慢,则正在生成粗粒度细节,可以使用更大的patch;反之,如果演化迅速,则正在生成细粒度细节,需要使用更小的patch。这种动态策略根据每个时间步和每个提示的具体需求定制计算负载,在需要时分配更多资源,在可能时节省资源,这是现有静态方法无法实现的。
核心方法
DDiT的核心思想可以用一个简单的比喻来理解:就像画家在创作时,先用大笔刷勾勒整体轮廓(粗粒度),再用细笔刷添加细节(细粒度)。在扩散模型的去噪过程中,不同阶段需要不同粒度的处理:早期时间步只需要建立全局结构,可以使用较大的patch来节省计算;后期时间步需要精细化局部细节,必须使用较小的patch来保持质量。技术路线上,DDiT首先修改patch嵌入层以支持多种patch大小,然后设计一个零训练开销的动态调度器,根据潜在流形演化的速度来决定每个时间步使用何种patch大小。
DDiT与已有方法最本质的区别在于它不是通过丢弃信息(如剪枝、量化)或复用信息(如缓存)来加速,而是通过动态调整信息的粒度来加速。具体来说,DDiT引入了动态tokenization的概念:在推理时根据内容复杂度和去噪时间步自动选择最优的patch大小。这是通过测量潜在流形随时间的变化率来实现的。作者使用三阶有限差分来量化这种变化,并假设变化率与生成细节的层次相关。当变化缓慢时使用大patch(如4p),变化迅速时使用小patch(如p)。这种策略是内容自适应的,不同的提示会自动产生不同的patch调度方案。
方法步骤详情
DDiT的方法包含三个主要步骤:第一步,修改patch嵌入层以支持多种patch大小。对于每个新的patch大小p_new(p_new ∈ {p, 2p, 4p, ...}),引入对应的patch嵌入层和反嵌入层,使用双线性插值从原始patch大小的位置嵌入初始化新位置嵌入,并添加可学习的patch大小嵌入作为标识符。同时在patch嵌入层前后添加残差连接,并引入LoRA分支(秩为32)到每个Transformer块的前馈层中。第二步,通过蒸馏损失微调LoRA分支。损失函数为L = ||ε_θ^L(z_{p_new}^t, t) - ε_θ^T(z_p^t, t)||_2^2,其中ε_θ^L和ε_θ^T分别表示LoRA微调模型和冻结基础模型的噪声预测。第三步,在推理时使用动态patch调度器。对于每个时间步,计算潜在表示的三阶有限差分Δ³z_{t-1},将其分割成不同大小的patch,计算每个patch内的标准差σ_{p_i}^{t-1},取ρ百分位数(默认ρ=0.4),然后与阈值τ(默认τ=0.001)比较:如果σ_{p_i}^{(ρ),t-1} < τ,则选择满足条件的最大patch大小;否则默认使用最小patch大小p。
技术新颖性
DDiT的技术新颖性体现在多个方面:首先,它是第一个提出动态tokenization概念用于扩散模型的工作,即在推理时根据内容复杂度动态调整patch大小,而不是使用固定的patch大小。其次,它使用潜在流形演化的三阶有限差分作为复杂度度量,这是一个新颖的视角,作者发现三阶差分比一阶和二阶差分更能捕捉生成动态。第三,方法只需最小的架构修改(添加LoRA适配器和少量嵌入层)就能使任何预训练DiT支持多种patch大小,这是即插即用的。第四,动态调度器是零训练开销的,不需要额外的学习过程。第五,方法可以与现有加速技术(如TeaCache)互补,进一步提升加速效果。
实验结果
DDiT在文本到图像和文本到视频生成任务上都展示了显著的加速效果,同时保持了高质量的生成结果。在FLUX-1.Dev上的文本到图像实验中,DDiT实现了2.18倍加速(推理时间从12秒降至5.5秒),同时FID分数仅下降0.35(33.07→33.42),CLIP分数甚至略有提升(0.314→0.317),ImageReward分数保持相近(1.0291→1.0284)。当与TeaCache结合时,加速比达到3.52倍(推理时间降至3.4秒),FID为33.60,CLIP为0.315,ImageReward为1.0182。在相似推理速度下(约6秒),DDiT的FID为33.42,显著优于TeaCache(34.95)和TaylorSeer(34.74)。在Wan 2.1上的文本到视频实验中,DDiT实现了2.1倍加速(τ=0.001),VBench分数为80.97,仅比基线的81.24下降0.27分;当与TeaCache结合时,加速比达到3.2倍,VBench分数为80.53。用户研究表明,61%的情况下评估者认为DDiT生成的图像与基线一样好或更好,只有22%的情况下偏好基线,甚至有17%的情况下评估者偏好DDiT生成的图像。消融实验表明,三阶有限差分(n=3)取得了最佳性能(FID 33.42,CLIP 0.3136),优于一阶(FID 34.71,CLIP 0.2927)和二阶(FID 34.28,CLIP 0.3082)。阈值τ的分析显示,τ=0.004时加速1.88倍,CLIP为0.3148;τ=0.001时加速2.18倍,CLIP为0.3136;τ=0.01时加速3.52倍,CLIP为0.3082,表明可以通过调整τ来平衡速度和质量。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| 文本到图像生成 (FLUX-1.Dev, COCO) | FID↓ | 33.42 | 33.07 | 仅下降0.35,保持高质量 |
| 文本到图像生成 (FLUX-1.Dev, COCO) | CLIP↑ | 0.317 | 0.314 | 提升0.003 |
| 文本到图像生成 (FLUX-1.Dev, DrawBench) | ImageReward↑ | 1.0284 | 1.0291 | 仅下降0.0007 |
| 文本到图像生成 (FLUX-1.Dev, 推理速度) | Speed↑ | 2.18× | 1.0× | 2.18倍加速 |
| 文本到图像生成 (FLUX-1.Dev + TeaCache) | Speed↑ | 3.52× | 1.0× | 3.52倍加速 |
| 文本到视频生成 (Wan 2.1) | VBench↑ | 80.97 | 81.24 | 仅下降0.27分 |
| 文本到视频生成 (Wan 2.1) | Speed↑ | 2.1× | 1.0× | 2.1倍加速 |
| 文本到视频生成 (Wan 2.1 + TeaCache) | Speed↑ | 3.2× | 1.0× | 3.2倍加速 |
局限与改进
尽管DDiT展示了令人印象深刻的结果,但仍存在一些局限性。首先,方法需要微调LoRA适配器,虽然参数量很小(秩为32),但仍需要额外的训练步骤和合成数据集(如T2I-2M数据集),这增加了一定的部署成本。其次,当前设计对每个时间步使用固定的patch大小,但在同一时间步内,不同空间区域可能有不同的复杂度(例如图像中同时包含简单背景和复杂纹理区域),这种方法无法捕捉这种空间异质性。第三,阈值τ和百分位数ρ是通过经验选择的,虽然论文展示了不同τ值的影响,但缺乏自动选择最优参数的方法。第四,方法在极端加速情况下(如3.5倍以上)质量下降会更明显,ImageReward从1.0291降至1.0182。第五,论文主要评估了1024×1024分辨率的图像和480×832分辨率的视频,对于更高分辨率的生成,方法的有效性需要进一步验证。
独立分析的弱点
从独立分析的角度来看,DDiT存在几个值得关注的弱点。首先,动态调度器基于潜在流形演化的三阶有限差分,但这种度量可能无法准确反映所有类型的生成复杂度。例如,在生成具有重复纹理模式的图像时,潜在表示可能演化缓慢,但实际需要细粒度的patch来捕捉纹理细节。改进方向可以考虑结合多种复杂度度量,如频域分析或注意力权重分布。其次,当前方法在同一时间步内对整个潜在表示使用相同的patch大小,这在处理具有空间异质性的图像时可能导致次优结果。例如,生成一张包含简单天空和复杂建筑的图像时,天空区域可以使用大patch,而建筑区域需要小patch。改进方向是实现空间自适应的patch分配,根据局部区域的复杂度动态调整patch大小。第三,LoRA适配器需要在合成数据集上微调,这可能导致域偏移问题,特别是在处理与训练数据分布差异较大的提示时。改进方向可以考虑使用更多样化的训练数据或域自适应技术。
未来方向
论文作者在结论中提出了几个有价值的未来研究方向。首先,他们建议在同一时间步内研究不同patch大小的使用,即空间自适应的patch调度,这可以进一步提升效率。其次,方法可以扩展到长视频生成,允许模型用相同的计算量生成更长的视频。此外,基于本文的成果,还可以探索以下延伸方向:第一,将DDiT与其他加速技术(如模型蒸馏、量化)结合,实现更极端的加速;第二,研究DDiT在条件生成任务(如图像编辑、风格迁移)中的应用,这些任务可能有不同的复杂度模式;第三,开发自动化的阈值选择方法,避免手动调参;第四,探索DDiT在其他类型扩散模型(如一致性模型、流匹配模型)中的适用性;第五,研究动态patch调度对注意力模式的影响,以更好地理解模型的内部工作机制。
复现评估
从复现评估的角度来看,DDiT具有良好的可复现性。首先,方法的架构修改相对简单,主要包括添加LoRA适配器、patch嵌入/反嵌入层和位置嵌入,这些都可以使用标准的深度学习框架实现。其次,论文提供了详细的实现细节:LoRA秩为32,使用Prodigy优化器(学习率1.0)或AdamW优化器(学习率1×10^{-4}),patch嵌入权重使用伪逆初始化,阈值τ=0.001,百分位数ρ=0.4。第三,训练数据是合成的:T2I任务使用T2I-2M数据集(由基础模型生成),T2V任务使用Vchitect-T2V-Dataverse的提示生成的合成视频,这降低了数据获取的难度。第四,方法不需要大量计算资源进行微调,因为只训练LoRA参数。第五,基础模型(FLUX-1.Dev和Wan 2.1)都是公开可用的。然而,论文没有明确说明是否开源了代码和微调后的模型权重,这可能会影响复现的便利性。
论文图表
该图比较了DDiT和基线在Wan 2.1上的文本到视频生成结果,展示了DDiT在保持视觉质量的同时实现显著加速。
这张图证明了DDiT在视频生成任务上的有效性,展示了方法的通用性。
该图展示了三个不同提示(复杂斑马场景、中等复杂度风景、简单苹果)的patch调度方案。复杂提示使用更多小patch,简单提示使用更多大patch。
这张图直观展示了DDiT的内容自适应特性,证明了动态调度器能够根据提示复杂度自动调整。
该表格分析了不同阈值τ(0.001、0.004、0.01)对生成质量(CLIP、ImageReward)和加速比的影响。τ越大,加速越快,质量略有下降。
这个表格展示了DDiT的速度-质量权衡,帮助用户选择合适的参数。