复刻大模型 Sora 有多难?一张图带你读懂 Sora 的技术路径

近日,OpenAI 发布了视频生成模型Sora,最大的Sora模型能够生成一分钟的高保真视频。同时OpenAI称,可扩展的视频生成模型,是构建物理世界通用模拟器的一条可能的路径。

Sora 能够生成横屏1920*1080视频,竖屏1080*1920视频,以及之间的所有内容。这使得Sora可以兼容不同的视频播放设备,根据特定的纵横比来生成视频内容,这也会大大影响视频创作领域,包括电影制作,电视内容,自媒体等。

技术报告:https://openai.com/research/video-generation-models-as-world-simulators

文章目录

    • 技术交流
    • 技术解读
      • 1. 视频压缩网络
      • 2. 用于视频生成的Scaling Transformers
      • 3. 语言理解
      • 4、世界模型,涌现的模拟能力
    • 总 结
    • 通俗易懂讲解大模型系列

技术交流

前沿技术资讯、算法交流、求职内推、算法竞赛、面试交流(校招、社招、实习)等、与 10000+来自港科大、北大、清华、中科院、CMU、腾讯、百度等名校名企开发者互动交流~

我们建了 SORA 技术交流群, 想要进交流群、获取完整源码&资料、提升技术的同学,可以直接加微信号:mlc2060。加的时候备注一下:研究方向 +学校/公司+CSDN,即可。然后就可以拉你进群了。

方式①、微信搜索公众号:机器学习社区,后台回复:技术交流
方式②、添加微信号:mlc2060,备注:技术交流

技术解读

我们技术群开发者社区,也针对Sora的技术报告展开了热烈的讨论。并根据技术报告的内容,推测了Sora的技术架构图如下:
图片

1. 视频压缩网络

OpenAI训练了一个降低视觉数据维度的网络。这个网络接受原始视频作为输入,并输出在时间和空间上都被压缩的潜在表示。Sora在这个压缩的潜在空间上进行训练,并随后生成视频。同时还训练了一个相应的解码器模型,将生成的潜在表示映射回像素空间(源自Sora技术报告)。这部分内容为图中的红色部分,核心工作为将视觉数据转化为patches,patches是从大语言模型中获得的灵感,大语言模型范式的成功部分得益于使用优雅统一各种文本模态(代码、数学和各种自然语言)的token。大语言模型拥有文本token,而Sora拥有视觉分块(patches)。

OpenAI在之前的Clip等工作中,充分实践了分块是视觉数据模型的一种有效表示(参考论文:An image is worth 16x16 words: Transformers for image recognition at scale.)这一技术路线。而视频压缩网络的工作就是将高维度的视频数据转换为patches,首先将视频压缩到一个低纬的latent space,然后分解为spacetime patches。

图片

图片来源:Sora技术报告

这个方法同样适用于图像(将图像作为单一帧视频处理),基于Patches的表示使得Sora能够训练具有不同分辨率,持续时间和纵横比的视频和图像,而在推理过程中,只需要在适当大小的grid中随机初始化patches即可控制视频生成的大小。

技术难点: 视频压缩网络类比于latent diffusion model中的VAE,但是压缩率是多少,如何保证视频特征被更好地保留,还需要进一步的研究。

2. 用于视频生成的Scaling Transformers

Sora是一个diffusion模型;给定输入的噪声块+文本prompt,它被训练来预测原始的“干净”分块。重要的是,Sora是一个Scaling Transformers。Transformers在大语言模型上展示了显著的扩展性,我们相信OpenAI将很多在大语言模型的技术积累用在了Sora上。

图片

图片来源:Sora技术报告

在Sora的工作中,OpenAI发现Diffusion Transformers作为视频生成模型具备很好的扩展性。

技术难点: 能够scaling up的transformer如何训练出来,对第一步的patches进行有效训练,可能包括的难点有long context(长达1分钟的视频)的支持、期间error accumulation如何保证比较低,视频中实体的高质量和一致性,video condition,image condition,text condition的多模态支持等。

3. 语言理解

OpenAI发现训练文本到视频生成系统需要大量带有相应文本标题的视频。这里,OpenAI将DALL·E 3中介绍的标题生成技术用到了视频领域,训练了一个具备高度描述性的视频标题生成(video captioning)模型,使用这个模型为所有的视频训练数据生成了高质量文本标题,再将视频和高质量标题作为视频文本对进行训练。

