Sora技术路径解读——Datawhale AI视频生成学习1
能力边界
之前视频生成的两个痛点
- 长视频:60s。
- 一致性:e.g. 字符标识牌没有发生变化,一致性。
能力总结
- 长视频+一致性
- 过渡和融合能力强
- 同一场景多角度/镜头生成
- 涌现:运动镜头的变化,人和其他元素在3D空间中变化
- 任意分辨率和宽高比
局限性
- 对物理规律理解有限(玻璃杯倒了不碎)
技术报告分析
训练流程
步骤一:patchify
把一段视频流(包含一帧中的N张图片),全部变成patch,其中包含视频的位置信息和时间信息。然后再平展为一维向量。
这里的Encoder根据openai的资料来看可能是一个Video transformer,把输入的视频划分成若干个tuplet,每个tuplet会变成一个token,经过spatial temperal attention进行空间和时间建模获得有效的视频表征token,即上面灰色block部分。
from 《一文看Sora技术推演》
使用的encoder参考了Vivit的encoder,这里面提出了3种方式构建时空融合,但是3种方式的效果其实差不多,所以说具体用了哪一种我也不太清楚。但是openAI对transformer做了scaling。
步骤二:scaling transformers生成
基础的扩散生成模型
stable diffusion(latent diffusion) vs. Sora
- stable diffusion
- Sora
区别不算大,就是在condition部分添加了一些视频信息,以及之前去噪使用的u-net换成了scaling transformers。
步骤三:latent转换为视频向量
类似于VAE那样,将latent vector解码到视频数据
支持不同长度和分辨率的输入
用NaViT的原理,沿用了NLP中的例子打包(example packing)技术,将多个独立样本组合进单个序列中来处理变长序列。
DiT
添加一个噪声(32,32,4), 外加标签信息和时间戳信息进行embedding(conditioning),和patchify的noise放入DiT Block。
对conditioning projection之后的embedding做了一个adaptive的操作,应该是学习了某些系数然后再输入指定层。
自回归
整体预测视频的latent,并在训练过程中引入自回归帮助模型更好地学习视频特征和帧之间的关系。
文本匹配学习
sora使用DALLE3对图片打标签,对文本的理解能力强。
其他难点
- 训练数据的构建
- scale up的大小
- 收敛的trick
- 视频的截断和性能优化
参考资料
[1] https://openai.com/research/video-generation-models-as-world-simulators
[2] Rombach, Robin, et al. “High-resolution image synthesis with latent diffusion models.” Proceedings of the IEEE/CVF conference on computer vision and pattern recognition. 2022.
[3] Peebles, William, and Saining Xie. “Scalable diffusion models with transformers.” Proceedings of the IEEE/CVF International Conference on Computer Vision. 2023.
[4] Dehghani, Mostafa, et al. “Patch n’pack: Navit, a vision transformer for any aspect ratio and resolution.” Advances in Neural Information Processing Systems 36 (2024).
[5] Arnab, Anurag, et al. “Vivit: A video vision transformer.” Proceedings of the IEEE/CVF international conference on computer vision. 2021.
[6] 一文看Sora技术推演