当前位置: 首页 > news >正文

【OpenAI Sora】开启未来:视频生成模型作为终极世界模拟器的突破之旅

这份技术报告主要关注两个方面:(1)我们的方法将各种类型的视觉数据转化为统一的表示形式,从而实现了大规模生成模型的训练;(2)对Sora的能力和局限性进行了定性评估。报告中不包含模型和实现细节。

在以往的研究中,人们使用了多种方法对视频数据进行生成建模,包括循环网络、生成对抗网络、自回归变换器和扩散模型等。然而,这些方法通常只针对特定类型、较短长度或固定分辨率的视觉数据进行研究。Sora是一种通用的视觉数据模型,它能够生成跨越不同持续时间、宽高比和分辨率的视频和图像,甚至可以生成一分钟的高清视频。

将视觉数据转化为补丁

我们受到大型语言模型的启发,这些模型通过在互联网规模的数据上进行训练获得了通用能力。语言模型的成功部分得益于优雅地统一了文本的多种形式,如代码、数学和各种自然语言。在这项工作中,我们考虑了如何使视觉数据的生成模型也能继承这些优势。与语言模型使用文本标记不同,Sora使用视觉“补丁”。之前的研究已经证明,补丁是一种对视觉数据模型而言有效的表示形式。我们发现,补丁是一种高度可扩展且有效的表示形式,适用于对多种类型的视频和图像进行生成模型的训练。

Figure Patches

从较高层次上来说,我们将视频转化为补丁的过程是先将视频压缩为低维潜变量空间,然后将表示分解为时空补丁。

视频压缩网络

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

时空潜在补丁

对于压缩的输入视频,我们提取了一系列时空补丁,这些补丁充当了Transformer的标记。由于图像只是单帧的视频,所以这个方案也适用于图像。我们基于补丁的表示使得Sora能够在具有不同分辨率、持续时间和纵横比的视频和图像上进行训练。在推理阶段,我们可以通过将随机初始化的补丁按照适当大小的网格排列来控制生成视频的尺寸。

为视频生成扩展Transformer

Sora是一个扩散模型,通过输入噪声补丁(以及类似文本提示的条件信息),它被训练来预测原始的“清晰”补丁。重要的是,Sora是一个扩散的Transformer。Transformer在各个领域都展示了卓越的可扩展性,包括语言建模、计算机视觉和图像生成。

Figure Diffusion

在这项工作中,我们发现扩散Transformer在作为视频模型时也能有效地进行扩展。下面,我们展示了在训练进行时,使用固定种子和输入的视频样本的比较。随着训练计算的增加,样本的质量显著提高。

可变的持续时间、分辨率和纵横比

过去处理图像和视频生成的方法通常会将视频调整大小、裁剪或修剪为标准尺寸,例如,256x256分辨率的4秒视频。然而,我们发现对原始尺寸的数据进行训练会带来几个优势。

采样灵活性

Sora能够采样宽屏的1920x1080p视频、垂直的1080x1920视频以及介于两者之间的各种尺寸。这使得Sora可以直接按照原生纵横比为不同设备创建内容。它还使我们能够在生成全分辨率内容之前,通过较低的尺寸快速原型开发内容,而所有这些都是使用同一个模型实现的。

构图和组图的改进

我们基于实证发现,以原生纵横比训练视频可以改善构图和组图效果。我们将Sora与将所有训练视频裁剪为正方形的模型进行了比较,这是训练生成模型时常见的做法。以正方形裁剪训练的模型(左图)有时会生成只有主体部分可见的视频。相比之下,Sora生成的视频(右图)具有改善的构图。

语言理解

训练文本到视频生成系统需要大量带有相应文本标题的视频。我们应用了DALL·E 3中引入的重新标题技术来处理视频。我们首先训练一个高度描述性的标题模型,然后使用该模型为我们训练集中的所有视频生成文本标题。我们发现,训练基于高度描述性视频标题的模型不仅可以提高文本的准确性,还可以提高视频的整体质量。

与DALL·E 3类似,我们还利用GPT将短用户提示转化为更详细的标题,并将其发送到视频模型中。这使得Sora能够生成高质量的视频,准确地遵循用户的提示。

使用图像和视频进行提示

以上所有结果以及我们 首页中的示例都展示了文本到视频的样本。但是Sora也可以通过其他输入进行提示,例如预先存在的图像或视频。这种能力使得Sora能够执行各种图像和视频编辑任务,例如创建完美循环的视频,将静态图像动画化,将视频向前或向后扩展等。

DALL·E图像的动画化

Sora能够根据输入的图像和提示生成视频。下面我们展示基于DALL·E 2[^31]和DALL·E 3[^30]图像生成的示例视频。

