文生视频基础1:sora技术报告学习

sora技术报告学习

  • 背景
  • 学后理解
    • 训练流程
    • 技术拆解
      • 编码解码
      • 扩散模型
      • 训练用数据
    • 28号直播交流会后的一些想法
      • 自身的一点点想法
  • 参考

原文地址:Video generation models as world simulators

背景

此项目的背景是基于Datawhale的关于sora技术文档的拆解和相关技术讲解课程。重点在于对于文生视频的技术框架讲解,和项目的实践来帮助理解sora及sora诞生的原因。

学后理解

训练流程

参考图片
自身对于该流程的理解是:

  • 视频是很多帧的具备时间次序的图片组成, 数据来源是不同的,有多种规格,为了数据的统一,在前将原视频数据切分为Patches(一个一个规格相同的视频块),后利用编码器压缩成低维空间表示(降低计算消耗)。
  • 中间部分常用DIT完成文本语义和图像语义的映射
  • 最后通过解码器恢复成各种规格的视频数据

技术拆解

编码解码

patches操作

  • 什么是pathces操作
    patches 操作是将图像分割成一系列重叠或非重叠的固定大小的子图像块,这些子图像块通常被用作局部特征的表示。
  • einops库
    eniops是一个用于操作张量的库,它支持numpy、pytoch、tensorflow等
import einops
import matplotlib.pyplot as plt
from einops import rearrange
import numpy as np
import pandas as pd
import os
from torchvision import transforms
from PIL import Image
import torchimage_path = r".\9.png"
preprocess = transforms.Compose([transforms.Resize((224,224)),transforms.ToTensor()])image = Image.open(image_path).convert("RGB")
tensor_image = preprocess(image)display(tensor_image)patches = rearrange(tensor_image,'c (h p1) (w p2) -> (h w) c p1 p2',p1=16,p2=16)
patches.shapefigure = plt.figure(figsize=(5,5))
for i in range(patches.size(0)):img = patches[i].permute(1,2,0)figure.add_subplot(14,14,i+1)plt.axis('off')plt.imshow(img)
plt.show

理解时空编码(spacetime latent patches)

  • 摊大饼法:
    在这里插入图片描述
    从输入视频剪辑中均匀采样n_t个帧,使用与ViT相同的方法独立地嵌入每个2D帧 并将这些token连接在一起
  • 立体切割:
    在这里插入图片描述
    将输入的视频划分为若干tuplet,每个tuplet会变成一个token
    通过spatial temperal attention进行空间/时间建模获得有效的视频表征token,即上图灰色block。
    VIT讲解
  • VAE编码器 3

扩散模型

  • DIT 待补充

训练用数据

待补充

28号直播交流会后的一些想法

听了三位大佬的一些关于sora的讨论,认为主要可以归纳为以下几点

  • 三位大佬的一个共同点都是对sora使用的训练模型其实并不怎么关注,侧面也说明其实对于数据科学来说,不管是做大模型也好,还是做一些CV、NLP的小项目也好,最关键的,或者说要实现落地,首要考虑的往往不是模型,而是输入
    • 数据的来源,训练数据质量的高低怎么保证
    • 怎么保证对原数据进行压缩、编码后,其中需求的信息没有、或者较少的丢失
  • sora的出现会对现在的一些现有行业造成冲击(如动画、自媒体等),但也谈不上能够摧毁一些行业,大可不必担心工作会丢,它并不算是一个能够取代人类的智能体,只是一个工具,工具要创造价值需要握在人的手上,所以与其焦虑,不如期待怎么使用它来和自己的工作结合
  • sora为啥使用DIT 而不是UNET,大佬的意见是结合自己的实际经验来看,transformer比较适合极大的数据集,而基于CNN的模型在小数量集上的表现反而会更好。
  • 就基于sora的诞生,对于自己的工作的启发:
    • 赵老师认为其实中国对于数据的基础建设这一块当前是欠缺的,不能说能够像水、电这些当做一种资源去利用(感觉蛮有道理,当前中国是有一些专门做数据标注的公司,但并没有体系化,只是从其它公司接外包,然后招一群人做兼职。现在越来越多的AI产品落地,国内对高质量数据集的需求肯定会越来越大的)
    • 沈老师认为,当前实现是不要浮躁,其次是现在其实相对于学术成就,会更加认可你自己实现过的项目,我们想要人生过的好,想要选择好方向(不要选择一些明知道以后可能被取代的方向),然后坚持

