【Datawhale组队学习:Sora原理与技术实战】训练一个 sora 模型的准备工作,video caption 和算力评估

news2025/1/14 18:26:13

训练 Sora 模型

在 Sora 的技术报告中,Sora 使用视频压缩网络将各种大小的视频压缩为潜在空间中的时空 patches sequence,然后使用 Diffusion Transformer 进行去噪,最后解码生成视频。

Open-Sora 在下图中总结了 Sora 可能使用的训练流程。

训练链路:

数据准备

开源数据集:

VideoInstruct-100K:

VideoInstruct100K 是使用人工辅助和半自动注释技术生成的高质量视频对话数据集。数据集中的问题答案与以下内容相关:

  • 视频摘要
  • 基于描述的问题答案(探索空间、时间、关系和推理概念)
  • 创意/生成性问题解答

链接:https://modelscope.cn/datasets/AI-ModelScope/VideoInstruct-100K

panda-70m:

Panda-70M 是一个包含 70M 高质量视频字幕对的大规模数据集。该存储库分为三个部分:

  • 数据集数据加载包括列出 Panda-70M 数据的 csv 文件以及下载数据集的代码。
  • 分割包括将长视频分割成多个语义一致的短片的代码。
  • 字幕包括在 Panda-70M 上训练的拟议视频字幕模型。

链接:https://modelscope.cn/datasets/AI-ModelScope/panda-70m

Youku-mPLUG:

Youku-mPLUG 预训练数据集挖掘自优酷站内海量的优质短视频内容

  • 包含千万级别约 36TB 的视频、文本数据。
  • 其中视频均为覆盖 10 ~ 120 秒的 UGC 短视频内容,文本为视频对应的描述标题,长度 5 ~ 30 不等。
  • 该数据集抽取时品类均衡,内容共包含 45 个大类。

链接:https://modelscope.cn/datasets/modelscope/Youku-AliceMind

MSR-VTT:

MSR-VTT(Microsoft Research Video to Text)是一个开放域视频字幕的大规模数据集。

  • 由 20 个类别的 10,000 个视频片段组成,每个视频片段由 Amazon Mechanical Turks 标注了 20 个英文句子。
  • 所有标题中约有 29,000 个独特单词。
  • 标准分割使用 6,513 个 split 用于训练,497 个 split 用于验证,2,990 个 split 用于测试。

链接:https://modelscope.cn/datasets/AI-ModelScope/msr-vtt

Shot2Story:

视频文本基准和用于多镜头视频理解的可扩展代码。包含 20k 视频的详细长摘要和 80k 视频镜头的镜头字幕。

链接:https://modelscope.cn/datasets/AI-ModelScope/Shot2Story

InternVid:

InternVid 是一个以视频为中心的大规模多模态数据集,可以学习强大且可转移的视频文本表示,以实现多模态理解和生成。 InternVid 数据集包含超过 700 万个视频,持续近 76 万小时,产生 2.34 亿个视频剪辑,并附有总共 4.1B 个单词的详细描述。

链接:https://modelscope.cn/datasets/AI-ModelScope/InternVid

webvid-10M:

大型文本视频数据集,包含从素材网站抓取的1000 万个视频文本对。

链接:https://modelscope.cn/datasets/AI-ModelScope/webvid-10M

数据预处理

目前主流 LLM 框架缺乏针对 video 数据 统一便捷的管理和处理能力,且多模态数据处理标准方案缺失

  • Huggingface-Datasets 官方认为 video 比 image 更棘手,暂未支持
  • 相关 video 库对该场景过于庞杂或简单
  • FFmpeg:150w 行+源码,大量底层细节
  • pytorchvideo:主要支持加载和少量单 video 模态的tensor transform(翻转、扰动、采样等)
  • SORA 官方仅模糊提及使用了 DALLE3 来生成 caption,细粒度的"caption --> spacetime patch"建模比较关键
  • 从 SORA 模型效果看,数据需要有变化的时长、分辨率和宽高比

Data-Juicer扩展了对多模态数据的支持,已实现上百个专用的视频、图像、音频、文本等多模态数据处理算子及工具,帮助用户分析、清洗及生成大规模高质量数据。

  • 支持视频数据的高性能 IO 和处理
  • 支持并行化数据加载:lazy load with pyAV and ffmpeg;多模态数据路径签名
  • 并行化算子处理:支持单机多核;GPU 调用;Ray 多机分布式
  • [WIP] 分布式调度优化;分布式存储优化
  • 基础算子(细粒度模态间匹配及生成)
  • 基础算子(视频时空维度)

  • 基础算子(细粒度模态间匹配及生成)

  • 进阶算子(视频内容)

  • DJ-SORA 数据菜谱及数据集

  • DJ-SORA 数据验证及模型训练

