1.简介
前几日,字节跳动与前实习生田柯宇之间的纠纷确实引起了广泛的关注。田柯宇在字节跳动实习期间,因涉嫌破坏公司AI训练系统而面临800万元的诉讼。然而,就在这场风波尚未平息之时,田柯宇却因其在视觉生成领域的开创性工作获得了NeurIPS2024最佳论文奖,这无疑为整个事件增添了戏剧性。他的这篇NeurIPS最佳论文,不仅展示了他在学术上的巨大成就,也使得字节跳动错失了一次利用这篇论文进行正面宣传的机会,反而因为诉讼事件而陷入了尴尬的境地。
吃完瓜后,我们再回过头来看看这篇最佳论文。
在当今人工智能领域,图像生成技术正迅速发展,其中自回归模型(AutoRegressive, AR)以其独特的生成方式而备受关注。最近,一项突破性的研究提出了一种名为Visual AutoRegressive(VAR)的新型图像生成范式,它重新定义了图像上的自回归学习,将其视为从粗糙到精细的“next-scale prediction”过程。这项工作不仅在理论上解决了传统AR模型在图像生成中的一些固有问题,而且在实际性能上实现了重大突破,首次使得基于GPT风格的自回归方法在图像合成任务中超越了强大的扩散模型。
VAR模型通过多尺度自回归范式,不仅在ImageNet数据集上取得了显著的性能提升,还在推理速度、数据效率和模型扩展性方面展现了卓越的表现。此外,VAR模型还展现出了零样本任务泛化的能力,这在以往的图像生成模型中是不常见的。这篇文章的深入探讨将带你了解VAR模型的工作原理、技术细节以及它如何为图像生成领域带来革命性的变化。
-
权重地址:https://huggingface.co/FoundationVision/var
论文地址:https://arxiv.org/abs/2404.02905
-
-
2.效果展示
需要注意的是,VAR是刚起步的模型,高质量图像的生成效果和控制相关效果还无法和最先进的生成模型比较(如stable diffusion等),但同规模下的baseline模型比较中,VAR已经超越了如DiT的扩散模型。
-
-
3.论文详解
简介
作者提出了Visual AutoRegressive modeling (VAR),这是一种新一代范式,与标准光栅扫描“next-token预测”不同,它将图像上的自回归学习重新定义为从粗到细的“下一尺度预测”或“下一分辨率预测”。这种简单直观的方法允许自回归(AR)变换器快速学习视觉分布,并且可以很好地泛化:VAR首次使GPT风格的AR模型在图像生成方面超过DiT。除此之外,VAR还延续了LLM的两个重要特性:Scaling Laws and zero-shot泛化。
-
和以前模型的区别
自回归模型(AR)需要定义数据的顺序。
- 语言自回归模型:语言本身就有一个固定的顺序,如从左到右,因此我们可以使用自回归模型轻松建模。如GPT、LLaMA等。(图a)反映了顺序语言建模的过程。
- 之前的视觉自回归模型(图B):这些模型利用视觉tokenizer将连续图像离散化为2D网格状patch,然后将其展平为用于AR学习的1D序列。然而令人沮丧的是,它们的性能明显落后于扩散模型。
- VAR:人类通常以分层的方式感知或创建图像,即首先捕获全局结构,然后捕获局部细节。这种多尺度、从粗到细的性质暗示了图像的“顺序”。作者重新考虑了如何“排序”图像:将图像的自回归学习定义为图(c)中的“下一尺度预测”,与图(B)中的传统“下一标记预测”不同。作者的方法首先将图像编码为多尺度令牌映射。然后,自回归过程从1×1标记图开始,并逐步扩展分辨率:在每一步,VAR以所有以前的token图为条件预测下一个更高分辨率的token图。作者将这种方法称为视觉自回归(VAR)建模。
简单来说,之前的视觉AR是从左到右、从上到下按顺序生成每个patch,然后投入自回归模型学习。这种方式更像早期的照相机(光栅扫描);而作者提出的VAR模型在生成图像时,先从低分辨率的图像开始,逐步增加分辨率,直到达到目标分辨率。在每个分辨率级别内,模型并行生成整个图像的所有patch,而不是逐行生成(这种方法更像人眼)。
关于怎么转换为不同尺寸的图像,我们下面再说。
-
相关工作
Scaling laws
Scaling laws(尺度定律)描述了模型或系统的性能如何随着规模(如参数数量、数据集大小)的变化而变化的规律性关系。尤其是大型语言模型的领域内,尺度定律揭示了模型性能与模型规模(参数数量)、训练数据集大小以及计算量之间的数学关系。
具体来说,尺度定律表明,对于基于Transformer的解码器结构的语言模型,模型的性能(如测试集上的交叉熵损失)与模型的参数量大小(N)、训练模型的数据大小(D,以token数计)以及训练模型使用的计算量(C)之间存在幂律关系。一个常见的表述是,计算量C大约等于模型参数量N与数据大小D的乘积的6倍,即C ≈ 6ND。这意味着,增加计算量、模型参数量或数据大小都有可能提升模型的性能,但提升的效果会随着这些因素的增加而递减。
尺度定律为理解和预测大模型的性能表现提供了理论基础,并指导我们在模型设计和训练中做出更合理的决策。例如,它可以帮助我们确定在给定计算资源下,应该使用多大的数据集来训练多大的模型以获得最佳效果。
-
zero-shot
Zero-shot的目标是使模型能够在没有直接在训练数据中见过某些类别的情况下,识别或分类这些类别。
在传统的监督学习中,模型需要在包含所有类别的训练数据上进行训练,以便在测试时能够识别这些类别。然而,在Zero-shot学习中,模型在训练时只能接触到一部分类别(称为“seen classes”),而在测试时需要识别那些在训练阶段从未见过的类别(称为“unseen classes”)。
例如,如果一个模型在训练时只见过猫和狗的图片,但在测试时遇到了一张大象的图片,Zero-shot学习的目标是使模型能够通过大象的描述(比如“大型陆地哺乳动物,有长鼻子”)来识别出这是一张大象的图片,即使它之前从未见过大象的图片。
Zero-shot学习在现实世界的应用中非常有价值,因为它允许模型识别那些在训练阶段难以获得的数据类别,比如罕见动物或特定领域的对象。这就需要模型具备更强的泛化能力,以及对类别之间关系的理解。
-
图像生成
光栅扫描自回归模型(Raster Scan Autoregressive Model)是一种用于视觉生成的自回归模型,其核心思想是通过预测序列中的下一个patch值来逐步构建整个图像。它需要将二维图像编码成一维的序列。在这种模型中,图像通常是按照标准的行扫描方式(即从左到右、从上到下)生成像素值。例如,VQGAN模型就是通过在VQVAE的潜在空间中进行自回归学习来改进图像生成的。这种方法的一个优势是能够并行处理图像的每个像素,从而提高生成效率。
与传统的自回归模型相比,光栅扫描自回归模型在生成速度和性能上都有所提升,能够更快地生成图像,并且在模型参数和图片尺寸相当的情况下,比传统自回归模型快数十倍。此外,光栅扫描自回归模型还展现出了更强的性能和扩展能力。
-
扩散模型(Diffusion Models)是一类基于概率生成模型的深度学习方法,近年来在图像生成、语音合成、文本生成等领域取得了显著的成果。扩散模型的基本原理是模拟数据从有序状态向无序状态的扩散过程,以及相反的从无序状态恢复到有序状态的逆扩散过程。这个过程开始于一个清晰的数据点,逐步添加噪声直到数据完全变成噪声,然后在逆过程中逐步去除噪声,最终恢复出原始的清晰数据。模型通过学习这两个过程来生成新的数据样本。简而言之,扩散模型通过逐步添加和去除噪声来学习数据的分布,并生成新的数据。
扩散模型在多个领域都有应用,包括但不限于计算机视觉、自然语言处理(NLP)、波形信号处理、多模态建模、分子图建模、时间序列建模和对抗性净化。这些模型通过学习数据的分布,能够生成新的、高质量的数据样本,为各种应用提供了强大的支持。
-
方法
自回归模型
自回归模型的数学定义
对于一个离散token序列,其中xt ∈ [V]是来自大小为V的词表的id。自回归模型假设生成当前token xt的概率仅取决于其前缀
。这种单向令牌依赖性允许我们能对序列x的似然性进行因式分解:
这被称为“next-token预测”,其训练后的自回归模型pθ可以生成新的序列。
-
图像自回归模型的离散化
图像本质上是2D连续信号。为了通过下一个标记预测将自回归建模应用于图像,我们必须:将图像转换为若干离散token,并定义用于token的输入顺序。
离散化:我们通常使用量化自动编码器(VQVAE)来将图像特征映射转换为离散token
,VQVAE包括一个可学习codebook
,其包含V个向量。
量化过程q = Q(f)将每个图像的特征向量f(i,j)映射到码本中距离其欧几里德距离最近的编码,然后获取其索引q(i,j):
其中:
- q(i,j):位置 (i,j) 处的特征向量 f(i,j)量化后得到的codebook索引。
- f(i,j):在位置 (i,j)的原始图像特征向量。
- Z:码本(codebook),一个包含 V个向量的集合,每个向量都是图像的一个索引。
- lookup(Z,v):从码本 Z 中查找索引 v 对应的向量。
- ∥⋅∥2:欧几里得距离(Euclidean distance)的平方,用于计算特征向量与码本向量之间的距离。
公式的核心思想是,对于每个特征向量 f(i,j),我们在codebook Z 中寻找最接近它的向量,并返回该向量的索引 q(i,j)。这个过程实际上是一个聚类过程,每个特征向量都被分配到最近的聚类中心(即码本向量)。这样的量化方法能够将连续的特征空间离散化,为后续的自回归建模打下基础。
简而言之,公式3定义了如何通过最小化特征向量与码本向量之间的欧几里得距离,将连续的特征向量映射到离散的码本索引。这是VQVAE中关键的一步,它使得模型能够处理离散的图像表示。
-
损失函数
作者通过codebook Z来查找每个码本索引q(i,j)对应的原向量,然后得到,即原始f的近似值。然后,使用给定的解码器D(·)重构新图像
,并使复合损失L最小化:
其中各项含义:
- L:复合损失函数,用于训练量化自编码器。
:图像重建误差,原始图像 im和重建图像
之间的均方误差。
:特征重建误差,编码后的特征图 ff 和量化再重建的特征图
之间的均方误差。
:感知损失,常用于衡量图像重建的视觉质量,例如可以是LPIPS(Learned Perceptual Image Patch Similarity)。见代码详解/训练VAE/损失函数
- LPIPS是一种流行的感知损失,它使用预训练的CNN(如VGG网络)来计算两个图像之间的差异。LPIPS通过比较图像在多个层级的特征表示来衡量它们的相似性,从而提供一个感知上相似度的度量。
:判别损失,常用于图像生成任务中,提升生成图像的真实性,例如可以是StyleGAN的判别器损失。见代码详解/训练VAE/损失函数
- 判别损失(Discriminative Loss)是一类在生成模型中使用的损失函数,特别是在生成对抗网络(GANs)中,它用于指导生成器(Generator)产生更加真实和高质量的输出。判别损失的主要目的是使生成的数据尽可能地接近真实数据,以至于判别器(Discriminator)难以区分生成数据和真实数据。
和
:分别对应感知损失和判别损失的权重系数,用于平衡不同损失项对总损失的贡献。
-
自回归模型的缺点
- 数学依赖关系的矛盾:在量化自动编码器(VQVAE)中,编码器通常会产生具有双向相关性的信息,这与自回归模型的单向依赖性假设相矛盾。
- 无法进行某些zero-shot泛化:图像自回归建模的单向性质限制了其在需要双向推理的任务中的泛化能力。例如,在一个示例中,它不能在给定底部的情况下预测图像的顶部。
- 结构性退化:展平破坏了图像特征图中固有的空间局部性。例如,令牌q(i,j)和它的4个直接相邻者q(i±1,j)、q(i,j±1)由于它们的接近而紧密相关。这种空间关系在线性序列x中受到损害。
- 效率低下:生成图像令牌序列
的自回归步长为
,计算量为
-
这里我们对论文中提到的效率低下,即进行一个证明:
公式17是用于证明在进行自回归(autoregressive)图像生成时的时间复杂度。这个公式计算了在自回归生成过程中,对于一个给定的图像尺寸,需要进行的计算量。以下是公式17的详细解释:
其中:
表示图像被量化(tokenizer)后的总token数量,如果量化后图像尺寸为
,则总token数为
。
- i表示在自回归生成过程中的每一步,需要计算的注意力分数(attention scores)的数量,其中 i从1到
。
表示在每一步中,计算所有token之间的注意力分数所需的计算量。
论文公式17的求和计算了从第一个token到最后一个token(一共个token),每一步自注意力计算的总复杂度。具体来说:
- 对于第一个token,需要计算它与已有的所有token之间的注意力分数,因此复杂度为
。
- 对于第二个token,需要计算它与已有的所有token之间的注意力分数,因此复杂度为
。
- 以此类推,直到最后一个token(第
个token),它需要计算所有的token的注意力分数,因此复杂度为
。
将这些复杂度加起来,就得到了整个自回归生成过程的总复杂度。
已知:
可得:
这个公式表明,对于一个 的图像,自回归生成的总计算复杂度是 O(
),这是因为
个token中每个token都需要与其他
个token计算注意力分数,从而导致计算量随图像尺寸的增加而呈六次方增长。这种计算复杂度使得传统的自回归模型在处理高分辨率图像时变得非常低效。
-
VAR
VAR的数学定义
作者通过从“下一个标记预测(next-token)”转变到“下一个尺度预测(next-scale)”的策略来重新定义图像自回归模型。
这里的定义中,每一个token都是对整个图像的映射,而不是单个patch。作者首先将图像特征量化为K个尺度特征映射(r1,r2,...,rK),每一个r都代表越来越高的分辨率hk × wk(如1×1,2×2...16×16),在rK时达到目标分辨率。自回归似然性公式表示为:
,在第k个自回归步骤中序列(r1,r2,...,rk-1)作为rk的“前缀”,并行生成rk中hk ×wk个所有token。
注意,在VAR的训练中,作者使用块式因果注意掩码来确保每个rk只能注意到其前缀r≤k。在推理期间,可以使用kv缓存,并且不需要掩码。
-
VAR解决了前面提到的三个问题
- 如果我们限制每个rk只依赖于它的前缀,即得到rk的过程只与r≤k相关,则数学前提是满足的。这种限制是可以接受的,因为它符合自然的、由粗到细的渐进特征,如人类视觉感知和艺术绘画
- 由于(i)在VAR中不存在展平操作,所以保持了空间局部性。多尺度设计进一步强化了空间结构。
- 生成具有n×n个潜像的复杂度显著降低到 O(
)。该效率增益源自每个rk中的并行令牌生成。
-
接下来我们对公式22的证明做一个解释:
(公式18)
这个公式计算了在VAR模型中,对于前 kk 个尺度级别的所有token的总数。其中:
表示第 i 个尺度级别的token数量,且
。
- a 是一个大于1的常数,表示每个尺度级别token数量的增加比例。
- k 是当前考虑的尺度级别数。
第 k个尺度级别的复杂度 = (公式19)
这个公式计算了在VAR模型中,第 k 个尺度级别的自回归生成的复杂度。这个复杂度是前 k 个尺度级别所有token的总数的平方。
(公式20)
这个公式计算了在VAR模型中,从第一个尺度级别到最高尺度级别的所有自回归生成的总复杂度。其中:
表示总共有多少个尺度级别,直到达到最终的图像分辨率 n×n。
总复杂度 = (公式21)
这个公式是公式20的简化形式,它将总复杂度表示为一个关于n 和a 的函数。
时间复杂度 of VAR∼ (公式22)
-
VQVAE
我们开发了一种新的多尺度VQVAE,用于将图像编码为K个多尺度离散token映射。作者采用了与VQGAN类似的架构,但采用了经过修改的多尺度量化层。算法1和算法2中详细介绍了在f或上进行残差设计的编码和解码过程。作者根据经验发现,这种残差型设计可以比独立插值更好地执行。
对于VQVAE Encoding部分的算法:
- 初始化空的多尺度令牌列表
R
; - 对于每个尺度
k
从 1 到K
执行以下操作:- 使用插值将特征图
f
调整到尺度k
的分辨率(hk, wk)
; - 对调整后的图像应用量化器
Q
得到尺度k
的令牌图rk
; - 将
rk
添加到多尺度令牌列表R
; - 使用查找表
Z
查找rk
中每个令牌的向量表示; - 将查找得到的向量表示再次插值回最高尺度
hK × wK
; - 从特征图
f
中减去插值后的向量表示,得到残差,更新f
;
- 使用插值将特征图
- 返回多尺度令牌列表
R
。
-
对于VQVAE Reconstruction部分的算法:
- 初始化重建特征图
ˆf
为0; - 对于每个尺度
k
从 1 到K
执行以下操作:- 从多尺度令牌列表
R
中弹出尺度k
的令牌图rk
; - 使用查找表
Z
查找rk
中每个令牌的向量表示; - 将查找得到的向量表示插值回最终尺度
hK × wK
; - 将插值后的向量表示累加到重建特征图
ˆf
; - 使用解码器
D
将重建特征图ˆf
解码成重建图像ˆim
; - 返回重建图像
ˆim
。
- 从多尺度令牌列表
-