跟李沐学AI:视频生成类论文精读(Movie Gen、HunyuanVideo)

Movie Gen:A Cast of Media Foundation Models

简介

Movie Gen是Meta公司提出的一系列内容生成模型,包含了

3.2.1 预训练数据

Movie Gen采用大约 100M 的视频-文本对1B 的图片-文本对进行预训练。

图片-文本对的预训练流程与Meta提出的 Emu: Enhancing image generation models using photogenic needles in a haystack 流程相同。[2309.15807] Emu: Enhancing Image Generation Models Using Photogenic Needles in a HaystacktAbstract page for arXiv paper 2309.15807: Emu: Enhancing Image Generation Models Using Photogenic Needles in a Haystackhttps://arxiv.org/abs/2309.15807https://arxiv.org/abs/2309.15807https://arxiv.org/abs/2309.15807

原始视频数据由4秒至两分钟长度的数据组成,视频内容涵盖人文、自然、动物等多个领域。数据经过预处理后得到一系列的clip-prompts pairs(视频片段-提示词对) 。

每个clip(视频片段)大约4-16秒长,视频内容由单镜头拍摄,且不包含复杂的动作。

视频数据预处理流程如下:

Visual Filtering 

1. 过滤掉分辨率小于720px的视频

2. 数据集中60%的视频为横屏视频,40%为竖屏视频

3. 删去文字特别多的视频

4. 从长视频中抽取出单场景的4-16s的片段

5. 保证视频美学品质

6. 保证视频没有边框

Motion Filtering

删去运动幅度较小的视频,通过Meta内部的静态视频检测模型移除所有没有运动的视频,随后选出具有“合理”运动幅度的视频。

Content Filtering

删除重复的视频片段、对不同类型的数据进行重新采样,保证内容的均匀性。

Captioning

对每个视频片段使用llama3-Video创建准确、具体的prompts。70%的数据使用8B模型,30%的数据使用70B。

为了保证模型能够生成电影质感的运镜,训练了一个运镜分类器来对16类运镜进行分类,如变焦、平移。如果运镜分类结果置信度很高,则将这个运镜分类结果添加至提示词中。

Multi-stage data curation

Movie Gen将上述数据预处理流程分了三个阶段,每个阶段对于数据的筛选逐渐严格,使得模型可以由易到难逐步进行学习。

3.2.2 预训练

1. 首先使用text-to-image的数据对模型进行warm up热身训练,随后使用text-to-image和text-tovideo的数据进行联合训练。

2. 视频数据分辨率首先由256px提升至768px

3. 不断用更好的数据集和优化后的超参数对模型进行训练。

训练阶段:256 px T2I
  1. TP(张量并行度): 1
  • 指训练过程中使用的张量并行度。在这个阶段,没有应用张量并行。
  1. CP(检查点并行度): 1
  • 可能指的是检查点并行度。在这个阶段,没有应用检查点并行。
  1. bs/GPU(每个GPU的批量大小): 6
  • 指每个GPU在一次前向/后向传递中处理的样本数量。每个GPU处理6个样本。
  1. GPUs(GPU数量): 1536
  • 用于训练的GPU总数。这个阶段使用了1536个GPU。
  1. global bs(全局批量大小): 9216
  • 跨所有GPU的总批量大小。计算公式为 bs/GPU * #GPUs = 6 * 1536 = 9216。
  1. learning rate(学习率): 1e-4
  • 确定每次迭代时向损失函数最小值移动的步长。学习率设置为0.0001。
  1. iters(迭代次数): 210k
  • 训练过程中执行的总迭代次数。这个阶段运行210,000次迭代。
  1. seen samples(已见样本数): 1.94B
  • 表示模型在训练过程中暴露的总样本数。模型看到了大约19.4亿个样本。
训练阶段:256 px T2I/V
  1. TP(张量并行度): 4
  • 指训练过程中使用的张量并行度。张量并行度设置为4。
  1. CP(检查点并行度): 1
  • 可能指的是检查点并行度。在这个阶段,没有应用检查点并行。
  1. bs/GPU(每个GPU的批量大小): 2
  • 指每个GPU在一次前向/后向传递中处理的样本数量。每个GPU处理2个样本。
  1. #GPUs(GPU数量): 3072
  • 用于训练的GPU总数。这个阶段使用了3072个GPU。
  1. global bs(全局批量大小): 1536
  • 跨所有GPU的总批量大小。计算公式为 bs/GPU * #GPUs = 2 * 3072 = 1536。
  1. learning rate(学习率): 6e-5
  • 确定每次迭代时向损失函数最小值移动的步长。学习率设置为0.00006。
  1. #iters(迭代次数): 123k
  • 训练过程中执行的总迭代次数。这个阶段运行123,000次迭代。
  1. #seen samples(已见样本数): 173.6M
  • 表示模型在训练过程中暴露的总样本数。模型看到了大约1.736亿个样本。
