目录
全面解读Sora复现方案
模型架构设计
训练复现方案
第一阶段是大规模图像预训练。
第二阶段是大规模视频预训练。
第三阶段是高质量视频数据微调。
数据预处理
高效训练加持
首页 科技周边 人工智能 全球首个类Sora开源复现方案来了!全面公开所有训练细节和模型权重

全球首个类Sora开源复现方案来了!全面公开所有训练细节和模型权重

Mar 18, 2024 pm 08:25 PM
人工智能 ai sora

全球首个开源的类Sora架构视频生成模型,来了!

整个训练流程,包括数据处理、所有训练细节和模型权重,全部开放。

这就是刚刚发布的Open-Sora 1.0。

它带来的实际效果如下,能生成繁华都市夜景中的车水马龙。

全球首个类Sora开源复现方案来了!全面公开所有训练细节和模型权重

还能用航拍视角,展现悬崖海岸边,海水拍打着岩石的画面。

全球首个类Sora开源复现方案来了!全面公开所有训练细节和模型权重

亦或是延时摄影下的浩瀚星空。

全球首个类Sora开源复现方案来了!全面公开所有训练细节和模型权重

自Sora发布以来,由于其惊人的效果和技术细节的稀缺性,揭示和复现Sora已成为开发社区中最受关注的话题之一。例如,Colossal-AI团队推出了一项能够降低46%成本的Sora训练和推理复现流程。

短短两周时间后,该团队再次发布最新进展,复现类Sora方案,并将技术方案及详细上手教程在GitHub上免费开源。

那么问题来了,复现Sora如何实现?

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

全面解读Sora复现方案

Sora复现方案包括四个方面:

  • 模型架构设计
  • 训练复现方案
  • 数据预处理
  • 高效训练优化策略

模型架构设计

模型采用了Sora同源架构Diffusion Transformer (DiT) 。

它以采用DiT架构的高质量开源文生图模型PixArt-α为基座,在此基础上引入时间注意力层,将其扩展到视频数据上。

具体来看,整个架构包括一个预训练好的VAE,一个文本编码器和一个利用空间-时间注意力机制的STDiT (Spatial Temporal Diffusion Transformer)模型。

其中,STDiT 每层的结构如下图所示。

它采用串行的方式在二维的空间注意力模块上叠加一维的时间注意力模块,用于建模时序关系。在时间注意力模块之后,交叉注意力模块用于对齐文本的语意。

与全注意力机制相比,这样的结构大大降低了训练和推理开销。

与同样使用空间-时间注意力机制的 Latte模型相比,STDiT 可以更好的利用已经预训练好的图像 DiT 的权重,从而在视频数据上继续训练。

全球首个类Sora开源复现方案来了!全面公开所有训练细节和模型权重

△STDiT结构示意图

整个模型的训练和推理流程如下。

据了解,在训练阶段首先采用预训练好的Variational Autoencoder (VAE)的编码器将视频数据进行压缩,然后在压缩之后的潜在空间中与文本嵌入(text embedding)一起训练STDiT扩散模型。

在推理阶段,从VAE的潜在空间中随机采样出一个高斯噪声,与提示词嵌入(prompt embedding)一起输入到STDiT中,得到去噪之后的特征,最后输入到VAE的解码器,解码得到视频。

全球首个类Sora开源复现方案来了!全面公开所有训练细节和模型权重

△模型训练流程

训练复现方案

在训练复现部分,Open-Sora参考了Stable Video Diffusion (SVD)。

一共分为3个阶段:

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

每个阶段都会基于前一个阶段的权重继续训练。

相比于从零开始单阶段训练,多阶段训练通过逐步扩展数据,更高效地达成高质量视频生成的目标。

全球首个类Sora开源复现方案来了!全面公开所有训练细节和模型权重

△训练方案三阶段

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

团队利用互联网上丰富的图像数据和文生图技术,先训练出一个高质量的文生图模型,将该模型作为下一阶段视频预训练的初始化权重。

同时,由于目前没有高质量的时空VAE,他们采用Stable Diffusion预训练好的图像VAE。

这样不仅能保障初始模型的优越性能,还能显着降低视频预训练的整体成本。

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

这一阶段主要增加模型的泛化能力,有效掌握视频的时间序列关联。

它需要使用大量视频数据训练,并且保障视频素材的多样性。

同时,第二阶段的模型在第一阶段文生图模型的基础上加入了时序注意力模块,用于学习视频中的时序关系。其余模块与第一阶段保持一致,并加载第一阶段权重作为初始化,同时初始化时序注意力模块输出为零,以达到更高效更快速的收敛。

Colossal-AI团队使用了PixArt-alpha的开源权重作为第二阶段STDiT模型的初始化,以及采用了T5模型作为文本编码器。他们采用了256x256的小分辨率进行预训练,进一步增加了收敛速度,降低训练成本。

全球首个类Sora开源复现方案来了!全面公开所有训练细节和模型权重

△Open-Sora生成效果(提示词:水中世界的镜头,镜头中一只海龟在珊瑚礁间悠然游弋)

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

据介绍,这一阶段能显着提升模型的生成质量。使用的数据规模比上一阶段降低一个量级,但是视频的时长、分辨率和质量都更高。

通过这种方式进行微调,能实现视频生成从短到长、从低分辨率到高分辨率、从低保真度到高保真度的高效扩展。