通过这样的高质量的训练数据,保障了文本(prompt)和视频数据之间高度的align。而在生成阶段,Sora会基于OpenAI的GPT模型对于用户的prompt进行改写,生成高质量且具备很好描述性的高质量prompt,再送到视频生成模型完成生成工作。

例子(from Sora技术报告)

在这里插入图片描述
caption:an-old-man-wearing-a-green-dress-and-a-sun-hat-taking-a-pleasant-stroll-in-Mumbai-India-during-a-colorful-festival

在这里插入图片描述
caption:a-woman-wearing-purple-overalls-and-cowboy-boots-taking-a-pleasant-stroll-in-Johannesburg-South-Africa-during-a-beautiful-sunset

技术难点: 如何训练一个高质量的视频caption模型,需要海量的高质量视频数据,包括数据的获取和标注,为了保障通用性,需要支持各种多样化的视频源,电影、纪录片、游戏、3D引擎渲染等等;标注工作包括对长视频的精准切片,以及切片后的captioning。中文高质量视频数据一直是稀缺资源,随着国内短视频业务发展,也许可以加快中文高质量短视频的收集和获取。

4、世界模型,涌现的模拟能力

当大规模训练时,sora同样也出现了有趣的“涌现的模拟能力”,这些能力使Sora能够模拟物理世界中的人、动物和环境的某些方面。这些属性没有任何明确的三维、物体等归纳特征信息——可以理解为由于模型参数足够大而产生的涌现现象。

这些能力包括:

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

  • 长距离连贯性和物体持久性 对于视频生成系统来说,一个重大挑战一直是在采样长视频时保持时间上的连续性。研究发现,Sora通常能够有效地模拟短距离和长距离依赖关系(不稳定)。例如,Sora可以在人物、动物和物体被遮挡或离开画面时仍然保持它们的存在。同样,它可以在单个样本中生成同一角色的多个镜头,贯穿视频始终保持他们的外观。

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

  • 模拟数字世界 Sora还能够模拟人工过程,一个例子是视频游戏。Sora可以通过基本策略控制《Minecraft》中的玩家,同时以高保真度渲染世界及其动态。这些能力可以通过prompt包含“Minecraft”,零样本激活这样的能力。

而这些能力都表明,顺着这个方向发展(持续扩大规模),Sora真的可能成为世界模型(能够高度模拟物理和数字世界的模拟器)。也许头部玩家,黑客帝国这些科幻片,就在不太遥远的未来。

技术难点:“大”模型,“高”算力,“海量”数据

总 结

从 Sora 模型的技术报告中,我们可以看到Sora模型的实现,是建立在OpenAI一系列坚实的历史技术工作的沉淀基础上的:包括不限于视觉理解(Clip),Transformers模型和大模型的涌现(ChatGPT),Video Caption(DALL·E 3)等。

正如社区的一位开发者说,虽然其中依然有非常多的技术细节OpenAI并没有披露,但是OpenAI画了一条“模糊”的路,有了这条模糊的路,大家就可以去尝试,从而画出通往视频生成的正确的清晰的路。

作为开源社区,我们期待视频生成领域的“LLaMa”,以及更加普惠的开源视频生成技术。