训练阶段:768 px T2I/V
  1. TP(张量并行度): 4
  • 指训练过程中使用的张量并行度。张量并行度设置为4。
  1. CP(检查点并行度): 1 或 2
  • 可能指的是检查点并行度。在这个阶段,检查点并行度根据配置为1或2。
  1. bs/GPU(每个GPU的批量大小): 1
  • 指每个GPU在一次前向/后向传递中处理的样本数量。每个GPU处理1个样本。
  1. #GPUs(GPU数量): 6144 或 4096
  • 用于训练的GPU总数。这个阶段使用了6144或4096个GPU,取决于配置。
  1. global bs(全局批量大小): 1536、768 或 512
  • 跨所有GPU的总批量大小。计算公式为 bs/GPU * #GPUs。根据配置,它可以是1536、768或512。
  1. learning rate(学习率): 6e-5、3e-5、2e-5 或 1e-5
  • 确定每次迭代时向损失函数最小值移动的步长。学习率在0.00006、0.00003、0.00002和0.00001之间变化。
  1. #iters(迭代次数): 19.6k、11k、15.9k 或 28k
  • 训练过程中执行的总迭代次数。这个阶段运行19,600、11,000、15,900或28,000次迭代,取决于配置。
  1. #seen samples(已见样本数): 30.1M、16.9M、12.2M 或 14.6M
  • 表示模型在训练过程中暴露的总样本数。模型看到了大约3.01亿、1.69亿、1.22亿或1.46亿个样本,取决于配置。

Note:联合训练时,文本-图片对数据和文本视频对的数据保持在1:10左右的比例。

3.3 Fine Tuning 

为了保证生成结果的质量,finetuning的数据集规模可以较小,但是数据质量一定要有保障。因此finetuning的数据均由人为标注。

高质量的定义:良好的运镜、真实性、美学性、内容丰富、文本描述详细。

为了筛选高质量的数据集,Movie Gen使用连续的四个阶段对数据进行筛选:

1. 创建一个候选子集,对每个质量标准进行严格的限制,使用目标检测模型移除了只有小物体的视频。

2. 与Content Filtering一样,对第一阶段筛选后的视频进行重新采样,保证各个类别的视频均匀分布。

3. 人为找出具有电影质感的视频。

4. 人为对模型生成的提示词进行润色修改,同时加入详细的原数据:运镜、人物表情、物体和背景信息、具体的运动描述和光线信息。

模型架构

与预训练阶段保持一致

初始化

使用预训练后的checkpoint文件

节点数

64

GPU数量

512 H100 GPUs (每个节点 8 个GPUs).

Batch Size

相对较小(没有具体说明)

动态学习率

余弦学习率调度器 (Loshchilov and Hutter, 2017).

视频帧率

16秒长度的视频:16FPS;0.6–16秒长的视频:24FPS.

生成视频长度

支持生成10-16秒的视频

5. Model Averaging:不同数据子集、不同超参数训练出来的模型各有所长,为了利用不同checkpoint模型的优势、提升模型泛化性Movie Gen对SFT阶段不同的模型参数进行了平均操作,类似于Llama 3。

HunyuanVideo: A Systematic Framework For Large Video Generative Models

3. Data Pre-porcessing

与Movie Gen一致,Hunyuan Viedoe使用了图像-视频联合训练的策略,将视频分为五类、图像分为两类,以满足不同训练需求。原始数据涵盖人物、动物、风景等多个领域,筛选时设定了最低时长、画质、构图、色彩等严格标准,优先选用高质量数据,显著提升了模型性能。

3.1 Data Filtering

1. 使用PySceneDetect把原始视频分割为单镜头拍摄的视频片段。

2. 使用OpenCV中的拉普拉斯算子找出视频中最“干净”的一帧作为视频开头。

3. 使用内部的VideoCLIP模型计算每个视频的embeddings,使用embeddings计算余弦距离,删去重复数据。使用K-Means算法对数据进行重新采样以保持各种类型数据的多样性。

4. 使用Dover模型筛选更为美观的视频片段。单独训练了一个用于筛选清晰度的视频。

5. 删去了完全禁止和动作幅度较小的视频。(estimated optical flow)

