ToB企服应用市场:ToB评测及商务社交产业平台

标题: 视频生成模子Sora的全面解析:从AI绘画、ViT到ViViT、DiT、VDT、NaViT、Vid [打印本页]

作者: 花瓣小跑    时间: 2024-7-18 13:13
标题: 视频生成模子Sora的全面解析:从AI绘画、ViT到ViViT、DiT、VDT、NaViT、Vid

视频生成模子Sora的全面解析:从AI绘画、ViT到ViViT、DiT、VDT、NaViT、VideoPoet

真没想到,举例视频生成上一轮的集中爆发才已往三个月,没想OpenAI一脱手,该范畴又直接变天了自打2.16日OpenAI发布sora以来,不光把同时段Google发布的Gemmi Pro 1.5干没了声音,而且网上各个渠道,大量新闻媒体、自媒体(含公号、微博、博客、视频)做了大量的解读,也引发了圈内外的大量关注,很多人因此认为,视频生成范畴自此进入了大规模应用前夕,比如NLP范畴中GPT3的发布一
​编辑 v_JULY_v  ·  2024-02-18 22:49:27 发布
前言

真没想到,距离视频生成上一轮的集中爆发(详见《Sora之前的视频生成发展史:从Gen2、Emu Video到PixelDance、SVD、Pika 1.0》)才已往三个月,没想OpenAI一脱手,该范畴又直接变天了
可当我接连扒出sora相关的10多篇论文之后,觉得sora和此前发布的视频生成模子有了质的飞跃(不但是一个60s),而是再次印证了鼎力大举出奇迹,大模子似乎可以在力大砖飞的环境下开始明白物理世界了,使得我司大模子项目组也愿意重新考虑开发视频生成的相关应用
本文主要分为三个部门(初步明白只看第一部门即可,深入明白看第二部门,更多细节则看第三部门)

总之,看本文之前,如果你人云亦云的来一句:sora就是DiT架构,我表示明白。但看完全文后你会发现


保举内容

第一部门 OpenAI Sora的关键技能点

1.1 Sora的三大Transformer组件

1.1.1 从前置工作DALLE 2到sora的三大组件

为方便各人更好的明白sora背后的原理,我们先来快速回顾下AI绘画的原理(明白了AI绘画,也就明白了sora一半)
   以DALLE 2为例,如下图所示(以下内容来自此文:从CLIP、BLIP到DALLE、DALLE 2、DALLE 3、Stable Diffusion)
  

    以是对于DALLE 2来说,正因为颠末了大量上面这种训练,以是便可以根据人类给定的prompt画出人类预期的画作,说白了,可以根据text预测画作长什么样
终极,sora由三大Transformer组件组成(如果你还不了解transformer或留意力机制,请读此文):Visual Encoder(即Video transformer,类似下文将介绍的ViViT)、Diffusion TransformerTransformer Decoder,具体而言

   你会发现,上述整个过程,实在和SD的原理是有较大的相似性(SD原理见此文《从CLIP、BLIP到DALLE、DALLE 2、DALLE 3、Stable Diffusion》的3.2节),固然,不同之处也有很多,比如视频需要一次性还原多帧、图像只需要还原一帧
  

  网上也有不少人画出了sora的架构图,比如来自魔搭社区的
  

  1.1.2 如何明白所谓的时空编码(含其利益)

起首,一个视频无非就是沿着时间轴分布的图像序列而已

但此中有个问题是,因为像素的关系,一张图像有着比力大的维度(比如250 x 250),即一张图片上可能有着5万多个元素,如果根据上一张图片的5万多元素去逐一交互下一张图片的5万多个元素,未免工程过于浩大(而且,即便是同一张图片上的5万多个像素点之间两两做self-attention,你都会发现盘算复杂度超级高)
可能有同砚问,这么做有什么利益呢?利益太多了

