MiniSora:社区驱动的Sora复现之路,从DiT到视频生成技术全景解析

MiniSora:社区驱动的Sora复现之路,从DiT到视频生成技术全景解析

【免费下载链接】minisora 【免费下载链接】minisora 项目地址: https://gitcode.com/GitHub_Trending/mi/minisora

MiniSora是一个由社区自发组织的开源项目,致力于探索Sora的实现路径和未来发展方向。社区定期与Sora团队及其他开发者举行圆桌讨论,深入研究现有的视频生成技术路径,并主导复现与Sora相关的论文或研究成果,如DiT(Diffusion Transformer)等。项目还对Sora相关技术及其实现进行全面综述,即《From DDPM to Sora: A Review of Video Generation Models Based on Diffusion Models》。

项目核心目标与架构

Sora复现的三大关键目标

MiniSora在Sora复现过程中设定了明确的目标:

  1. GPU友好性:理想情况下,对GPU内存大小和数量的要求较低,例如使用8张A100 80G、8张A6000 48G或RTX4090 24G等算力即可进行训练和推理。

  2. 训练效率:无需大量的训练时间即可达到良好的效果。

  3. 推理效率:推理时生成视频无需过高的长度和分辨率,可接受的参数包括3-10秒长度和480p分辨率。

整体技术架构

MiniSora的技术架构与Stable Diffusion原理基本一致,首先使用VAE(Variational Autoencoder,变分自编码器)压缩视频,提取视频patch组成tokens,然后进行扩散-去噪过程。与Stable Diffusion的区别在于使用Transformer替换U-Net预测噪声的均值和方差,并且噪声是4维的,最后解码成视频。

Latte网络结构

输入方面,视频片段经VAE压缩后假设为$F·H·W·C$,编码后得到tokens $Z$,维度为$n_f·n_h·n_w·d$,$Z$和位置时空位置编码$p$相加构成Transformer的输入$Z'$。

主干网络部分有多种变体,例如先将输入reshape成$Z_s$,维度为$n_f·t·d$(其中$t=n_h·n_w$),先经过空间Transformer block,然后reshape成$Z_t$,维度为$t·n_f·d$,再过时间Transformer block,循环几次;或者修改Transformer block内部结构,MHA先在空间维度计算自注意力,然后在时间维度计算,使每个Transformer block融合时间和空间信息等。

输出方面,解码得到噪声均值和协方差,二者维度同样为$F·H·W·C$。

DiT技术详解与OpenDiT实现

DiT核心原理

DiT(Diffusion Transformer)是一种基于Transformer的扩散模型,其核心在于将Transformer架构应用于扩散过程。与传统的基于U-Net的扩散模型不同,DiT使用Transformer来预测噪声的均值和方差,从而实现图像或视频的生成。

OpenDiT的优化与创新

OpenDiT是MiniSora社区推出的一个高性能DiT实现项目,旨在提高DiT应用(包括文本到视频生成和文本到图像生成)的训练和推理效率。OpenDiT通过多种技术实现了性能提升:

  1. GPU加速与内存优化:通过内核优化(包括FlashAttention、Fused AdaLN和Fused layernorm内核)以及混合并行方法(包括ZeRO、Gemini和DDP),在GPU上实现了高达80%的速度提升和50%的内存减少。此外,对ema模型进行分片进一步降低了内存成本。

  2. FastSeq序列并行方法:这是一种专为DiT类工作负载设计的新型序列并行方法,适用于激活大小大但参数大小小的场景。对于节点内序列并行,最多可节省48%的通信量,打破了单个GPU的内存限制,减少了整体训练和推理时间。

  3. 易用性:只需少量代码更改即可获得巨大的性能提升,用户无需了解分布式训练的实现细节。

  4. 完整的生成管道:研究人员和工程师可以轻松使用和调整其管道以适应实际应用,无需修改并行部分。通过在ImageNet上进行文本到图像训练验证了OpenDiT的准确性,并发布了检查点。

OpenDiT端到端流程

