当前位置: 首页>后端>正文

Datawhale x ModelScope 开源学习:Sora技术路线详解

为什么Sora如此惊艳?

解决了痛点:

1. 让长视频生成成为可能,之前都是短视频4s左右进行拓展,Sora支持60s视频生成

2. 生成的长视频仍保持人物/场景的高度一致性

带来了惊喜:

1. 具备丝滑过渡视频融合能力

2. 具备同一场景多角度/镜头的生成能力

3. 文生视频的涌现现象:具有动态摄像机运动的视频,随着摄像机的移动和旋转,任何其他场景元素在三维空间一致移动

4. 支持任意分辨率、宽高比的视频输出

失败例子:

1. 对物理规律的理解仍然十分有限

Sora模型训练流程

1. 原始视频数据切分成Patches,通过VAE编码器压缩成低维空间表示

2. 基于Diffusion Transformer完成从文本语义到图像语义的再映射

3. DiT生成的低维空间表示,通过VAE解码器恢复成像素级的视频数据

具体技术分析

统一标识不同类型的视频数据

Datawhale x ModelScope 开源学习:Sora技术路线详解,第1张
图1 通过VAE编码器将视频编码成一维向量

技术难点:VAE的压缩率,Encoder的复杂度,时空交互的range还需要进一步探索和实验

基于Diffusion Model的训练流程进行视频生成

参考论文:Stable Diffusion

Datawhale x ModelScope 开源学习:Sora技术路线详解,第2张
图2 Sora基于Diffusion模型的改进示意图

Sora的两个主要改进:

1. 输入加入了视频信息辅助生成

2. 使用的backbone网络由原来的Unet结构改成了ViT,更可能是基于DiT

关键技术拆解

时空编码 Spacetime latent patches:

1. 取样:

? ? - 切片:输入视频剪辑中均匀采样n_t帧,每一帧按照ViT的2D图片采样方式采样

? ? - 切块:输入的视频划分成若干个3D tuplet(若干张2D图片构成的3D块的其中一个小块),经过Spatial Temporal Attention进行空间/时间建模

2. 不同长度、不同分辨率的输入(主要基于NaViT技术):

? ? - 多个patches打包成一个单一序列实现可变分辨率

? ? - 根据一些相似度计算的方法和阈值的设定去除重复的语义相似的的patches,降低计算量

? ? - 训练时使用不同分辨率、不同时长的视频

存在问题:带来大量的计算负载不均衡

Diffusion Transformer, DiT = VAE + ViT + DDPM + VAE

Datawhale x ModelScope 开源学习:Sora技术路线详解,第3张
图3 Diffusion Transformer结构图

技术难点:

- 训练数据如何构建

- Transformer的scale up

- 从头训练到收敛的trick

- 如何实现长上下文的支持

- 如何保证视频中实体的高质量和一致性


https://www.xamrdz.com/backend/3bb1926028.html

相关文章: