Sora:视频生成模型作为世界模拟器

我们探索了视频数据上生成模型的大规模训练。具体来说,我们在可变持续时间、分辨率和长宽比的视频和图像上联合训练文本条件扩散模型。我们利用了一个在视频和图像潜在码的时空块上操作的变压器架构。我们规模最大的模型 Sora 能够生成一分钟的高保真视频。我们的结果表明,扩大视频生成模型的规模,是建立通用物理世界模拟器的一条有前景的途径。

Sora:一镜到底,惊艳了整个世界

本技术报告重点介绍(1)我们将各类视觉数据转化为统一表示的方法,使生成模型能够进行大规模训练,以及(2)对 Sora 的能力和局限性的定性评估。本报告未包含模型和实现的详细信息。

许多先前的研究工作已经使用各种方法研究了视频数据的生成建模,包括循环网络、1、2、3 生成对抗网络、4、5、6、7 自回归转换器、8、9 和扩散模型。10、11、12 这些工作通常专注于狭窄的视觉数据类别、较短的视频或固定大小的视频。 Sora 是视觉数据的通用模型——它可以生成跨越不同持续时间、长宽比和分辨率的视频和图像,最长可达一分钟的高清视频。

在这里插入图片描述

将视觉数据转化为块

我们从大型语言模型(LLM)中获取灵感,这些模型通过训练互联网规模的数据获得通用能力。13、14 LLM 范式部分成功的原因在于使用了令牌,这些令牌可以优雅地统一文本的多种模态——代码、数学和各种自然语言。在这项工作中,我们考虑视觉数据的生成模型如何继承此类好处。 LLM 有文本令牌,而 Sora 有视觉块。以前的研究已经表明,块是视觉数据模型的有效表示。15、16、17、18 我们发现,块是训练各种类型和图像生成模型的可扩展且有效的表示。

在高级别上,我们首先将视频压缩到较低维度的潜在空间,19 然后将表示分解为时空块,从而将视频转化为块。

视频压缩网络

我们训练了一个降低视觉数据维度的网络。20 这个网络以原始视频为输入,并输出一个同时在时间和空间上被压缩的潜在表示。 Sora 在这个压缩的潜在空间内进行训练,并随后生成视频。我们还训练了一个相应的解码器模型,将生成的潜在值映射回像素空间。

时空潜在块

给定压缩的输入视频,我们提取一系列时空块,这些块充当转换器的令牌。这种方案也适用于图像,因为图像只是具有单个帧的视频。我们基于块的表示使 Sora 能够训练可变分辨率、持续时间和长宽比的视频和图像。在推断时,我们可以通过在适当大小的网格中排列随机初始化的块来控制生成视频的大小。

用于视频生成的变换器扩展

Sora 是一个扩散模型21、22、23、24、25;给定输入噪声块(以及条件信息,如文本提示),它被训练来预测原始“干净”块。重要的是, Sora 是一个扩散转换器。26 转换器在各种领域中展示了出色的扩展性,包括语言建模13、14、计算机视觉15、16、17、18 和图像生成27、28、29。
在这里插入图片描述
在这项工作中,我们发现扩散转换器作为视频模型也能有效地扩展。下面,我们展示了随着训练的进行,具有固定种子和输入的视频样本的比较。随着训练计算量的增加,样本质量明显提高。

可变持续时间、分辨率、长宽比

过去的图像和视频生成方法通常会将视频调整大小、裁剪或修剪为标准大小,例如分辨率为 256x256 的 4 秒视频。我们发现,相反,在数据的原始大小上进行训练可以提供几个好处。

采样灵活性

Sora 可以采样宽屏 1920x1080p 视频、垂直 1080x1920 视频以及它们之间的所有内容。这让 Sora 能够直接以设备的原始长宽比创建内容。它还允许我们在以全分辨率生成之前,使用相同的模型快速生成较低大小的内容原型。

改进构图和构图

