当前位置: 首页 > news >正文

跟李沐学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说明文本中。

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

相关文章:

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

Movie Gen:A Cast of Media Foundation Models 简介 Movie Gen是Meta公司提出的一系列内容生成模型,包含了 3.2.1 预训练数据 Movie Gen采用大约 100M 的视频-文本对和 1B 的图片-文本对进行预训练。 图片-文本对的预训练流程与Meta提出的 Emu: Enh…...

7.抽象工厂(Abstract Factory)

抽象工厂与工厂方法极其类似,都是绕开new的,但是有些许不同。 动机 在软件系统中,经常面临着“一系列相互依赖的对象”的创建工作;同时,由于需求的变化,往往存在更多系列对象的创建工作。 假设案例 假设…...

python-leetcode-路径总和

112. 路径总和 - 力扣(LeetCode) # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right right class Solution:de…...

WGCLOUD使用介绍 - 如何监控ActiveMQ和RabbitMQ

根据WGCLOUD官网的信息,目前没有针对ActiveMQ和RabbitMQ这两个组件专门做适配 不过可以使用WGCLOUD已经具备的通用监测模块:进程监测、端口监测或者日志监测、接口监测 来对这两个组件进行监控...

智能汽车网络安全威胁报告

近年来随着智能汽车技术的快速发展,针对智能汽车的攻击也逐渐从传统的针对单一车辆控制器的攻击转变为针对整车智能化服务的攻击,包括但不限于对远程控制应用程序的操控、云服务的渗透、智能座舱系统的破解以及对第三方应用和智能服务的攻击。随着WP.29 …...

WPS怎么使用latex公式?

1、下载并安装mathtype https://blog.csdn.net/weixin_43135178/article/details/125143654?sharetypeblogdetail&sharerId125143654&sharereferPC&sharesourceweixin_43135178&spm1011.2480.3001.8118 2、将mathtype嵌入在WPS MathType面板嵌入器,免费工具…...

Cyber Security 101-Build Your Cyber Security Career-Security Principles(安全原则)

了解安全三元组以及常见的安全模型和原则。 任务1:介绍 安全已成为一个流行词;每家公司都想声称其产品或服务是安全的。但事实真的如此吗? 在我们开始讨论不同的安全原则之前,了解我们正在保护资产的对手至关重要。您是否试图阻止蹒跚学步…...

Formality:时序变换(二)(不可读寄存器移除)

相关阅读 Formalityhttps://blog.csdn.net/weixin_45791458/category_12841971.html?spm1001.2014.3001.5482 一、引言 时序变换在Design Compiler的首次综合和增量综合中都可能发生,它们包括:时钟门控(Clock Gating)、寄存器合并(Register Merging)、…...

MathType下载与安装详细教程

MathType 软件简介安装步骤重新嵌入word 软件简介 数学公式编辑器MathType 是一款专业的数学公式编辑工具,理科生专用的工具。MathType公式编辑器能够帮助用户在各种文档中插入复杂的数学公式和符号。数学公式编辑器工具可以轻松输入各种复杂的公式和符号&#xff…...

docker中运行的MySQL怎么修改密码

1,进入MySQL容器 docker exec -it 容器名 bash 我运行了 docker ps命令查看。正在运行的容器名称。可以看到MySQL的我起名为db docker exec -it db bash 这样就成功的进入到容器中了。 2,登录MySQL中 mysql -u 用户名 -p 回车 密码 mysql -u root -p roo…...

内外网文件摆渡企业常见应用场景和对应方案

在如今的企业环境中,内外网文件摆渡的需求越来越常见,也变得越来越重要。随着信息化的不断推进,企业内部和外部之间的数据交换越来越频繁,如何安全、高效地进行文件传输成了一个关键问题。今天,咱就来聊聊内外网文件摆…...

【Block总结】PKI 模块,无膨胀多尺度卷积,增强特征提取的能力|即插即用

