Sora技术详解及影响分析!

 Datawhale干货 

作者:李孝杰,清华大学,Datawhale成员

ae8a96876d245b6828c2375384a202aa.png

从openai sora[1]的技术报告首段可以看出sora的野心远远不止视频生成,他们的目标是通过视频数据来学习一个世界模型或者世界模拟器,这才是真正令人兴奋和激动的部分。

1-数据工程

1-1 采用patches统一训练数据格式

最早在ViT[2]中出现将图片分patch输入给transformer。

8314cb5c504f8d71a8518b37309c782b.png

Sora的做法会有些不同,首先通过一个encoder【VAE结构】将视频帧压缩到一个低维度隐式空间(包含时间和空间上的压缩),然后展开成序列的形式送入模型训练,同样的模型预测也是隐式的序列,然后用decoder解码器去解码映射回像素空间形成视频。注意在编码成Spacetime latent patches的时候可能用到了ViViT[3]的时空编码方式

08db16496d73a3b9ddff415e04947049.png

如此一来有两个优势:

  • 统一互联网上不同大小格式的视频和图片数据,统一为patches的格式输入

  • 具有可扩展性,类似于llm中的token,数据格式往往跟网络结构相匹配的

  • 在推理阶段可以通过将patches组合成不同形状从而控制视频生成的尺寸大小

1-2 在原始图片尺寸上训练

优点是使得视频在生成采样时更具有灵活性,可以生成不同尺寸的视频

  • 不需要像2D图片一样去做一些旋转、剪切等数据增强工作,这样反而会影响最终的生成效果,原因可能是因为本来的视频数据是人为拍摄的(具有合理的角度和构图先验),如果去做裁剪,反而破坏了这样的先验信息。从而导致空间的不合理以及时间的不连续。

  • 不需要统一输入的尺寸,因为可以通过encoder将不同尺寸的视频压缩成patches的形式输入

1-3 使用re-captioning获得text-videos对

在训练阶段,将视频按1帧或者隔n帧用DALLE3(CLIP)按照一定的规范形成对应的描述文本,然后输入模型训练。

在推理阶段,首先将用户输入的prompt用GPT4按照一定的规范把它详细化,然后输入模型得到结果。

248aa3e6fe0ec5f1c04a4b10c6eec70c.png

DALLE2结构

2-网络结构

2-1 DiT[4]

230f137f537489a24944ef670dc7d3c9.png

简单来说就是tansformer+ddpm,核心就是用tansformer的结构替换掉stable diffusion中的unet结构,来预测噪声实现去噪。这个替换可以带来以下优势。

  • 随着数据规模或者训练时间的增强,模型表现的效果越好(大力出奇迹的前置条件)

  • 实验表明,模型越大,patches越小,效果越好

2-2 整体结构

参考b站up主ZOMI酱的画的Sora结构[5]。

84ab73f2028377841c156c62e65591af.png

这张图感觉相对完整准确了,这里补充几点可能的改动和补充。

  • 在Conditioning阶段可能不是一帧对应一个文本,而可能是几帧十几帧对应一段文本描述

  • 在编码成Spacetime latent patches的时候可能用到了ViViT[3]的时空编码方式

  • 输入给Decoder的内容应该是去噪之后的patches序列,这里用patches描述比tokens更准确

3-影响

首当其冲当然是影视和短视频行业,之后可能会推出sora的迭代,生成的时间可能更长类比chatgpt不断增大的输入token,可能sora以后可以生成更多更长的patches。比单纯的视频生成更有价值的是这条道路能不能通向大家都神往的AGI。似乎至少出现了苗头~

3-1 世界模型[6]?

大家广泛讨论和关注的是sora到底是不是或者具不具备世界模型的特征。

简单来讲Sora 具有以下几项能力:

  • 3D一致性。Sora可以生成具有动态摄像机运动的视频。随着摄像机的移动和旋转,人物和场景元素在三维空间中保持一致移动。可以认为它具有3D建模和3D生成的能力(可能还不够强,跟3D Gaussain[7]或者NeRF这种需要现实中的带位姿的图片来建模3D场景的能力还有一定细节差距)

  • 长程一致性和物体永久性。对于视频生成系统来说,一个重要的挑战是在采样长视频时保持时间上的一致性。我们发现,Sora通常能够有效地建模短程和长程的依赖关系,尽管并非总是如此。例如,我们的模型可以在人、动物和物体被遮挡或离开画面时仍然保持它们的存在。同样,它可以在一个样本中生成同一角色的多个镜头,并在整个视频中保持它们的外观。

  • 与世界互动。Sora有时可以模拟对世界产生简单影响的动作。例如,画家可以在画布上留下持续存在的新笔触,或者一个人可以吃掉一个汉堡并留下咬痕。可以实现一定程度的物理交互,但是很多时候还是有幻觉或者不准确,但毕竟它竟然可以“实现“!这个能力简直是王炸,CG还需要复杂的光锥模拟、渲染么?还需要复杂的方程和绑定控制么?流体毛发的研究还有价值么?

  • 模拟数字世界。Sora还能够模拟人工过程,一个例子是视频游戏。Sora可以同时使用基本策略控制Minecraft中的玩家,同时以高保真度渲染世界及其动态。通过提示Sora提到“Minecraft”的标题,可以激发这些能力。

