OpenAI视频生成Sora技术简析

时间:2024-02-29 18:01:41

基本介绍

Sora是春节期间OpenAI发布的产品,主要是通过文字描述生成视频,通过大规模视频数据训练而成的生成模型,当前还没开放试用。官方发布的技术报告:https://openai.com/research/video-generation-models-as-world-simulators

基本思想

本质上还是一个扩散模型框架,与之前图像生成类似,只是视频相当于图像加了时间序列,增加了一个时间维度。大致可以想象成通过解噪音,生成了很多图,然后在时间维度上叠加,得到生成的视频。但实际情况并不是一张张图生产后再拼凑成视频。

1a2757601c3289d708d802ed398c44ad.pngf6cce6b45f24c34ce1458236975893d8.png

DiT网络

在网络结构方面,相比于传统的扩散模型网络,Sora中了Diffusion Transformers(DiT)网络结构。这个网络其实就是把原来扩散模型中的Unet换成了Transformer结构,当前Transformer大有一统江湖的趋势,啥都换Transformer,这个主要就是因为Transformer有很强的扩展性。

80b4a2a6c2a0afae709a0a7044592e95.png

块(patch)转换

将可视数据转成块能够实现统一处理,块是一种高度可扩展且有效的表示方式。其实也是一种数据表示思想,类似于大语言模型的token化。他主要是通过一个编码器来对其进行转换的,原始视频输入到这个网络,得到的输出就是经过压缩后的潜在表示,Sora模型就是在这个潜在空间中进行训练。

06d87f3c1a1e64e731fca50ea6eb2722.pngb0d8fc7ade9ad5c3592e637b95ba4b48.png

从更高层面上看,实际上视频就被压缩到了一个指定的低纬度的潜在空间。潜在空间的块组合包含了视频的时间和空间信息,原始视频转换成了块组合。通过这种处理能够统一能够很好解决分辨率、持续时间、纵横比等不同的视频问题。最终再将这些块以序列的结果拼接起来,最终输入到编码器中,这是为了满足transformer网络结构输入的要求。

关于潜在空间

就是图片生成中使用的方法推广到视频,以前的稳定扩散模型中就是把图片经过编码器压缩到潜在空间,然后潜在空间再通过解码器来生成图片。像素级的生成方式所需要的显存和计算都很大,成本很高。潜在空间主要解决的问题就是维度灾难,降维后能减轻运算量,实际上就是一种压缩方式。

5719c75eb6b523a34744d6adf3840595.png

文本条件化扩散模型

所谓的条件化实际上就是将文本也向量化后作为输入的一部分进入到网络,这样就能够控制视频的生成。下图展示的是文本条件化的扩散模型,这里只画了图像的示意图,其实都差不多。整个过程应该也是经过几百上千次的去噪音操作,最终得到潜在空间表示后经过解码器生成最终的视频。

c686d54ff1258dad5f96ae1c3bdba5d3.pngc61cf43fa9be5726cf5ec7a46e90d5f5.png

关于数据样本

收集了大量带有相应文本字幕的视频,相当于有了视频的文字描述。但是这个描述还不够,因为人类对视频中的字幕添加时主要是关注主题对象,并没有对背景细节及图像颜色之类的进行描述,所以Sora还用了一种叫e-captioning的技术,它能丰富对视频的解读并增加细节文字描述,这个也是OpenAI的DALLE3产品提出来的一种技术。

还支持图像和视频提示

Sora还支持给定一张图片或视频,然后接着生成相关视频。这个实际上就是在输入时增加了图像和视频作为条件,也就是前面说的除了文本条件外,还有图像条件和视频条件。

38fb2530d71df93551d9d157169636ee.png

完整技术框架

完整的技术框架大致如下,视频经过压缩网络处理后成为块,然后进行扩散处理,这个过程其实主要就是训练一个噪音预测器。然后在生成的阶段会把潜在空间随机噪音、文本、视频、图片等多模态提示作为条件一起进行解噪音操作,最终得到潜在空间表示,将其经过解码器网络得到生成的视频。

d245acde4a3c4accbe57903beb2a3d3e.png