一只戴着贝雷帽和黑色高领衫的柴犬。

平面设计风格的怪物插画,描绘了一个多样化的怪物家族。这个家族包括一只毛茸茸的棕色怪物,一只带有天线的光滑黑色怪物,一只斑点绿色怪物,还有一只带有小圆点的微小怪物,它们都在一个充满趣味的环境中互动。

一张以逼真的云朵形状拼写“SORA”字样的图片。

在一个装饰华丽的历史大厅里,一个巨大的海浪达到高峰并开始崩溃。两名冲浪者抓住这个机会,巧妙地驾驭着这个波浪的面前行驶。

扩展生成的视频

Sora还能够扩展视频,无论是向前还是向后。下面是四个视频,它们都是从一个生成的视频片段开始向后扩展的。结果是,这四个视频的开头都不同,但最终都会达到相同的结尾。

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

视频到视频编辑

扩散模型为根据文本提示编辑图像和视频提供了大量的方法。下面我们将其中一种方法SDEdit[^32]应用到Sora上。这个技术使得Sora能够零样本地转换输入视频的风格和环境。

视频连接

我们还可以使用Sora逐渐插值两个输入视频之间,创建完全不同主题和场景构图的视频之间的无缝过渡。在下面的示例中,中间的视频是左边和右边对应视频之间的插值结果。

图像生成能力

Sora还可以生成图像。我们通过在时空范围为一个帧的空间网格中排列高斯噪声的块来实现这一点。该模型可以生成不同大小的图像,分辨率高达2048x2048。

一张女性秋天的特写肖像照,极致细节,浅景深。

充满活力的珊瑚礁,繁盛着五彩斑斓的鱼类和海洋生物

以哑光绘画风格呈现的数字艺术作品,描绘了一只年轻的老虎在一棵苹果树下。作品细节精美,绚丽多彩。

一座被雪覆盖的山间村庄,拥有舒适的小木屋和北极光的展示。使用高精度和逼真的数码单反相机,以50mm f/1.2镜头拍摄。

新兴的模拟能力

我们发现,在大规模训练的视频模型中,出现了一些有趣的新兴能力。这些能力使得Sora能够模拟物理世界中的人、动物和环境的一些方面。这些特性在没有明确的对3D、物体等的归纳偏见的情况下出现,它们纯粹是规模现象。

三维一致性。 Sora能够生成具有动态摄像机运动的视频。随着摄像机的移动和旋转,人物和场景元素在三维空间中保持一致的运动。

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

与世界互动。 Sora有时可以模拟对世界状态产生简单影响的行为。例如,一位画家可以在画布上留下持续存在的新笔触,或者一个人可以吃掉一个汉堡并留下咬痕。

模拟数字世界。 Sora还能够模拟人工过程,比如视频游戏。Sora可以同时以基本策略控制Minecraft中的玩家,同时以高保真度渲染世界及其动态。通过在提示中提到“Minecraft”,可以从Sora中引发这些能力。

这些能力表明,继续对视频模型进行扩展是开发高度能力的物理世界和数字世界以及其中的物体、动物和人的模拟器的有希望的路径。

讨论

目前,作为模拟器,Sora存在许多限制。例如,它不能准确地模拟许多基本交互的物理学,比如玻璃破碎。其他交互,比如吃东西,并不总是能正确地改变物体状态。我们在 我们的主页中详细列举了模型的其他常见故障模式,比如在长时间采样中出现的不连贯性或物体的突然出现。

我们相信,Sora目前的能力表明,继续对视频模型进行扩展是开发能力强大的物理世界和数字世界以及其中的物体、动物和人的模拟器的有希望的路径。

通过虚拟卡 WildCard 的方式来升级 GPT 4.0 最快了,大概2分钟就可以升级完成, 而且升级 GPT 4.0 价钱也不贵,虚拟卡一年10美元,GPT4 每个月也才 20美元。如果你觉得 GPT 4.0 对你可能有帮助,那就赶快来升级吧!
GPT-4.0 升级教程

相关文章:

【OpenAI Sora】开启未来:视频生成模型作为终极世界模拟器的突破之旅

这份技术报告主要关注两个方面:(1)我们的方法将各种类型的视觉数据转化为统一的表示形式,从而实现了大规模生成模型的训练;(2)对Sora的能力和局限性进行了定性评估。报告中不包含模型和实现细节…...

MVC 、DDD、中台、Java SPI(Service Provider Interface)

文章目录 引言I 单体架构DDD实现版本1.1 核心概念1.2 DDD四层架构规范1.3 案例1.4 请求转发流程II 领域服务调用2.1 菱形对称架构2.2 中台III Java SPI3.1 概念3.2 实现原理3.3 例子:本地SPI找服务see alsojava -cp</...

