OpenAI最新模型Sora到底有多强?眼见为实的真实世界即将成为过去!
文章目录
- 1. 写在前面
- 2. 什么是Sora?
- 3. Sora的技术原理
【作者主页】:吴秋霖
【作者介绍】:Python领域优质创作者、阿里云博客专家、华为云享专家。长期致力于Python与爬虫领域研究与开发工作!
【作者推荐】:对JS逆向感兴趣的朋友可以关注《爬虫JS逆向实战》,对分布式爬虫平台感兴趣的朋友可以关注《分布式爬虫平台搭建与开发实战》
还有未来会持续更新的验证码突防、APP逆向、Python领域等一系列文章
1. 写在前面
就在2024年的春节期间,OpenAI发布了Sora,这一次的发布得到了全世界的关注。Sora简单的理解就是通过文字或者语言直接生成的视频大模型(text-to-video文生视频模型),官方并没有单纯的称之为视频模型,而是称为“世界模拟器”
一起围观震撼的视觉冲击:openai-sora
2. 什么是Sora?
Sora是OpenAI发布的一个视频生成模型,可基于文本输入生成视频!产生长达一分钟的连贯视频,而且可以做到高清与多视角,是不是感觉人人都可以做导演了~
Sora跟之前的Pika和Runway并不属于同一个东西!Sora是有理解力的,可以感知真实的物理世界与自然语言!Pika和Runway目前只能生成4s视频,但是Sora可生成60s超长视频的同时且动作连续、有一定的艺术性、没有看似生硬的感觉
在这其中包含高度详细的场景、复杂的摄像机运动以及充满活力的情感的多个角色~
同样的提示词在下图中,无论是视频的画质、内容细节以及视频的长度。Sora都表现的非常优秀!
我们再看下面的一组示列,也是同样的提示词,上面是由Sora生成,而下面则是RunwayG2生成,很明显的可以看到无论是视频的清晰度,还是视频的流畅度,以及视频里面海浪🌊的细节,Sora都全面的碾压Runway
Sora不仅生成60s超长视频,在视频内可以在保持主角色不变的高度一致性的同时,还生成多个不同角度的分镜!下面的这个视频使用一致的形象,还进行分镜处理
提示词:博朋克背景下机器人的生活故事
Sora有时能够模拟对世界状态产生简单影响的行为。例如,画家可以在画布上持续添加新的笔触,或者一个人吃汉堡时留下咬痕。这个就厉害了,基于虚幻引擎5(Unreal-Engine-5)的Sora它是能理解物理世界的
3. Sora的技术原理
OpenAI在其技术报告中虽未提及模型的训练与细节,但也重点展示了:
- 将所有类型的视觉数据转化为统一表示,从而能够大规模训练生成模型的方法
- Sora的能力以及局限性定性评估
视觉数据转为 Patches
大型语言模型通过在互联网规模的数据上进行训练,获得了出色的通用能力中,OpenAI 从这一点汲取了灵感。LLM 得以确立新范式,部分得益于创新了 token 使用的方法。研究人员们巧妙地将文本的多种模态 —— 代码、数学和各种自然语言统一了起来。
在这项工作中,OpenAI 考虑了生成视觉数据的模型如何继承这种方法的好处。大型语言模型有文本 token,而 Sora 有视觉 patches。此前的研究已经证明 patches 是视觉数据模型的有效表示。OpenAI 发现 patches 是训练生成各种类型视频和图像的模型的可扩展且有效的表示
在更高层面上,OpenAI首先将视频压缩到较低维的潜在空间,然后将表示分解为时空patches,从而将视频转换为patches
视频压缩网络
OpenAI训练了一个降低视觉数据维度的网络。该网络将原始视频作为输入,并输出在时间和空间上压缩的潜在表示。Sora 在这个压缩的潜在空间中接受训练,而后生成视频。OpenAI还训练了相应的解码器模型,将生成的潜在表示映射回像素空间
时空潜在 Patches
给定一个压缩的输入视频,OpenAI 提取一系列时空 patches,充当 Transformer 的 tokens。该方案也适用于图像,因为图像可视为单帧视频。OpenAI 基于 patches 的表示使 Sora 能够对不同分辨率、持续时间和长宽比的视频和图像进行训练。在推理时,OpenAI 可以通过在适当大小的网格中排列随机初始化的 patches 来控制生成视频的大小
用于视频生成的缩放 Transformer
Sora的训练受到了大语言模型(Large Language Model)的启发。这些模型通过在互联网规模的数据上进行训练,从而获得了广泛的能力
Sora实际上是一种扩散型变换器模型(Diffusion Transformer)
它能够通过从一开始看似静态噪声的视频出发,通过许多步骤逐步消除噪声,最终生成视频
Sora不仅可以一次性生成完整的视频,还能扩展已生成的视频,使其更加长久。通过让模型能够预见多帧内容,成功克服了确保视频主体即便暂时消失也能保持一致性的难题
Sora 借鉴了 GPT 模型的成功,采用了Transformer 架构,实现了前所未有的扩展性能
Sora把视频和图像分解为小的数据单元——补丁,每个补丁相当于 GPT 中的一个词语。通过统一数据的表达方式,我们得以在更广泛的视觉数据上训练扩散Transformer,这些数据覆盖了不同的时长、分辨率和画面比例
Sora在DALL·E 和GPT的研究基础上进一步发展。利用DALL·E 3的重新标注技术,为视觉训练数据生成高度描述性的说明文字。结果是,模型能够更加忠实地根据用户的文本指示生成视频
除了能够仅凭文本指令生成视频外,Sora还能够将现有的静态图像转化为视频,精确地动画化图像内容,并注意到细小的细节。模型也能够扩展现有视频或补全缺失帧
Sora 为理解和模拟现实世界的模型奠定了基础,这是实现人工通用智能(AGI)的重要里程碑
感兴趣的小伙伴可阅读官方文档:Video generation models as world simulators
DALL-E图像制作动画,Sora图像生成视频的示例如下:
然而虽然Sora的表现令人印象深刻,但是它也并非是非常完美的!目前在处理复杂的场景中难以准确模拟复杂场景的物理原理,还可能会混淆提示的空间细节,可能难以精确的描述随着时间推移发生的事件
在官方网站中我们也能够看到公布出来的一些不是很完美的案例视频:
物体交互时的一些交互错误
还有像下面这种多个场景中相互之间的一个交互,会有一些奇怪的现象。比如几个小动物融合在了一起
这些局限性也提醒着我们,尽管AI技术取得了巨大的进步,但在处理像提示词工程这样的问题上,仍然有很长的路需要去走!同时,在视频制作行业未来肯定也会带来很多新的挑战与机遇
最后,相信大家这两年都能感受到AIGC的能力,我们从质疑到接受再到使用,最后感到震惊!
相关文章:

