Sora原理解读
前言
创投圈有句名言——“领先半步是先驱,领先一步是先烈”,低代码的热度已经凋零,元宇宙的风随着 Vision Pro 的发布做了个仰卧起坐,又躺了回去。只有以 ChatGPT为代表的大语言模型,才真正把人工智能的热度重新拉了起来,推到了一个前所未有的高度——以前觉得 AGI 是痴人说梦,现在看发现自己可能才是坐井观天。
今年的大年初六,OpenAI 发布的“文生视频”工具 Sora,又一次的 AI 技术变革姿态席卷了大街小巷,成为每个饭局讨论的焦点。GPT-4 发布的震撼犹在眼前,又一次的行业冲击接踵而至。
这里说一下我对sora理解和思考。
1. 背景
在国内外大多数 AI 厂商还在卷大语言模型之际,OpenAI 悄无声息地发布了文生视频(text-to-video,简称 t2v)模型 Sora,仅仅几个视频 demo,就让整个 AI 圈子从惊讶到恐惧,惊讶于 Sora 生成的视频已经到达工业应用级别,恐惧于现有的 t2v 模型与 Sora 的差距竟然如此之大。
Sora 要解决的任务其实非常好理解,就是给定一段文本,模型需要根据该文本生成相应的视频,简单说就是 text-to-video(t2v)。t2v 本身并不是一个新问题,很多厂商都在研究 t2v 模型,只是当前的 t2v 模型生成的视频普遍质量较差,很难到达工业应用级别。在 Sora 出现前大家的普遍认知是:t2v 是一个很难的任务,工业级别 t2v 模型(或者说能真正实用的 t2v 模型)短时间内应该很难实现。然而,OpenAI 又又又一次打了所有人的脸,Sora 的发布意味着,这一天已经来了。
先看个 Sora 官方博客展示的 demo,当你向 Sora 输入:
“A stylish woman walks down a Tokyo street filled with warm glowing neon and animated city signage. She wears a black leather jacket, a long red dress, and black boots, and carries a black purse. She wears sunglasses and red lipstick. She walks confidently and casually. The street is damp and reflective, creating a mirror effect of the colorful lights. Many pedestrians walk about.”
Sora 则根据该文本生成以下长达1分钟的高清视频。
播放这个 demo 展现了 Sora 至少有以下突破:
- Sora 可以灵活地采用不同时长、分辨率和长宽比的视频
- Sora 有很强的语言理解能力
- 画质突破:视频非常高清,细节极其丰富;
- 帧率和连续性突破:视频帧率高、连续性好(无闪烁或明显的时序不一致);
- 时长突破:相比之前 t2v 模型仅能生成几秒的时长,Sora 可以生成长达1分钟的视频,这是之前 t2v 模型不敢想象的;
- 物理规则理解突破:视频中物体的运动、光影等似乎都非常符合自然世界的物理规则,整个视频看上去都非常自然和逼真。
那么 OpenAI 到底用了什么魔法能让 Sora 如此惊艳?接下来我们通过 OpenAI 给出的 Sora 技术报告来解答。
2. Sora 原理解读
如果用一句话来描述 Sora 训练建模过程,可以是:将原始视频通过一个视觉编码器(Visual Encoder)编码到隐空间(Latent Space)形成隐时空块(Spacetime Latent Patches),这些隐时空块(结合 text 信息)通过 Transformer 做 Diffusion 的训练和生成,将生成的隐时空块再通过视觉解码器(Visual Decoder)解码到像素空间(Pixel Space)。所以整个过程就是:Visual Encoding -> Latent Diffusion with Diffusion Transformer (DiT) -> Visual Decoding
这一步其实很好理解,就是通过一个变分自编码器(VAE)的 encoder 将高维的原始视频映射(压缩)到较为低维的隐空间(注意:不仅仅是空间上压缩了,时间上也进行了压缩),即得到该视频的低维隐空间特征(可以看成一个大的3D tensor),为了后续 Transformer 计算方便,将这个特征切成不重叠的 3D patches,再将这些 patches 拉平成一个 token 序列,这个 token 序列其实就是原始视频的表征了(即 Visual token 序列)。
在得到视觉表征(上述 Visual token 序列)后,Sora 借鉴了 DiT,使用 Transformer 来做 Diffusion Model 的训练,使用 Transformer 的好处在于可以输入任意长度的token序列,这样就不再限制输入视频的尺寸和时长,并且模型很容易 scale up(OpenAI 表示这个我熟)。同时,因为 Sora 想解决 t2v 的问题,所以 Sora 会将 text 的表征以某种形式 condition 到 Visual tokens 上(Sora 技术报告中未披露,但后文我会分析最可能的实现方法)来约束生成。
在 Diffusion Transformer 的训练中,给定噪声输入(e.g., 噪声 patches)并 conditioned on text 特征,模型被训练去预测原始视频的 patches(预测过程又叫 denoising 过程,具体可以参考 DDPM的训练算法),示意图如下:
这些 patches reshape 成视频 3D 特征再经过 VAE 的 decoder,就可以映射回像素空间,得到最后生成的视频。
3. Sora 成功的关键
- 大规模训练:这点毋庸置疑。大模型、大数据量、使用大规模算力,OpenAI 基本操作。
- 敢于突破常规、不屑于刷点:之前工作基本都采用 SD 预训练的 Visual Encoder,也知道该 encoder 多少有点不合理(比如只能处理固定 size 的输入),但没有人真的去重新训练一个更合理的 encoder(当然,更可能是算力不支持)。而 OpenAI 发现问题,就用算力来解决问题(大概率重新训练 Visual Encoder)。
- 实事求是+绝对领先的 sense:自回归的建模方式在 LLM 中大获成功,GPT 系列也出自 OpenAI,但这不代表“Autoregressive is everything”,Sora 告诉大家,生成视频无需采用自回归,直接 3D 建模 +Transformer encoder 结构就 ok。
- AGI 理念从上至下传播:Sam Altman 绝对是一个有大格局的人物,其最终目标是实现 AGI,我想整个 OpenAI 应该都会贯彻这样的理念,不管是 ChatGPT 还是 Sora,都能看到 AGI 的影子。
4. 写在最后
Sora 在日语中是“天空”的意思,引申含义还有“自由”。Sora 官方介绍页里就有无数象征自由的纸飞机在无序地探索自由,你也应该乘上想象的翅膀,探索你的知识财富与精神自由~
参考