C++单例模式的实现

单例模式就是在整个程序运行期都只有一个实例。在代码实现方面&#xff0c;我们要限制new出多于一个对象这种情况的发生。而不是仅仅依靠无保障的约定。 目前大多数的编程语言的做法都是私有化构造函数&#xff0c;对外提供一个获取实例的接口。这样做的目的使实例的创建不能在…...

rust函数 stuct struct方法 关联函数

本文结合2个代码实例主要介绍了rust函数定义方法&#xff0c;struct结构体定义、struct方法及关联函数等相关基础知识。 代码1&#xff1a; main.rc #[derive(Debug)]//定义一个结构体 struct Ellipse {max_semi_axis: u32,min_semi_axis: u32, }fn main() {//椭圆&#xff0…...

浅谈基于中台模式的大数据生态体系的理解

这篇文章主要浅谈一下我对大数据生态体系建设的理解。 大数据生态系统为高并发&#xff0c;高吞吐&#xff0c;高峰值&#xff0c;高堆积等大规模数据的采集&#xff0c;处理&#xff0c;计算&#xff0c;存储&#xff0c;服务提供了完善的处理体系&#xff0c;致力于打造核心数…...

MySQL的锁机制

一&#xff1a;概述 锁是计算机协调多个进程或线程并发访问某一资源的机制&#xff08;避免争抢&#xff09;&#xff1b; 在数据库中&#xff0c;除传统的计算资源&#xff08;如CPU&#xff0c;RAM&#xff0c;I/O等&#xff09;的争用以外&#xff0c;数据也是一种供许多用…...

已解决ImportError: cannot import name ‘PILLOW_VERSION‘异常的正确解决方法,亲测有效!!!

已解决ImportError: cannot import name PILLOW_VERSION异常的正确解决方法&#xff0c;亲测有效&#xff01;&#xff01;&#xff01; 文章目录 问题分析 报错原因 解决思路 解决方法 总结 在Python项目开发中&#xff0c;依赖管理是保证项目正常运行的关键环节。然而&…...

力扣:300. 最长递增子序列

动态规划: 1. 先定义dp数组来表示在下标为i时最长递增子序列&#xff0c;先初始化一下每个下标的值为dp【i】1。同时我们要判断在下标i之前的最长的递增子序列为多少&#xff0c;在判断当前的下标i是否满足递增的条件满足的话就进行dp【i】的重新赋值。之后要更新接受的最长递…...

Swing程序设计(10)列表框,文本框,文本域,密码框

文章目录 前言一、列表框二、文本框&#xff08;域&#xff09; 1.文本框2.文本域三、密码框总结 前言 该篇文章简单介绍了Java中Swing组件里的列表框、文本框、密码框。 一、列表框 列表框&#xff08;JList&#xff09;相比下拉框&#xff0c;自身只是在窗体上占据固定的大小…...

【Java八股面试系列】JVM-常见参数设置

目录 堆内存相关 显式指定堆内存–Xms和-Xmx 显式新生代内存(Young Generation) 显式指定永久代/元空间的大小 垃圾收集相关 垃圾回收器 GC 日志记录 处理 OOM JDK监控和故障处理工具总结 堆内存相关 Java 虚拟机所管理的内存中最大的一块&#xff0c;Java 堆是所有线…...

【Python--Web应用框架大比较】

&#x1f680; 作者 &#xff1a;“码上有前” &#x1f680; 文章简介 &#xff1a;Python &#x1f680; 欢迎小伙伴们 点赞&#x1f44d;、收藏⭐、留言&#x1f4ac; Django Django太重了&#xff0c;除了web框架&#xff0c;自带ORM和模板引擎&#xff0c;灵活和自由度不…...

Effective Objective-C 学习第三周

理解引用计数 Objective-C 使用引用计数来管理内存&#xff1a;每个对象都有个可以递增或递减的计数器。如果想使某个对象继续存活&#xff0c;那就递增其引用计数&#xff1a;用完了之后&#xff0c;就递减其计数。计数变为 0时&#xff0c;就可以把它销毁。 在ARC中&#xf…...

人工智能学习与实训笔记(四):神经网络之NLP基础—词向量

人工智能专栏文章汇总&#xff1a;人工智能学习专栏文章汇总-CSDN博客 本篇目录 四、自然语言处理 4.1 词向量 (Word Embedding) 4.1.1 词向量的生成过程 4.1.2 word2vec介绍 4.1.3 word2vec&#xff1a;skip-gram算法的实现 4.2 句向量 - 情感分析 4.2.1 LSTM (Long S…...

【教程】Kotlin语言学习笔记(一)——认识Kotlin(持续更新)

