Allegro:揭开商业级视频生成模型的黑箱

大模型向量数据库视频服务

点击下方 卡片 ,关注“ 慢慢学AIGC ”

picture.image

论文:https://arxiv.org/pdf/2410.15458

代码: https://github.com/rhymes-ai/Allegro
模型权重: https://huggingface.co/rhymes-ai/Allegro
作品集: https://rhymes.ai/allegro\_gallery

摘要

视频生成 领域已经取得了显著进展,开源社区贡献了大量研究论文和用于训练高质量模型的工具。然而,尽管有这些努力, 现有的信息和资源仍不足以实现商业级的性能 。在本报告中,我们揭开黑箱,介绍了 Allegro ,这是一种 在质量和时间一致性方面表现卓越的高级视频生成模型 。我们还强调了该领域当前的局限性,并提出了一种全面的方法,用于训练高性能、商业级视频生成模型,涵盖了 数据、模型架构、训练流程和评估等关键方面 。用户研究表明,Allegro 优于现有的开源模型和大多数商业模型,仅次于海螺和可灵。

1、引言

近年来,数字媒体中对视频内容的需求激增,推动了自动化视频生成技术的创新。随着这些技术的发展,视频制作过程变得更加便捷、高效且流畅。在这些进步中, 文本生成视频模型 的出现是一个重大突破。这些模型使用户能够通过描述性文本生成动态视觉内容,提供了一种高度灵活和可控的视频创作方法。通过将文本输入转化为视觉叙事,它们使视频制作更加大众化,为各行各业的内容创作者开辟了新的可能性。

随着扩散模型的出现,视觉内容生成领域取得了显著增长【Ho 等人,2020;Rombach 等人,2022;Saharia 等人,2022;Blattmann 等人,2023;Ho 等人,2022;Singer 等人,2022;Voleti 等人,2022;Ruan 等人,2023;Wang 等人,2024;He 等人,2024】。在图像生成领域,开源模型的表现已能与许多商业产品相媲美。与此同时,文本生成视频领域也涌现出许多商业系统,如Runway Gen-3【RunwayML,2024】,Luma Dream Machine【Luma Lab,2024】,OpenAI Sora【OpenAI,2024】,Kling【快手,2024】,Hailuo【MiniMax,2024】,以及Pika【Pika Labs,2024】。然而,与文本生成图像相比,开发商业级文本生成视频模型的许多关键方面仍不清晰。这些方面包括 高效建模视频数据、准确对齐视频与文本语义、引入更精确的控制以及开发高质量的文本-视频训练数据集

在本报告中,我们揭开了商业级视频生成模型的黑箱,并介绍了 Allegro,一款在质量和时间一致性方面表现卓越的高级视频生成模型 。我们深入探讨了提升模型输出效果的关键因素,详细介绍了训练商业级视频生成模型所采用的技术和策略。本报告作为开发高质量视频生成模型的全面指南,聚焦于使用扩散方法重构关键组件,包括:

  • 数据构造 我们提出了一种系统的数据整理流程,用于使用大规模图像和视频数据集训练商业级视频生成模型,提供了构建优化训练数据的详细见解。通过这一流程,我们 构建了包含 1.06 亿张图像和 4800 万个视频的数据集 ,并配有高度关联的文本描述。

  • 模型架构 基于扩散框架,我们对变分自编码器(VAE)和扩散Transformer(DiT)架构进行了修改 ,以更好地满足视频生成的特定需求。我们概述了优化计算基础设施的策略,确保训练和推理的高效性。

  • 评估 我们构建了多样化的文本生成视频基准,并在 六个维度上进行了用户研究和主观评估 ,以确保生成的视频符合美学标准并与人类偏好一致。

通过实现上述组件,Allegro 在主观评估中的表现已与其他商业系统相当。如图 1 所示,Allegro 能够根据多种描述性文本输入生成高质量的动态视频。

picture.image

我们的用户研究表明,Allegro在所有六个维度上均优于当前的开源模型,并在大多数方面显著优于商业模型。尤其是在视频文本相关性方面,Allegro 超越了所有商业模型,并 在总体质量上仅次于海螺和可灵

此外,我们提供了关于如何增强模型基础能力的进一步见解和建设性指导,包括模型扩展、提示精化器的适应以及视频分词器的设计。同时,我们正在扩展Allegro的基础文本生成视频模型,朝着两个关键方向努力:基于图像的视频生成(附带文本条件)以及更灵活的运动控制。这些进展不仅旨在为Allegro增加更多功能,还为更好地将模型能力与用户需求对齐并提高生产力提供了更深入的见解。我们 将 Allegro 以 Apache 2.0 许可证发布,免费供学术和商业用途

2、数据构造

数据构造是构建视频生成模型的主要任务,贯穿整个训练过程。现有的公开数据集,如WebVid【Bain 等人,2021】、Panda-70M【Chen 等人,2024b】、HD-VILA【Xue 等人,2022】、HD-VG【Wang 等人,2023】和OpenVid-1M【Nan 等人,2024】等,为数据来源和获取提供了坚实基础,涵盖了多样且丰富的视频数据。然而,面对海量数据的现状,数据处理效率、数据冗余以及确保高质量输入等方面的挑战也随之而来。

当前数据整理实践的一个关键问题是缺乏能够高效处理并转化这些大规模数据集的流程。处理原始数据所需的时间和计算资源往往高昂,导致开发周期中的瓶颈。此外,若缺乏精心整理的数据集,包含噪声、冗余或无关数据的风险增加,这会降低模型的性能。