开源链接:https://github.com/alibaba/data-juicer/docs/DJ_SORA_ZH.md

模型选型和训练

视频 VQVAE

VideoGPT 使用 VQ-VAE,通过采用 3D 卷积和轴向自注意力来学习原始视频的下采样离散潜在表示。然后使用一个简单的类似 GPT 的架构,使用时空位置编码对离散潜在变量进行自回归建模。用于 BAIR Robot 数据集上的视频生成,并从 UCF-101 和 Tumbler GIF 生成高保真自然图像数据集(TGIF)。

https://github.com/wilson1yan/VideoGPT/

Diffusion Transformer

普遍认为 Diffusion Transformer 模型是 Sora 的技术基础,通过结合 diffusion model 和 transformer,从而达到可以 scale up model 来提升图像生成质量的效果。我们总结了三个目前开源的 Diffusion Transformer 研究如下,并总结了最佳实践,可以在魔搭社区的免费算力上运行和测试。

UViT:All are Worth Words: A ViT Backbone for Diffusion Models

论文链接:https://arxiv.org/abs/2209.12152

代码库链接:https://github.com/baofff/U-ViT

模型链接:https://modelscope.cn/models/thu-ml/imagenet256_uvit_huge

DiT:Scalable Diffusion Models with Transformers

论文链接:https://arxiv.org/abs/2212.09748

代码库链接:https://github.com/facebookresearch/DiT

模型链接:https://modelscope.cn/models/AI-ModelScope/DiT-XL-2-256x256/summary

SiT:Exploring Flow and Diffusion-based Generative Models with Scalable Interpolant Transformers (SiT)

论文链接:https://arxiv.org/pdf/2401.08740.pdf

代码库链接:https://github.com/willisma/SiT

模型链接:https://modelscope.cn/models/AI-ModelScope/SiT-XL-2-256

总结

U-ViT是一种简单且通用的基于 ViT 的扩散概率模型的主干网络,U-ViT 把所有输入,包括图片、时间、条件都当作 token 输入,并且引入了long skip connection。U-ViT 在无条件生成、类别条件生成以及文到图生成上均取得了可比或者优于 CNN 的结果。为未来扩散模型中骨干网络研究提供见解,并有利于大规模跨模态数据集的生成建模。

DiT同样的提出了使用 ViT 代替 U-Net 的思想,不同的是 DiT 中没有引入 long skip connection 也依然取得了杰出的效果。推测原因可能有:

  • DiT 出色的Adaptive layer norm以及零初始化的设计能够有效提升生成质量;
  • DiT 在建模特征空间表现良好,但在建模像素空间表现欠缺,可能在用扩散概率模型建模像素空间分布时 long skip connection 是至关重要的;
  • 即使在建模特征空间上,DiT 没有 long skip connection 也能取得很好的效果,但 long skip connection 在加速收敛方面也起着关键的作用。

而近期推出的可扩展插值变压器 (SiT),是建立在 DiT 基础上的生成模型系列。 **插值框架,**相比标准的 diffusion 模型允许以更灵活的方式连接两个 distributions,使得对影响生成的各种设计选择的模块化研究成为可能。SiT 在 ImageNet 256x256 基准上模型大小和效果超过了 DiT 和 UViT,SiT 实现了 2.06 的 FID-50K 分数。

Video-caption

OpenAI 训练了一个具备高度描述性的视频标题生成(Video Captioning)模型,使用这个模型为所有的视频训练数据生成了高质量文本标题,再将视频和高质量标题作为视频文本对进行训练。通过这样的高质量的训练数据,保障了文本(prompt)和视频数据之间高度的 align。通过近期的讨论和资料,我们推测 Video Captioning 模型是由多模态大语言模型 VLM(如**GPT4V 模型)**微调出来的。开发者也可以通过视频抽帧+开源 VLM 生成描述+LLM 总结描述的方式,生成较好的视频描述。下面是一些开源的多模态模型:

零一万物 VL 模型(Yi-VL-34B)

代码库链接:https://github.com/01-ai/Yi/tree/main/VL

模型链接:https://modelscope.cn/models/01ai/Yi-VL-34B/

通义千问 VL 模型(Qwen-VL-Chat)

论文链接:https://arxiv.org/abs/2308.12966

代码库链接:https://github.com/QwenLM/Qwen-VL

模型链接:https://modelscope.cn/models/qwen/Qwen-VL-Chat

浦语·灵笔 2-视觉问答-7B(internlm-xcomposer2-vl-7b)

代码库链接:https://github.com/InternLM/InternLM-XComposer

模型链接:https://modelscope.cn/models/Shanghai_AI_Laboratory/internlm-xcomposer2-vl-7b/summary

