Open-Sora:揭示Sora视频生成模型的参数、训练和细节

0 165
不久前,OpenAI Sora 凭借其惊人的视频生成效果迅速走红,在众多文本转视频模型中脱颖而出,成为全球关注的焦点。Sora Replication继 2 周...

不久前,OpenAI Sora 凭借其惊人的视频生成效果迅速走红,在众多文本转视频模型中脱颖而出,成为全球关注的焦点。Sora Replication继 2 周前推出用于训练和推理过程并降低 46% 的成本后,Colossal-AI 团队又推出了全新的开源解决方案“Open-Sora 1.0”,该解决方案涵盖了整个训练过程,包括数据处理、所有训练细节和模型检查点,与世界各地的 AI 爱好者携手共进视频创作新时代。

我们先来看看 Colossal-AI 团队发布的“Open-Sora 1.0”模型生成的繁华城市夜景视频。

Open-Sora:揭示Sora视频生成模型的参数、训练和细节 Open-Sora github Sora OpenAI 文字生成图像 文字生成视频 文本生成视频 第1张

Open-Sora 1.0 生成的城市景观

这只是Open-Sora技术的冰山一角。Colossal-AI 团队在 github 中完全开源了模型架构、 训练模型检查点、所有训练和数据准备过程的详细信息、视频演示和教程,供所有对文本到视频模

感兴趣的人自由学习和使用。

Open-Sora 开源地址:https://github.com/hpcaitech/Open-Sora


Open Sora的综合解释

       Sora 再现方案的多个关键维度,包括模型架构设计、训练再现方案、数据预处理、模型输出演示和高效训练优化策略。

模型架构设计

      采用了目前流行的扩散变压器 (DiT) [1] 架构。我们使用 PixArt-α [2],这是一个高质量的开源文本到图像模型,它也以 DiT 架构为基础,并通过添加时间注意力层来扩展它以生成视频。具体来说,整个架构由一个预训练的VAE、一个文本编码器和一个利用时空注意力机制的STDiT(时空扩散转换器)模型组成。STDiT各层的结构如下图所示。它使用串行方法将一维时间注意力模块叠加在二维空间注意力模块上,以对时间关系进行建模。在时间注意力模块之后,交叉注意力模块用于对齐文本的语义。与全注意力机制相比,这种结构大大降低了训练和推理成本。与同样使用时空注意力机制的Latte[3]模型相比,STDiT可以更好地利用预训练图像DiT的权重来继续对视频数据进行训练。


整个模型的训练和推理过程如下。在训练阶段,首先使用预先训练好的VAE(Variational Autoencoder)编码器对视频数据进行压缩,然后在压缩后在潜在空间中嵌入文本来训练我们提出的STDiT模型。在推理阶段,从VAE的潜空间中随机采样一个高斯噪声,与提示嵌入一起输入到STDiT中,得到去噪后的特征,最后输入VAE解码器得到视频。


Open-Sora的复制方案参考了稳定视频扩散(SVD)[3]的工作,由三个阶段组成,即:

大规模图像预训练、大规模视频预训练、高质量的视频数据微调。

每个阶段都根据前一阶段的权重继续训练。相较于从零开始的单阶段训练,多阶段训练通过逐步扩容数据,更高效地实现了高质量视频生成的目标。

高性能和低成本实施 经过验证的性能,易于使用的解决方案 技术支持和专业协助 (1600 x 900 像素) (5)

第一阶段:大规模图像预训练

第一阶段借助成熟的Text-to-Image模型,通过大规模图像预训练,有效降低视频预训练成本。

借助互联网上丰富的大规模图像数据和先进的Text-to-Image技术,我们可以训练出高质量的Text-to-Image模型,该模型将作为下一阶段视频预训练的初始权重。同时,由于没有高质量的时空VAE,我们利用稳定扩散[5]模型对空间VAE进行预训练。这种策略不仅保证了初始模型的优越性能,而且大大降低了视频预训练的整体成本。

第二阶段:大规模视频预训练