我们经验地发现,在视频的原始长宽比上进行训练可以改进构图和构图。我们将 Sora 与我们模型的一个版本进行了比较,该版本将所有训练视频裁剪为正方形,这是在训练生成模型时的常见做法。在正方形裁剪上训练的模型(左)有时会生成仅部分显示主体的视频。相比之下,来自 Sora(右)的视频具有改进的构图。

语言理解

训练文本到视频的生成系统需要大量的带有相应文本字幕的视频。我们将 DALL·E 330 中引入的重新标注技术应用于视频。我们首先训练一个高度描述性的字幕模型,然后使用它为训练集中的所有视频生成文本字幕。我们发现,在高度描述性的视频字幕上进行训练可以提高文本的保真度和视频的整体质量。

与 DALL·E 3 类似,我们还利用 GPT 将简短的用户提示转换为更长的详细字幕,然后将其发送到视频模型。这使 Sora 能够生成高质量的视频,准确遵循用户提示。

使用图像和视频进行提示

上面和我们的着陆页上的所有结果都展示了文本到视频的样本。但 Sora 也可以用其他输入进行提示,例如预先存在的图像或视频。这种能力使 Sora 能够执行广泛的图像和视频编辑任务——创建完美循环的视频、使静态图像动起来、在时间上前向或后向扩展视频等。

使 DALL·E 图像动起来

Sora 能够根据图像和提示作为输入生成视频。下面,我们展示了基于 DALL·E 231 和 DALL·E 330 图像生成的示例视频。

扩展生成的视频

Sora 还能够向前或向后扩展视频。以下是四个从生成的视频片段开始向后扩展的视频。因此,这四个视频的开头各不相同,但最终都以相同的结尾结束。

我们可以使用这种方法向前和向后扩展视频,以产生无缝的无限循环。

视频到视频的编辑

扩散模型使得从文本提示中编辑图像和视频的方法变得丰富多样。下面,我们将其中一种方法 SDEdit32 应用到 Sora 上。这种技术使 Sora 能够零镜头地转换输入视频的风格和环境。

连接视频

我们还可以使用 Sora 逐渐在两个输入视频之间进行插值,从而创建具有完全不同主题和场景组成的视频之间的无缝过渡。在下面的示例中,中间的视频在左侧和右侧对应的视频之间进行插值。

图像生成能力

Sora 也能够生成图像。我们通过在空间网格中排列一个时间长度为一帧的高斯噪声块来做到这一点。该模型可以生成可变大小的图像,最高分辨率为 2048x2048。

新兴的模拟能力

我们发现,当在大规模上进行训练时,视频模型会表现出许多有趣的新兴能力。这些能力使 Sora 能够模拟物理世界中的人、动物和环境的一些方面。这些属性是在没有任何明确的 3D、对象等归纳偏见的情况下出现的——它们完全是规模的现象。

3D 一致性。Sora 可以生成具有动态相机运动的视频。当相机移动和旋转时,人和场景元素会在三维空间中一致地移动。

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

与世界互动。Sora 有时可以模拟以简单方式影响世界状态的动作。例如,画家可以在画布上留下随时间持续的新笔触,或者一个人可以吃汉堡并留下咬痕。

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

这些能力表明,继续扩大视频模型的规模是实现高度能力的物理和数字世界模拟器,以及其中生活的物体、动物和人的发展的有前途的途径。

讨论

目前,Sora 作为模拟器存在许多限制。例如,它不能准确地模拟许多基本交互的物理性质,如玻璃破碎。其他交互,如吃食物,并不总是会导致对象状态的正确变化。我们在我们的着陆页面上列举了模型的其他常见故障模式,例如在长时间样本中发展的不一致性或对象的自发出现。

我们认为 Sora 目前所具备的能力表明,继续扩大视频模型的规模是实现高度能力的物理和数字世界模拟器,以及其中生活的物体、动物和人的发展的有前途的途径。

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

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