除了提高处理效率,确保整理的数据集不仅在数量上达到大规模,还具备多样性和高质量也是关键目标。视频生成模型的成功依赖于数据的数量及其在多样性、一致性和提示对齐度上的丰富性。通过解决这些问题,目标是构建一个稳健的数据流程,在数据量与质量之间找到最佳平衡,从而提升模型生成真实且连贯视频的能力。

在本节中,我们介绍了一种系统且可扩展的数据整理流程,旨在满足大规模视频数据集的需求。该流程旨在简化原始视频数据的处理,并确保用于训练的样本具备高质量和多样性,提供了改进数据集整体质量和效率的见解。我们还对数据在不同维度上的分布进行了详细分析,期望为构建更优质的训练数据集提供一些启示。

2.1 数据处理

数据处理流程在确保模型训练过程各阶段所用数据的质量和多样性方面发挥了关键作用。该流程包含三个重要部分:数据筛选、注释和分层。

2.1.1 数据筛选

数据筛选流程如图2所示。

picture.image

在进入细粒度视频描述(将在下一节介绍)之前,我们依次应用七个筛选步骤:

  1. 时长和分辨率筛选;
  2. 场景分割;
  3. 低层次度量筛选;
  4. 美学筛选;
  5. 内容无关的伪影筛选;
  6. 粗粒度描述;
  7. CLIP 相似性筛选。

该流程可适用于图像和视频数据,仅需对不同数据格式进行微小调整。以下将介绍每个筛选步骤的细节。由于不同训练阶段的数据质量需求不同,我们将重点描述各数据筛选步骤的具体方法。某些维度的具体阈值将在第 2.1.3 节详细说明。

时长、帧率和分辨率筛选 我们去除分辨率低于 360p 的原始图像和视频,同时去除时长少于 2 秒或帧率低于 23 FPS 的原始视频。此步骤确保我们的数据集中包含的图像/视频片段具有足够的长度和视觉清晰度,以便于有效的模型训练。

场景分割 我们使用 PySceneDetect【PySceneDetect Contributors,2024】检测场景,并将原始视频划分为单一场景的视频片段。为避免场景检测中的误检,我们移除了每个视频片段的前后 10 帧。仅时长在 2 到 16 秒之间的片段会进入下一步骤。

低层次度量筛选 在此步骤中,我们关注数据的视觉质量。从亮度、清晰度、语义一致性和运动幅度四个维度对每个视频片段进行评估。我们计算图像的平均灰度值片段帧的平均灰度值来筛除过暗或过亮的图像和视频。使用 DOVER评分【Wu 等人,2023】来评估图像和视频片段的清晰度,使用 LPIPS【Zhang 等人,2018】和 UniMatch【Xu 等人,2023】分别评估视频片段的语义一致性和运动幅度。综合考虑这两个指标,保留语义一致性和运动幅度合理的视频片段。

美学筛选 我们使用 LAION 美学预测器【Schuhmann 等人,2022】来评估图像和每个视频片段中间帧的美学得分,选择视觉吸引力更高的数据。

内容无关伪影筛选 原始视频可能包含与视频内容无关的伪影,如黑边、文本、水印等,可能对视频生成模型产生负面影响。我们使用检测工具(例如文本检测工具 CRAFT【Baek 等人,2019】和水印检测工具【Watermark-Detection Contributors,2022】)检测这些元素,并计算其在图像或视频帧中的面积比例。当比例低于设定的阈值时,裁剪原始图像或视频;否则,数据将被丢弃。

粗粒度描述 对剩余数据进行初步注释,生成粗粒度的描述,为图像和视频提供全局语义信息。这些粗粒度描述也作为后续 CLIP 相似性筛选和细粒度描述的输入。在此步骤中,我们使用 Tag2Text【Huang 等人,2023】对图像和视频的中间帧进行描述,这显著提高了数据处理中获取粗粒度描述的效率。

CLIP 相似性筛选 通过计算描述与图像或视频中间帧的 CLIP【Radford 等人,2021】嵌入向量之间的余弦相似度来评估视觉数据与其描述的关联性。筛除 CLIP 余弦相似度较低的样本,以确保后续细粒度描述的输入更为准确,并为最终训练数据提供高质量的注释。

为便于数据的使用,所有视频片段均统一重新编码为 H.264 格式,帧率固定为 30 FPS。经过上述数据筛选流程后的最终视频片段时长为 2 至 16 秒,采用单镜头拍摄,具备高视觉质量、合理的运动幅度以及高度相关的粗粒度描述。

2.1.2 数据标注

细粒度描述 在数据筛选之后,我们使用 Aria【Li 等人,2024b】(模型细节详见《ARIA : 开源多模态原生 MoE 模型》)生成图像和视频的细粒度描述,该模型经过视频描述任务的微调。粗粒度描述被纳入视频描述模型的指令中,以提高标注的准确性。细粒度描述覆盖了空间和时间信息,包括 主体的属性、 主体间互动、背景描述、环境、风格和氛围 ,包括摄像机角度和运动,以及上述内容随时间的变化过程。为了增强模型对摄像机控制的能力,部分数据包含以“Camera [MOTION_PATTERN]”开头的视频描述句子,明确强调摄像机的运动。

基于粗粒度和细粒度的描述阶段获得的数据标注,最终生成了图像/视频-文本数据对。对于图像数据,包含粗粒度和细粒度的描述;对于视频数据,则提供了整个视频和中间帧的粗粒度与细粒度描述。更多数据描述示例见附录A。