OpenAI最新模型Sora到底有多强?眼见为实的真实世界即将成为过去!
文章目录 1. 写在前面2. 什么是Sora?3. Sora的技术原理 【作者主页】:吴秋霖 【作者介绍】:Python领域优质创作者、阿里云博客专家、华为云享专家。长期致力于Python与爬虫领域研究与开发工作! 【作者推荐】:对JS逆向感…...

Qt的基本操作
文章目录 1. Qt Hello World 程序1.1 通过图形化界面的方式1.2 通过代码的方式实现 2. Qt 的编码问题3. 使用输入框实现hello world4. 使用按钮实现hello world5. Qt 编程注意事项6. 查询文档的方式7. 认识Qt坐标系 1. Qt Hello World 程序 1.1 通过图形化界面的方式 我们先讲…...

信号系统之数据压缩
1 数据压缩策略 表 27-1 显示了对数据压缩算法进行分类的两种不同方法。在(a)中,这些方法被归类为无损或有损(lossless or loss)。无损技术意味着恢复的数据文件与原始文件相同。这对于许多类型的数据是绝对必要的,例如:可执行代码、文字处理…...

第二篇【传奇开心果微博系列】Python微项目技术点案例示例:成语接龙游戏
传奇开心果微博系列 系列微博目录Python微项目技术点案例示例系列 微博目录一、微项目目标二、雏形示例代码三、扩展整体思路四、玩家输入示例代码五、成语判断示例代码六、回答判断示例代码七、电脑判断示例代码八、游戏结束示例代码九、界面优化示例代码十、扩展成语库示例代…...