相关文章

第十四章 Linux面试题

第十四章 Linux面试题 日志t.log(访问量), 将各个ip地址截取,并统计出现次数,并按从大到小排序(腾 讯) http://192. 168200.10/index1.html http://192. 168.200. 10/index2.html http:/192. 168 200.20/index1 html http://192. 168 200.30/…

c++学习记录 STL初识—vector存放内置数据类型

#include<iostream> using namespace std; #include<vector> #include<algorithm>//标准算法头文件//容器&#xff1a;vector //算法&#xff1a;for_each //迭代器&#xff1a;vector<int>::iteratorvoid myPrint(int val) {cout << val <&l…

微服务篇之分布式系统理论

一、CAP定理 1.什么是CAP 1998年&#xff0c;加州大学的计算机科学家 Eric Brewer 提出&#xff0c;分布式系统有三个指标&#xff1a; 1. Consistency&#xff08;一致性&#xff09;。 2. Availability&#xff08;可用性&#xff09;。 3. Partition tolerance &#xff0…

力扣 187. 重复的DNA序列

1.题目 DNA序列 由一系列核苷酸组成&#xff0c;缩写为 A, C, G 和 T.。 例如&#xff0c;"ACGAATTCCG" 是一个 DNA序列 。 在研究 DNA 时&#xff0c;识别 DNA 中的重复序列非常有用。 给定一个表示 DNA序列 的字符串 s &#xff0c;返回所有在 DNA 分子中出现不止一…

医院LIS(全称Laboratory Information Management System)系统源码

目录 一、医院LIS系统概况 二、医院LIS系统建设必要性 三、为什么要使用LIS系统 四、技术框架 &#xff08;1&#xff09;总体框架 &#xff08;2&#xff09;技术细节 &#xff08;3&#xff09;LIS主要功能模块 五、LIS系统优势 &#xff08;1&#xff09;客户/用户…

JAVA工程师面试专题-《Mysql》篇

目录 一、基础 1、mysql可以使用多少列创建索引&#xff1f; 2、mysql常用的存储引擎有哪些 3、MySQL 存储引擎&#xff0c;两者区别 4、mysql默认的隔离级别 5、数据库三范式 6、drop、delete 与 truncate 区别&#xff1f; 7、IN与EXISTS的区别 二、索引 1、索引及索…

构建SatelliteRpc:基于Kestrel的RPC框架(整体设计篇)

背景 之前在.NET 性能优化群内交流时&#xff0c;我们发现很多朋友对于高性能网络框架有需求&#xff0c;需要创建自己的消息服务器、游戏服务器或者物联网网关。但是大多数小伙伴只知道 DotNetty&#xff0c;虽然 DotNetty 是一个非常优秀的网络框架&#xff0c;广泛应用于各种…

二叉树高频题目(不含树形DP)

二叉树高频题 二叉树的层序遍历 . - 力扣&#xff08;LeetCode&#xff09; 按点弹出 class Solution { public:vector<vector<int>> levelOrder(TreeNode* root) {vector<vector<int>>ans;if(root!nullptr){queue<TreeNode*>q;unordered_map&…

遥感、航拍、影像等用于深度学习的数据集集合

遥感图像的纹理特征异常繁杂&#xff0c;地貌类型多变&#xff0c;人工提取往往存在特征提取困难和特征提取不准确的问题&#xff0c;同时&#xff0c;在这个过程中还会耗费海量的人力物力。随着计算力的突破、数据洪流的暴发和算法的不断创新&#xff0c;在具有鲜明“大数据”…

SpringBoot:自定义starter

点击查看&#xff1a;LearnSpringBoot08starter 点击查看&#xff1a;LearnSpringBoot08starterTest 点击查看更多的SpringBoot教程 一、主要流程 1. 先创建空的project 2. 打开空的project 结构 图选中model 点击 3. 创建 model&#xff08;Maven&#xff09;启动器 提…

