【Datawhale组队学习:Sora原理与技术实战】Sora技术原理

Sora能力边界探索

在这里插入图片描述

  • 最大支持60秒高清视频生成,以及基于已有短视频的前后扩展,同时保持人物/场景的高度一致性
  • 如奶茶般丝滑过渡的视频融合能力
  • 同一场景的多角度/镜头的生成能力
  • 具有动态摄像机运动的视频。随着摄像机的移动和旋转,人和其
    他场景元素在三维空间中一致地移动
  • 支持任意分辨率,宽高比的视频输出
  • Sora对物理规律的理解仍然十分有限

Sora能力总结

  • Text-to-video: 文生视频
  • Image-to-video: 图生视频
  • Video-to-video: 改变源视频风格or场景
  • Extending video in time: 视频拓展(前后双向)
  • Create seamless loops: Tiled videos that seem like they never end
  • Image generation: 图片生成 (size最高达到 2048 x 2048)
  • Generate video in any format: From 1920 x 1080 to 1080 x 1920 视频输出比例自定义
  • Simulate virtual worlds: 链接虚拟世界,游戏视频场景生成
  • Create a video: 长达60s的视频并保持人物、场景一致性

Sora模型训练流程

Video generation models as world simulators
https://openai.com/research/video-generation-models-as-world-simulators

模型训练流程

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

模型训练:扩散模型 DDPM

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

模型训练:基于扩散模型的主干 U-Net

  1. U-Net 网络模型结构把模型规模限定;
  2. SD/SDXL 作为经典网络只公布了推理和微调;
  3. 国内主要基于 SD/SDXL 进行二次创作;
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

Sora关键技术拆解

einops是一个用于操作张量的库,它的出现可以替代我们平时使用的reshape、view、transpose和
permute等操作
einops支持numpy、pytorch、tensorflow等
y = x.transpose(0, 2, 3, 1) 等同
y = rearrange(x, ‘b c h w -> b h w c’)