CogVLM 模型:

技术报告:https://zhipu-ai.feishu.cn/wiki/LXQIwqo1OiIVTykMh9Lc3w1Fn7g

代码库链接:https://github.com/THUDM/CogVLM

模型链接:https://modelscope.cn/models/ZhipuAI/CogVLM/summary

MiniCPM-V 模型:

论文链接:https://arxiv.org/abs/2308.12038

代码库链接:https://github.com/OpenBMB/OmniLMM/

模型链接:https://modelscope.cn/models/OpenBMB/MiniCPM-V/summary

Video-LLaVA 模型:

论文链接:https://arxiv.org/abs/2311.10122

代码库链接:https://github.com/PKU-YuanGroup/Video-LLaVA

模型链接:https://modelscope.cn/models/PKU-YuanLab/Video-LLaVA-7B/summary

总结对比

从模型参数量来看,零一万物,CogVLM 的模型是百亿参数,但是仅支持英文,通义,灵笔等模型可以较好的支持中文,Video-LLaVA 可以支持直接对视频的理解,可以根据需求来选择具体的多模态大语言模型。

参考资料

sora-tutorial/docs/chapter3/chapter3_1/chapter3_1.md at main · datawhalechina/sora-tutorial (github.com)

学习视频:【AI+X组队学习】Sora原理与技术实战:训练一个sora模型的准备工作,video caption和算力评估_哔哩哔哩_bilibili

Open-Sora:https://hpc-ai.com/blog/open-so

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

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

相关文章

快手发布革命性视频运动控制技术 DragAnything,拖动锚点精准控制视频物体和镜头运动

快手联合浙江大学、新加坡国立大学发布了DragAnything ,利用实体表示实现对任何物体的运动控制。该技术可以精确控制物体的运动,包括前景、背景和相机等不同元素。 该项目提供了对实体级别运动控制的新见解,通过实体表示揭示了像素级运动和实…

layuiAdmin-通用型后台模板框架【广泛用于各类管理平台】

1. 主页 1.1 控制台 2. 组件 3. 页面 3.1 个人主页 3.2 通讯录 3.3 客户列表 3.4 商品列表 3.5 留言板 3.6 搜索结果 3.7 注册 3.8 登入 3.9 忘记密码 4. 应用 4.1 内容系统 4.1.1 文章列表 4.1.2 分类管理 4.1.3 评论管理 4.2 社区系统 4.2.1 帖子列表 4.2.2 回…

数据结构---C语言栈队列

知识点: 栈: 只允许在一端进行插入或删除操作的线性表,先进后出LIFO 类似一摞书,按顺序拿,先放的书只能最后拿; 顺序栈:栈的顺序存储 typedef struct{Elemtype data[50];int top; }SqStack; SqS…

724.寻找数组的中心下标

题目:给你一个整数数组 nums ,请计算数组的 中心下标 。 数组 中心下标 是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。 如果中心下标位于数组最左端,那么左侧数之和视为 0 ,因为在下标的左侧不…

力扣爆刷第96天之hot100五连刷66-70

力扣爆刷第96天之hot100五连刷66-70 文章目录 力扣爆刷第96天之hot100五连刷66-70一、33. 搜索旋转排序数组二、153. 寻找旋转排序数组中的最小值三、4. 寻找两个正序数组的中位数四、20. 有效的括号五、155. 最小栈 一、33. 搜索旋转排序数组 题目链接:https://le…

回归预测 | Matlab实现SO-BP蛇算法优化BP神经网络多变量回归预测

回归预测 | Matlab实现SO-BP蛇算法优化BP神经网络多变量回归预测 目录 回归预测 | Matlab实现SO-BP蛇算法优化BP神经网络多变量回归预测预测效果基本描述程序设计参考资料 预测效果 基本描述 1.Matlab实现SO-BP蛇算法优化BP神经网络多变量回归预测(完整源码和数据) …

MyBatis学习笔记|2024最新版Mybatis

Mybatis简介 MyBatis历史 MyBatis最初是Apache的一个开源项目iBatis, 2010年6月这个项目由Apache Software Foundation迁移到了Google Code。随着开发团队转投Google Code旗下,iBatis3.x正式更名为MyBatis。代码于2013年11月迁移到GithubiBatis一词来源于“internet”和“aba…

2024年【天津市安全员C证】考试内容及天津市安全员C证考试报名

题库来源:安全生产模拟考试一点通公众号小程序 天津市安全员C证考试内容是安全生产模拟考试一点通生成的,天津市安全员C证证模拟考试题库是根据天津市安全员C证最新版教材汇编出天津市安全员C证仿真模拟考试。2024年【天津市安全员C证】考试内容及天津市…

C++提高笔记(四)---STL容器(stack、queue、list)