国内AI大模型主要有哪些
ChatGPT火爆后不到一个月的时间,阿里、华为、腾讯、京东、字节、360、商汤、科大讯飞等大厂纷纷下场,或官宣入场或亮相大模型。我国对生成式AI实行监管的正式法规主要是2023年8月正式施行的《生成式人工智能服务管理暂行办法》。 据不完全统计ÿ…...

RabbitMQ保证消息的可靠性
1. 问题引入 消息从发送,到消费者接收,会经理多个过程: 其中的每一步都可能导致消息丢失,常见的丢失原因包括: 发送时丢失: 生产者发送的消息未送达exchange消息到达exchange后未到达queue MQ宕机&…...
【工作实践-02】实验室移动端—跳转页面及交互
一、跳转页面不关闭当前页,与uniapp头部导航栏的返回按钮效果相似 uni.navigateBack({delta: 1}) 二、返回页面并刷新 1. 返回上一页时重新获取列表(调用上一页面获取列表方法) let pages getCurrentPages(); // 当前页面let beforePage pages[pages.length - 2…...

HTTP 请求 400错误
问题 HTTP 请求 400错误 详细问题 客户端发送请求 public static UserInfo updateUserInfo(UserInfo userInfo) {// 创建 OkHttpClient 对象OkHttpClient client new OkHttpClient();// 创建请求体MediaType JSON MediaType.parse("application/json; charsetutf-8&…...

C语言---指针进阶
1.字符指针 int main() {char str1[] "hello world";char str2[] "hello world";const char* str3 "hello world.";const char* str4 "hello world.";if (str3 str4){//常量字符串在内存里面是无法修改的,所以没必要…...
QT-通信编码格式问题
这里写目录标题 一、项目场景1.QT客户端与服务端通信时,转化步骤如下:2.原数据示例3.转化后数据 二、问题描述1.采用Soap协议2.采用HTTP协议 三、原因分析四、解决方案 一、项目场景 1.QT客户端与服务端通信时,转化步骤如下: 1&…...

一文了解Web3.0真实社交先驱ERA
Web2时代,少数科技巨头垄断了全球近60亿人口的网络社交数据,并用之为自己牟利,用户无法掌控个人数据,打破该局面逐渐成为共识,于是,不少人看到了Web3社交赛道蕴含的巨大机遇,标榜着去中心化和抗…...

微前端(qiankun)vue3+vite
目录 一、什么是微前端 二、主应用接入 qiankun 1.按照qiankun插件 2.注册微应用引用 3.挂载容器 三、微应用接入 qiankun 1.vite.config.ts 2.main.ts ps:手动加载微应用方式 ps:为什么不用 iframe 一、什么是微前端 微前端是一种多个团队通过独…...

根据Ruoyi做二开
Ruoyi二开 前言菜单代码生成新建微服务网关添加微服务的路由 vue页面和对应的js文件js中方法的url和controller中方法的url总结 前言 之前写过一篇文章,若依微服务版本搭建,超详细,就介绍了怎么搭建若依微服务版本,我们使用若依就…...

DockerFile的应用
DockerFile的应用 一、介绍1 构建的三步骤2 构建的过程 二、常用命令三、DockerFile案例1 创建DockerFile文件2 使用DockerFile文件构建镜像3 启动容器并验证 四 DockerFile添加数据卷 一、介绍 DockerFile是用来构建Docker镜像的构建文件,是由一系列命令和参数构成…...

爬虫入门一
文章目录 一、什么是爬虫?二、爬虫基本流程三、requests模块介绍四、requests模块发送Get请求五、Get请求携带参数六、携带请求头七、发送post请求八、携带cookie方式一:放在请求头中方式二:放在cookie参数中 九、post请求携带参数十、模拟登…...
2024-02-16 web3-区块链-keypass记录
摘要: 2024-02-16 web3-区块链-keypass记录 文档: Introduction - Keypass Docs What is KEYPASS? - Keypass Docs What is KEYPASS? KeyPass Wallet is a new smart contract wallet that provides a secure and customizable registration…...
使用 JMimeMagic 在 Java 中识别文件类型
在 Java 中,我们可以使用 JMimeMagic 库来识别文件类型,尤其是在需要准确区分文件类型时。下面是一个简单的使用 JMimeMagic 的示例代码。 添加依赖 首先,在你的项目中添加 JMimeMagic 依赖。你可以在 Maven 项目中的 pom.xml 文件中加入以…...

yolov8源码解读Detect层
yolov8源码解读Detect层 Detect层解读网络各层解读及detect层后的处理 关于网络的backbone,head,以及detect层后处理,可以参考文章结尾博主的文章。 Detect层解读 先贴一下全部代码,下面一一解读。 class Detect(nn.Module):"""YOLOv8 …...

(AtCoder Beginner Contest 341)(A - D)
比赛地址 : Tasks - Toyota Programming Contest 2024#2(AtCoder Beginner Contest 341) A . Print 341 模拟就好了 , 先放一个 1 , 然后放 n 个 01 ; #include<bits/stdc.h> #define IOS ios::sync_with_stdio(0);cin.tie(0);cout…...
python Flask与微信小程序 统计管理
common/models/stat/StatDailyMember.py DROP TABLE IF EXISTS stat_daily_member;CREATE TABLE stat_daily_member (id int(11) unsigned NOT NULL AUTO_INCREMENT,date date NOT NULL COMMENT 日期,member_id int(11) NOT NULL DEFAULT 0 COMMENT 会员id,total_shared_count …...
Python爬虫实战:研究feedparser库相关技术
1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

(二)原型模式
原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...
oracle与MySQL数据库之间数据同步的技术要点
Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异,它们的数据同步要求既要保持数据的准确性和一致性,又要处理好性能问题。以下是一些主要的技术要点: 数据结构差异 数据类型差异ÿ…...
如何为服务器生成TLS证书
TLS(Transport Layer Security)证书是确保网络通信安全的重要手段,它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书,可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...
是否存在路径(FIFOBB算法)
题目描述 一个具有 n 个顶点e条边的无向图,该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序,确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数,分别表示n 和 e 的值(1…...
Pinocchio 库详解及其在足式机器人上的应用
Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库,专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性,并提供了一个通用的框架&…...
Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?
在大数据处理领域,Hive 作为 Hadoop 生态中重要的数据仓库工具,其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式,很多开发者常常陷入选择困境。本文将从底…...
LeetCode - 199. 二叉树的右视图
题目 199. 二叉树的右视图 - 力扣(LeetCode) 思路 右视图是指从树的右侧看,对于每一层,只能看到该层最右边的节点。实现思路是: 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...
管理学院权限管理系统开发总结
文章目录 🎓 管理学院权限管理系统开发总结 - 现代化Web应用实践之路📝 项目概述🏗️ 技术架构设计后端技术栈前端技术栈 💡 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 🗄️ 数据库设…...
LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》
这段 Python 代码是一个完整的 知识库数据库操作模块,用于对本地知识库系统中的知识库进行增删改查(CRUD)操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 📘 一、整体功能概述 该模块…...