赞
踩
最近Sora的出世引起了许多关注,这里对相关的技术知识和模型结构做了一定的梳理,如有讲解有误的地方,敬请斧正。
根据Demo可以看出Sora的几个突出点:
虽然没有模型的实现细节,我们也仍然可以管中窥豹,探寻一下相关的技术实现。
该技术报告主要侧重于:
许多先前的工作已经研究了使用各种方法对视频数据进行生成建模,包括循环网络,生成对抗网络,自回归转换器,和扩散模型.这些工作通常集中在有限的视觉数据类别,较短的视频或固定大小的视频上。而Sora 是一种通用的视觉数据模型,它可以生成跨越不同持续时间、纵横比和分辨率的视频和图像,最多可生成一整分钟的高清视频。
使用模型 | 优势 | 劣势 |
---|---|---|
RNN | 适合时序数据的生成 | 无法捕捉长距离依赖 |
GANs | 通过对抗训练学习真实数据分布,生成的视频内容通常具有较高的真实性。 | 生成的结果缺乏多样性 |
Autoregressive Transformers | 能够捕捉长距离依赖关系并且有 更好的并行处理能力 | 一般有固定上下文窗口大小限制 |
Diffusion model | 可高度符合文本生成图像视频 | 背景难以固定,细节描述缺失 |
Sora能够生成多样化的视频和图像,相比于先前方法在视频长度、尺寸和固定大小方面的限制,它在各个方面都有了大的突破。
###前世今生
AN IMAGE IS WORTH 16X16 WORDS:TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE
VIT受NLP中Transformer的启发,将一个标准Transformer直接应用到图像上。为此,它将图像分割成小块,并将这些块转化为线性嵌入序列,作为Transformer的输入。图像块(image patches)就相当于NLP任务中的单词(token)来做处理。并以有监督的方式训练图像分类模型。
这也是Visual Patches的初始形态,VIT输入的时候将一张图像切割成同样大小的小块,将每个小块视为一个Token。每个Token被展平,通过一个线性层,加上相应的位置嵌入传递给模型。
需要注意的是,这里对应的图像而不是视频,两者之间最大的差异就是时间维度和空间维度特征的加入
ViViT: A Video Vision Transformer
在这种方法中,对视频样本中的每一帧应用类似ViT的分块方式。**每一个Token都是从一帧中提取的一个分块(patch)。然后把这些分块拼接起来形成模型的输入。**但是使用这种方法时,即使我们给Token添加了position embedding,仍然遗漏了这个patch在视频样本中的确切帧和时间索引,对每一块空间和时间位置编码不够充分存在明显缺陷。
Tubelet embedding
不同于从视频样本的每一帧中提取一个patch,这种方法从一段视频片段中提取一系列patch,将VIT的embedding扩展到三维度。一个patch的维度是t * w * h,即时间窗口乘以图片分块的宽和高。虽然这种方式增加了生成token的计算量,但是它很好地保留了时间信息,更加合理。
从Tubelet embedding可以看到,可以横跨时空的Patches——Spacetime Patches初现雏形。
Patch n’ Pack: NaViT, a Vision Transformer for any Aspect Ratio and Resolution
DDPM: 扩散模型最早是在2015年的Deep Unsupervised Learning using Nonequilibrium Thermodynamics文章中提出的,在2020年,Denoising Diffusion Probabilistic Models(简称为DDPM)出现,让扩散模型重新开始被提及。
LDM
DIT
U-ViT
在讲完一些背景知识,我们回归技术报告本身:
“我们首先将视频压缩为低维潜在空间,然后将表示分解为时空补丁,从而将视频转换为补丁。”
这里输入的视频被看成是若干帧图像, 它通过Visual Encoder生成在时间和空间上都压缩过的潜在表示,这些patch最终会被flatten成一维向量,送入diffusion model。根据引用文献可以看出,这里主要是参考了VIT,VIVIT和NAVIT对patch的处理。参考VIT将视频帧转换为固定大小的 patch,参考VIVIT将时间维度计入patch来插入帧之间的运动和变化,以此捕捉视频的动态信息。参考NAVIT解决不同的分辨率输入在训练时候带来的是大量的计算负载不均衡,让模型可以接受任意比例的视频/图片的输入和输出。
这里根据引用文献可以看出压缩模型是基于VAE,VQ- VAE技术的。这个网络以原始视频为输入,并输出一个在时间和空间上都被压缩的潜在表示。Sora在这个压缩的潜在空间上进行训练,并在此空间内生成视频。
参考NAVIT
可以理解为一个视频版本的DIT。DIT已经证明使用transformer结构很容易scale up,在此基础上,用高质量数据训练好的dit处理前面压缩好的潜在token表示,输出去噪的视觉表示
这里分为两部分:
文章还没写完的时候,看到微软最近发了一篇推测分析Sora及其结构的论文,里面介绍的更加详细,整体与上面的内容相似:
Sora: A Review on Background, Technology, Limitations, and Opportunities of Large Vision Models
它推断Sora主要包含三部分结构:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。