通俗易懂讲解大模型系列

  • 做大模型也有1年多了,聊聊这段时间的感悟!

  • 用通俗易懂的方式讲解:大模型算法工程师最全面试题汇总

  • 用通俗易懂的方式讲解:不要再苦苦寻觅了!AI 大模型面试指南(含答案)的最全总结来了!

  • 用通俗易懂的方式讲解:我的大模型岗位面试总结:共24家,9个offer

  • 用通俗易懂的方式讲解:大模型 RAG 在 LangChain 中的应用实战

  • 用通俗易懂的方式讲解:一文讲清大模型 RAG 技术全流程

  • 用通俗易懂的方式讲解:如何提升大模型 Agent 的能力?

  • 用通俗易懂的方式讲解:ChatGPT 开放的多模态的DALL-E 3功能,好玩到停不下来!

  • 用通俗易懂的方式讲解:基于扩散模型(Diffusion),文生图 AnyText 的效果太棒了

  • 用通俗易懂的方式讲解:在 CPU 服务器上部署 ChatGLM3-6B 模型

  • 用通俗易懂的方式讲解:使用 LangChain 和大模型生成海报文案

  • 用通俗易懂的方式讲解:ChatGLM3-6B 部署指南

  • 用通俗易懂的方式讲解:使用 LangChain 封装自定义的 LLM,太棒了

  • 用通俗易懂的方式讲解:基于 Langchain 和 ChatChat 部署本地知识库问答系统

  • 用通俗易懂的方式讲解:在 Ubuntu 22 上安装 CUDA、Nvidia 显卡驱动、PyTorch等大模型基础环境

  • 用通俗易懂的方式讲解:Llama2 部署讲解及试用方式

  • 用通俗易懂的方式讲解:基于 LangChain 和 ChatGLM2 打造自有知识库问答系统

  • 用通俗易懂的方式讲解:一份保姆级的 Stable Diffusion 部署教程,开启你的炼丹之路

  • 用通俗易懂的方式讲解:对 embedding 模型进行微调,我的大模型召回效果提升了太多了

  • 用通俗易懂的方式讲解:LlamaIndex 官方发布高清大图,纵览高级 RAG技术

  • 用通俗易懂的方式讲解:为什么大模型 Advanced RAG 方法对于AI的未来至关重要?

  • 用通俗易懂的方式讲解:使用 LlamaIndex 和 Eleasticsearch 进行大模型 RAG 检索增强生成

  • 用通俗易懂的方式讲解:基于 Langchain 框架,利用 MongoDB 矢量搜索实现大模型 RAG 高级检索方法

  • 用通俗易懂的方式讲解:使用Llama-2、PgVector和LlamaIndex,构建大模型 RAG 全流程

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MATLAB练习题:估计离开家之前能拿到报纸的概率

​讲解视频:可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。​ MATLAB教程新手入门篇(数学建模清风主讲,适合零基础同学观看)_哔哩哔哩_bilibili 清风订了一份报纸,送报人可能在早上6:…

【论文精读】OS-Copilot: Towards Generalist Computer Agents with Self-Improvement

OS-Copilot: Towards Generalist Computer Agents with Self-Improvement 前言ABSTRACT1 INTRODUCTION2 THE OS-COPILOT FRAMEWORK2.1 PLANNER2.2 CONFIGURATOR2.2.1 DECLARATIVE MEMORY2.2.2 PROCEDURAL MEMORY2.2.3 WORKING MEMORY 2.3 ACTOR 3 THE FRIDAY AGENT3.1 A RUNNIN…

JavaScript原型继承与面向对象编程思想

原型继承与面向对象编程思想 在JavaScript中,原型(prototype)、构造函数(constructor)和实例对象(instance)是面向对象编程中的重要概念,并且它们之间存在着紧密的关系。 原型(prototype):原型是JavaScript中对象之间关联的一种机制。每个Ja…

Clickhouse系列之连接工具连接、数据类型和数据库

基本操作 一、使用连接工具连接二、数据类型1、数字类型IntFloatDecimal 2、字符串类型StringFixedStringUUID 3、时间类型DateTimeDateTime64Date 4、复合类型ArrayEnum 5、特殊类型Nullable 三、数据库 一、使用连接工具连接 上一篇介绍了clickhouse的命令行登录&#xff0c…

mysql 事务详解一

前言 提到事务,大家肯定不陌生。在我们现实生活中也是存在的,比如我们去超市购物,然后去支付。虽然是两个步骤,必须保证同时成功,这个交易才可以完成。 如果这个场景,拿到我们购物系统,就是几…

【kubernetes】kubeadm部署k8s集群(3主3从+keepalived/nginx负载均衡高可用)

目录 一、完成系统初始化 步骤一:常规环境初始化 步骤二:内核版本升级以及内核限制文件参数修改 步骤三:提前准备好负载均衡器和keepalived(接着之前的二进制部署修改的) 二、所有节点部署docker,以及指定版本的kubeadm 步骤…

大厂面试-美团高频考察算法之重排链表

本文学习目标或巩固的知识点 学习如何处理链表重排类题目 巩固反转链表巩固快慢指针巩固合并链表 提前说明:算法题目来自力扣、牛客等等途径 🟢表示简单 🟡表示中等 🔴表示困难 🤮表示恶心 博主真实经历,…

