[WIP]Sora相关工作汇总VQGAN、MAGVIT、VideoPoet

2024-04-07 17:44

本文主要是介绍[WIP]Sora相关工作汇总VQGAN、MAGVIT、VideoPoet,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

视觉任务相对语言任务种类较多(detection, grounding, etc.)、粒度不同 (object-level, patch-level, pixel-level, etc.),且部分任务差异较大,利用Tokenizer核心则为如何把其他模态映射到language space,并能让语言模型更好理解不同的视觉任务,更好适配LM建模方式,目前SOTA工作MAGVIT-v2,VideoPoet

VQGAN(Taming Transformers for High-Resolution Image Synthesis)

在这里插入图片描述
两阶段训练,先训练下面的VQVAE,再训练Transformer的Causal Loss和PatchGAN

MAGVIT: Masked Generative Video Transformer

官方Project URL: https://magvit.cs.cmu.edu/ 介绍的不错,简单来说MAGVIT=3D-CNN+VQ-GAN,从效果上看会有闪烁的情况
以下部分摘录自 https://zhuanlan.zhihu.com/p/674145301,整个工作分为两个阶段:

一阶段:Spatial-Temporal Tokenization

基于 VQGAN 改进

VQ 自编码器是一个关键模块,它不仅为生成设置了质量界限,还确定了 token 序列长度,从而影响生成效率
现有方法在每帧上独立应用 VQ 编码器(2D-VQ)或在超体素上应用(3D-VQ),本文提出了一个不同的设计:将所有 2D 卷积扩展为带有时间轴的 3D 卷积。由于时间和空间维度的下采样率通常不同,使用 3D 和 2D 下采样层,其中 3D 下采样层出现在编码器较浅的层中,解码器在前几个块中使用 2D 上采样层,然后是 3D 上采样层
将 2D-VQ 的网络转换为带时间维度的 3D-VQ。同时使用 3D 膨胀 (3D inflation) 的方式,利用 2D-VQ 的权重初始化 3D-VQ。这对于 UCF-101 等小数据集较为有效。同时使用 reflect padding 替换 zeros padding,用于提高相同内容在不同位置的标记一致性

训练细节

每帧使用 image perceptual 损失
基于以下优化使得 GAN loss 可以从头开始训
GAN loss 上增加了 LeCam regularization
使用 StyleGAN 的 discriminator 架构,inflate 为 3D
在这里插入图片描述

二阶段:Multi-Task Masked Token Modeling

采用各种掩码方案来进行训练,以适应具有不同条件的视频生成任务。这些条件可以是用于修复/生成图像的空间区域,也可以是用于帧预测/插值的几帧。
考虑十个多任务视频生成任务,其中每个任务具有不同的内部条件和掩码:帧预测(FP)、帧插值(FI)、中央外扩(OPC)、垂直外扩(OPV)、水平外扩(OPH)、动态外扩(OPD)、中央修复(IPC)和动态修复(IPD)、类别条件生成(CG)、类别条件帧预测(CFP)。推理算法,固定推理步数进行非自回归预测

MAGVIT-v2(LANGUAGE MODEL BEATS DIFFUSION — TOKENIZER IS KEY TO VISUAL GENERATION)