论文信息 标题: Poly Kernel Inception Network for Remote Sensing Detection 作者: Xinhao Cai, Qiuxia Lai, Yuwei Wang, Wenguan Wang, Zeren Sun, Yazhou Yao 论文链接:https://arxiv.org/pdf/2403.06258 代码链接:https://github.com/NUST-Mac…...

自制一个入门STM32 四足机器人具体开发顺序

0 前期准备 1. 知识储备 学习 STM32 微控制器的基础知识,包括 GPIO、定时器、串口通信等外设的使用,可通过官方文档、教程和视频课程进行学习。了解舵机控制原理,因为四足机器人通常使用舵机来实现关节运动。掌握基本的机械结构设计知识&am…...

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

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

[免费]微信小程序智能商城系统(uniapp+Springboot后端+vue管理端)【论文+源码+SQL脚本】

大家好,我是java1234_小锋老师,看到一个不错的微信小程序智能商城系统(uniappSpringboot后端vue管理端),分享下哈。 项目视频演示 【免费】微信小程序智能商城系统(uniappSpringboot后端vue管理端) Java毕业设计_哔哩哔哩_bilibili 项目介绍…...

C28.【C++ Cont】顺序表的实现

🧨🧨🧨🧨🧨🧨🧨🧨🧨初二篇🧨🧨🧨🧨🧨🧨🧨🧨🧨 目录 1.知识回顾…...

【电工基础】低压电器元件,低压断路器(空开QF),接触器(KM)

一.低压电器元件定义 电器可分为高压电器和低压电器两大类,我国现行标准是将工作在交流1200V(50Hz)以下、直流1500V以下的电器设备称为低压电器。 二.低压断路器,空开,空气断路器 1.空开图片与使用方式 当电路中发生严重过载、短路及失压等故…...

从 UTC 日期时间字符串获取 Unix 时间戳:C 和 C++ 中的挑战与解决方案