1、stack容器(栈) 1.1 栈stack基本概念 概念:stack是一种先进后出(First In Last Out,FILO)的数据结构,它只有一个出口 栈中只有顶端的元素才可以被外界调用,因此栈不允许有遍历行…

YOLOv7改进 | 更换主干网络之PP-LCNet

前言:Hello大家好,我是小哥谈。PP-LCNet是一个由百度团队针对Intel-CPU端加速而设计的轻量高性能网络。它是一种基于MKLDNN加速策略的轻量级卷积神经网络,适用于多任务,并具有提高模型准确率的方法。与之前预测速度相近的模型相比,PP-LCNet具有更高的准确性。此外,对于计…

mac启动elasticsearch

1.首先下载软件,然后双击解压,我用的是7.17.3的版本 2.然后执行如下命令 Last login: Thu Mar 14 23:14:44 on ttys001 diannao1xiejiandeMacBook-Air ~ % cd /Users/xiejian/local/software/elasticsearch/elasticsearch-7.17.3 diannao1xiejiandeMac…

Iframe 嵌入: 页面嵌入并保持自适应页面的宽高并铺满整个屏幕

文章目录 问题分析1. 嵌入 Iframe2. 样式3. 源码 问题 当我们使用 Iframe 嵌入页面后&#xff0c;会看到它只在小小的一部分进行展示&#xff0c;如何让它铺满整个屏幕 分析 1. 嵌入 Iframe <template><div><iframe :src"embeddedPageUrl" width…

编译原理学习之-一个简单的语法制导翻译器

第二章 一个简单的语法制导翻译器 将具有代表性的程序设计语言语句翻译为三地址码&#xff08;一种中间表示形式&#xff09;&#xff0c;本章的重点是编译器的前端&#xff0c;特别是词法分析&#xff0c;语法分析和中间代码生产。 建立一个中缀算术表达式转换为后缀表达式的…

vivado Placement、时钟和I/O放置、全局布局、详细布局和布局后优化

安置 Vivado Design Suite放置程序将网表中的单元放置到目标AMD中的特定站点上装置与其他实现命令一样&#xff0c;Vivado放置程序工作于并更新&#xff0c;内存中的设计。 设计布局优化 Vivado砂矿器同时优化了以下方面的设计布局&#xff1a; •定时松弛&#xff1a;选择…

1本“On Hold”期刊被剔除!3月Scopus期刊目录已更新!

【SciencePub学术】 2024年3月&#xff0c;Scopus数据库迎来本年度第三次更新&#xff01;此次更新后&#xff0c;有86本期刊发生变动&#xff1a; • 剔除&#xff1a;有5本期刊不再被Scopus数据库收录&#xff08;Discontinued titles Feb. 2024&#xff09;&#xff1b; •…

OJ_点菜问题(背包问题)

题干 C实现 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<vector> using namespace std;int main() {int c, n;scanf("%d%d", &c, &n);int p[101];int v[101];for (int i 0; i < n; i){scanf("%d%d", &p[i],…

swagger踩坑之请求类不显示具体字段

swagger踩坑之请求类不显示具体字段 省流&#xff1a;枚举字段需要加上ApiModelProperty注解 过程复现&#xff1a; TestEnum 枚举不加注解&#xff0c;swagger的UI类不显示详细字段 Data Accessors(chain true) ApiModel(value "test对象", description &quo…

“优化消费环境 维护消费者权”荥阳市城关乡社工站开展3·15宣传志愿活动

又是一年“315”&#xff0c;为提高辖区群众消费维权意识&#xff0c;让他们可以学会运用政策法律知识维护自身合法权益&#xff0c;同时也为营造出辖区良好营商环境。2024年3月15日&#xff0c;在荥阳市民政局、荥阳市市场监督管理局、城关乡人民政府的支持下&#xff0c;城关…

Gitee 实战配置

一、Gitee 注册帐号 官网:https://gitee.com点击注册按钮。填写姓名。填写手机号。填写密码。点击立即注册按钮二、安装GIT获取公钥 1.官网下载git下载地址:https://git-scm.com/download/win 2.安装git,双击运行程序,然后一直下一步,直至完成。 3.安装完成后,在 CMD 命令…

YOLOv8 | 有效涨点,添加GAM注意力机制,使用Wise-IoU有效提升目标检测效果(附报错解决技巧,全网独家)

目录 摘要 基本原理 通道注意力机制 空间注意力机制 GAM代码实现 Wise-IoU WIoU代码实现 yaml文件编写 完整代码分享&#xff08;含多种注意力机制&#xff09; 摘要 人们已经研究了各种注意力机制来提高各种计算机视觉任务的性能。然而&#xff0c;现有方法忽视了…