几个关键改进点(部分转载自https://zhuanlan.zhihu.com/p/676289469):

LFQ(Lookup-Free Quantization)

对比LLM的生成能力,有一个朴素的想法就是要加大词表同时减少一个token的表达能力,所以最直接做法就是减少token的维度加大词表数目,在文中作者一步到位直接把token的维度减少为0(可以认为token就是离散的整数),回想VQVAE中,code(token)是一个向量,decode生成图像时用的向量是code表中距离最近的向量(不是encode生成的向量,所以有损),而整数的token直接查找避免损失,文中称这种做法为LFQ(无量化查找)
在这里插入图片描述
具体看一个例子,例如z = [-0.3, 0.1], index(z) = 2,VQVAE是需要一个码表的,但是MAGVIT-V2不需要和codebook算相似度,所以叫做look-up free codebook:
在这里插入图片描述

VideoPoet: A Large Language Model for Zero-Shot Video Generation

在这里插入图片描述
这个更像是一个集大成的工作,利用了MAGVIT-v2的tokenizer,SoundStream对音频进行tokenize,用frezon pretrained T5-XL 加一层可学习的fc layers来生成text embedding sequence,最后加了一个图片超分

这篇关于[WIP]Sora相关工作汇总VQGAN、MAGVIT、VideoPoet的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/883257

相关文章

Redis的Zset类型及相关命令详细讲解

《Redis的Zset类型及相关命令详细讲解》:本文主要介绍Redis的Zset类型及相关命令的相关资料,有序集合Zset是一种Redis数据结构,它类似于集合Set,但每个元素都有一个关联的分数... 目录Zset简介ZADDZCARDZCOUNTZRANGEZREVRANGEZRANGEBYSCOREZ

Linux使用fdisk进行磁盘的相关操作

《Linux使用fdisk进行磁盘的相关操作》fdisk命令是Linux中用于管理磁盘分区的强大文本实用程序,这篇文章主要为大家详细介绍了如何使用fdisk进行磁盘的相关操作,需要的可以了解下... 目录简介基本语法示例用法列出所有分区查看指定磁盘的区分管理指定的磁盘进入交互式模式创建一个新的分区删除一个存

关于Maven生命周期相关命令演示

《关于Maven生命周期相关命令演示》Maven的生命周期分为Clean、Default和Site三个主要阶段,每个阶段包含多个关键步骤,如清理、编译、测试、打包等,通过执行相应的Maven命令,可以... 目录1. Maven 生命周期概述1.1 Clean Lifecycle1.2 Default Li

numpy求解线性代数相关问题

《numpy求解线性代数相关问题》本文主要介绍了numpy求解线性代数相关问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 在numpy中有numpy.array类型和numpy.mat类型,前者是数组类型,后者是矩阵类型。数组

Oracle数据库使用 listagg去重删除重复数据的方法汇总

《Oracle数据库使用listagg去重删除重复数据的方法汇总》文章介绍了在Oracle数据库中使用LISTAGG和XMLAGG函数进行字符串聚合并去重的方法,包括去重聚合、使用XML解析和CLO... 目录案例表第一种:使用wm_concat() + distinct去重聚合第二种:使用listagg,

SSID究竟是什么? WiFi网络名称及工作方式解析

《SSID究竟是什么?WiFi网络名称及工作方式解析》SID可以看作是无线网络的名称,类似于有线网络中的网络名称或者路由器的名称,在无线网络中,设备通过SSID来识别和连接到特定的无线网络... 当提到 Wi-Fi 网络时,就避不开「SSID」这个术语。简单来说,SSID 就是 Wi-Fi 网络的名称。比如

Java 枚举的常用技巧汇总

《Java枚举的常用技巧汇总》在Java中,枚举类型是一种特殊的数据类型,允许定义一组固定的常量,默认情况下,toString方法返回枚举常量的名称,本文提供了一个完整的代码示例,展示了如何在Jav... 目录一、枚举的基本概念1. 什么是枚举?2. 基本枚举示例3. 枚举的优势二、枚举的高级用法1. 枚举

Redis的Hash类型及相关命令小结

《Redis的Hash类型及相关命令小结》edisHash是一种数据结构,用于存储字段和值的映射关系,本文就来介绍一下Redis的Hash类型及相关命令小结,具有一定的参考价值,感兴趣的可以了解一下... 目录HSETHGETHEXISTSHDELHKEYSHVALSHGETALLHMGETHLENHSET

python中的与时间相关的模块应用场景分析

《python中的与时间相关的模块应用场景分析》本文介绍了Python中与时间相关的几个重要模块:`time`、`datetime`、`calendar`、`timeit`、`pytz`和`dateu... 目录1. time 模块2. datetime 模块3. calendar 模块4. timeit

sqlite3 相关知识

WAL 模式 VS 回滚模式 特性WAL 模式回滚模式(Rollback Journal)定义使用写前日志来记录变更。使用回滚日志来记录事务的所有修改。特点更高的并发性和性能;支持多读者和单写者。支持安全的事务回滚,但并发性较低。性能写入性能更好,尤其是读多写少的场景。写操作会造成较大的性能开销,尤其是在事务开始时。写入流程数据首先写入 WAL 文件,然后才从 WAL 刷新到主数据库。数据在开始