很多大佬抨击深度学习不可解释性,可是这种解释性如果在模拟/生成的足够准确的情况下还有没有意义?(sora离足够准确还有一定的距离)

没有学过牛顿力学的人一样可以预测/知道物体自由落体的轨迹;没有学过压力和摩擦力的人一样能预测行驶中的自行车按住刹车的轨迹....对于模型或者机器的学习,是否一定要某个理论或者强制的条件约束?让它只依靠数据经验学习到底可不可行?

3-2 CV大一统?

Sora视频的生成能力同样可以扩展到2D和3D的生成,同样也影响诸如感知、理解等2D/3D任务,如果未来继续迭代变强,似乎能实现CV的大一统,并消灭CG。如果实现CV大一统,那么整个AI都在基于transformer的大力出奇迹的架构下实现了大一统。

参考 

[1] https://openai.com/research/video-generation-models-as-world-simulators 

[2] https://arxiv.org/abs/2010.11929 

[3] abhttps://arxiv.org/pdf/2103.15691.pdf 

[4] https://arxiv.org/abs/2212.09748

[5] https://www.bilibili.com/video/BV1Bx4y1k7BQ

[6] https://worldmodels.github.io/ 

[7] https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/

71143852d26d314b16f5b345d1b1c44d.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/487226.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

(done) 什么是特征值和特征向量?如何求特征值的特征向量 ?如何判断一个矩阵能否相似对角化?

什么是齐次方程? https://blog.csdn.net/shimly123456/article/details/136198159 行列式和是否有解的关系? https://blog.csdn.net/shimly123456/article/details/136198215 特征值和特征向量 参考视频:https://www.bilibili.com/video/BV…

LeetCode206: 反转链表.

题目描述 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例 解题方法 假设链表为 1→2→3→∅,我们想要把它改成∅←1←2←3。在遍历链表时,将当前节点的 next指针改为指向前一个节点。由于节点没有引用其前一…

npm install 失败,需要node 切换到 对应版本号

npm install 失败 原本node 的版本号是16.9,就会报以上错误 node版本问题了,我切到这个版本,报同样的错。降一下node(14.18)版本就好了 具体的方法:(需要在项目根目录下切换) 1. …

Linux虚拟机配置静态ip教程

文章目录 为什么要配置静态ip?一、找到网络配置文件二、修改网络配置文件三、重启网络服务或指定的网卡 为什么要配置静态ip? 稳定性和可靠性 。静态IP地址是固定的,不会随着时间或网络连接的变化而改变。这意味着其他设备可以始终准确地找到…

win系统下安装mysql5.7并配置环境变量、设置root用户和服务启动的详细操作教程

本篇文章主要讲解:win系统下安装mysql5.7并配置环境变量、设置root用户和服务启动的详细操作教程 日期:2024年2月22日 作者:任聪聪 一、mysql5.7版本的下载 官方下载地址:https://downloads.mysql.com/archives/community/ 步骤…

利用DevOps和ITSM的集成能促进IT技术

在当今这个快节奏和技术驱动的世界里,DevOps 和 IT 服务管理(ITSM)理念在培养心理健康和减少技术压力的工作环境中正在发挥重要作用。混合最佳实践,实现更好、更快、更安全的服务。 什么是DevOps? DevOps 专注于采用协…

vite为什么编译比webpack快

启动速度:Vite在启动时不需要打包,因为它支持ES模块加载,不需要编译和打包所有模块的依赖。这意味着Vite在启动时不需要像Webpack那样构建整个项目的文件,因此启动速度更快。 1 vite 采用 es 新规范 vite 中的 main.ts 中可以直…

项目优化-

前言 用户浏览菜品,添加购物车,下单等操作最终都会反映成一个sql,操作数据库。 但是当前系统只部署了一台数据库,读和写所有压力都由一台数据库承担,压力大;如果数据库服务器磁盘损坏则数据丢失&#xff0…

【多线程】多线程带来的的风险-线程安全 (重点)

这里写自定义目录标题 1 观察线程不安全2 线程安全的概念3 线程不安全的原因线程调度是随机的修改共享数据原⼦性可⻅性Java 内存模型 (JMM)指令重排序 4 解决之前的线程不安全问题 1 观察线程不安全 public class ThreadDemo {// 此处定义⼀个 int 类型的变量private static …

人工智能驱动的风险管理如何支持网络安全

人工智能 (AI)自 20 世纪 50 年代中期以来就已经出现,但由于 ChatGPT 等易于使用的应用程序以及生成式 AI的可用性不断提高,现在它经常出现在头条新闻中。 使用 Signal 监控进行的分析发现,根据 Signal 搜索的文章,人工智能在 20…

【Python笔记-设计模式】外观模式

一、说明 外观模式是一种结构型设计模式,能为程序库、框架或其他复杂类提供一个统一的接口。 (一) 解决问题 简化复杂系统的接口调用 (二) 使用场景 简化复杂系统:需要一个指向复杂子系统的直接接口, 且该接口的功能有限时重构复杂的代码…

128 Linux 系统编程6 ,C++程序在linux 上的调试,GDB调试

今天来整理 GDB 调试。 在windows 上我们使用vs2017开发,可以手动的加断点,debug。 那么在linux上怎么加断点,debug呢?这就是今天要整理的GDB调试工具了。 那么有些同学可能会想到:我们在windows上开发,…