pikachu靶场-File Inclusion

介绍: File Inclusion(文件包含漏洞)概述 文件包含,是一个功能。在各种开发语言中都提供了内置的文件包含函数,其可以使开发人员在一个代码文件中直接包含(引入)另外一个代码文件。 比如 在PHP中,提供了&…

unity学习(40)——创建(create)角色脚本(panel)——UI

1.点击不同的头像按钮,分别选择职业1和职业2,create脚本中对应的函数。 2.调取inputfield中所输入的角色名(限制用户名长度为7字符),但愿逆向的服务器可以查重名: 3.点击头衔,显示选择的职业&a…

二手货wordpress企业网站主题模板

二手车wordpress主题模板 简洁的二手车wordpress主题模板,适合做二手车业务的公司官方网站使用。 https://www.jianzhanpress.com/?p3473 wordpress二手物资回收主题 绿色wordpress二手物资回收主题,用于二手物资回收公司WP建站使用。 https://www.…

算法【查找算法的概念】

查找算法概念 1、查找的基本概念2、评价查找算法3、问题: 查找过程中我们要研究什么? 1、查找的基本概念 查找的概念: 根据给定的某个值,在查找表中确定一个其关键字等于给定值的数据元素或者记录。 查找算法也可以叫搜索算法。查找算法就是从一个有序…

HTMLElement.click()的回调触发踩坑

先看看以下代码 const el document.getElementById("btn") el.addEventListener("click", () > {Promise.resolve().then(() > console.log("microtask 1"));console.log("1"); }); el.addEventListener("click", (…

深度学习基础——U-Net图像分割

图像分割,就是根据图像的某种相似性特征(如亮度、颜色、纹理、面积、形状、位置、局部统计特征或频谱特征等)将医学图像划分为若干个互不相交的“连通”区域。 相关特征在同一区域内表现出一致性或相似性,而在不同区域间表现出明显的…

yolov8-seg dnn调用

接上篇一直更换torch、opencv版本都无法解决这个问题(seg调用dnn报错)。那问题会不会出在yolov8源码本身呢。yolov8的讨论区基本都看过了,我决定尝试在其前身yolov5的讨论区上找找我不信没人遇到这个问题。很快找到下面的讨论第一个帖子&…

八、线性代数二 ,矩阵的秩

目录 1、矩阵子式的定义与子式个数的计算: 2、矩阵秩的定义: 3、矩阵秩的计算方法: 4、矩阵秩的 性质: 线性代数四——几个重要的矩阵点积_线性代数 矩阵点积-CSDN博客 1、矩阵子式的定义与子式个数的计算: 概念&…

RocketMQ高性能核心原理与源码架构剖析

RocketMQ高性能核心原理与源码架构剖析 读、写队列 采用读写分离的方式,RocketMQ在创建Topic的时候会单独设置读队列和写队列,写队列负责写入以及同步数据到读队列,读队列会记录消费者的offset,负责消息拉取,通过Mes…

7-liunx服务器规范

目录 概况liunx日志liunx系统日志syslog函数openlog 可以改变syslog默认输出方式 ,进一步结构化 用户信息进程间的关系会话ps命令查看进程关系 系统资源限制改变工作目录和根目录服务器程序后台话 概况 liunx服务器上有很多细节需要注意 ,这些细节很重要…

openGauss学习笔记-228 openGauss性能调优-系统调优-LLVM使用建议

文章目录 openGauss学习笔记-228 openGauss性能调优-系统调优-LLVM使用建议 openGauss学习笔记-228 openGauss性能调优-系统调优-LLVM使用建议 目前LLVM在数据库内核侧已默认打开,用户可结合上述的分析进行配置,总体建议如下: 设置合理的wor…

谷歌seo推广有什么方式?

首先是网站优化,这是所有SEO工作的基础,这不仅仅意味着关键词的优化,还包括提升网站的加载速度、确保良好的移动设备适配性、以及加强网站的安全性,一个技术性能优异的网站,能够为用户提供更佳的体验,从而受…

【IDEA】安装Jrebel实现热部署

前言 devtool虽然也可以实现热部署 但是新增完方法和修改完参数后 热部署不生效 需要重启 而Jrebel却不用 功能也比devtool强大 但是收费 这里教大家怎么使用 插件下载 激活Jrebel