Microsoft的PromptBench可以做啥?

目录 PromptBench简介 PromptBench的快速模型性能评估 PromptBench数据集介绍 PromptBench模型介绍 PromptBench模型加载遇到的问题 第一次在M1 Mac上加载模型 vicuna和llama系列模型 PromptBench各个模型加载情况总结 PromptBench的Prompt快速工程 chain of thought…

C++——二叉搜索树

二叉搜索树 二叉搜索树&#xff1a; 又为搜索二叉树&#xff0c;一般具有以下的性质 若它的左子树不为空&#xff0c;则左子树上所有的节点的值都小于父亲节点若它的右子树不为空&#xff0c;则右子树上所有的节点的值都大于父亲节点它的左右子树也都为二叉搜索树 二叉搜索树…

设计模式六:策略模式

1、策略模式 策略模式定义了一系列的算法&#xff0c;并将每一个算法封装起来&#xff0c;使每个算法可以相互替代&#xff0c;使算法本身和使用算法的客户端分割开来&#xff0c;相互独立。 策略模式的角色&#xff1a; 策略接口角色IStrategy&#xff1a;用来约束一系列具体…

基于SpringBoot的航班进出港管理系统

文章目录 项目介绍主要功能截图&#xff1a;部分代码展示设计总结项目获取方式 &#x1f345; 作者主页&#xff1a;超级无敌暴龙战士塔塔开 &#x1f345; 简介&#xff1a;Java领域优质创作者&#x1f3c6;、 简历模板、学习资料、面试题库【关注我&#xff0c;都给你】 &…

使用GPT生成python图表

首先&#xff0c;生成一脚本&#xff0c;读取到所需的excel表格 import xlrddata xlrd.open_workbook(xxxx.xls) # 打开xls文件 table data.sheet_by_index(0) # 通过索引获取表格# 初始化奖项字典 awards_dict {"一等奖": 0,"二等奖": 0,"三等…

消息中间件篇之Kafka-高性能设计

一、高性能设计 消息分区&#xff1a;不受单台服务器的限制&#xff0c;可以不受限的处理更多的数据。 顺序读写&#xff1a;磁盘顺序读写&#xff0c;提升读写效率。 页缓存&#xff1a;把磁盘中的数据缓存到内存中&#xff0c;把对磁盘的访问变为对内存的访问。 零拷贝&a…

计算机网络面经-从浏览器地址栏输入 url 到显示主页的过程?

大概的过程比较简单&#xff0c;但是有很多点可以细挖&#xff1a;DNS解析、TCP三次握手、HTTP报文格式、TCP四次挥手等等。 DNS 解析&#xff1a;将域名解析成对应的 IP 地址。TCP连接&#xff1a;与服务器通过三次握手&#xff0c;建立 TCP 连接向服务器发送 HTTP 请求服务器…

unity hub (第一部)初学配置

1、安装Unity Hub 2、设置中文 3、安装编辑器 4、新建项目 5、新建完成后进入编辑器 6、 编辑器设置中文 editPreferencesLanguages选择中文

2.22 作业

顺序表 运行结果 fun.c #include "fun.h" seq_p create_seq_list() {seq_p L (seq_p)malloc(sizeof(seq_list));if(LNULL){printf("空间申请失败\n");return NULL;}L->len 0; bzero(L,sizeof(L->data)); return L; } int seq_empty(seq_p L) {i…

Linux第63步_为新创建的虚拟机添加必要的目录和安装支持linux系统移植的软件

1、创建必要的目录 输入密码“123456”&#xff0c;登录虚拟机 这个“zgq”&#xff0c;是用户名&#xff0c;也是下面用到的的“zgq”目录。 1)、创建“/home/zgq/linux/”目录 打开终端&#xff0c;进入“/home/zgq/”目录 输入“mkdir linux回车”&#xff0c;创建“/ho…