SORA技术报告
文档链接:https://openai.com/research/video-generation-models-as-world-simulators
文章目录
- Video generation models as world simulators
- Turning visual data into patches
- Video compression network
- Spacetime latent patches
- Scaling transformers for video generation
- Variable durations, resolutions, aspect ratios
- Sampling flexibility
- Improved framing and composition
- Language understanding
- Prompting with images and videos
- Image generation capabilities
- Emerging simulation capabilities
- 3D consistency
- Long-range coherence and object permanence
- Interacting with the world
- Simulating digital worlds
- Discussion
Video generation models as world simulators
探索在视频数据上生成模型的大规模训练。具体而言,在可变持续时间,分辨率和宽高比的视频和图像上共同训练文本条件扩散模型;利用在视频和图片的隐空间的spacetime patches执行计算的Transformer架构。最大的模型Sora能够生成一分钟的高保真视频;结果表明,扩展视频生成模型是建立物理世界的通用模拟器的有前途的途径。
技术报告集中在以下两个方向:
- 如何将所有类型的视觉数据转换为统一表示的方法,用于大规模训练生成模型
- Sora能力和局限性的定性评估
许多先前的工作已经使用各种方法研究了视频数据的生成建模,包括递归网络、生成对抗性网络、自回归Transformers和扩散模型。这些工作基本关注狭义的视觉数据,关注较短的视频,或固定大小的视频。Sora是一个通用的视觉数据模型,它可以生成不同持续时间、宽高比和分辨率的视频和图像,最高可达一分钟的高清视频。
Turning visual data into patches
从大型语言模型中获得灵感,这些模型通过对互联网规模的数据进行训练来获得通用能力。LLM范式的成功在一定程度上得益于tokens的使用,这些tokrnd优雅地统一了文本的各种形式——代码、数学和各种自然语言。在这项工作考虑视觉数据的生成模型如何继承这些优势。LLMs有文本tokens,Sora有视觉patches。patches在先前已被证明是视觉数据模型的有效表示。本工作发现对于在各类视频、图片上训练生成模型,patches是一种高扩展、有效的表征。
在高维度上,首先将视频压缩到较低维度的潜在空间中,随后将视频表征分解为spacetime patches。
Video compression network
训练一个降低视觉数据维度的网络。该网络将原始视频作为输入,并输出在时间和空间上都被压缩的潜在表征。Sora与LDM相似,在潜在空间进行训练、生成视频;同时训练了一个对应的解码模型,将生成的隐向量映射回像素空间。
Spacetime latent patches
给定压缩输入视频,提取了一系列spacetime patches,此序列相当于transformer tokens。该方案也适用于图像,因为图像是带有单个帧的视频。基于patches的表示使Sora可以在可变分辨率,持续时间和纵横比的视频、图像上训练。推理时,可以通过在适当尺寸的网格中安排随机定位的patches来控制生成的视频的大小。
Scaling transformers for video generation
Sora是一个扩散模型,给定noisy patches或带有文本控制信息的patches,其通过预测原始clean patches的方式进行训练。重要的是,Sora是基于transformer的扩散模型。Transformer 在多个领域展示了卓越的扩展特性,包括语言建模、计算机视觉和图像生成。
这项工作发现扩散transformers也可以有效地缩放为视频模型。
Variable durations, resolutions, aspect ratios
之前的图像和视频生成方法通常会调整,裁剪或修剪视频的大小,例如256x256分辨率的4秒视频。本工作发现,相反,以其原始大小的数据进行训练会有更多优势。
Sampling flexibility
Sora 可以采样宽屏 1920x1080p 视频、垂直 1080x1920 视频以及介于两者之间的所有视频。 这使得 Sora 可以直接以其原生宽高比为不同设备创建内容;还使得能够在以全分辨率生成之前快速以较低尺寸制作原型内容
Improved framing and composition
根据经验发现,对视频的原始纵横比进行训练可以改善构图和框架。将 Sora 与将所有训练视频裁剪为正方形(训练生成模型时的常见做法)的模型版本进行比较。 在方形数据上训练的模型有时会生成仅部分可见主体的视频。 相比之下,Sora的视频的取景效果有所改善。
Language understanding
训练文本到视频生成系统需要大量带有相应文本字幕的视频。 将 DALL·E 3 中引入的re-captioning技术应用于视频。首先训练一个高度描述性的字幕生成器模型,然后使用它为训练集中的所有视频生成文本字幕。 发现,对高度描述性视频字幕进行训练可以提高文本保真度以及视频的整体质量。
与 DALL·E 3 类似,还利用了 GPT 将简短的提示词转换为较长的详细字幕,然后发送到视频模型。 这使得 Sora 能够生成准确遵循提示词的高质量视频。
Prompting with images and videos
除文本外,Sora 也可以通过其他输入进行提示,例如预先存在的图像或视频。 此功能使 Sora 能够执行各种图像和视频编辑任务 - 创建完美的循环视频、动画静态图像、向前或向后扩展视频等。
- Animating DALL·E images:能够以给定的视频和提示词作为输出生成视频
- Extending generated videos:能够在时间上向前或向后扩展视频
- Video-to-video editing:扩散模型实现了多种根据文本提示编辑图像和视频的方法
- Connecting videos:在两个输入视频之间逐渐进行插值,从而在具有完全不同主题和场景构成的视频之间创建无缝过渡
Image generation capabilities
Sora 还能够生成图像,通过在时间范围为一帧的空间网格中排列高斯噪声块来实现这一点。该模型可以生成各种尺寸的图像,分辨率高达 2048x2048。
Emerging simulation capabilities
本工作发现,视频模型在大规模训练时表现出许多有趣的新兴功能。这些功能使 Sora 能够模拟现实世界中人、动物和环境的某些方面。在没有引入对 3D、物体等任何明确的归纳偏差情况下涌现了这些属性——它们纯粹是尺度现象。
3D consistency
Sora 可以生成带有动态摄像机运动的视频。随着摄像机的移动和旋转,人和场景元素在三维空间中一致移动。
Long-range coherence and object permanence
视频生成系统面临的一个重大挑战是在采样长视频时保持时间一致性。本工作发现 Sora 通常(尽管并非总是)能够有效地对短期和长期依赖关系进行建模。例如,Sora可以保留人、动物和物体,即使它们被遮挡或离开框架。同样,它可以在单个样本中生成同一角色的多个镜头,并在整个视频中保持其外观。
Interacting with the world
Sora有时可以用简单的方式模拟影响世界状况的动作。例如,画家可以在画布上留下新的笔触,并随着时间的推移而持续存在,或者一个人可以吃汉堡并留下咬痕。
Simulating digital worlds
Sora 还能够模拟人工过程——一个例子是视频游戏。 Sora 可以同时通过基本策略控制《我的世界》中的玩家,同时以高保真度渲染世界及其动态。这些能力可以通过用带“Minecraft”的caption提示 Sora 触发。
这些功能表明,视频模型的持续扩展是开发物理和数字世界以及生活在其中的物体、动物和人的高性能模拟器的一条有前途的道路。
Discussion
Sora目前作为模拟器显示出许多限制。例如,它没有准确模拟许多基本交互的物理,比如玻璃破碎。其他交互,比如吃东西,不总是会产生正确的物体状态变化。模型的其他常见故障模式还包括在长时间样本中出现的不一致性或物体的自发出现。
Sora目前具备的能力表明,继续扩展视频模型是通向开发能够模拟物理世界、数字世界以及其中的物体、动物和人类的有能力模拟器的一个有前景的路径。
相关文章:

SORA技术报告
文档链接:https://openai.com/research/video-generation-models-as-world-simulators 文章目录 Video generation models as world simulatorsTurning visual data into patchesVideo compression networkSpacetime latent patchesScaling transformers for video …...

Python Web开发记录 Day1:HTML
名人说:莫道桑榆晚,为霞尚满天。——刘禹锡(刘梦得,诗豪) 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 一、HTML1、前端引入和HTML标签①前端引入②浏览…...

六、回归与聚类算法 - 模型保存与加载
目录 1、API 2、案例 欠拟合与过拟合线性回归的改进 - 岭回归分类算法:逻辑回归模型保存与加载无监督学习:K-means算法 1、API 2、案例...

Spring事务模板及afterCommit存在的坑
大家好,我是墨哥(隐墨星辰)。今天的内容来源于两个线上问题,主要和大家聊聊为什么支付系统中基本只使用事务模板方法,而不使用声明式事务Transaction注解,以及使用afterCommit()出现连接未按预期释放导致的…...

【区块链】联盟链
区块链中的联盟链 写在最前面**FAQs** 联盟链:区块链技术的新兴力量**联盟链的定义****联盟链的技术架构**共识机制智能合约加密技术身份认证 **联盟链的特点**高效性安全性可控性隐私保护 **联盟链的应用场景****金融服务****供应链管理****身份验证****跨境支付**…...
Oracle case when end和decode的区别
Oracle中的CASE WHEN和DECODE都是条件表达式,但它们在某些方面有所不同。 CASE WHEN: CASE WHEN是一个条件表达式,允许您基于条件返回不同的值。它具有以下结构: sql CASE WHEN condition1 THEN result1 WHEN condition2 THE…...
Java导出pdf格式文件
Java实现导出pdf |word |ppt 格式文件 controller层: ApiOperation("导出")GetMapping("/download")public void download(RequestParam("userId") Long userId ,HttpServletResponse response) {reportResul…...

Socket、UDP、TCP协议和简单实现基于UDP的客户端服务端
目录 Socket TCP和UDP区别 UDP:无连接,不可靠传输,面向数据报,全双工 TCP:有连接,可靠传输,面向字节流,全双工 无连接和有连接 可靠传输和不可靠传输 面向数据报和面向字节流…...

发布订阅模式:观察者模式的一种变体
发布-订阅模型(Publish-Subscribe Model)的底层机制通常基于观察者模式。 发布-订阅模型是观察者模式的一种变体。 在观察者模式中,主题(或被观察者)维护了一组观察者,当主题的状态发生变化时,…...

TiDB离线部署、Tiup部署TiDB
先做tidb准备工作: 部署 TiDB 前的环境检查操作:TiDB 环境与系统配置检查 | PingCAP 文档中心 1.查看数据盘 fdisk -l (2,3)本人的分区已经是 ext4 文件系统不用分区,具体官方文档的分区: 4.查看数据盘…...
10GBase-T万兆电口模块助力数据中心实现高效数据传输
10GBase-T万兆电口模块一种高速、高效的网络连接解决方案,具有快速传输速度和稳定可靠的特点。它可以在数据中心中广泛应用,提供出色的网络性能和可扩展性,为数据中心的发展做出了重要的贡献。 一、10GBase-T万兆电口模块的特点与优势 高速传…...
使用Docker中部署GitLab 避坑指南
在容器化的世界中,Docker已经成为了我们部署和管理应用程序的首选工具。然而,在使用Docker部署GitLab时,我们可能会遇到一些问题,本文将为你提供一份详细的避坑指南。网上的教程有的都没说清楚,或者干脆是错的。摸索了…...

我的NPI项目之设备系统启动(八) -- Android14的GKI2.0开发步骤和注意事项
GKI是什么? Google为什么要推行GKI? GKI全称General Kernel Image。GKI在framework和kernel之间提供了标准接口,使得android OS能够轻松适配/维护/兼容不同的设备和linux kernel。 Google引入GKI的目的是将Framework和Kernel进一步的解耦。因…...

鼠标右键助手专业版 MouseBoost PRO for Mac v3.3.6中文破解
MouseBoost Pro mac版是一款简单实用的鼠标右键助手专业版,MouseBoost Pro for Mac只要轻点你的鼠标右键,就可以激活你想要的各种功能,让你的工作效率大幅度提高,非常好用。 软件下载:MouseBoost PRO for Mac v3.3.6中…...
React学习计划-react-hooks补充
React Hooks 1. 使用hooks理由 高阶组件为了复用,导致代码层级复杂生命周期的复杂 2. useState(保存组件状态) const [state, setstate] useState(initialState)3. useEffect(处理副作用)和useLayoutEffect(同步执行副作用) 使用方式: useEffect(…...

KTV点歌系统vue+springboot音乐歌曲播放器系统
目前现有的KTV点歌系统对于用户而言其在线点歌流程仍然过于繁琐,对于歌曲而言其系统安全性并不能保障。同时整套系统所使用的技术相对较为落后,界面不能动态化展示。相比较于其它同类型网站而言不能体现技术先进性。 1.2 项目目标 KTV点歌系统的后台开发…...

vue video 多个视频切换后视频不显示的解决方法
先说一下我这边的需求是视频需要轮播,一个人员有多个视频,左右轮播是轮播某个人员下的视频,上下切换是切换人员。 vue 代码 <el-carouselindicator-position"none"ref"carousel"arrow"always":interval&qu…...
多态与代码屎山
到底什么是多态呢?多态是面向未来的,比如企业采购为例: 一般分为线上合线下两种, 我们设计一个父类叫做"采购", 里面做一些共通的处理: 申请, 承认, 支付, 购买方式. 然后让各自的子类(线上,线下)实现自己的方法.实际调用过程中传入不同的对象就可以.到此为止项目开…...

Git基本操作(2)
Git基本操作(2) 上交文件之后,git文件的变化git cat-file HEAD指针里面有啥文件被修改git statusgit diff 文件名 版本回退(git reset)撤销回退git reflog 撤销的三种情况还没有addgit checkout -- [file] 已经add还没…...
编程笔记 Golang基础 023 切片
编程笔记 Golang基础 023 切片 一、切片二、定义与初始化三、基本操作四、示例 Go语言中的切片(slices)是基于数组的抽象数据类型,它提供了一种灵活的方式来处理可变长度的数据序列。切片本身不存储任何数据,而是指向底层数组的一…...

利用最小二乘法找圆心和半径
#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...
【Linux】C语言执行shell指令
在C语言中执行Shell指令 在C语言中,有几种方法可以执行Shell指令: 1. 使用system()函数 这是最简单的方法,包含在stdlib.h头文件中: #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...
《Playwright:微软的自动化测试工具详解》
Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...
pam_env.so模块配置解析
在PAM(Pluggable Authentication Modules)配置中, /etc/pam.d/su 文件相关配置含义如下: 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块,负责验证用户身份&am…...

CentOS下的分布式内存计算Spark环境部署
一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架,相比 MapReduce 具有以下核心优势: 内存计算:数据可常驻内存,迭代计算性能提升 10-100 倍(文档段落:3-79…...

华为OD机试-食堂供餐-二分法
import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...
spring:实例工厂方法获取bean
spring处理使用静态工厂方法获取bean实例,也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下: 定义实例工厂类(Java代码),定义实例工厂(xml),定义调用实例工厂ÿ…...

DBAPI如何优雅的获取单条数据
API如何优雅的获取单条数据 案例一 对于查询类API,查询的是单条数据,比如根据主键ID查询用户信息,sql如下: select id, name, age from user where id #{id}API默认返回的数据格式是多条的,如下: {&qu…...

学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”
2025年#高考 将在近日拉开帷幕,#AI 监考一度冲上热搜。当AI深度融入高考,#时间同步 不再是辅助功能,而是决定AI监考系统成败的“生命线”。 AI亮相2025高考,40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕,江西、…...

springboot整合VUE之在线教育管理系统简介
可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生,小白用户,想学习知识的 有点基础,想要通过项…...