Diffusion Models视频生成-博客汇总
前言:OpenAI最近推出的视频生成模型Sora在效果上实现了真正的遥遥领先,很多博主都介绍过Sora,但是深入解读背后原理的博客却非常少。Sora的原理最主要的是核心模型主干《Scalable Diffusion Models with Transformers》和训练不同尺寸视频方法《Patch n' Pack: NaViT, a Vision Transformer for any Aspect Ratio and Resolution》。这篇博客详细解读Diffusion Transformer结构,一起揭开Sora神秘的面纱。
目录
贡献概述
方法详解
主干结构
Patch化
条件输入
Transformer decoder
Sora上的应用:空间时间补丁(Spacetime Patches)
个人感悟
贡献概述
论文提出使用Transformers替换扩散模型中U-Net主干网络,分析发现,这种Diffusion Transformers(DiTs)不仅速度更快(更高的Gflops),而且在ImageNet 512×512和256×256的类别条件图片生成任务上,取得了更好的效果,256×256上实现了SOTA的FID指标(2.27)。
文章的目标就是要揭开扩散模型架构选择的神秘面纱,提供一个强有力的baseline。文章发现U-Net并非不可替代,并且很容易使用诸如Transformers的结构替代U-Net,使用Transformers可以很好地保持原有的优秀特性,比如可伸缩性、鲁棒性、高效性等,并且使用新的标准化架构可能在跨领域研究上展现出更多的可能。文章从网络复杂度和采样质量两个方面对DiTs方法进行评估。
方法详解
主干结构
Patch化
Diffusion Transformer的目标是尽可能忠实于标准的transformer架构,以保持其缩放特性。DiT基于vision transformer(ViT)架构,该架构对patch序列进行操作。
DiT的输入是通过VAE后的一个稀疏的表示z(256×256×3的图片,z为32×32×4),类似其他ViTs的方式,首先要将输入转成patch,文章采用超参p=2,4,8进行对比实验。
条件输入
作者探索了四种方法输入条件,最后发现Adaptive layer norm(adaLN)模块的效果是最好的。
- In-context条件:In-context条件是将t和c作为额外的token拼接到DiT的token输入中;
- Cross-attention模块:DiT结构与Condition交互的方式,与原来U-Net结构类似;
- Adaptive layer norm(adaLN)模块:使用adaLN替换原生LayerNorm(NeurIPS2019的文章,LN 模块中的某些参数不起作用,甚至会增加过拟合的风险。所以提出一种没有可学习参数的归一化技术);
- adaLN-zero模块:之前的工作发现ResNets中每一个残差模块使用相同的初始化函数是有益的。文章提出对DiT中的残差模块的参数γ、β、α进行衰减,以达到类似的目的。
Transformer decoder
在Transformer最上层需要预测噪音,因为Transformer可以保证大小与输入一致,所以在最上层使用一层线性进行decoder。
Sora上的应用:空间时间补丁(Spacetime Patches)
在深入讨论Sora如何通过三个关键步骤生成视频之前,让我们先集中探索一下空间时间补丁(Spacetime Patches)这一概念。这一概念对于理解Sora如何处理复杂视觉内容至关重要。
空间时间补丁可以简单理解为将视频或图片内容分解为一系列小块或“补丁”,每个小块都包含了部分时空信息。这种方法的灵感来源于处理静态图像的技术,其中图像被分成小块以便于更有效地处理。在视频处理的背景下,这一概念被拓展到了时间维度,不仅包含空间(即图像的部分区域),还包括时间(即这些区域随时间的变化)。
为了理解空间时间补丁是如何工作的,我们可以借用一个简单的日常生活中的比喻:想象一下,你在观看一部动画电影。如果我们将这部电影切割成一帧帧的静态画面,每帧画面进一步切割成更小的区域(即“补丁”),那么每个小区域都会包含一部分画面的信息。随着时间的推移,这些小区域中的信息会随着物体的移动或场景的变化而变化,从而在时间维度上添加了动态信息。在Sora中,这样的“空间时间补丁”使得模型可以更细致地处理视频内容的每一个小片段,同时考虑它们随时间的变化。
具体到Sora处理视觉内容的过程中,空间时间补丁首先通过视频压缩网络生成。这一网络负责将原始视频数据压缩成更低维度的表示形式,即一个由许多小块组成的密集网络。这些小块即为我们所说的“补丁”,每个补丁都携带了一部分视频的空间和时间信息。
一旦生成了这些空间时间补丁,Sora就可以开始它们的转换过程了。通过预先训练好的转换器(Transformer模型),Sora能够识别每个补丁的内容,并根据给定的文本提示进行相应的修改。例如,如果文本提示是“雪地中的狗狗奔跑”,Sora将找到与“雪地”和“奔跑的狗狗”相关的补丁,并相应调整它们,以生成与文本提示匹配的视频内容。
这种基于空间时间补丁的处理方式有几个显著优势。首先,它允许Sora以非常精细的层次操作视频内容,因为它可以独立处理视频中的每一小块信息。其次,这种方法极大地提高了处理视频的灵活性,使得Sora能够生成具有复杂动态的高质量视频,而这对于传统视频生成技术来说是一个巨大的挑战。此外,通过对这些补丁进行有效管理和转换,Sora能够在保证视频内容连贯性的同时,创造出丰富多样的视觉效果,满足用户的各种需求。
个人感悟
1、据说这篇论文被cvpr拒收了,理由是创新度不足,真是笑死……
2、这篇论文的很多细节不是很清楚,比如具体来说不同的condition是如何压缩后再加入到模型中的?文本条件、image条件等condition加入的方法有区别吗?timesteps是如何加入到DiT Blocks中?Transformer decoder为什么要同时预测协方差和noise?
3、2024年很可能DiT结构会取代Unet结构?拭目以待!