Sora训练营打卡
本次组队学习对于Sora的一些基础内容进行了讲解,由于学生党开学,再加上有些比赛,近期事情比较多,只能给出直播课时的随堂笔记加以补全,助教老师评选时手下留情,简单看看即可
简介
Sora是openAI最新发布的视频生成模型,所发布的内容较之前的视频生成模型在各方面都有了很大的提高,不仅在视频生成上视频的长度得到了增长,达到了60s,还拥有了很高的真实性,相比于之前容易变形的生成内容,可以说是有了非常巨大的进步,甚至还能够生成多角度多机位视频,支持任意比例视频,将两个视频丝滑的融合在一起,这是之前的视频生成模型都到达不了的高度
杨老师PPT里所讲解能力如下
TeText-to-video: 文生视频
Image-to-video: 图生视频
Video-to-video: 改变源视频风格or场景
Extending video in time: 视频拓展(前后双向)
Create seamless loops: Tiled videos that seem like they never endImage generation: 图片生成 (size最高达到 2048 x 2048)
Generate video in any foformat: From 1920 x 1080 to 1080 x 1920 视频输出比例自定义
Simulate virtual worlds: 链接虚拟世界,游戏视频场景生成
Create a video: 长达60s的视频并保持人物、场景一致性
虽然目前Sora在物理引擎方面还有这不小的欠缺,生成视频不符合物理的客观规律,通过官方所说:如,一个人可能会咬一口饼干,但之后,饼干可能没有咬痕。
虽然Sora还在内测过程中,但是openAI已经发布了官方文档,文档中为大家提供了很多的技术实现信息
Sora训练流程
核心技术陈列
Sora使用的一个很关键的步骤就是将原始视频数据切分为 Patches通过 VAE 编码器压缩成低维空间表示
所谓patch,就是将视频数据压缩成为一维的向量表示,这就使得不同类型的数据也能够统一参与训练
einops是一个用于操作张量的库,它的出现可以替代我们平时使用的reshape、view、transpose和permute等操作,通过这个库,我们就能实现patch化
输出在时间和空间上都经过压缩的潜在表示。Sora在这个压缩的潜空间中接受训练并随后生成视频。此外还训练了一个相应的解码器模型,该模型将生成的潜在对象映射回像素空间
Sora是一个在不同时长、分辨率和宽高比的视频及图像上训练而成的扩散模型,同时采用了Transfoformer架构
与 GPT 模型类似,Sora 使用 transformer 架构,释放出卓越的扩展性能。
它使用了 DALL·E 3,涉及为视觉训练数据生成高度描述性的标题。因此,该模型能够更忠实地遵循生成视频中用户的文本说明。
他所进行的生成过程就是一个人工加噪声再进行去噪的过程,使用DDPM扩散模型
VIT技术就是让图像技术得以使用transformer技术,将图像分为多个patch后直接应用于图像,图像被划分为多个 patch后,将二维 patch 转换为一维向量作为 Transformer 的输入
时空数据理解
针对时空数据的理解,杨老师给了我们一种叫做摊大饼的方法
摊大饼法:从输入视频剪辑中均匀采样 n_t 个帧,使用与ViT相同的方法独立地嵌入每个2D帧(embed each 2D frameindependently using the same method as ViT),并将所有这些token连接在一起
DIT
结合 Diffusion Model 和 和 Transformer,通过 Scale up Model 提 提升图像生成质量图像的scaling技术运用到视频场景非常直观,可以确定是 SORA 的技术之一
DiT 利用 transformer 结构探索新的扩散模型,成功用 transformer 替换 U-Net 主干
保持视频信息
OpenAI 使用类似 DALLE3 的Cationining 技术训练了自己的 Video Captioner用以给视频生成详尽的文本描述
模型层不通过多个 Stage 方式来进行视频预测而是整体预测视频的 Latent在训练过程中引入 Auto Regressive的task帮助模型更好地学习视频特征和帧间关系
但是确定这些信息,仍然不代表我们就能够复现出一个Sora,这些只是独立的技术,我们需要的是将这些技术通过合理手段拼接起来