2.1.3 数据分层

标注后的数据被组织成不同的数据集,以满足各阶段训练的需求。具体而言,数据分层支持 三大主要的渐进训练阶段:文本到图像预训练、文本到视频预训练和文本到视频微调 。表 1 展示了不同训练阶段各维度的具体阈值。

picture.image

文本到图像预训练数据 该数据集仅包含图像-文本对,用于训练模型从文本描述生成图像。在这一阶段,模型学习如何将文本输入映射到视觉特征(如物体形状、纹理、颜色)。这是视频生成任务之前的基础步骤。最终从 4.12 亿张原始图像中筛选出 1.07 亿张图像。

文本到视频预训练数据 该数据集包含视频-文本对,使模型学习从文本提示生成连贯的图像序列(即视频)。模型在文本到图像预训练的基础上学习如何处理时间一致性。此阶段根据不同的视频分辨率(360p 和 720p)分为两个子阶段。我们保留了 4800 万和 1800 万(从 5 亿个视频片段中筛选)的视频片段用于这两个子阶段。

文本到视频微调数据 该数据用于最终的微调阶段,使模型在视频生成任务上达到优化效果,确保生成的高质量视频在时间上一致且与输入文本高度匹配。微调后的模型更能处理复杂场景、复杂运动和细致的纹理。最终仅选择了约200万个视频片段用于此阶段。

2.2 数据分析

更多的数据统计、代表案例和数据见解见附录 A。

3、视频变分自编码器(Video VAE)

先前的研究【Rombach 等人,2022;Podell 等人,2024】已表明,通过采用变分自编码器(VAE)【Kingma,2013】进行潜在空间建模,可以显著提升扩散模型的效率和性能。Sora团队【OpenAI,2024】还使用了视频时空压缩网络,并在压缩的潜在空间中训练 Sora 生成视频。

一种实用的方法是首先在空间和时间维度上压缩 RGB 视频,然后在潜在空间中对其进行建模。由扩散 Transformer (DiT)预测的潜在变量将通过 VAE 解码器解码生成 RGB 视频。为实现这一过程,我们构建了一个视频变分自编码器(VideoVAE),该编码器将 RGB 视频编码为压缩的时空潜在空间,以提升扩散模型的效率和性能。

3.1 模型架构

VAE 的有效性主要依赖于其执行稳健的时空建模的能力。为了充分利用现有图像 VAE 的空间压缩能力,我们的 VideoVAE 设计在图像 VAE 的基础上增加了扩展的时空建模层。具体来说,我们首先采用 Playground v2.5【Li等人,2024a】中的图像 VAE 的架构和权重来建模空间信息,然后加入时间建模层以捕捉时间信息,并对其进行时间压缩以降低维度。

图 3 展示了我们的 VideoVAE 架构。

picture.image

在图像 VAE 的编码器和解码器的开始和结束部分,我们分别添加了一个一维时间卷积层(1D temporal CNN layer)。此外,我们设计了一个包含四个三维时间卷积层的时间块(temporal block),插入到 VAE 中的每个 ResNet 块之后。在时间块中,通过步长为 2 的步幅卷积实现时间下采样,而上采样则通过帧重复再跟随去卷积操作来完成。加入这些时间层后,我们的 VideoVAE 参数总数达到 174.96 M。

在初步实验中,时间块中的时间卷积层在空间维度上的内核大小为 1(即 1D temporal CNN layer)。然而,我们发现空间内核大小为 3 可以加速收敛并取得更好的重建性能。因此,我们在所有上采样和下采样时间块中采用了 3D 卷积层。

VideoVAE 的重建上限高度依赖于空间压缩步长、时间压缩步长和潜在空间的维度数量。我们继续使用图像 VAE 中的潜在通道数 Cl = 4,且未进行扩展,并在时间、高度和宽度维度上分别设定压缩步长 ST×SH×SW = 4×8×8。以视频帧 T × 3 × H × W 作为 VideoVAE 编码器的输入,我们可以获得形状为T′×Cl×H′×W′ 的潜在视频表示,即 T/ST × Cl × H/SH × W/SW。

3.2 训练策略

VideoVAE 在压缩和解压缩后重建视频的质量与训练数据的质量密切相关。因此,我们优先使用分辨率较高的视频和图像进行训练。具体来说,我们仅使用符合以下标准的图像和视频进行训练: 短边超过 720 像素的图像和视频才会被用于训练。 最终,我们从过滤后的数据集中选择了 54,700 个视频和 373 万张图像来训练 VideoVAE。

VideoVAE 在视频重建中的有效性与图像细节水平密切相关。由于调整图像大小可能会减少细节,我们的空间数据增强仅包含随机裁剪。对于视频的时间数据增强,我们从集合[1, 3, 5, 10]中随机选择一个采样间隔,以均匀地对视频片段进行帧采样。实验表明,使用较大的采样间隔显著加快了时间层的收敛速度。

在模型训练过程中,我们仅使用 L1 损失和 LPIPS 损失【Zhang等人,2018】,损失权重分别为 1.0 和 0.1。L1 损失即平均绝对误差(MAE),用于测量预测值和实际值之间的平均绝对差异。LPIPS 损失【Zhang等人,2018】是一种感知损失函数,基于深度神经网络的学习特征来评估图像相似度,旨在捕捉人类视觉感知,用于图像重建和风格迁移等任务。

我们对 VideoVAE 进行了两阶段训练。在 第一阶段, 我们通过图像和视频的结合对 VideoVAE 进行联合训练 ,批量数据包括一个16帧的视频和四张空间分辨率为 256×256 的图像。该阶段在 32 块 Nvidia A100 GPU 上进行,共 65,000 次迭代,每个 GPU 的批量大小为 1。图像数据仅通过原始图像 VAE 的空间层,而视频数据则同时经过空间和时间层。我们预期这种混合训练策略不仅能够有效增强模型的时空建模能力,还能通过利用图像保持其优异的空间建模能力。

第二阶段,我们冻结图像 VAE 的空间层,并使用 24 帧、分辨率为 256×256 的视频来微调时间层 ,以增强时间建模能力。在此阶段,我们在 32 块 Nvidia A100 GPU 上微调时间层,进行了 25,000 次迭代,每个 GPU 的批量大小为 1。

3.3 推理策略

直接对高分辨率、长时长视频进行编码和解码在内存上不可行。为处理推理阶段的此类视频,我们将输入视频和潜在张量分割为时空块。每个块分别编码和解码后,重组形成最终输出。在实践中,我们在编码器中采用了 24×p×p(时间、高度、宽度)的块大小,而在解码器中则采用 6×p/8×p/8 的块大小。拼接和重组输出时,我们选择像素块之间的重叠步幅 vT×vH×vW 和潜在块之间的 vT/4×vH/8×vW/8。对于 320p 视频生成,我们取 p=256,vT×vH×vW=8×64×144;而对于 720p 视频生成,我们取 p=320,vT×vH×vW=8×80×120。与图像 VAE 的方式相同,我们在空间和时间维度上使用线性组合进行融合。在图像编码和解码过程中,我们仅使用 VideoVAE 中的空间层,且与训练过程一致。

4、视频扩散 Transformer

视频扩散 Transformer (VideoDiT) 通过结合扩散模型与 Transformer 架构的优势,实现了视频生成的突破【Ho等人,2022;Ma等人,2024;Dinesh Reddy等人,2022;Yang等人,2024;Lu等人,2023;Chen等人,2024a】。VideoDiT 在建模空间和时间依赖性方面表现出色,确保视频帧之间的更高一致性。这种方法生成高质量、真实感强的视频,同时在更大数据集上具有效率,超越了传统方法。在多个基准测试中,DiT 在视频生成任务中表现出卓越的性能【Huang等人,2024;Liu等人,2024a;Sun等人,2024;Liu等人,2024b】。

近期,开源项目如 Open-Sora【Zheng等人,2024】和 Open-Sora-Plan【北京大学元实验室及途展 AI 等,2024】在视频生成领域取得了显著进展。其中,Open-Sora-Plan 因其鲁棒性被广泛采用。 我们的工作基于在 Open-Sora-Plan v1.2.0 中引入的 VideoDiT 架构,旨在揭开训练商业级视频生成模型的“黑箱”。
我们引入以下关键修改以提升性能:

  • 首先,我们将原始的 mT5 文本编码器 [Xue, 2020] 替换为 T5 [Raffel et al., 2020],以增强文本到视频的对齐能力,并提升生成质量和连贯性。

  • 其次,我们用自定义训练的 VideoVAE 替代原有的因果 VideoVAE,解决了时间一致性和帧质量的问题。

  • 最后,我们在一个大规模的精心策划的数据集上,采用多阶段训练策略训练修改后的框架,成功实现了商业级视频生成模型。

4.1 模型架构

如图 4 所示,典型的 VideoDiT 框架包含三个关键模块,这些模块协同生成从文本描述到视频的转换:

  1. 文本编码器 :将自然语言转换为文本嵌入,用于指导视频生成;
  2. VideoVAE :将视频编码到潜在空间中,以实现高效的扩散建模;
  3. 视频 Transformer 网络 :处理视觉标记和文本嵌入,预测扩散生成所需的噪声。

picture.image

图 4:我们的 VideoDiT 架构。T5 文本编码器将自然语言转换为文本嵌入。视觉标记由我们提出的 VideoVAE 编码器进行编码。视频 Transformer 网络由多个 DiT 块组成,根据视觉标记、文本嵌入、扩散时间步长和 3D RoPE 预测噪声。

文本编码器

在视频扩散模型中,文本编码器是必不可少的,它将自然语言翻译为有意义的嵌入,用于指导视频生成。

早期模型(如 Stable Diffusion [Rombach et al., 2022; Podell et al., 2024])采用 CLIP 文本编码器 [Radford et al., 2021],有效地将文本与视觉特征对齐。然而,随着任务复杂性的增加,T5 文本编码器凭借更强的语言理解能力和生成更丰富嵌入的能力,逐渐受到欢迎,从而提升了视频质量和连贯性。

在 Open-Sora-Plan v1.2.0 中,mT5 文本编码器提供了更好的多语言兼容性,但由于训练数据中以英文标题为主,模型在文本语义与视觉信息对齐效率方面受到限制。

为了解决这些问题,我们基于先前的视觉生成研究 [Chen et al., 2024a; Saharia et al., 2022; DeepFloyd Lab at StabilityAI, 2024],采用 T5 作为文本编码器。第 5.2 节的实验表明,这一选择显著增强了模型的语义连贯性,从而改善了文本到视频的建模效果。通过利用 T5,我们实现了文本与视觉特征的更有效集成,最终提升了生成视频的质量和相关性。

VideoVAE

VideoVAE 模块在压缩高维视频数据方面至关重要,通常用于视频扩散模型以提高效率。

