上周openAI突然公布了Sora, 通过一段短的文字,Sora可以生成一段最长60秒的视频 (https://openai.com/sora ),现在该系统还不能开放给用户去用任何一段话去产生自己的视频,但从发布的已产生的视频来看是非常逼真震撼的。 我对大规模语言模型text-to-text比较了解,但对视频生成(text-to-video)不太了解。读了openAI的Sora 技术报告后,以下是我的初步理解。
训练数据是(video,cation description)对. 视频表述(caption description) 是用video-to-text 模型来产生,比如 用openAI 自己的 Dalle-3 模型。
其中一个关键点是,要把原始视频 (video) 压缩成低维度的时空数据,就像大规模语言模型一样,用token来表示某一时刻的语言信号,一段话实际上就是一段tokens (a list of tokens), Sora 用patch来表示某一时刻压缩了的视觉信号, 每个视频就成 a list of patches。这里需要有两个模型,一个模型把视频压缩成一段patches的压缩模型,另一个模型反过来把一段patches变成像素视频的解码模型。
有了一段patches后, 训练数据就成了(a list of patches, caption description). 这时候,就完全可以套用训练大规模语言模型的方法来训练生成模型,和语言模型一样,transformer 是基本的构造单元。
另一个关键是, 用户产生的text prompt都不长,可能就一两个句子,Sora 用chatgpt 的世界知识先把短的text 变成长的视频表述 (caption descripton). 这样的扩充完全依赖于chatgpt的对世界的理解,如果用完全的物理世界知识,从prompt生成视频描述的结构就更符合现实世界,相反就会牛头不对马嘴。所以这么看来,产生视频的能力的关键还是chatgpt对世界的理解。 当然这里假设,通过(a list of patches, caption description)训练的视频产生模型,以及视频压缩和解码模型可以很好的工作。
现在Sora生成的视频中还没有音频信号。 我认为,用同样的方法完全可以训练出一个音乐生成模型来做text-to-music, 也许text-to-music 比 text-to-video 容易些。
https://openai.com/research/video-generation-models-as-world-simulators