【深度学习】LVM:Sequential Modeling Enables Scalable Learning for Large Vision Models

Posted by ShawnD on December 5, 2023

Abstract

我们提出了一种新的序列建模方法,该方法能够在不使用任何语言数据的情况下学习大视觉模型(LVM)。

为此,我们定义了一种通用格式 “visual sentences”,我们可以用它来表示原始图像和视频以及带标注的数据来源,如语义分割和深度重建,而无需超出像素之外的任何元知识。

将这些广泛的视觉数据(包含4200亿个tokens)表示为序列后,模型可以通过最小化下一个 token 预测的交叉熵损失进行训练。

通过在不同规模的模型架构和数据多样性上进行训练,我们提供了实证证据,证明我们的模型可以有效地扩展。

通过在测试时设计合适的视觉 prompt,许多不同的视觉任务可以被解决。

4. Approach

4.1. Image Tokenization

虽然视觉句子在连续图像之间展现了序列结构,但图像内部并没有这样自然的序列结构。因此,为了将 Transformer 模型应用于图像,先前的工作通常做以下事情之一:要么按扫描线顺序将图像划分为小块,并将其视为序列 [27],要么使用预训练过的图像分词器,如VQVAE [83] 或 VQ-GAN [30],将图像特征聚集到一个离散 tokens 的网格中,这些 tokens 再次按扫描线顺序转化为一个序列。我们采用了后者的方法,因为模型产生的离散分类输出自然形成了一个可以容易样本采样的概率分布,从而实现了在视觉句子中灵活条件地生成新图像。

具体来说,我们使用由VQGAN模型产生的语义 tokens,这是Esser等人 [30] 提出的一个概念。这个框架包括一个编码和解码机制,特点是一个量化层,将输入图像分配到一个建立好的码本中的一系列离散 tokens。我们的编码器和解码器完全由卷积层构造。编码器装备了多个下采样模块来缩减输入的空间维度,而解码器则配备了等量的上采样模块来将图像恢复到其原始大小。对于给定的图像,我们的VQGAN分词器产生 256 个离散tokens。

需要注意的是,我们的分词器独立地操作单个图像,而不是一次性处理整个视觉句子。这种独立性使我们能够将分词器训练与下游 Transformer 模型解耦,这样分词器就可以在不用考虑视觉句子分布的情况下,对单幅图像的数据集进行训练。

实施细节:我们采用了Chang等人 [14] 的现成VQ-GAN架构。我们遵循Chang等人 [14] 的确切配置,使用下采样因子 f=16 和码本大小 8192。这意味着对于一个 256×256 大小的图像,我们的VQGAN分词器会产生 16×16=256 个 token,其中每个 token 可以取 8192 个不同的值。我们发现,使用预训练的ImageNet 分词器的结果在 ImageNet 图像之外的泛化效果不好。因此,我们在LAION 5B数据集 [71] 的15亿子集上训练了我们自己的分词器。

4.2. Sequence Modeling of Visual Sentences

在使用VQGAN将图像转换成离散 Token 后,我们通过将多个图像的离散 Token 串联起来形成一维序列,将视觉句子视作一个统一的序列。重要的是,所有视觉句子都被平等对待——我们没有使用任何特殊的 Token 来指示特定的任务或格式。我们训练了一个因果关系的 Transformer 模型,使用与标准语言模型 [11] 类似的下一个 token 预测目标和交叉熵损失。以相同的方式对所有视觉句子进行训练的模型使得模型可以从上下文而非特定于任务或格式的 Token 推断图像之间的关系。这使得模型有机会泛化到其他未见过的视觉句子结构。

实施细节:在将视觉句子中的每个图像分词成256个 Token 后,我们将它们串联起来形成一维标记序列。在视觉标记的序列之上,我们的Transformer模型在实质上与自回归语言模型相同,因此我们采用了LLaMA [80] 的Transformer架构,这是一款流行的开源语言模型,具有广泛可用的实现。我们使用4096个标记的上下文长度,可以容纳我们VQGAN分词器下的16幅图像。与语言模型类似,我们在每个视觉句子的开头添加一个[BOS](句子开始)Token,在结尾添加一个[EOS](句子结束)Token,并在训练时使用序列串联[19]来提高效率。我们使用一个 Epoch(简单 Epoch 训练在语言模型中是标准的,以避免潜在的过拟合)在我们整个UVDv1数据集上进行训练(4200亿 Token)。我们训练了4个不同参数的模型:3亿、6亿、10亿和30亿,遵循相同的训练配置。我们在附录6中提供了详细的训练超参数。