self.gkv = nn.Linear(self.embed dim, self.head size * self.n heads * 3,bias=False
self.scale=self.head size **-0.5
self.register buffer("tril',torch.tril(torch.ones(self.seg len,self.seg len))
self.attn dropout =nn.Dropout(0.)def forward(self,x):b,t,c=x.shape# q,k,v shape individually: batch size x seg len x embed dim# we know that gk t=gxkt, where g=bxtxhead dim, k t=bxhead timxtq,k,v=self.qkv(x).chunk(3,dim=-1)q=rearrange(q,'bt(h n)->bnt h',n=self.n heads)# h= head sizek=rearrange(v,'b t(h n)->bnth',n=self.n heads)v=rearrange(v,'bt(hn)->bnth',n=self.n heads)qkt=einsum(q,k,'b n tl h, bn t2 h->bn tl t2')* self.scaleweights=qk t.masked fill(m==0,float('-inf'))weights=F.softmax(weights,dim=-1)weights =self.attn dropout(weights)attention =weights @ v# batch xn heads x seg len x head sizeattention=rearrange(attention,'bnth->bt(n h)')return attentionpatches = rearrange(im,'c (h pl)(w p2)->(h w)c pl p2',pl=patch size,p2=patch size)
patches.shape
# torch.Size([196,3,16,16])figure =plt.figure(figsize=(5,5))
for i in range(patches.size(0)):img =patchesli].permute(1,2,0)fiqure.add subplot(14,14,i+1)plt.axis('off')plt.imshow(img)
plt.show()

在这里插入图片描述
在这里插入图片描述

  • ViT 尝试将标准 Transformer 结构直接应用于图
    像;
  • 图像被划分为多个 patch后,将二维 patch 转换为一维向量作为 Transformer 的输入;

技术报告分析

Diffusion Transformer,= VAE encoder + ViT + DDPM + VAE

DiT 利用 transformer 结构探索新的扩散模型,成功用 transformer 替换 U-Net 主干
在这里插入图片描述

  • 例如输入一张256x256x3的图片,经过Encoder后得到对应的latent
  • 推理时输入32x32x4的噪声,得到32x32x4的latent
  • 结合当前的 step t , 输入label y , 经过N个Dit Block通过 MLP 进行输出
  • 得到输出的噪声以及对应的协方差矩阵
  • 经过T个step采样,得到32x32x4的降噪后的latent
  • 在训练时,需要使得去躁后的latent和第一步得到的latent尽可能一致

网络结构:Diffusion Transformer,DiT

在这里插入图片描述

  • DiT 首先将将每个 patch 空间表示Latent 输入到第一层网络,以此将空间输入转换为 tokens 序列。
  • 将标准基于 ViT 的 Patch 和Position Embedding 应用于所有输入token,最后将输入 token 由Transformer 处理。
  • DiT 还会处理额外信息,e.g. 时间步长、类别标签、文本语义等

网络结构: DALLE 2

在这里插入图片描述

  1. 将文本提示输入文本编码器,该训练过的编码器便将文本提示映射到表示空间;
  2. 先验模型将文本编码映射到图像编码,图像编码捕获文本编码中的语义信息;
  3. 图像解码模型随机生成一幅从视觉上表现该语义信息的图像;

技术总结

  1. Scaling Law:模型规模的增大对视频生成质量的提升具有明确意义,从而很好地解决视
    频一致性、连续性等问题;
  2. Data Engine:数据工程很重要,如何设计视频的输入(e.g. 是否截断、长宽比、像素
    优化等)、patches 的输入方式、文本描述和文本图像对质量;
    AI Infra:AI 系统(AI 框架、AI 编译器、AI 芯片、大模型)工程化能力是很大的技术
    壁垒,决定了 Scaling 的规模。
  3. LLM:LLM 大语言模型仍然是核心,多模态(文生图、图生文)都需要文本语义去牵引和
    约束生成的内容,CLIP/BLIP/GLIP 等关联模型会持续提升能力;

学习资源

DataWhale社区Sora学习资源:
https://datawhaler.feishu.cn/wiki/RKrCw5YY1iNXDHkeYA5cOF4qnkb#KljXdPfWJo62zwxdzYIc7djgnlf
学习视频:
https://www.bilibili.com/video/BV1wm411f7gf/?spm_id_from=333.1350.jump_directly&vd_source=299ce227a965167d79f374c15b2fddf5

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

SpaceX 首次通过星链 从太空向社交平台 X 上发帖

2 月 26 日,伊隆马斯克旗下太空探索技术公司 SpaceX 宣布,该公司已成功地通过「星链」卫星网络,从太空向社交平台 X 上发布了第一个帖子。 这一次的发布,是通过手机卫星服务——「卫星直连蜂窝网络」(Direct to Cell&…

vscode不能远程连接ubuntu18.04.6

目录 问题解决Portable Mode 安装vscode 补充说明学习资料 问题 vscode远程ssh连接ubuntu18.04.6时,出现如下提示框,单击Learn More后,定位到问题。Can I run VS Code Server on older Linux distributions? 原始是:需要glibc …

递归和迭代【Py/Java/C++三种语言详解】LeetCode每日一题240218【树DFS】LeetCode 589、 N 叉树的前序遍历

有LeetCode算法/华为OD考试扣扣交流群可加 948025485 可上全网独家的 欧弟OJ系统 练习华子OD、大厂真题 绿色聊天软件戳 od1336了解算法冲刺训练 文章目录 题目描述解题思路代码方法一:递归法PythonJavaC时空复杂度 方法二:迭代法PythonJavaC时空复杂度 …

北邮毕业论文Latex模板使用教程(Windows)

1latex模板下载 下载地址: https://github.com/rioxwang/BUPTGraduateThesis2安装编译环境 TEX Live 2014 或者CTEX 2.9.2.164,以及更高的版本. 下载其中一个即可 (1)TEX Live下载地址: https://tug.org/texlive/acq…

JAVA学习笔记12

1.键盘输入语句 1.1 介绍 ​ *在编程中,需要接收用户输入的数据,就可以使用键盘输入语句来获取。 1.2 步骤 ​ 1.导入该类的所在包,java.util.* ​ 2.创建该类对象(声明变量) ​ 3.调用里面的功能 import java.…

Aigtek前置微小信号放大器在传感器检测中的应用有哪些

传感器是将物理量转换为电信号的装置,其精度和灵敏度直接影响到检测系统的性能。而传感器的输出信号通常都非常微弱,需要进行放大处理才能得到可靠的测量结果。前置微小信号放大器,作为一种重要的传感器检测元件,在传感器检测中发…

游戏服务器租用价格大比拼,腾讯云阿里云京东云疯狂比价!

游戏服务器租用多少钱一年?1个月游戏服务器费用多少?阿里云游戏服务器26元1个月、腾讯云游戏服务器32元,华为云26元,游戏服务器配置从4核16G、4核32G、8核32G、16核64G等配置可选,游戏专业服务器公网带宽10M、12M、15M…

CentOS7 Hive2.3.8安装

CentOS7 Hive2.3.8 安装 建议从头用我的博客,如果用外教的文件到 一、9)步骤了,就用他的弄完,数据库不一样,在9步骤前还能继续看我的 一、 安装MySQL 0.0)查询mariadb,有就去0.1),没有就不管…