6. 使用PySceneDetect和Transnet v2获得场景边界信息

7. 使用OCR模型移除文字过多的视频片段

8. 使用目标检测模型移除敏感信息

SFT阶段,约有100万条数据,同样采用人为标注的数据进行微调。

3.2 Data Annotation 

结构化说明文本:HunYuanVideo使用JSON来对图片信息进行说明。JSON数据包括:Short Description描述场景的主要内容、Dense Description详细、完整的描述、Background描述物体所在的背景、Style描述视频的风格、Shot Type描述视频的具体视角、Lighting描述视频的光线情况、Atmosphere描述视频氛围如Cozy、Tense等。

此外,HunYuanVideo扩展了JSON结构,以包含额外的元数据派生元素,包括源标签、质量标签以及来自图像和视频元信息的其他相关标签。

为了防止过拟合,HunYuanVideo通过精心设计的Dropout及排列和组合策略,根据这些多维度的描述信息来合成长度和模式各异的字幕,旨在提高生成模型的泛化能力。

HunYuanVideo训练了一个运镜分类器来预测14个不同的运镜类型,包括变焦放大、变焦缩小、向上平移、向下平移等。高置信度的分类结果将被添加至数据的JSON说明文本中。

通过上述两项工作的数据预处理过程,可以看出数据质量对模型的重要性。

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

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

相关文章

Baklib深入解析企业内容管理与内容中台的本质差异

内容概要 在当前信息化快速发展的时代,企业迫切需要高效的内容管理解决方案。企业内容管理(ECM)和内容中台是满足这一需求的两种不同系统。企业内容管理的主要作用是对企业内部的各种文档、数据进行整理和存储,确保信息资源的整合…

Ansible介绍与入门学习

一、Ansible的介绍(Ansible is a radically simple IT automation engine 极简的IT自动化工具) 1.Ansible是一款 运维的自动化工具,常用于软件部署自动化、配置自动化、管理自动化等,其内置大量的功能模块来满足日常的工作需要…

1.27补题 回训练营

E 智乃的小球 题目描述 在一条无限长的水平直线上,有 n 个小球,每个小球的质量相同,体积可以忽略不计。这些小球初始时位于直线上的不同位置,并且每个小球有一个初始速度,速度为 -1 m/s 或 1 m/s。速度为 -1 m/s 表示…

[JavaWeb]搜索表单区域