总之,基于 patches 的表示,使 Sora 能够对不同分辨率、连续时间和长宽比的视频和图像进行训练。在推理时,也可以可以通过在得当大小的网格中分列随机初始化的 patches 来控制生成视频的大小
   DiT 作者之一 Saining Xie 在推文中提到:Sora“可能还利用了谷歌的 Patch n’ Pack (NaViT) 论文结果,使其能够顺应可变的分辨率/连续时间/长宽比”
  
  固然,ViT自己也能够处理任意分辨率(不同分辨率相当于不同长度的图片块序列),但NaViT提供了一种高效训练的方法,关于NaViT的更多细节详见下文的介绍
  而已往的图像和视频生成方法通常需要调解大小、进行裁剪或者是将视频剪切到标准尺寸,比方 4 秒的视频分辨率为 256x256。相反,该研究发如今原始大小的数据上进行训练,终极提供以下利益:
1.1.3 Diffusion Transformer(DiT):扩散过程中以Transformer为骨干网络

sora不是第一个把扩散模子和transformer结合起来用的模子,但是第一个取得巨大乐成的,为何说它是结合体呢

总之,总的来说,Sora是一个在不同时长、分辨率和宽高比的视频及图像上训练而成的扩散模子,同时采用了Transformer架构,如sora官博所说,Sora is a diffusion transformer,简称DiT
关于DiT的更多细节详见下文第二部门介绍的DiT
1.2 基于DALLE 3的重字幕技能:提拔文本-视频数据质量

1.2.1 DALLE 3的重字幕技能:为文本-视频数据集打上字幕且用GPT把字幕详细化

起首,训练文本到视频生成系统需要大量带有相应文本字幕的视频,而通过CLIP技能给视频对齐的文本描述,有时质量较差,故为进一步提高文本-视频数据集的质量,研究团队将 DALL・E 3 中的重字幕(re-captioning)技能应用于视频
   关于DALLE 3的重字幕技能更具体的细节请见此文2.3节《AI绘画原明白析:从CLIP、BLIP到DALLE、DALLE 2、DALLE 3、Stable Diffusion》
  2.3 DALLE 3:Improving Image Generation with Better Captions
  2.3.1 为提高文本图像配对数据集的质量:基于谷歌的CoCa​微调出图像字幕生成器
  2.3.1.1 什么是谷歌的CoCa
  2.1.1.2 分别通过短caption、长caption微调预训练好的image captioner
  2.1.1.3 为提高合成caption对文生图模子的性能:采用描述详细的长caption,训练的混淆比例高达95%..
  1.2.2 类似VDT或Google的W.A.L.T工作:引入auto regressive进行视频预测或扩展

其次,如之前所述,为了包管视频的一致性,模子层不是通过多个stage方式来进行预测,而是团体预测了整个视频的latent(即去噪时非先去噪几帧,再去掉几帧,而是一次性去掉全部帧的噪声)
但在视频内容的扩展上,比如从一段已有的视频向后拓展出新视频的训练过程中可能引入了auto regressive的task,以资助模子更好的进行视频特性和帧间关系的学习
更多可以参考下文Google的W.A.L.T工作,或下文“2.3.2 VDT的视频预测方案:把视频前几帧作为条件帧自回归预测下一帧”
1.3 对真实物理世界的模拟能力

1.3.1 sora学习了大量关于3D几何的知识

OpenAI 发现,视频模子在颠末大规模训练后,会表现出许多风趣的新能力。这些能力使 Sora 能够模拟物理世界中的人、动物和环境的某些方面。这些特性的出现没有任何明白的三维、物体等归纳弊端 — 它们纯粹是规模征象
1.3.2 sora真的会模拟真实物理世界了么

对于“sora真的会模拟真实物理世界”这个问题,网上的解读非常多,很多人说sora是通向通用AGI的必经之路、不但是一个视频生成,更是模拟真实物理世界的模拟器,这个事 我个人觉得从技能的客观角度去探讨更符合,那样会让咱们的思维、认知更岑寂,而非人云亦云、终极不知所云
起首,作为“物理世界的模拟器”,需要能够在虚拟环境中重现物理现实,为用户提供一个逼真且不违反「物理规律」的数字世界
比如苹果不能突然在空中漂泊,这不符合牛顿的万有引力定律;比如在光线照射下,物体产生的阴影和高光的分布要符合光影规律等;比如物体之间产生碰撞后会破裂或者弹开
其次,李志飞等人在《为什么说 Sora 是世界的模拟器?》一文中提到,技能上至少有两种方式可以实现这样的模拟器

   虚幻引擎(Unreal Engine,UE)就是这种物理世界的模拟器
    不同于 UE 这一类渲染引擎,Sora 并没有显式地对物理规律背后的数学公式去“硬编码”,而是通过对互联网上的海量视频数据进行自监督学习,从而能够在给定一段笔墨描述的条件下生成不违反物理世界规律的长视频