在编程世界里,从 UTC 日期时间字符串获取 Unix 时间戳,看似简单,实则暗藏玄机。你以为输入一个像 “Fri, 17 Jan 2025 06:07:07” 这样的 UTC 时间,然后轻松得到 1737094027(从 1970 年 1 月 1 日 00:00:00 UTC 开始经…...

[前端开发]记录国内快速cdn库,用于在线引入JavaScript第三方库

字节跳动的两个库,官网地址如下,搜索时优先找第一个,可用来链接axios,Boostrap等等第三方库 1. 字节跳动静态资源公共库 比如说搜索lodash,用于节流防抖的库,点击复制即可,一般是****.js或****.min.js这样的为后缀名的链接 点击复制即可, <script src"https://lf9-cd…...

留学生scratch计算机haskell函数ocaml编程ruby语言prolog作业VB

您列出了一系列编程语言和技术&#xff0c;这些可能是您在留学期间需要学习或完成作业的内容。以下是对每个项目的简要说明和它们可能涉及的领域或用途&#xff1a; Scratch&#xff1a; Scratch是一种图形化编程语言&#xff0c;专为儿童和初学者设计&#xff0c;用于教授编程…...

CLIP ViT-H-14多场景适配方案:教育题库图像索引、医疗报告配图推荐、设计素材库检索

CLIP ViT-H-14多场景适配方案&#xff1a;教育题库图像索引、医疗报告配图推荐、设计素材库检索 1. 项目概述 CLIP ViT-H-14图像编码服务是基于CLIP ViT-H-14(laion2B-s32B-b79K)模型的图像特征提取解决方案。这项服务通过RESTful API和Web界面两种方式&#xff0c;为不同行业…...

MATLAB与AI结合:使用Qwen3.5-4B-Claude-4.6-Opus-Reasoning-Distilled-GGUF进行科学计算与数据分析

MATLAB与AI结合&#xff1a;使用Qwen3.5-4B-Claude-4.6-Opus-Reasoning-Distilled-GGUF进行科学计算与数据分析 1. 科研与工程中的智能计算新范式 想象一下这样的场景&#xff1a;你正在处理一组复杂的实验数据&#xff0c;需要快速实现滤波、拟合和可视化。传统方式可能需要…...

在MATLAB中调用与可视化Lingbot-Depth-Pretrain-ViTL-14的深度估计结果

在MATLAB中调用与可视化Lingbot-Depth-Pretrain-ViTL-14的深度估计结果 对于很多从事计算机视觉、机器人或者测绘相关研究的工程师和学者来说&#xff0c;深度估计是一个基础又关键的任务。它能从一张普通的二维图片中&#xff0c;推测出每个像素点距离相机的远近&#xff0c;…...

专业数据恢复工具对决:UFS Explorer与R-Studio的实战选型指南

1. 数据恢复工具的核心价值与选型逻辑 当硬盘突然罢工或重要文件被误删时&#xff0c;专业数据恢复软件就像数字世界的急救医生。我经历过太多凌晨三点被叫醒处理服务器崩溃的案例&#xff0c;选对工具往往能决定数据"复活"的成功率。UFS Explorer和R-Studio这对老对…...

Kettle转换里‘阻塞数据’控件为啥不灵?我用这个真实ETL案例给你讲透

Kettle转换中‘阻塞数据’控件的实战解析&#xff1a;从失效到精准控制 在ETL工具Kettle的实际应用中&#xff0c;数据流的精确控制往往是决定任务成败的关键。许多中高级用户在使用"阻塞数据直到步骤都完成"控件时&#xff0c;都曾遇到过看似配置正确却无法生效的困…...

从CFG到PDG:5个真实案例解析程序依赖图在安全审计中的应用

从CFG到PDG&#xff1a;5个真实案例解析程序依赖图在安全审计中的应用 在软件安全领域&#xff0c;漏洞检测的精准度往往取决于代码分析的深度。传统控制流图&#xff08;CFG&#xff09;虽然能描绘执行路径&#xff0c;却难以捕捉数据流转的潜在风险。程序依赖图&#xff08;P…...

Qwen3-TTS快速部署教程:一键启动Web服务,3分钟开始声音克隆

Qwen3-TTS快速部署教程&#xff1a;一键启动Web服务&#xff0c;3分钟开始声音克隆 1. 为什么选择Qwen3-TTS进行语音克隆 想象一下这样的场景&#xff1a;你需要为海外客户录制多语言产品介绍&#xff0c;但雇佣专业配音演员成本高昂&#xff1b;或者想为自己的视频内容添加个…...

仙侠H5手游【九州封魔劫代金券内购版】服务端图文搭建教程(含资源下载+部署过程)

游戏截图搭建环境信息 系统&#xff1a;Centos 7.6 内存&#xff1a;4G 处理器&#xff1a;2核 注意事项 复制代码需要通过浏览器打开文章才不会报错 搭建资源获取 百度网盘&#xff1a;https://pan.baidu.com/s/1wmz7RegQGBaNrYYVbuJqgg?pwdkdn4 解压密码&#xff1a;www.won…...

Mojo加速Python科学计算:如何在72小时内将AI推理速度提升8.6倍(附完整可运行代码)

第一章&#xff1a;Mojo与Python混合编程概述Mojo 是一种为 AI 系统量身打造的现代系统编程语言&#xff0c;兼具 Python 的易用性与 C/C 的执行效率。它原生兼容 Python 生态&#xff0c;允许开发者在同一个项目中无缝调用 Python 模块、复用现有 NumPy/Torch 代码&#xff0c…...

springboot+vue基于web的汽车后市场维修保养管理系统的设计与实现

目录系统功能模块分析维修保养业务模块财务与统计模块客户端交互功能技术实现要点项目技术支持源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作系统功能模块分析 用户管理模块 实现用户注册、登录、权限管理&#xff08;管理员、员工、客户…...