在潜在扩散模型(Latent Diffusion Models, LDM)中首次提出将 VAE 引入扩散模型的想法 [Rombach et al., 2022],使得文本到图像生成任务的有效训练成为可能。这一整合在后续的工作(如 Stable Diffusion [Esser et al., 2024; Podell et al., 2024])中得到了扩展。

鉴于视频数据的计算需求更大、信息密度更高,我们在 VideoDiT 模块之前使用 VAE 压缩视频,从而显著提升了 训练效率和收敛速度。如第 3 节所述,我们开发了一种 VideoVAE,性能优于现有的开源替代方案,提供了更高的视觉质量和更平滑的动作表现。我们的高级 VideoVAE 能够有效编码视频,实现了 4 × 8 × 8 的高压缩率,同时保留了运动动态和静态细节。

视频 Transformer

VideoDiT 的核心是由多个扩散 Transformer 块(DiT 块 [Peebles 和 Xie, 2023;Chen 等, 2023])构建的视频 Transformer。每个 DiT 块包含以下模块:

  1. 带有 3D RoPE 的自注意力模块,用于建模视频标记的空间和时间维度;

  2. 交叉注意力模块,用于注入文本条件以指导生成过程;

  3. 前馈层;

  4. 一组 AdaLN-single 模块 [Perez 等, 2018],用于结合扩散时间步的信息。

自注意力模块对于生成视频的质量尤为重要。早期的工作通常结合 2D 空间注意力和 1D 时间注意力来近似全 3D 注意力,但这种方法往往导致视频连续性较差,动态性较弱。最新研究表明,3D 注意力显著提升了视频生成质量 [PKU-Yuan Lab 和 Tuzhan AI 等, 2024;Polyak 等, 2024]。采用这一策略后,我们生成的视频在一致性和动态运动方面表现更佳。 更多模型规格的细节可参见下表。

picture.image

4.2 多阶段训练策略

我们的模型训练过程分为三个阶段:

  1. 文本到图像预训练

阶段:建立 文本与图像之间的映射 关系; 2. 文本到视频预训练

阶段:在此基础上学习

对象间的运动

关系; 3. 文本到视频微调

阶段:聚焦于

提升生成视频的整体视觉质量

更多细节列于表 2。

picture.image

表 2:不同阶段的训练细节及资源需求。

文本到图像预训练

文本到图像阶段旨在建立文本描述与视觉元素之间的关联。为了提高训练效率,我们从 Open-Sora-Plan v1.2.0 的预训练文本到图像模型开始,并将目标图像分辨率调整为 368 × 640。在该阶段,我们将文本编码器替换为 T5(最大标记长度为 512),并将 VAE 替换为我们自定义训练的 VideoVAE(详见第 4.1 节)。为更好地对齐后续的文本到视频训练,我们将静态视频帧作为图像混合训练。 本阶段使用 128 张 Nvidia H100 GPU,批量大小为 4,096,经过 170K 步训练,处理了总计 7 亿张图像

文本到视频预训练

我们采用三阶段渐进策略预训练文本到视频模型。这一预训练基于先前的文本到图像模型扩展,用于从成对的文本-视频数据中学习动态信息。

  • 第一阶段:以 368 × 640 分辨率训练 40 帧视频 以降低计算成本,使用 256 张 Nvidia H100 GPU,批量大小为 1,024,经过 85K 步训练,处理了 8,700 万个视频 ,为模型提供基础的动态生成能力。

  • 第二阶段:将 分辨率提升至 720 × 1280 ,同时保持视频长度。此阶段从前一阶段 继续训练,使用 256 张 Nvidia H100 GPU,批量大小为 512,经过 41K 步训练,处理了 2,100 万个视频 ,显著提升了生成高质量视频的能力。然而,由于训练数据中的详细文本描述与较短的视频时长不匹配,可能导致某些失真和运动扭曲。

  • 第三阶段:将 视频长度增加至 88 帧,同时保持 720 × 1280 分辨率 。 我们 使用 256 张 Nvidia H100 GPU,批量大小为 256,训练 31K 步,总共处理 800 万个视频 。三个子阶段中的 所有视频均以 15 FPS 采样,使模型能够生成 6 秒长、分辨率为 720 × 1280 的视频

文本到视频微调

为了进一步提升视频生成质量,我们选择了一批高质量的动态视频,并混合了各种类型的视频字幕进行进一步微调。在此阶段,我们从预训练模型开始,使用 256 张 Nvidia H100 GPU,批量大小为 256,总共训练 10K 步,处理了 260 万个视频。通过微调,模型能够处理长度和格式多样的文本输入,并生成高质量的动态视频。

4.3 基础设施优化

我们使用多达 256 张 Nvidia H100 GPU 来训练 VideoDiT 模型,并应用了多种优化技术。

解耦 VAE 推理

我们观察到 VideoVAE 处理和文本编码占据了超过 30% 的训练计算量。由于推理过程需要较少的显存和计算,我们将 VideoVAE 和文本编码器迁移到中端推理 GPU 上,从而将 H100 的高性能和大显存留给更长上下文和更大的批量训练。通过使用 torch.compile 将 PyTorch 代码即时编译为优化内核,并对推理进行批量处理,我们将训练过程中 VideoVAE 和文本编码的推理时间减少了 62%。为避免冗余计算,我们对多轮训练的高质量数据推理结果进行离线缓存。

高效注意力机制

