Sora 技术实现
Sora 的发布宛如一枚核弹,受到各行各业的追捧和关注。不可否认,Sora 生成的视频效果确实太炸裂了,甩开之前文生视频模型几条街。下面是 Sora vs. Pika vs. RunwayML vs. Stable Video 生成视频效果对比
Sora vs. Pika vs. RunwayML vs. Stable Video 生成视频效果对比
很明显可以看出 Sora 无论从分辨率、时长、精细度和对真实世界的还原程度上都远远好于其他模型。下表给出了详细的对比。
寻找 Sora 的技术实现线索
Sora 目前还没有论文发布。要想了解 Sora 后背的技术细节只有两个途径:
- Sora 技术报告
- Sora 团队核心成员过往的论文
Sora 的技术报告中关于技术细节阐述的很简略,文章开头开宗明义地点明“本报告不包含模型和实施细节”。但我们还是能了解到 Sora 采用的是 Transform 架构,其中一项很关键的技术是时空补片(Spacetime Patches),后面我会单独写一篇文章介绍 Spacetime Patches。
既然技术报告能获取的技术细节不多,我们就深挖一下团队核心成员的论文。Sora 团队的领导者是 Tim Brooks 和 William Peebles。两位负责人都是在去年(2023年)刚刚博士毕业,应该都有很新鲜热辣的论文。
再继续向上追溯他们的导师,我惊讶的发现他们都师从 Alyosha Efros。Alyosha Efros 是加州大学伯克利分校计算机科学教授,是一位在计算机视觉和计算机图形学领域具有广泛影响的学者也是 BAIR (Berkeley Artificial Intelligence Research Lab) 伯克利人工智能研究实验室的成员。他在计算机视觉领域最著名的研究是“纹理合成”和“图像补全”,这些技术可以自然地填补图像中的缺失部分,或者生成具有特定风格的新图像。
顺着这条线索,我找到了两篇我认为对 Sora 实现至关重要的论文:
- Sequential Modeling Enables Scalable Learning for Large Vision Models
- Scalable Diffusion Models with Transformers
其中第二篇论文的一作正是 Sora 技术领导人之一 William Peebles。
Sora 技术解析
Sequential Modeling Enables Scalable Learning for Large Vision Models 这篇论文通过类比 LLM,提出了 LVM(Large Visual Model)大型视觉模型。通过 420B 的海量图片、视频数据进行训练。类似 LLM 将句子转换为 Token 表征,LVM 将视频也可以看做是一个长语句,不同的是 LVM 将关键帧就是语句中的 Token。这个思路跟 Sora 技术报告中描述的关键技术非常相似。模型采用 LLM 训练中常用到的 Multi-task Learning 和 In-context Learning 进行训练。
关于自回归视觉模型(Auto-regressive Visual Models),首先训练一个大型的 Visual Tokenizer,将单张图片转成一串 Visual Token,接着训练一个自回归 Transformers 来处理 Visual 句子。论文采用 LLaMA 的 Transformer 架构,可以容纳 16 张图像组成的视觉句子。推测 Sora 是 3B 的模型我理解也是因为这里。
Sora 发布后,Scalable Diffusion Models with Transformers 这篇论文的二作——Saining Xie 给出了自己的分析。
我们可以肯定的有两点:
-
架构:Sora 的确是基于 Scalable Diffusion Models with Transformers(DiT)模型构建的——简而言之,它是一个以 Transformers 为主干的扩散模型:
DiT = [ VAE 编码器 + ViT + DDPM + VAE 解码器 ] \text{DiT} = [\text{VAE 编码器} + \text{ViT} + \text{DDPM} + \text{VAE 解码器}] DiT=[VAE 编码器+ViT+DDPM+VAE 解码器]
根据 Sora 的技术报告,这部分似乎没有太多额外的花哨功能。
-
“视频压缩网络”:看起来它只是一个 VAE,但是在原始视频数据上训练的。Tokenization 在获得良好的时间一致性方面可能发挥了重要作用。顺便说一下,VAE 是一个 ConvNet,所以 DiT 从技术上讲是一个混合模型 。
Xie 解释说,当初在开发 DiT 时,并没有专注于创造新奇性,而是优先考虑简单性和可扩展性。这两个特性给 DiT 带来了巨大的优势。
-
简单性意味着灵活性。人们经常忽略的关于原生 ViT 的酷炫之处在于,当涉及到处理输入数据时,它使你的模型变得更加灵活。例如,在掩码自编码器(MAE)中,ViT 帮助我们只处理可见的补片并忽略被掩码的补片。同样的,Sora 技术报告中提到“通过在适当大小的网格中排列随机初始化的补片,可以控制生成视频的大小。” 而 UNet 并不直接提供这种灵活性。
推测:Sora 也可能使用了 Google 的 Patch n’ Pack: NaViT,使 DiT 能够适应不同分辨率、时长和宽高比。
-
可扩展性是 DiT 论文的核心主题。首先,优化后的 DiT 运行得比 UNet 快得多。更重要的是,Sora 证明了 DiT 的扩展定律不仅适用于图像,现在也适用于视频——Sora 复制了在 DiT 中观察到的视觉扩展行为。
在 Sora 报告中,第一个视频的质量相当差,它使用的是基础模型大小。粗略计算:DiT XL/2 的 GFLOPs 是 B/2 模型的 5 倍,所以最终的 16X 计算模型可能是 3X DiT-XL 模型大小,这意味着 Sora 可能有约 3B 参数——如果上面的计算是合理的,这可能表明,训练 Sora 模型可能不需要像人们预期的那样多的 GPU,同时也暗示了未来的迭代可能会非常快速。
文章来源:https://www.toymoban.com/news/detail-831898.html
Sora 最关键的能力是 “涌现出的模拟能力”。在 Sora 之前,尚不清楚长时间的一致性是否能自发出现,或者是否需要复杂的主题驱动生成管道甚至是物理模拟器。Sora 已经证明,尽管不完美,但这些行为可以通过端到端训练实现。然而,有两个要点尚未讨论。文章来源地址https://www.toymoban.com/news/detail-831898.html
- 训练数据:完全没有讨论训练数据的来源和构建,这可能暗示数据很可能是 Sora 成功的至关重要的因素。有人推测 Sora 使用了来自游戏引擎的数据,以及电影、纪录片、电影长镜头等。
- (自回归)长视频生成:Sora 的一个重大突破是能够生成非常长的视频。制作 2 秒视频和制作 1 分钟视频之间的差异天壤之别。Sora 可能通过联合帧预测实现长视频生成。该预测允许自回归采样,然而一个主要挑战是如何解决错误累积并维持质量/一致性。这些技术细节非常重要,希望将来能揭秘。
到了这里,关于Sora 技术实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!