x-cmd pkg | g - 功能和交互更为丰富的 `ls` 替代方案

目录 简介首次用户功能特点竞品和相关作品进一步阅读 简介 g 是一项用 Go 开发的、功能和交互更为丰富的 ls 替代方案。它拥有 100 多个功能选项,主要是通过各式图标、各种布局选项和 git status 集成来增强视觉效果,并且支持多种输出格式,如…

Administrative-divisions-of-China:中华人民共和国行政区划数据

Administrative-divisions-of-China是中华人民共和国行政区划:省级(省份)、 地级(城市)、 县级(区县)、 乡级(乡镇街道)、 村级(村委会居委会) &a…

c++史上最全算法详解,0基础可秒懂!(爆肝4万字)

本文极长,建议点赞收藏后看! 质量分95!! 文章目录 -1.C 标准0.语法基础1. C头文件2. C命名空间3. 主函数4. 变量类型5. ASCII码6. 注释 1.顺序结构一、代码示例二、例题1:求圆的面积三、例题2:求解一元二次…

常见集合框架底层原理

常见集合框架底层原理 常见的集合有哪些 Java集合类主要由两个接口Collection和Map派生出来的,Collection有三个子接口: List、 Set、Queue List代表了有序可重复集合,可直接根据元素的索引来访问Set代表了无序集合,只能根据元素本身来访问…

【Leetcode每日一题】二分查找 - 有效的完全平方数(难度⭐)(19)

1. 题目解析 Leetcode链接:367. 有效的完全平方数 这个问题的理解其实相当简单,只需看一下示例,基本就能明白其含义了。 核心在于判断给定的整数是否可以开方成两个整数相乘,可以就返回false,反之返回true。 2. 算法…

【c语言】基础数据类型

文章目录 1、什么数据类型2、常量3、变量4、整型数据5、浮点型数据6、字符型数据7、字符串数据 1、什么数据类型 ​ 在生活中,裁缝做衣服需要用到不同的化纤、棉花、丝绸等布料,炒不同的菜需要油、盐等不同的配方,而程序员在编写程序时也需要…

4核8G服务器多少钱?腾讯云和阿里云哪家便宜?

4核8G云服务器多少钱一年?阿里云ECS服务器u1价格955.58元一年,腾讯云轻量4核8G12M带宽价格是646元15个月,阿腾云atengyun.com整理4核8G云服务器价格表,包括一年费用和1个月收费明细: 云服务器4核8G配置收费价格 阿里…

Vue.js+SpringBoot开发快递管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、研究内容2.1 数据中心模块2.2 快递类型模块2.3 快递区域模块2.4 快递货架模块2.5 快递档案模块 三、界面展示3.1 登录注册3.2 快递类型3.3 快递区域3.4 快递货架3.5 快递档案3.6 系统基础模块 四、免责说明 一、摘要 1.1 项目介绍 …

Vue源码系列讲解——生命周期篇【七】(模板编译阶段)

目录 1. 前言 2. 模板编译阶段分析 2.1 两种$mount方法对比 2.2 完整版的vm.$mount方法分析 3. 总结 1. 前言 前几篇文章中我们介绍了生命周期的初始化阶段,我们知道,在初始化阶段各项工作做完之后调用了vm.$mount方法,该方法的调用标志…

前后端分离PHP+vue+mysql城市轨道交通线路公交查询系统

医院、厕所、药店、派出所、学校、营业厅、快递、银行 开发语言:php 后端框架:Thinkphp 前端框架:vue.js 服务器:apache 数据库:mysql 运行环境:phpstudy/wamp/xammp等 A.美食 快餐、中餐、自助餐、火锅、烧烤、奶…

STM32 I2C学习

IIC总线协议介绍 IIC:Inter Integrated Circuit,集成电路总线,是一种同步、串行、半双工通信总线。 同步:需要时钟线 串行:数据一位一位地发送 半双工:同一时间只能接受或发送,不能同时发送或…

【Unity】如何从现有项目中抽取好用的资源

【背景】 在做Unity项目的过程中引入各种各样的Package,有的Package很大,但是觉得非常有用的可能只是几个Prefab或者Material等。如果直接拷贝想要的Prefab和Material,又需要自己确认所有有依赖关系的资源。 如果能将所有日常经受项目中自己…