值得一提的是,Colossal-AI还详细透露了每阶段的资源使用情况。

在Open-Sora的复现流程中,他们使用了64块H800进行训练。第二阶段的训练量一共是 2808 GPU hours,约合7000美元,第三阶段的训练量是1920 GPU hours,大约4500美元。经过初步估算,整个训练方案成功把Open-Sora复现流程控制在了1万美元左右。

数据预处理

为了进一步降低Sora复现的门槛和复杂度,Colossal-AI团队在代码仓库中还提供了便捷的视频数据预处理脚本,让大家可以轻松启动Sora复现预训练。

包括公开视频数据集下载、长视频根据镜头连续性分割为短视频片段、使用开源大语言模型LLaVA生成精细的提示词。

他们提供的批量视频标题生成代码可以用两卡 3 秒标注一个视频,并且质量接近于 GPT-4V。

最终得到的视频/文本对可直接用于训练。借助他们在GitHub上提供的开源代码,可以轻松地在自己的数据集上快速生成训练所需的视频/文本对,显着降低了启动Sora复现项目的技术门槛和前期准备。

全球首个类Sora开源复现方案来了!全面公开所有训练细节和模型权重

高效训练加持

除此之外,Colossal-AI团队还提供了训练加速方案。

通过算子优化和混合并行等高效训练策略,在处理64帧、512x512分辨率视频的训练中,实现了1.55倍的加速效果。

同时,得益于Colossal-AI的异构内存管理系统,在单台服务器上(8H800)可以无阻碍地进行1分钟的1080p高清视频训练任务。

全球首个类Sora开源复现方案来了!全面公开所有训练细节和模型权重

而且团队还发现STDiT模型架构在训练时也展现出卓越的高效性。

和采用全注意力机制的DiT相比,随着帧数的增加,STDiT实现了高达5倍的加速效果,这在处理长视频序列等现实任务中尤为关键。

全球首个类Sora开源复现方案来了!全面公开所有训练细节和模型权重

最后,团队还放出了更多Open-Sora的生成效果。

,时长00:25

团队和量子位透露,他们将长期更新优化Open-Sora的相关解决方案和动态。未来将使用更多视频训练数据,以生成更高质量、更长时长的视频内容,并支持多分辨率特性。

实际应用方面,团队透露将推进在电影、游戏、广告等领域落地。

感兴趣的开发者们,可访问GitHub项目了解更多~

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

参考链接:

[1]https://arxiv.org/abs/2212.09748 Scalable Diffusion Models with Transformers。

[2]https://arxiv.org/abs/2310.00426 PixArt-α: Fast Training of Diffusion Transformer for Photorealistic Text-to-Image Synthesis。

[3]https://arxiv.org/abs/2311.15127 Stable Video Diffusion: Scaling Latent Video Diffusion Models to Large Datasets。

[4]https://arxiv.org/abs/2401.03048 Latte: Latent Diffusion Transformer for Video Generation。

[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。

[8]https://hpc-ai.com/blog/open-sora-v1.0。

以上是全球首个类Sora开源复现方案来了!全面公开所有训练细节和模型权重的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

在Docker环境中使用PECL安装扩展时为什么会报错?如何解决? 在Docker环境中使用PECL安装扩展时为什么会报错?如何解决? Apr 01, 2025 pm 03:06 PM

在Docker环境中使用PECL安装扩展时报错的原因及解决方法在使用Docker环境时,我们常常会遇到一些令人头疼的问�...

PHP二维数组如何实现排序并添加排名? PHP二维数组如何实现排序并添加排名? Apr 01, 2025 am 07:00 AM

PHP二维数组排序及排名实现详解本文将详细讲解如何对一个PHP二维数组进行排序,并根据排序结果为每个子数组...

在Laravel中如何获取邮件发送失败时的退信代码? 在Laravel中如何获取邮件发送失败时的退信代码? Apr 01, 2025 pm 02:45 PM

Laravel邮件发送失败时的退信代码获取方法在使用Laravel开发应用时,经常会遇到需要发送验证码的情况。而在实�...

PHP如何实现与Java一致的AES加解密? PHP如何实现与Java一致的AES加解密? Apr 01, 2025 am 07:15 AM

PHP如何实现AES加解密与Java...

如何在OpenAI的API中实现上下文关联的对话功能? 如何在OpenAI的API中实现上下文关联的对话功能? Apr 01, 2025 am 08:33 AM

如何实现ChatGPT的上下文接口参数?在使用OpenAI的接口时,实现一问一答的功能相对简单,官方文档也提供了详�...

生产环境部署:如何避免Composer加载开发依赖? 生产环境部署:如何避免Composer加载开发依赖? Apr 01, 2025 am 07:36 AM

高效管理Composer依赖:生产环境如何避免加载开发依赖在使用Composer管理PHP项目依赖时,我们经常会将开发过程�...

动态网页元素XPath和Class名变化频繁,如何稳定抓取目标a标签? 动态网页元素XPath和Class名变化频繁,如何稳定抓取目标a标签? Apr 01, 2025 pm 04:12 PM

动态网页元素抓取难题:应对XPath和Class名变化很多爬虫开发者在抓取动态网页时会遇到一个棘手的问题:目标�...

See all articles