与 UE 这一类“硬编码”的物理渲染引擎不同,Sora 视频创作的想象力来自于它端到端的数据驱动,以及跟LLM这类认知模子的无缝结合(比如ChatGPT已经确定了根本的物理常识)
最后值得一提的是,Sora 的训练可能用了 UE 合成的数据,但 Sora 模子自己应该没有调用 UE 的能力


第二部门 Sora相近技能的发展史:ViViT、DiT、VDT、NaViT、MAGVIT v2、W.A.L.T、VideoPoet

留意,和sora相关的技能实在有非常多,但有些技能在本博客之前的文章中写过了(详见本文开头),则本部门不再重复,比如DDPM、ViT、DALLE三代、Stable Diffusion(包罗潜伏空间LDM)等等
2.1 视频Transformer之ViViT:视频元素token化且时空编码(没加扩散过程、没带文本条件融合)

在具体介绍ViViT之前,先说三个在其之前的工作
而Google于2021年5月提出的ViViT(其对应论文为:ViViT: A Video Vision Transformer)便要尝试在视频中利用ViT模子,且他们充分借鉴了之前3D CNN因式分解等工作,比如考虑到视频作为输入会产生大量的时空token,处理时必须考虑这些长范围token序列的上下文关系,同时要兼顾模子效率问题
故作者团队在空间和时间维度上分别对Transformer编码器各组件进行分解,在ViT模子的底子上提出了三种用于视频分类的纯Transformer模子,如下图所示

区别于常规的二维图像数据,视频数据相当于需在三维空间内进行采样(拓展了一个时间维度),有两种方法来将视频
映射到token序列
(说白了,就是从视频中提取token,而后添加位置编码并对token进行reshape得到终极Transformer的输入
)

2.1.1 spatio-temporal attention

上文说过,Google在ViT模子的底子上提出了三种用于视频分类的纯Transformer模子,接下来,介绍下这三种模子
固然,由于论文中把一个没有啥技巧且盘算复杂度高的模子作为模子1:简朴地将从视频中提取的所有时空token,然后每个transformer层都对所有配对进行建模,类似Neimark_Video_Transformer_Network_ICCVW_2021_paper的工作(其证明了VTN可以高效地处理非常长的视频)

以是下述三个模子在论文中被分别称之为模子2、3、4
2.1.2 factorised encoder及其代码实现

第二个模子如下图所示,该模子由两个串联的transformer编码器组成:

对应的代码如下(为方便各人一目了然,我不仅给每一行代码都加上了注释,且把代码分解成了8块,每一块代码的重点都做了过细阐明)
2.1.3 factorised self-attention

第二个模子如下图所示,会先盘算空间自留意力(token中有相同的时间索引,相当于同一帧画面上的token元素),再盘算时间的自留意力(token中有相同的空间索引,相当于不同帧下同一空间位置的token,比如一直在视频的左上角那一块的token块)

2.1.4 factorised dot-product attention

由于实行表明空间-时间自留意力或时间-空间自留意力的顺序并不重要,以是第三个模子的结构如下图所示,一半的头仅在空间轴上盘算点积留意力,另一半头则仅在时间轴上盘算,且其参数数量增长了,因为有一个额外的自留意力层

不外,该模子通过利用dot-product点积留意力操作来取代因式分解factorisation操作,通过留意力盘算的方式来取代简朴的张量reshape。思想是对于空间留意力和时间留意力分别构建对应的键、值,如下图所示(图源自萝卜社长)

2.2 DiT:将扩散过程中的U-Net 换成 Transformer(2D图像生成,带文本条件融合)

2.2.1 DiT = VAE encoder + ViT + DDPM + VAE decoder

在ViT之前,图像范畴根本是CNN的天下,包罗扩散过程中的噪声估计器所用的U-net也是卷积架构,但随着ViT的横空出世,人们天然而然开始考虑这个噪声估计器可否用Transform架构来取代
2022年年底,William Peebles(当时在UC Berkeley,Peebles在




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4