自身的一点点想法

  • 个人比较认同沈老师的观点,当前的这些AI产品,远算不上真正的通用智能体,这些AI工具的最大意义是使一些原本工作量巨大,繁杂的工作变得效率更高,没法想人一样去思考,也没有人的想象力。
  • 同时感觉赵老师说的结合自身体会,感觉好像是个可以试试的创业赛道,不过还是得谨慎思考才行。

参考

  • Datawhale 202402学习

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GEE入门篇|图像处理(二):在Earth Engine中进行波段计算

目录 波段计算 1.NDVI的计算 2.NDVI 归一化差值的单次运算计算 3.使用 NDWI 的归一化差值 波段计算 许多指数可以使用 Earth Engine 中的波段运算来计算。 波段运算是对图像中两个或多个波段进行加、减、乘或除的过程。 在这里,我们将首先手动执行此操作&#x…

mac 终端 任何命令都运行不了了

特殊情况 记录一下 mac 配置是发生错误 导致几乎所有命令都运行不了了 下面解决方案 这可能是由于你的 PATH 没有设置正确,或者 .bash_profile 或 .zshrc 文件中存在语法错误。你可以尝试以下方法来解决这个问题: 打开一个新的终端窗口。 通过输入 /bin…

Redis第6讲——主从复制模式详解

Redis的读写性能很高,但在面对大规模数据和高发访问的挑战时,单节点的Redis可能无法满足需求,这就引出了Redis集群的概念。本节先介绍一下Redis高可用方案之一的主从复制模式,虽说现在基本不会用这种模式,但是无论是哨…

特征值和特征向量及其在机器学习中的应用

特征值和特征向量是线性代数中的概念,用于分析和理解线性变换,特别是由方阵表示的线性变换。它们被用于许多不同的数学领域,包括机器学习和人工智能。 在机器学习中,特征值和特征向量用于表示数据、对数据执行操作以及训练机器学…

掌握电子邮件的未来:深入解析IMAP4的革命性特性与实践

IMAP4基本概念 Internet Message Access Protocol, Version 4 (IMAP4) 是一种广泛使用的邮件获取协议,它允许邮件客户端访问和操作远程邮件服务器上存储的邮件信息。IMAP4是IMAP协议的最新版本,提供了更加丰富的邮件处理功能,如邮件搜索、标…

SpringSecurity入门demo(四)权限校验

用户认证授权后,就可以进行接口权限控制。思路是拿用户(已授予的)权限与接口所需权限进行比较,不包含则视为无权。在SpringSecurity中,权限校验可以通过以下方式实现: (1)自定义拦截…

SQL 语句创建数据库

文章目录 MysqlPostgreInfluxDB语法使用 DROP DATABASE 删除数据库 Mysql mysql创建数据库需要账号具有高权限,我们创建一个test001数据库 mysql> CREATE DATABASE test001;使用该SHOW语句找出服务器上当前存在哪些数据库: mysql> SHOW DATABASES; -------…

使用分布式锁解决分布式环境下的并发安全问题

分布式锁 分布式锁的基本概念 在我们进行单机应用开发,涉及并发同步的时候,我们往往采用synchronized或者Lock的方式来解决多线程间的代码同步问题,这时多线程的运行都是在同一个JVM之下。但当我们的应用是分布式集群工作的情况下&#xff…

windows下使用vscode + NDK搭建 Android c++编译环境

需要的环境&#xff1a; NDK cmake&#xff08;若用android studio用过cmake则在sdk下有&#xff09; main.cpp 测试printf打印和log打印 #include <jni.h> // 需要智能提示则在 .vscode/c_cpp_properties.json 将 ndk 下的 toolchains\\llvm\\prebuilt\\windows-x8…

MWC 2024 | 广和通携手意法半导体发布智慧家居解决方案

世界移动通信大会2024期间&#xff0c;广和通携手横跨多重应用领域、全球排名前列的半导体公司意法半导体&#xff08;STMicroelectronics&#xff0c;以下简称ST&#xff1b;纽约证券交易所代码&#xff1a;STM&#xff09;发布支持Matter协议的智慧家居解决方案。该方案在广和…

