OpenAI发布了视频生成模型Sora,最大的Sora模型能够生成一分钟的高保真视频。同时OpenAI称,可扩展的视频生成模型,是构建物理世界通用模拟器的一条可能的路径。
Sora能够生成横屏1920*1080视频,竖屏1080*1920视频,以及之间的所有内容。这使得Sora可以兼容不同的视频播放设备,根据特定的纵横比来生成视频内容,这也会大大影响视频创作领域,包括电影制作,电视内容,自媒体等。
除了文生视频,也可以用其他输入提示 Sora,例如预先存在的图像或视频。此功能使 Sora 能够执行各种图像和视频编辑任务——创建完美循环的视频、为静态图像制作动画、在时间上向前或向后扩展视频等。
具体案例参考官方技术报告:https://openai.com/research/video-generation-models-as-world-simulators
Sora的核心作者是Bill Peebles(https://www.wpeebles.com/)和Tim brooks(https://www.timothybrooks.com/about/)。
Sora团队的Leader是Aditya Ramesh(http://adityaramesh.com/), 他是DALLE、DALLE2、DALLE3的主要作者。
最新能力突破
(1)画质突破:视频非常高清,细节极其丰富;
(2)帧率和连续性突破:视频帧率高、连续性好(无闪烁或明显的时序不一致);
(3)时长突破:相比之前t2v模型仅能生成几秒的时长,Sora可以生成长达1分钟的视频,这是之前t2v模型不敢想象的;
(4)物理规则理解突破:视频中物体的运动、光影等似乎都非常符合自然世界的物理规则,整个视频看上去都非常自然和逼真。
申请(红队网络),邀请外部专家在多个阶段评估我们的模型和系统。
https://openai.com/form/red-teaming-network
Runway、Stable Diffusion 是基于扩散模型(Diffusion Model),扩散模型(Diffusion Model)的训练过程是通过多个步骤逐渐向图片增加噪点,直到图片变成完全无结构的噪点图片,然后在生成图片的时候,基于一张完全噪点的图片,逐步减少噪点,直到还原出一张清晰的图片。
文本模型像 GPT-4 则是 Transformer 模型。Transformer 则是一套编码器和解码器的架构,将文本编码成数字向量,然后解码的时候从数字向量还原出文本。
Sora 则是一个融合了两者的 Diffusion Transformer 模型。通过 Transformer 的编码器 - 解码器架构处理含噪点的输入图像,并在每一步预测出更清晰的图像版本。编码器负责对含噪点的输入进行编码,而解码器则负责生成更清晰图像的预测。
GPT-4 被训练以处理一串 Token,并预测出下一个 Token。Sora 不是预测序列中的下一个文本,而是预测序列中的下一个“Patch”。
在文本预测生成中,基本单位是 Token,Token 很好理解,就是一个单词或者单词的一部分。
将原始视频通过一个视觉编码器(visual encoder)编码到隐空间(latent space)形成隐时空块(spacetime latent patches),这些隐时空块(结合text信息)通过transformer做diffusion 的训练和生成,将生成的隐时空块再通过视觉解码器(visual decoder)解码到像素空间(pixel space)。
所以整个过程就是:visual encoding -> latent diffusion with diffusion transformer (DiT)-> visual decoding。
(1)Visual Encoding
通过一个变分自编码器(VAE)的encoder将高维的原始视频映射(压缩)到较为低维的隐空间(注意:不仅仅是空间上压缩了,时间上也进行了压缩),即得到该视频的低维隐空间特征(可以看成一个大的3D tensor),为了后续transformer计算方便,将这个特征切成不重叠的3D patches,再将这些patches拉平成一个token序列,这个token序列其实就是原始视频的表征了(即visual token序列)。
(2)Latent Diffusion with DiT
在得到视觉表征(上述visual token序列)后,Sora借鉴了DiT,使用transformer来做diffusion model的训练,使用transformer的好处在于可以输入任意长度的token序列,这样就不再限制输入视频的尺寸和时长,并且模型很容易scale up(OpenAI表示这个我熟)。同时,因为Sora想解决text2video的问题,所以Sora会将text的表征以某种形式condition到visual tokens上(Sora技术报告中未披露)来约束生成。
在diffusion transformer的训练中,给定噪声输入(e.g., 噪声patches)并conditioned on text特征,模型被训练去预测原始视频的patches(预测过程又叫denoising过程,具体可以参考DDPM中的训练算法),示意图如下,如今生成扩散模型的大火,则是始于 2020 年所提出的 DDPM(Denoising Diffusion Probabilistic Model)。
(3)Visual Decoding
第(2)步中,diffusion transformer可以生成的其实不是像素空间的视频,而是隐空间的视频表征(denoised patches),这些patches reshape成视频3D特征再经过第(1)步中的VAE的decoder,就可以映射回像素空间,得到最后生成的视频。
(1)Sora可以灵活地采用不同时长、分辨率和长宽比的视频
OpenAI发现之前的方法大多采用固定尺寸的视频(比如4s的256x256视频)去训练模型,和现实中任意长度、长宽比有较大gap,而采用原始尺寸的视频训练模型效果更好。得益于Sora采用的transformer结构,Sora可以输入任意多个visual patches(初始为noise patches),即可生成任意尺寸的视频。
不同的分辨率输入在训练时候带来的是大量的计算负载不均衡,一个最简单的做法就是直接padding到固定大小这种做大会引入大量不必要的计算量, 我们从openai的reference中推测他可能使用了google的NaVit里的技术降低了计算量,支持动态输入。
(2)Sora有很强的语言理解能力
训练t2v模型需要大量带有文本标注的视频,OpenAI采用DALL·E 3中的re-captioning技术来解决。首先训练一个高质量的视频标注模型(captioner model),然后它为训练集中的所有视频生成文本字幕。
另外,进一步利用GPT将视频标注模型生成的简短文本扩展成更长的文本有利于还利用Sora准确遵循用户文本提示生成高质量视频。
(3)如何保证长视频的质量
首先训练数据一定是下了很多功夫,从report中我们也看到openai使用了类似DALLE3的cationining技术,训练了自己的video captioner,用以给视频生成详尽的文本描述,进行模型训练。
其次为了保证视频的一致性,模型层应该不是通过多个stage方式来进行视频预测,而是整体预测了整个视频的latent,同时在训练过程中应该引入了auto regressive的task来去帮助模型更好的进行视频特征和帧间关系的学习。具体可以参考谷歌的W.A.L.T ( https://arxiv.org/abs/2312.06662 ) 工作。
它不能准确地模拟许多基本相互作用的物理过程,例如玻璃破碎。其他交互过程(例如吃食物)也不总是能正确预测。我们在登陆页面中列举了模型的其他常见故障模式,例如长时间样本中出现的不连贯性或对象的凭空出现。”
总结一下主要是:
(1)对世界的物理规则的理解还不完美;
(2)长视频生成时容易出现不连贯或者物体凭空出现的现象。
Jax:https://github.com/google/jax
https://yinglinzheng.netlify.app/diffusion-model-tutorial/
OpenAI官方信息从未表示Sora是world model,而是强调它是world simulator,我也觉得world simulator描述比较贴切。
https://github.com/LargeWorldModel/LWM
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。