第二阶段进行大规模的视频预训练,提高模型的泛化能力,有效掌握视频的时间序列关联。

该阶段需要使用大量的视频数据训练来保证视频主题的多样性,从而增加模型的泛化能力。第二阶段的模型在第一阶段的 Test-to-Image 模型中增加了一个时间序列注意力模块,用于学习视频中的时间关系。其余模块与第一级相同,并加载第一级权重作为初始化,同时将时间注意力模块的输出初始化为零,以实现更高效、更快的收敛。我们使用 PixArt-α [2] 的开源权重作为第二阶段 STDiT 模型的初始化,并采用 T5 [6] 模型作为文本编码器。同时,我们使用了 256x256 的小分辨率进行预训练,进一步提高了收敛速度并降低了训练成本。

第三阶段:高质量视频数据微调

第三阶段对高质量的视频数据进行微调,以显著提高生成的视频质量。

第三阶段使用的视频数据大小比第二阶段小一个数量级,但视频的持续时间、分辨率和质量更高。通过这种微调,我们实现了从短到长,从低分辨率到高分辨率,从低保真到高保真度的视频生成的高效缩放。

在我们的复制过程中,我们使用了 64 个 H800 GPU 进行训练。第二阶段的训练量总计为 2,808 GPU 小时,约合 7,000 美元,第三阶段的训练量为 1,920 GPU 小时,约合 4,500 美元,我们成功地将 Open-Sora 复制过程保持在约 10,000 美元。

数据预处理

为了进一步降低 Sora 复制的门槛和复杂度,Colossal-AI 团队还在代码仓库中提供了便捷的视频数据预处理脚本,包括公开视频数据集下载、基于镜头连续性的长视频分割成短视频片段,以及使用开源大语言模型 LLaVA [7] 生成细粒度提示词,让您轻松开始 Sora 复制预训练。我们提供的批量视频字幕生成代码可以在 3 秒内使用两个 GPU 对视频进行注释,质量接近 GPT-4V。最终的视频-文本对可以直接用于训练。通过我们提供的代码,用户可以轻松快速地生成在自己的数据集上进行训练所需的视频文本对,从而大大降低了启动 Sora 复制项目的技术障碍和准备工作。


视频演示

让我们来看看Open-Sora的实际视频生成结果。例如,让我们让 Open-Sora 生成一个大海拍打悬崖海岸岩石的航拍镜头。

Open-Sora:揭示Sora视频生成模型的参数、训练和细节 Open-Sora github Sora OpenAI 文字生成图像 文字生成视频 文本生成视频 第2张

如果对视频生成有更多有趣的想法,可以加入 Open-Sora 开源社区,获取模型权重以获得免费体验。

链接: https:// github.com/hpcaitech/Open-Sora

值得注意的是,目前的版本只使用了400K的训练数据,模型的生成质量和文本跟随能力有待提升。例如,在一些视频中,生成视频多了一只脚。Open-Sora 1.0 也不擅长生成人像和复杂图像。在 GitHub 上有一个计划列表,并将继续解决现有的错误并提高生成的质量。


参考

[1] https://arxiv.org/abs/2212.09748 带变压器的可扩展扩散模型

[2] https://arxiv.org/abs/2310.00426 PixArt-α:用于逼真文本到图像合成的扩散转换器的快速训练

[3] https://arxiv.org/abs/2311.15127 稳定视频扩散:将潜在视频扩散模型扩展到大型数据集

[4] https://arxiv.org/abs/2401.03048 拿铁:用于视频生成的潜伏扩散变压器

[5] https://huggingface.co/stabilityai/sd-vae-ft-mse-original

[6] https://github.com/google-research/text-to-text-transfer-transformer

[7] https://github.com/haotian-liu/LLaVA

打赏
收藏
点赞
最后修改时间:
AI副业资源网
上一篇 2024年03月10日 21:14
下一篇 2024年03月19日 21:37

相关文章

发表评论

  • 验证码

评论列表

暂无评论

服务热线

17637547557

工作时间:09:00--17:00

微信客服

微信客服