【两万字面试系列】三年前的面试题。Service里面的线程安全问题

前言 三年前&#xff0c;大概是21年&#xff0c;那会刚学完java&#xff0c;然后去面试&#xff0c;被打的一塌糊涂&#xff0c;今天来盘一盘之前的面试&#xff0c;到底是怎样的问题整住了。然后发现了去年整的线程安全东西&#xff0c;也贴到文章后面了。那个贴的还不太准&a…

如何在Jupyter Notebook切换conda虚拟环境

大家好我是咕噜美乐蒂&#xff0c;很高兴又和大家见面了&#xff01;在 Jupyter Notebook 中切换 Conda 虚拟环境可以通过以下步骤完成。首先&#xff0c;确保您已经安装了 Conda&#xff0c;并且创建了多个虚拟环境。接下来&#xff0c;我将详细介绍在 Jupyter Notebook 中如何…

【大数据面试题】012 谈谈 Hive 性能优化常用的方法

一步一个脚印&#xff0c;一天一道面试题 数据分区和分桶&#xff1a;合适的分区和分桶能减少数据量的输入 合适的数据格式&#xff1a;Parquet&#xff0c;ORC 是可以减少 I/O &#xff0c;网络传输速率等的 列裁剪&#xff1a;一般不要使用 SELECT *&#xff0c;只获取真正…

设计模式:行为型模式

行为型设计模式是一类设计模式&#xff0c;它们关注的是对象之间的相互作用&#xff0c;以及对象如何通过消息传递来实现松耦合。这些模式涉及到算法和对象之间职责的分配。在本文中&#xff0c;我们将深入探讨几种常见的行为型模式&#xff0c;并提供详细的解释、示例和应用场…

HQL,SQL刷题,尚硅谷

目录 相关表数据&#xff1a; 题目及思路解析&#xff1a; 查询结果排序&分组指定条件 1、查询学生的总成绩并按照总成绩降序排序 2、按照如下格式显示学生的语文、数学、英语三科成绩&#xff0c;没有成绩的输出为0&#xff0c;按照学生的有效平均成绩降序显示 3、查询一…

hosts.allow限制可通过SSH登录到服务器的IP

hosts.allow限制可通过SSH登录到服务器的IP 网络防火墙是阻挡非授权主机访问网络的第一道防护&#xff0c;但是它们不应该仅有一道屏障。Linux使用了两个文件!。/etc/hosts.allow和/etc/hosts.deny&#xff0c;根据网络请求的来源限制对服务的访问。 hosts.allow文件列出了允…

常用SQL查询方法与实例

目录 SELECT查询 INSERT查询 UPDATE查询 DELETE查询 JOIN查询 GROUP BY查询 HAVING查询 窗口函数 公共表表达式&#xff08;CTEs&#xff09; 递归查询 透视表 分析函数 解透视 条件聚合 日期函数 合并语句 情况语句 常用SQL查询方法有以下几种&#xff1a; S…

【无监督学习之聚类】

曾梦想执剑走天涯&#xff0c;我是程序猿【AK】 目录 简述概要知识图谱1. K-Means聚类2. 层次聚类&#xff08;Hierarchical Clustering&#xff09;3. DBSCAN&#xff08;Density-Based Spatial Clustering of Applications with Noise&#xff09;4. 谱聚类&#xff08;Spect…

一个实时波形图的封装demo(QT)(qcustomplot)

前言&#xff1a; 封装的一个实时波形图的类&#xff0c;可以直接提升使用。 提供了接口&#xff0c;可以更改颜色&#xff0c;样式&#xff0c;等等 参考&#xff1a; Qt Plotting Widget QCustomPlot - Introduction 另外参考了一个大神的作品&#xff0c;链接没找到。 项目…

前端面试练习24.2.29

一.关于Vuex说法 Vuex可以用来管理数据 Vuex也可以实现组件间的传值 mutation中的方法按照规定最好不要涉及异步方法 Vuex的属性有 state 存储状态 mutations 同步函数 actions 异步函数&#xff0c;并且调用的事mutations getters 派生状态&#xff0c;类似与vue中的c…