赞
踩
目前比较接近sora的开源路线是:Stable Video Diffusion(关于SVD的介绍请看此文的第4部分]) + Stable Diffusion3的结构(SD3的详细介绍见此文的第4部分)
另,注意 如果此前对sora原理并不了解的,请先看本sora系列的上一篇文章:视频生成模型Sora的全面解析:从AI绘画、ViT到ViViT、DiT、VDT、NaViT等(含sora复现)「下文提到此文时会简称为:sora全面解析一文」,避免一脸懵
24年1月5日,受DiT、U-ViT在图像生成领域的成功,上海AI实验室的一个团队推出了把“DiT/U-ViT架构用到视频生成领域”的类sora开源系统Latte(其对应论文为:Latte: Latent Diffusion Transformer for Video Generation,其对应的GitHub地址为:GitHub - Vchitect/Latte: Latte: Latent Diffusion Transformer for Video Generation.)
通过本博客之前的文章可知,stable diffusion所基于的潜在扩散模型(Latent Diffusion Models, LDMs),通过在潜在空间而不是像素空间中进行扩散过程
LDMs首先利用预训练的变分自动编码器的编码器将输入数据样本
压缩成较低维度的潜在编码
。随后,它通过两个关键过程学习数据分布:扩散和去噪
而Latte将LDMs扩展到视频生成,具体为:
主干网络:考虑到输入视频的空间和时间信息之间的固有差异以及从输入视频中提取出大量标记,如下图所示:从分解输入视频的空间和时间维度的角度,设计了4种高效的基于Transformer的模型变体(有没发现,下图的变体3类似于sora全面解析一文介绍过的VDT),以有效捕获视频中的时空信息
首先是单注意力机制模块,每个模块中只包含时间或者空间注意力
接下来是,多注意力机制模块,每个模块中同时包含时间与空间注意力机制 (Open-sora所参考变体)
输出:在Transformer主干之后,一个关键的过程涉及解码视频token序列,以得到预测的噪声和预测的协方差。 这两个输出的形状与输入相同
对于视频patch的嵌入,有如下两种方法
很明显,第二种方法融入了时空信息,因此还需要使用3D转置卷积对“输出的潜在视频”进行时间维度的上采样,随后是标准线性解码器和重塑操作(an additional step entails integrating a 3D transposed convolution for temporal up sampling of the output latent videos, following the standard linear decoder and reshaping operation)
Timestep 以及 class 信息 注入到模型采用了两种方式:
时序位置编码方式一般有两种选择,比如绝对位置编码和相对位置编码RoPE(实验证明两种方式区别不大),至于空间位置就是使用默认方式
Latte 使用了DiT 在 ImageNet 上的预训练模型,并作了一些改进
模型采用了上面介绍过的 Diffusion Transformer(DiT)架构
具体来说,整个架构包括一个预训练好的 VAE,一个文本编码器,和一个带有空间-时间注意力机制的STDiT模型(Spatial Temporal Diffusion Transformer,说白了,就是给DiT加上时空注意力,类似sora全面解析一文介绍过的VDT),STDiT的初始化版本则相当于给PixArt-alpha 加上时间注意力
整个模型的训练和推理流程如下
再进一步阐述下STDiT,下图左侧为STDiT 每层的结构(看图时从下往上看),下图右侧是上面2.4节介绍过的带Cross Attention的VDT,这两个结构的区别在于各个注意力层的组织顺序不同,但不影响本质是一样的
Open-Sora 的复现方案参考了Stable Video Diffusion的工作,共包括三个阶段,分别是:
作者团队表示,在 Open-Sora 的复现流程中,他们使用了 64 块 H800 进行训练。第二阶段的训练量一共是 2808 GPU hours,约合 7000 美元,第三阶段的训练量是 1920 GPU hours,大约 4500 美元。经过初步估算,整个训练方案成功把 Open-Sora 复现流程控制在了 1 万美元左右
且每个阶段都会基于前一个阶段的权重继续训练。相比于从零开始单阶段训练,多阶段训练通过逐步扩展数据,更高效地达成高质量视频生成的目标
为了进一步降低 Sora 复现的门槛和复杂度,Colossal-AI 团队在代码仓库中还提供了便捷的视频数据预处理脚本,让大家可以轻松启动 Sora 复现预训练,包括公开视频数据集下载,长视频根据镜头连续性分割为短视频片段,使用开源大语言模型 LLaVA [https://github.com/haotian-liu/LLaVA] 生成精细的提示词
作者团队提到他们提供的批量视频标题生成代码可以用两卡 3 秒标注一个视频,并且质量接近于 GPT-4V。最终得到的视频 / 文本对可直接用于训练。借助他们在 GitHub 上提供的开源代码,我们可以轻松地在自己的数据集上快速生成训练所需的视频 / 文本对,显著降低了启动 Sora 复现项目的技术门槛和前期准备
// 待更
更多则在该课里见:视频生成Sora的原理与复现 [全面解析且从零复现sora缩略版],和七月团队一同复现sora缩略版
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。