我们在 VideoDiT 中采用了完全双向注意力。对于长序列,注意力机制在训练中占 63.3% 的计算量,在推理中占 84.5%。在自注意力模块中,我们使用 FlashAttention2 [Dao, 2023];在交叉注意力模块中,我们采用支持掩码的 XFormers 内存高效注意力 [Lefaudeux et al., 2022]。从 XFormers 切换到 FlashAttention2 后,自注意力模块的训练速度提升了 22%。

上下文并行

我们的模型支持分辨率为 720 × 1280、长度为 88 帧的视频,这在训练中需要约 79.2K 的上下文长度。为支持更长的上下文,我们在训练中引入了上下文并行 (Context Parallel, CP)。与单个设备处理整个输入不同,输入上下文被划分为更小的块,每个块由不同的设备并行处理。在 softmax-qk-attention 的前向和反向传播过程中,每个设备与其他设备进行必要的通信,确保所有设备在计算时拥有完整的激活或梯度。Ring-Attention [Liu et al., 2023] 和 Deepspeed-Ulysses [Jacobs et al., 2023] 提供了高效的实现。此外,我们在推理时也引入了上下文并行。

5、模型评估

我们分别在第 5.1 节和第 5.2 节评估了所提出的 Allegro 模型中的 VideoVAE 和 VideoDiT。

5.1 视频变分自编码器 (VideoVAE)

我们的 VideoVAE 与现有的开源 3D VAE(例如 Open-Sora v1.2 [Zheng et al., 2024] 和 Open-Sora-Plan v1.2.0 [PKU-Yuan Lab 和 Tuzhan AI 等, 2024])在潜在通道数 ( Cl = 4 ) 以及时间、高度和宽度维度的压缩步长 ( ST × SH × SW = 4 × 8 × 8 ) 上保持一致。

我们在一个验证集上评估了所有可用的开源 VideoVAE 性能。该验证集由 100 个视频组成,每个视频包含 120 帧,分辨率为 720p。评估指标包括 SSIM(结构相似性指数) [Wang et al., 2004]、 PSNR(峰值信噪比) [Wang et al., 2004] 和 主观评估标准

  • PSNR 是一种基于均方误差(MSE)的图像质量评估指标 ,通过比较原始图像与处理后图像之间的差异来评估图像质量。
  • SSIM 是一种基于图像结构相似性的质量评估指标 ,不仅考虑像素级差异,还考虑亮度、对比度和结构信息。

通过这些指标,我们能够全面衡量 VideoVAE 的压缩性能和生成质量。

关于 主观评估标准 ,我们重点关注 视频中人类感知不可接受的闪烁现象和语义失真 。我们观察到, VideoVAE 对切片的时间维度高度敏感 。当切片时长与训练时长匹配时,视频重建效果最佳;偏离训练时长则会导致重建视频中出现不可预测的闪烁现象。尽管我们尝试对不同长度的视频进行训练,但这并未显著增强 VideoVAE 对不同时长视频的建模能力。在推理过程中,将视频片段长度固定为训练时长能够实现最佳性能。我们的分析表明,当视频片段长度过短时,模型会变得过于敏感,导致性能不佳。

picture.image

表 3:当前开源 VideoVAE 模型之间的 PSNR 和 SSIM 比较

如表 3 所示,我们的 VideoVAE 在 PSNR [Wang et al., 2004] 和 SSIM [Wang et al., 2004] 指标上均优于其他开源模型,分别达到了 31.25 和 0.8553。在主观评估中,我们的模型重建的视频表现出较少的闪烁现象,同时避免了过度锐化或过度平滑的问题。

picture.image

图 5:验证集中从 VideoVAE 重建视频中采样帧的放大可视化结果

图 5 的第一列显示了原始帧,第二列显示了原始帧的放大视图。第三、第四和第五列分别展示了使用 Open-Sora [Zheng et al., 2024]、Open-Sora-Plan [PKU-Yuan Lab 和 Tuzhan AI 等, 2024] 和我们提出的 VideoVAE 生成的放大视图。

在第一行中,草坪的重建显示我们的 VideoVAE 相较其他方法,既避免了过度锐化,也避免了模糊化问题。在第三行中,我们的模型有效保留了头盔的形状和细节;而在第四行中,我们的模型比其他方法更好地保留了摩天大楼灯光的细节。

5.2 视频扩散 Transformer

本节评估我们提出的 Allegro 模型的性能。由于模型输出分辨率为 720p、每秒 15 帧(FPS)、总共 88 帧的视频,我们采用视频帧插值模型 [Zhang et al., 2023] 将 FPS 增强至 30,以提升视觉质量。

定量评估

我们使用 VBench [Huang et al., 2024] 进行定量评估,并运行模型生成 VBench 提供的 946 条文本提示对应的视频。为减少随机性,按照 VBench 的指南,每条提示生成五个视频。对于少于 9 个单词的提示,我们使用大语言模型(LLM)进行优化,以增强鲁棒性。总计生成了 4,730 个视频用于评估。考虑到 VBench 需要大量视频,我们直接使用其排行榜中其他模型的结果作为对比。

picture.image

表 4:Allegro 与其他视频生成模型在 VBench 上的比较,结果以百分比形式呈现,数值越高表示性能越好。每个模型的版本和日期详见正文。

如表 4 所示,我们的模型与 Open-Sora v1.2(8 秒)、Open-Sora-Plan v1.1.0、CogVideoX-2B、Pika 1.0(2024 年 6 月)、Gen-3(2024 年 7 月)、Hailuo(MiniMax-Video-01)和 Kling(2024 年 7 月,高性能模式)进行了比较。结果表明,我们的方法优于其他开源方法,并在商业模型中仅次于 Gen-3、Kling 和 Hailuo。有关 VBench 各维度的详细评估,请参见附录 C。

