文章链接:https://arxiv.org/pdf/2408.06072
项目链接:https://github.com/THUDM/CogVideo
近期,国产视频生成领域发展迅速,各家模型都在效果上下足了功夫,可谓神仙打架,前面分享过可灵,效果可以媲美Sora,这次智谱AI又发布了CogVideoX,效果如何呢,我们一起来看看。
CogVideoX是一个基于文本提示生成视频的大规模扩散Transformer模型。为了高效地建模视频数据,提出使用3D变分自编码器(VAE)在空间和时间维度上对视频进行压缩。为了改善文本与视频的对齐,提出了一个带有专家自适应LayerNorm的专家Transformer,以促进两种模态之间的深度融合。通过采用渐进式训练技术,CogVideoX能够生成具有显著动作的连贯长时间视频。此外,还开发了一种有效的文本-视频数据处理pipeline,包括各种数据预处理策略和视频字幕生成方法。这大大有助于提升CogVideoX的性能,提高生成质量和语义对齐度。结果表明,CogVideoX在多种机器指标和人工评估中均表现出最先进的性能。
效果先睹为快
CogVideoX架构
本节介绍了CogVideoX模型。下图2展示了整体架构。给定一对视频和文本输入,设计了一个3D causal VAE,将视频压缩到潜在空间中,然后将这些潜在变量打包并展开为一个长序列,记作zvision。同时,使用T5将文本输入编码为文本embeddings 。随后,和在序列维度上进行连接。连接后的embeddings随后被输入到一堆专家Transformer块中。最后,模型输出被反打包以恢复原始的潜在形状,然后使用3D causal VAE解码器解码以重建视频。
3D causal VAE
视频不仅包含空间信息,还包含大量的时间信息,通常导致比图像多出数个数量级的数据量。为了解决视频数据建模的计算挑战,本文提出了基于3D变分自编码器(3D VAEs)的视频压缩模块。其思路是通过三维卷积在空间和时间上对视频进行压缩。这有助于实现更高的压缩率,并在视频重建时大大提高质量和连贯性。
下图3(a)展示了所提出的3D VAE的结构。它包括一个编码器、一个解码器和一个潜在空间正则化器。高斯潜在空间受到Kullback-Leibler (KL) 正则化器的约束。编码器和解码器分别由四个对称排列的阶段组成,通过交错的ResNet块堆叠阶段分别进行2倍下采样和上采样。前两轮的下采样和最后两轮的上采样同时涉及空间和时间维度,而最后一轮仅应用空间采样。这使得3D VAE在时间维度上实现4倍压缩,在空间维度上实现8×8压缩。总的来说,从像素到潜变量的压缩达到了4×8×8倍。
本文采用了时间因果卷积,它将所有填充放置在卷积空间的开头,如上图3(b)所示。这确保了未来的信息不会影响当前或过去的预测。由于处理大量帧的视频会引入过多的GPU内存使用,在时间维度上应用上下文并行来分配3D卷积的计算到多个设备上。如图3(b)所示,由于卷积的因果特性,每个排名仅将长度为k-1的片段发送到下一个排名,其中k表示时间内核的大小。这导致了相对较低的通信开销。
在实际实现过程中,首先在较低分辨率和较少帧数上训练3D VAE,以节省计算资源。观察到较大分辨率的编码可以自然地泛化,而扩展帧数的编码并不那么顺畅。因此,通过首先在短视频上进行训练,然后通过上下文并行在长视频上进行微调,采用了两阶段的训练过程。训练的两个阶段都使用了L2损失、LPIPS感知损失和来自3D判别器的GAN损失的加权组合。
专家Transformer
本文介绍了CogVideoX中的Transformer设计选择,包括处理文本-视频数据的分块、位置embedding和注意力策略,以实现高效处理。
分块处理:3D causal VAE将视频编码为形状为T × H × W × C的潜在向量,其中T表示帧数,H和W分别表示每帧的高度和宽度,C表示通道数。然后,视频潜变量在空间维度上进行分块,生成长度为的序列。请注意,为了使图像和视频能够联合训练,不在时间维度上进行分块。
3D-RoPE:旋转位置Embedding(RoPE)是一种相对位置编码,已被证明能够在大型语言模型中有效捕捉令牌之间的关系,尤其擅长处理长序列。为了适应视频数据,将原始RoPE扩展为3D-RoPE。视频张量中的每个潜变量可以用3D坐标(x, y, t)表示。分别在每个坐标维度上独立应用1D-RoPE,每个维度分别占用隐藏状态通道的3/8、3/8和2/8。然后将得到的编码在通道维度上连接,得到最终的3D-RoPE编码。
本文对RoPE的使用进行了经验性研究。下图4(a)显示了3D RoPE和正弦绝对位置编码的比较。可以观察到,使用3D RoPE的损失曲线比使用正弦编码的收敛速度显著更快。还比较了单独使用3D RoPE与结合3D RoPE和可学习的绝对位置嵌入的效果。下图4(b)表明,两种方法的损失曲线几乎相同。因此,为了简化,选择单独使用3D RoPE。
专家Transformer块:在输入阶段,将文本和视频的嵌入进行连接,以更好地对齐视觉和语义信息。然而,这两种模态的特征空间差异显著,它们的embeddings可能具有不同的数值尺度。为了在同一序列中更好地处理它们,使用了专家自适应Layernorm(Expert Adaptive Layernorm),以独立处理每种模态。如前面图2所示,遵循DiT的做法,使用扩散过程中的时间步长t作为调制模块的输入。然后,视觉专家自适应Layernorm(Vision Expert AdaLN)和文本专家自适应Layernorm(Text Expert AdaLN)将该调制机制分别应用于视觉隐藏状态和文本隐藏状态。这一策略促进了跨模态特征空间的对齐,同时尽量减少了额外的参数。
为了验证专家自适应Layernorm的采用效果,尝试了不同的专家整合方式:专家LayerNorm和MLP,及仅专家LayerNorm。实验发现,添加专家MLP并没有有效加速模型的收敛(参见上图4(c))。为了减少模型参数,选择仅使用专家自适应Layernorm。
3D全注意力:先前的研究通常采用分离的空间和时间注意力,以减少计算复杂性并便于从文本到图像模型的微调。然而,如下图5所示,这种分离的注意力方法需要大量隐式的视觉信息传递,显著增加了学习的复杂性,并使得维持大动作物体的一致性变得困难。考虑到长上下文训练在大型语言模型中的巨大成功以及FlashAttention的高效性,本文提出了一种3D文本-视频混合注意力机制。该机制不仅取得了更好的结果,还能够轻松适应各种并行加速方法。
训练CogVideoX
在训练过程中,将图像和视频混合处理,将每张图像视为单帧视频。此外,从分辨率的角度采用渐进式训练方法。在扩散设置中,采用了v-prediction和零信噪比(SNR)策略,并遵循LDM中使用的噪声调度。在扩散训练的时间步采样过程中,还采用了一种显式均匀时间步采样方法,有助于提高训练的稳定性。
Frame Pack
以往的视频训练方法通常涉及使用固定帧数对图像和视频进行联合训练。然而,这种方法通常会导致两个问题:首先,使用双向注意力时,这两种输入类型之间存在显著差距,图像只有一帧,而视频则有几十帧。观察到,以这种方式训练的模型往往会根据令牌数量分化为两种生成模式,且泛化效果不佳。其次,为了使用固定时长进行训练,不得不舍弃短视频并截断长视频,这限制了帧数不同的视频的充分利用。
为了解决这些问题,选择混合时长训练,即将不同长度的视频一起进行训练。然而,批次内数据形状的不一致使得训练变得困难。受Patch’n Pack的启发,将不同长度的视频放入同一批次中,以确保每个批次内的数据形状一致,这种方法称之为Frame Pack。该过程如下图6所示。
分辨率渐进训练
CogVideoX的训练流程分为三个阶段:低分辨率训练、高分辨率训练和高质量视频微调。与图像类似,互联网上的视频通常包括大量低分辨率的视频。渐进式训练可以有效利用各种分辨率的视频。此外,初期的低分辨率训练可以赋予模型粗粒度的建模能力,随后通过高分辨率训练增强其捕捉细节的能力。与直接进行高分辨率训练相比,分阶段训练还可以帮助减少整体训练时间。
位置编码的外推:在将低分辨率位置编码调整为高分辨率时,考虑了两种不同的方法:插值和外推。下图7展示了这两种方法的效果。插值更能有效保留全局信息,而外推则更好地保留了局部细节。鉴于RoPE是一种相对位置编码,选择了外推方法,以维持像素之间的相对位置。
高质量微调:由于经过筛选的预训练数据仍包含一定比例的脏数据,例如字幕、水印和低比特率视频,在最后阶段选择了占总数据集20%的高质量视频数据子集进行微调。此步骤有效去除了生成的字幕和水印,并略微提升了视觉质量。然而,也观察到模型的语义能力略有下降。
显式均匀采样
Ho等人(2020)定义了扩散的训练目标为:
其中,t 在 1 到 T 之间均匀分布。常见的做法是数据并行组中的每个节点在 1 到 T 之间均匀采样一个值,这在理论上等同于公式1。然而,实际上,这种随机采样得到的结果往往不够均匀,由于扩散损失的大小与时间步长有关,这可能导致损失出现显著波动。因此,提出使用显式均匀采样,将1到T的范围划分为n个区间,其中n是节点数量。每个节点在其对应的区间内均匀采样。这种方法确保了时间步长的更均匀分布。如前面图4(d)所示,使用显式均匀采样进行训练的损失曲线明显更加稳定。
此外,为了更精确地比较两种方法,单独比较了每个扩散时间步长的损失。结果发现,使用显式均匀采样后,各时间步长的损失下降速度更快,表明该方法能够加速损失的收敛。
数据
研究者们通过视频过滤器和重述模型构建了一系列相对高质量的视频剪辑及其文本描述。过滤后,剩下约3500万单次拍摄的剪辑,每个剪辑平均约6秒。
视频过滤:视频生成模型需要学习世界的动态信息,但未经筛选的视频数据具有高度的噪声分布,主要有两个原因:首先,视频是由人类创作的,人工编辑可能会扭曲真实的动态信息;其次,由于拍摄过程中出现的问题,如相机抖动和设备不合格,视频质量可能显著下降。
除了视频的固有质量外,还考虑了视频数据对模型训练的支持程度。缺乏动态信息或在动态方面缺乏连接性的视频被认为是不利的。因此,研究者们制定了一套负面标签,包括:
-
编辑:经过明显人工处理的视频,如重新编辑和特效,导致视觉完整性下降。
-
缺乏运动连接性:图像过渡中缺乏运动连接性的视频片段,通常见于人工拼接或从图像中编辑的视频。
-
低质量:拍摄不佳的视频,视觉不清晰或相机抖动过大。
-
讲座类型:主要关注一个人持续讲解、有效运动最少的视频,如教育内容、讲座和直播讨论。
-
文本主导:包含大量可见文本或主要集中于文本内容的视频。
-
噪声截图:从手机或计算机屏幕录制的噪声视频。
抽样了20,000个视频数据样本,并标记了每个样本中的负面标签。通过这些注释,训练了几个基于视频-llama的过滤器,以筛选低质量视频数据。
此外,计算了所有训练视频的光流分数和图像美学分数,并在训练过程中动态调整阈值范围,以确保生成视频的流畅性和美学质量。
视频描述:通常,大多数视频数据没有对应的描述性文本,因此需要将视频数据转换为文本描述,以提供文本到视频模型所需的训练数据。目前,已经有一些视频标题数据集,如Panda70M、COCO Caption和WebVid。然而,这些数据集中的标题通常非常简短,无法全面描述视频的内容。
为了生成高质量的视频标题数据,建立了一个密集视频标题数据生成pipeline,如下图8所示。其思路是从图像标题生成视频标题。首先,使用Panda70M视频标题模型为视频生成简短的标题。然后,利用在Stable Diffusion 3和CogView3中使用的图像重述模型CogVLM为视频中的每一帧创建密集的图像标题。随后,使用GPT-4总结所有图像标题,以生成最终的视频标题。为了加速从图像标题到视频标题的生成,使用GPT-4生成的摘要数据微调Llama2模型,从而实现大规模视频标题数据的生成。
上述pipeline生成的标题数据用于训练本报告中介绍的CogVideoX模型。为了进一步加速视频重述,还基于CogVLM2-Video1和Llama3微调了一个端到端的视频理解模型CogVLM2-Caption,使用从上述pipeline生成的密集标题数据。CogVLM2-Caption生成的视频标题数据用于训练下一代CogVideoX。附录D中展示了该端到端CogVLM2-Caption模型生成的视频标题示例。
附录中还展示了一些视频生成的示例,其中一个视频首先输入到CogVLM2-Caption以生成标题,然后这些标题被用作CogVideoX的输入,从而生成新的视频,有效地实现了视频到视频的生成。
实证评估
在这一部分,通过两种主要方法展示CogVideoX的性能:自动化指标评估和人工评估。对不同参数规模的CogVideoX模型进行训练。目前展示了2B和5B模型的结果,更大的模型仍在训练中。
自动化指标评估
基准测试:本文选择了公开可获取的顶级文本到视频模型作为基准,包括T2V-Turbo、AnimateDiff、VideoCrafter2、OpenSora、Show-1、Gen-2、Pika和LaVie-2。
评估指标
为了评估文本到视频生成,采用了来自VBench的几个指标:人类动作、场景、动态程度、多物体和外观风格。VBench是一套旨在自动评估生成视频质量的工具。本文选择了VBench中的某些指标,排除了其他与本文的评估需求不符的指标。例如,颜色指标旨在通过计算视频中物体对应特定颜色的出现概率来评估模型的质量。然而,这一指标可能会误导那些具有较大变异的视频生成模型,因此没有将其包含在评估中。
对于生成较长的视频,有些模型可能会生成帧间变化最小的视频以获得更高的分数,但这些视频缺乏丰富的内容。因此,评估视频动态性成为更重要的指标。为此,采用了两个视频评估工具:Devil的动态质量和ChronoMagic的GPT4o-MTScore,这两个工具更侧重于视频的动态特性。动态质量通过将各种质量指标与动态分数结合来定义,减少了视频动态性与视频质量之间负相关带来的偏差。例如,ChronoMagic引入了GPT4o-MTScore,一个旨在测量时光流逝视频(如描绘物理、生物和气象变化的视频)变迁幅度的指标。该指标使用GPT-4o来评分变化程度,提供了对视频动态性的细致评估。
结果:下表1提供了CogVideoX与其他模型的性能比较。CogVideoX在七个指标中的五个上取得了最佳性能,并且在剩余的两个指标中表现竞争力。这些结果表明,该模型不仅在视频生成质量上表现卓越,还在处理各种复杂动态场景时超越了以前的模型。此外,下图1展示了一个雷达图,直观地展示了CogVideoX的性能优势。
人工评估
除了自动评分机制,还通过人工评估对Kling和CogVideoX进行比较分析。使用了100个精心设计的提示,这些提示具有广泛的分布、明确的表述和良好的概念范围。对视频进行随机化以进行盲评。评估小组被要求根据从0到1的尺度对每个细节进行评分,总分在0到5的范围内评定,其中更高的分数反映出更好的视频质量。为了更好地补充自动评估,人工评估强调指令遵循能力:如果生成的视频未能遵循指令,总分不能超过2分。
下表2显示了CogVideoX在各个方面都优于Kling的人类偏好。
结论
本文介绍了CogVideoX,一种先进的文本到视频扩散模型。它利用了3D VAE和Expert Transformer架构,生成连贯的长时间视频,并具有显著的运动效果。通过实施全面的数据处理pipeline和视频重述方法,显著提高了生成视频的质量和语义对齐性。本文的渐进式训练技术,包括混合时长训练和分辨率渐进训练,进一步提升了模型的性能和稳定性。研究者们正在继续努力,专注于提升CogVideoX捕捉复杂动态的能力,并确保视频生成的更高质量。目前还在探索视频生成模型的扩展规律,旨在训练更大、更强大的模型,以生成更长、更高质量的视频,推动文本到视频生成领域的极限。
参考文献
[1] CogVideoX: Text-to-Video Diffusion Models with An Expert Transformer
更多精彩内容,请关注公众号:AI生成未来