OpenDiT的使用也较为便捷,以图像训练为例,可通过执行脚本或命令行进行。例如,使用脚本训练:bash train_img.sh;使用命令行:

torchrun --standalone --nproc_per_node=2 train.py \
    --model DiT-XL/2 \
    --batch_size 2 \
    --num_classes 10

Latte视频生成技术

Latte整体架构

Latte是上海人工智能实验室“书生·筑梦”系列(Vchitect)视频生成模型之一,是一种新的潜空间Diffusion Transformer,用于视频生成。Latte首先从输入视频中提取时空tokens,然后用Transformer对潜空间中的视频分布建模,并设计了4种Transformer变体。

关键技术创新

  1. 视频patch embedding方式:Latte提供了两种视频patch embedding方式。一种是所有帧都使用ViT的patch方式,类似平面操作,得到$n_f·n_h·n_w·d$的tokens;另一种是使用ViViT的方式,在时序上采样,类似立体操作,得到$n_f/s·n_h·n_w·d$的tokens(其中$s$为采样步长)。

Latte patch embedding

  1. S-AdaLN调制机制:在DiT的自适应层归一化AdaLN基础上,新增了一个scale向量$α_c$,应用在所有残差连接中,最终$RCs(h, c) = α_ch + AdaLN(h, c)$,即S-AdaLN(Scaled AdaLN)。

S-AdaLN结构

  1. 图像-视频联合训练:将基于CNN的视频生成方法中的图像和视频同时训练策略应用到Transformer架构中,在视频后面随机添加一些同一数据集其它视频的帧用于图像生成任务,时序相关的tokens只作用在视频部分,提升了模型性能。

Latte文生视频效果

Latte使用WebVid-10M和Vimeo25M数据集训练,包含33万文本-视频对,在文生视频任务上取得了一定成果。

Latte文生视频效果1 Latte文生视频效果2

视频生成技术全景与MiniSora实践

主流视频生成模型对比

MiniSora社区对多种视频生成模型进行了研究和对比,包括:

  • VideoLDM:通过对齐潜变量实现高分辨率视频合成。

  • Text2Video-Zero:无需特定调优即可将文本到图像扩散模型转换为零样本视频生成器。

  • Latte:如前所述,在多个标准视频生成数据集上实现了SOTA。

  • Animatediff:无需特定调优即可为个性化文本到图像扩散模型添加动画效果。

  • I2VGen-XL:通过级联扩散模型实现高质量图像到视频合成。

  • Imagen Video:使用扩散模型生成高清视频。

  • W.A.L.T:基于扩散模型的 photorealistic 视频生成。

MiniSora数据集与数据增强

在视频生成中,数据集和数据增强至关重要。MiniSora关注多种公开数据集,如Panda-70M(7000万剪辑,720P,可下载)、InternVid-10M(1000万剪辑,720P,可下载)等。

数据增强方法包括基本变换(如翻转、旋转等)、特征空间增强、基于GAN的增强、基于编码器/解码器的增强以及模拟等。

MiniSora社区复现进展

MiniSora社区的复现小组积极开展工作,在多个方面取得了进展。例如,对DiT论文的复现,使用XTuner进行训练,并发布了相关的检查点。同时,社区还定期举行论文解读活动,如对Stable Diffusion 3论文的解读,深入探讨其架构细节和设计原则。

总结与展望

MiniSora社区通过社区驱动的方式,积极探索Sora的复现之路,在DiT、Latte等关键技术上进行了深入研究和实践,并基于OpenDiT等项目实现了技术突破。虽然目前在文生视频等任务上与Sora还有差距,但社区的努力为视频生成技术的发展做出了贡献。

未来,MiniSora社区将继续深入研究视频生成技术,优化模型性能,拓展应用场景,推动开源社区在视频生成领域的发展。官方文档:docs/,项目教程:README.md

MiniSora LPRS

【免费下载链接】minisora 【免费下载链接】minisora 项目地址: https://gitcode.com/GitHub_Trending/mi/minisora

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值