定性评估

评估视频生成结果是一个高度主观的任务,传统的定量指标往往与人类用户的主观体验存在显著偏差。因此,我们进一步进行用户研究,以评估模型的主观体验。

为了确保评估的准确性,我们收集了 46 条多样化的文本输入。这些文本来自以下不同来源:

  1. 开源模型的文本提示;

  2. 商业模型的文本提示;

  3. 视频字幕生成模型生成的字幕;

  4. 由大语言模型(LLMs)为视频生成构造的文本;

  5. 实际用户输入的文本。

文本描述的场景涵盖广泛,包括人物、动物、美食、车辆、风景、街景、科幻以及多对象场景。文本长度从 5 个单词到 96 个单词不等。

我们将模型与以下开源和商业模型进行比较:开源模型包括 Open-Sora-Plan v1.2.0、Open-Sora v1.2 和 CogVideoX-2B;商业模型包括 PixVerse v2(2024 年 8 月)、Pika 1.0(2024 年 8 月)、DreamMachine v1.6(2024 年 8 月)、Vidu(2024 年 9 月)、Gen-3(2024 年 9 月)、Hailuo(2024 年 9 月)和 Kling v1.5(2024 年 9 月)。为简化命名,在后续章节中将省略日期和版本号。

为减少歧义并获得相对准确的标注结果,我们设计了六个评价维度供标注者使用:

  1. 视频与文本的相关性;

  2. 外观失真程度;

  3. 外观美感;

  4. 动作自然性;

  5. 动作幅度;

  6. 整体质量。

评估采用 A-B 测试的格式,受试者需判断 A 更好、B 更好,或 A 和 B 无法区分。在每次测试中,我们随机呈现我们的方法与其他方法的结果,并附上相应的文本提示, 并要求标注者对视频对进行评分。每对视频由两位标注者评分,总计收集了 5,448 条评分。

picture.image

表 5:基于我们基准的用户研究,使用了 46 条文本提示。性能从六个维度进行评估:视频-文本相关性、外观失真、外观美感、运动自然性、运动幅度和整体质量。每个模型的版本和日期详见正文。表现最优的维度以粗体标出。

如表 5 所示,我们的模型在所有六个维度上都超越了现有的开源模型。与商业模型相比,我们的模型在大多数方面也展现了显著优势。值得注意的是,在 视频-文本相关性 维度上,我们的模型优于所有商业模型。而在 整体质量 维度上,我们的模型优于大多数商业模型,仅次于 Hailuo 和 Kling。然而,结果也表明,与表现最佳的商业模型相比,我们的模型在处理大规模运动方面仍有改进空间。通常可以通过增加训练数据中加速运动的数量或进一步筛选用于训练的视频速度来解决。此外,增加模型的参数规模也可能有助于提升其对大规模运动的建模能力。

picture.image

图 6:Allegro 与当前最先进方法在用户研究中的定性比较

我们在图 6 中展示了我们的方法与其他方法的视觉效果结果。从中可以看出, 我们的模型在 视频-文本相关性、视频外观质量 和 视频运动自然性 方面均优于其他模型 。更多比较结果可参见附录 D。

文本编码器

如第 4.1 节所述,我们将使用 T5 文本编码器微调的文本到图像模型与 Open-Sora-Plan 提供的使用 mT5 文本编码器的原始文本到图像模型进行了比较。如图 7 所示,使用 Open-Sora-Plan 生成的图像缺乏视觉细节,与给定的文本输入相关性较低。

picture.image

图 7:Allegro 模型与 Open-Sora-Plan 模型在文本到图像生成任务中的生成图像定性比较

一些人可能猜测性能差异是由于数据使用方式的不同。为了解决这一问题,我们进一步在相同数据集上微调了 Open-Sora-Plan 的文本到视频模型。如图 8 第二行所示,即使在高质量数据上进行了广泛的微调,使用 mT5 文本编码器且训练数据完全为英语的情况下,语义建模问题仍未得到解决。从图 7 和图 8 第三行可以观察到,将文本编码器替换为 T5 并按照第 4.2 节中描述的训练方法进行训练,可以显著改善文本到图像和文本到视频任务的效果。

picture.image

图 8:Allegro 模型与 Open-Sora-Plan 模型在文本到视频生成任务中生成帧的定性比较

结果还表明,直接微调 Open-Sora-Plan 的文本到视频模型难以获得高质量的视频模型。这主要是由于在初始的文本到图像预训练阶段,文本与视觉元素之间的对齐不够准确。 由于文本到视频的训练过程主要聚焦于运动建模,这一问题难以通过仅对文本到视频模型进行微调来解决

多阶段训练

如第 4.2 节所述,我们采用由粗到细的多阶段训练策略来训练模型,具体如图 9 所示。

picture.image

图 9:Allegro 模型在不同训练阶段生成视频帧的定性比较

  • 在初始的 40 × 368 × 640 阶段,模型从预训练的文本到图像模型初始化,并开始学习视频帧之间的连续性,使生成视频中的运动规模相对较小。受限于 VideoVAE 在低分辨率下的建模能力,生成视频的整体质量较低,细节运动中存在明显的抖动。
  • 在随后的 40 × 720 × 1280 阶段,分辨率的提高显著提升了生成视频的视觉质量。模型开始更好地捕捉帧间的运动,但由于帧数的限制,视频中仍然存在一些失真和不自然的运动。
  • 进入 88 × 720 × 1280 阶段后,帧数的增加极大地提升了模型对大规模运动的表现能力。
  • 最后,通过在相同视频分辨率下对少量高质量数据进行微调,模型的整体视觉美感、运动动态性以及对不同类型文本输入的响应能力得到了进一步提升。