一.注意事项 设置外边距:margin:(参数可省去部分)上 下 左 右 二.源代码 <!DOCTYPE html> <html lang"zh-CN"> <head> <meta charset"UTF-8"> <title>Tlias智能学习辅助系统</title> <style> /* 导航栏样…

前端进阶:深度剖析预解析机制

一、预解析是什么&#xff1f; 在前端开发中&#xff0c;我们常常会遇到一些看似不符合常规逻辑的代码执行现象&#xff0c;比如为什么在变量声明之前访问它&#xff0c;得到的结果是undefined&#xff0c;而不是报错&#xff1f;为什么函数在声明之前就可以被调用&#xff1f…

基于聚类与相关性分析对马来西亚房价数据进行分析

碎碎念&#xff1a;由于最近太忙了&#xff0c;更新的比较慢&#xff0c;提前祝大家新春快乐&#xff0c;万事如意&#xff01;本数据集的下载地址&#xff0c;读者可以自行下载。 1.项目背景 本项目旨在对马来西亚房地产市场进行初步的数据分析&#xff0c;探索各州的房产市…

范冰冰担任第75届柏林电影节主竞赛单元评委 共鉴电影佳作

近日&#xff0c;备受瞩目的柏林电影节迎来了新一届盛事&#xff0c;而华人演员范冰冰将以主竞赛单元评委身份亮相&#xff0c;引发了广泛关注。此前她已担任过戛纳国际电影节、东京国际电影节、圣塞巴斯蒂安国际电影节等众多电影节主竞赛单元评委。作为国际影坛的知名人物&…

Ollama 运行从 ModelScope 下载的 GGUF 格式的模型

本文系统环境 Windows 10 Ollama 0.5.7 Ollama 是什么&#xff1f; Ollama 可以让你快速集成和部署本地 AI 模型。它支持各种不同的 AI 模型&#xff0c;并允许用户通过简单的 API 进行调用 Ollama 的安装 Ollama 官网 有其下载及安装方法&#xff0c;非常简便 但如果希…

“腾讯、钉钉、飞书” 会议开源平替,免费功能强大

在数字化时代&#xff0c;远程办公和线上协作越来越火。然而&#xff0c;市面上的视频会议工具要么贵得离谱&#xff0c;要么功能受限&#xff0c;甚至还有些在数据安全和隐私保护上让人不放心。 今天开源君给大家安利一个超棒的开源项目 - Jitsi Meet&#xff0c;这可是我在网…

【教学类-89-01】20250127新年篇01—— 蛇年红包(WORD模版)

祈愿在2025蛇年里&#xff0c; 伟大的祖国风调雨顺、国泰民安、每个人齐心协力&#xff0c;共同经历这百年未有之大变局时代&#xff08;国际政治、AI技术……&#xff09; 祝福亲友同事孩子们平安健康&#xff08;安全、安全、安全&#xff09;、巳巳如意&#xff01; 背景需…

2025年1月30日(任意截面、自定义截面梁的设置)

Ansys 在ANSYS中&#xff0c;以下是这些术语的详细解释&#xff1a; Nodal Solution (节点解): Nodal Solution指的是在有限元分析中计算出的节点处的物理量解。通常包括节点的位移、反应力等信息。节点解是分析结果的基础&#xff0c;因为它们可以用来计算其他重要的物理量&a…

unity使用内置videoplayer打包到安卓手机进行视频播放

1.新建UI&#xff0c;新建RawImage在画布当作视频播放的显示载体 2.新建VideoPlayer 3.新建Render Texture作为连接播放器视频显示和幕布的渲染纹理 将Render Texture同时挂载在VideoPlayer播放器和RawImage上。这样就可以将显示的视频内容在RawImage上显示出来了。 问题在于&a…

【Envi遥感图像处理】008:波段(批量)分离与波段合成

文章目录 一、波段分离提取1. 提取单个波段2. 批量提取单个波段二、波段合成相关阅读:【ArcGIS微课1000例】0058:波段合成(CompositeBands)工具的使用 一、波段分离提取 1. 提取单个波段

MongoDB平替数据库对比

背景 项目一直是与实时在线监测相关&#xff0c;特点数据量大&#xff0c;读写操作大&#xff0c;所以选用的是MongoDB。但按趋势来讲&#xff0c;需要有一款国产数据库可替代&#xff0c;实现信创要求。选型对比如下 1. IoTDB 这款是由清华大学主导的开源时序数据库&#x…

C语言------数组从入门到精通

1.一维数组 目标:通过思维导图了解学习一维数组的核心知识点: 1.1定义 使用 类型名 数组名[数组长度]; 定义数组。 // 示例&#xff1a; int arr[5]; 1.2一维数组初始化 数组的初始化可以分为静态初始化和动态初始化两种方式。 它们的主要区别在于初始化的时机和内存分配的方…

物联网智能项目之——智能家居项目的实现!

成长路上不孤单&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a; 【14后&#x1f60a;///计算机爱好者&#x1f60a;///持续分享所学&#x1f60a;///如有需要欢迎收藏转发///&#x1f60a;】 今日分享关于物联网智能项目之——智能家居项目…

Nxopen 直齿轮参数化设计

NXUG1953 Visualstudio 2019 参考论文&#xff1a; A Method for Determining the AGMA Tooth Form Factor from Equations for the Generated Tooth Root Fillet //FullGear// Mandatory UF Includes #include <uf.h> #include <uf_object_types.h>// Internal I…

蓝桥杯模拟算法:蛇形方阵

P5731 【深基5.习6】蛇形方阵 - 洛谷 | 计算机科学教育新生态 我们只要定义两个方向向量数组&#xff0c;这种问题就可以迎刃而解了 比如我们是4的话&#xff0c;我们从左向右开始存&#xff0c;1&#xff0c;2&#xff0c;3&#xff0c;4 到5的时候y就大于4了就是越界了&…

VLLM性能调优

1. 抢占 显存不够的时候&#xff0c;某些request会被抢占。其KV cache被清除&#xff0c;腾退给其他request&#xff0c;下次调度到它&#xff0c;重新计算KV cache。 报这条消息&#xff0c;说明已被抢占&#xff1a; WARNING 05-09 00:49:33 scheduler.py:1057 Sequence gr…

HTML特殊符号的使用示例

目录 一、基本特殊符号的使用 1、空格符号&#xff1a; 2、小于号 和 大于号&#xff1a; 3、引号&#xff1a; 二、版权、注册商标符号的使用 1、版权符号&#xff1a;© 2、注册商标符号&#xff1a; 三、数学符号的使用 四、箭头符号的使用 五、货币符号的使用…