https://github.com/hpcaitech/Open-Sora
https://hpc-ai.com/blog/open-sora
OpenAI的Sora模型将视频生成技术推向了一个新的水平,标志着人工智能视频生成技术的新时代。它可以广泛应用于电影、动画、游戏、广告等领域,为内容创作者提供更便捷高效的创作工具。
Colossal-AI团队首次快速开源了Open-Sora,提供了完整的Sora复制架构解决方案,还将训练成本降低了46%,并将模型训练输入序列的长度扩展到819K个补丁。
在Sora的技术报告中,Sora使用视频压缩网络将各种大小的视频压缩成潜在空间中的一系列时空补丁,然后使用扩散变换器进行去噪,最后解码生成视频。
Open-Sora总结了Sora可能在下图中使用的训练流程。
目前,Open-Sora已经涵盖了:
- 提供完整的Sora复制架构解决方案,包括从数据处理到训练和推断的整个过程。
- 支持动态分辨率,训练可以直接训练任何分辨率的视频,无需缩放。
- 支持多种模型结构。由于Sora的实际模型结构未知,我们实现了三种常见的多模态模型结构,如adaLN-zero、交叉注意力和上下文调节(标记连接)。
- 支持多种视频压缩方法。用户可以选择使用原始视频、VQVAE(视频本地模型)、SD-VAE(图像本地模型)进行训练。
- 支持多种并行训练优化。包括与Colossal-AI结合的AI大型模型系统优化能力,以及与Ulysses和FastSeq结合的混合序列并行性。
不同于LLM,Sora-like 训练任务的特点是模型较小(例如不超过10B),但由于视频复杂性而具有异常长的序列长度。在这种情况下,PyTorch 数据并行化无法运行,而传统的模型并行化和零冗余数据并行化带来的好处有限。因此,在支持诸如AMP(FP16/BF16)、Flash Attention、Gradient checkpointing、ZeRO-DP等场景优化策略的基础上,Open-Sora进一步引入了两种不同的序列并行化方法的实现,可以与ZeRO一起实现混合并行化。
1.更通用的Ulysses,可能在处理小序列或长序列时表现更好。
2.FastSeq 可以重叠 qkv 投影计算和全局收集通信,以进一步提高训练效率,只需要占用更少的内存。
这两种序列并行化方案都可以轻松地与Zero2一起使用,实现混合并行计算。在H800 SXM 8*80GB GPU服务器上,使用DiT-XL/2模型进行性能基准测试。
在序列长度为600K时,Open-Sora的解决方案比基准解决方案提供了超过40%的性能改进和成本降低。
Open-Sora还可以训练长达819K+的序列,延长30%,同时保证更快的训练速度。