写在前面&#xff1a; 如果文章对你有帮助&#xff0c;记得点赞关注加收藏一波&#xff0c;利于以后需要的时候复习&#xff0c;多谢支持&#xff01; 【Kotlin语言学习】系列文章 第一章 《认识Kotlin》 文章目录 【Kotlin语言学习】系列文章一、Kotlin介绍二、学习路径 一、…...

MySQL性能分析1

1、查看执行频次 查看当前数据库的INSERT,UPDATE,DELETE,SELECT的访问频次&#xff0c;得到当前数据库是以插入&#xff0c;更新和删除为主还是以查询为主&#xff0c;如果是以插入&#xff0c;更新和删除为主的话&#xff0c;那么优化比重可以轻一点儿。 语法&#xff1a; …...

四、案例 - Oracle数据迁移至MySQL

Oracle数据迁移至MySQL 一、生成测试数据表和数据1.在Oracle创建数据表和数据2.在MySQL创建数据表 二、生成模板文件1.模板文件内容2.模板文件参数详解2.1 全局设置2.2 数据读取&#xff08;Reader&#xff09;2.3 数据写入&#xff08;Writer&#xff09;2.4 性能设置 三、案例…...

ABC340 A-F题解

文章目录 A题目AC Code&#xff1a; B题目AC Code&#xff1a; C题目AC Code&#xff1a; D题目AC Code&#xff1a; E题目思路做法时间复杂度AC Code&#xff1a; F题目思路AC Code&#xff1a; A 题目 模拟即可&#xff0c;会循环都能写。 AC Code&#xff1a; #include …...

微软 CMU - Tag-LLM:将通用大语言模型改用于专业领域

文章目录 一、前言二、主要内容三、总结 &#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ 一、前言 论文地址&#xff1a;https://arxiv.org/abs/2402.05140 Github 地址&#xff1a;https://github.com/sjunhongshen/Tag-LLM 大语言模型&#xff08…...

Kafka集群安装与部署

集群规划 准备工作 安装 安装包下载&#xff1a;链接&#xff1a;https://pan.baidu.com/s/1BtSiaf1ptLKdJiA36CyxJg?pwd6666 Kafka安装与配置 1、上传并解压安装包 tar -zxvf kafka_2.12-3.3.1.tgz -C /opt/moudle/2、修改解压后的文件名称 mv kafka_2.12-3.3.1/ kafka…...

C++初阶(十一) list

一、list的介绍及使用 1.1 list的介绍 list的文档介绍 1. list是可以在常数范围内在任意位置进行插入和删除的序列式容器&#xff0c;并且该容器可以前后双向迭代。 2. list的底层是双向链表结构&#xff0c;双向链表中每个元素存储在互不相关的独立节点中&#xff0c;在节点…...

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇&#xff0c;在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下&#xff1a; 【Note】&#xff1a;如果你已经完成安装等操作&#xff0c;可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作&#xff0c;重…...

XCTF-web-easyupload

试了试php&#xff0c;php7&#xff0c;pht&#xff0c;phtml等&#xff0c;都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接&#xff0c;得到flag...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略&#xff0c;并且实现了基本的选区操作&#xff0c;还调研了自绘选区的实现。那么相对的&#xff0c;我们还需要设计编辑器的选区表达&#xff0c;也可以称为模型选区。编辑器中应用变更时的操作范围&#xff0c;就是以模型选区为基准来…...

在rocky linux 9.5上在线安装 docker

前面是指南&#xff0c;后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...

聊聊 Pulsar:Producer 源码解析

一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台&#xff0c;以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中&#xff0c;Producer&#xff08;生产者&#xff09; 是连接客户端应用与消息队列的第一步。生产者…...

ServerTrust 并非唯一

NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...

JDK 17 新特性

#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持&#xff0c;不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的&#xff…...

如何在最短时间内提升打ctf(web)的水平?

刚刚刷完2遍 bugku 的 web 题&#xff0c;前来答题。 每个人对刷题理解是不同&#xff0c;有的人是看了writeup就等于刷了&#xff0c;有的人是收藏了writeup就等于刷了&#xff0c;有的人是跟着writeup做了一遍就等于刷了&#xff0c;还有的人是独立思考做了一遍就等于刷了。…...

dify打造数据可视化图表

一、概述 在日常工作和学习中&#xff0c;我们经常需要和数据打交道。无论是分析报告、项目展示&#xff0c;还是简单的数据洞察&#xff0c;一个清晰直观的图表&#xff0c;往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server&#xff0c;由蚂蚁集团 AntV 团队…...

使用 SymPy 进行向量和矩阵的高级操作

在科学计算和工程领域&#xff0c;向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能&#xff0c;能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作&#xff0c;并通过具体…...