视觉任务相对语言任务种类较多(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,最后加了一个图片超分