可视化结果

我们在图 10 中展示了我们提出的 Allegro 模型的可视化结果。结果表明,该模型能够处理不同长度的文本输入,同时生成高质量、动态的视频。更多可视化结果请参见附录 E。

picture.image

图 10:Allegro 模型根据不同长度文本输入生成的帧

6、 更多思考

VideoVAE

我们的 VideoVAE 基于先前图像 VAE 的架构构建,集成了大量的时间卷积层,并在空间和时间维度上应用了重叠和混合策略,导致极高的计算成本。
在未来开发中,设计 VideoVAE 的时空建模结构时,如何在重建质量和计算效率之间取得平衡将变得尤为重要。此外,为了提升潜在特征的提取效果,我们应避免空间切片操作,并在视频编码中增加时空单元的大小。
在相同的模型参数限制和压缩步长下,增加潜在通道的大小是一种简单且有效的提升重建视频细节的方式。然而,对于依赖 RGB 图像的 VideoVAE 模型来说,重建线状语义仍然是一个挑战。我们认为,将频域特征纳入 VideoVAE 的输入,可能在未来增强其重建线状语义的能力。

VideoDiT

尽管我们已经使用了一个足够大的数据集来训练当前模型,但随着训练的进行,某些领域的改进变得有限。例如:

  • 模型在细粒度指令遵循能力方面表现不足;
  • 在更复杂的主体场景中,交互显得不够自然;
  • 在视觉纹理上的进一步增强有限。

借鉴 LLM 和视觉 Transformer 模型的经验,增加模型参数规模是解决这些问题的一种直接且有前景的方法。例如,增加模型的宽度可以提升捕捉更复杂视觉模式的能力;增加模型的深度则能帮助模型学习分层表示。这两种方法对理解复杂主体交互和生成更精细的纹理都至关重要。
尽管我们尚未进行全面的大规模实验以探索模型的扩展极限,但我们进行了小规模的消融研究。这些实验在可控范围内探讨了增加模型宽度和深度的效果,结果表明,进一步探索模型扩展可能带来显著改进。
因此,我们的研究为开源社区中对模型扩展感兴趣的研究人员和工程师提供了一些实践指导。他们可以考虑扩展架构的宽度和深度,这些方法已在 LLM 和视觉 Transformer 领域被证明有效。这些见解可作为深入、资源密集型研究的起点,以期在模型性能上实现更多突破。

提示语优化器

通用提示语优化器用于解释、调整或扩展给定的提示语,以更好地匹配模型的能力;换句话说,是将给定提示语的分布调整为与训练数据标题的分布相匹配。 考虑到我们的训练流程并未包含对文本编码器的训练,我们认为对训练数据中的标题进行结构化可以降低训练的复杂性,并加快收敛速度。所有的标题或提示语都按照第 2.1.2 节中提到的特定方式编写。通过结构化,通用的文本到视频任务可以简化为标签到视频的任务。然而,这种简化不可避免地会削弱模型的泛化能力,这也是为何需要引入提示语优化器的原因。 对于大规模预训练和更强的泛化能力,我们建议增强训练数据的多样性并降低模型对提示语优化器的依赖。具体来说,以下注释方法有助于提升泛化能力:

  • 利用多种语言风格的标注工具;
  • 混合真实用例的数据;
  • 根据人类偏好选择数据。

这些方面的工作将留待未来探索。

7、未来工作

我们正在研究多项功能,以提升我们提出的 Allegro 文本到视频模型的能力。

图像到视频

一个基于文本条件的图像到视频生成模型(即 文本-图像-到视频 模型)可以在经过良好训练的文本到视频模型基础上构建,增加将视觉上下文(图像)与文本输入结合的能力。这种增强可以通过结合文本的描述能力与图像提供的特定视觉线索,使模型生成更准确且视觉更丰富的视频。

这种模型的必要性源于文本输入的局限性,有时文本可能含糊不清或缺乏详细的视觉上下文。通过集成图像,模型能够生成更精确、上下文相关性更强且质量更高的视频,从而弥合用户意图与生成结果之间的差距。这在商业应用中尤为重要,例如品牌和企业需要传递特定的视觉主题或品牌元素,而这些可能无法仅通过文本完全表达。我们基于现有的文本到视频模型正在训练文本-图像-到视频模型,并计划在不久的将来作为 Allegro 系列的另一个扩展模型发布。

运动控制

在结合文本描述和外观先验条件的基础上,许多视频制作者仍然需要一些难以通过文本精确指定的更细致的控制需求,其中最显著的是对首帧感兴趣区域的运动控制。我们的运动控制相关数据已经初步准备完毕,目前运动控制模型正在训练中。我们预计在后续发布该功能,以提供更加细粒度的控制选项。


扫描下方 二维码 ,关注“ 慢慢学AIGC ”

picture.image

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
火山引擎大规模机器学习平台架构设计与应用实践
围绕数据加速、模型分布式训练框架建设、大规模异构集群调度、模型开发过程标准化等AI工程化实践,全面分享如何以开发者的极致体验为核心,进行机器学习平台的设计与实现。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论