文章链接:https://arxiv.org/pdf/2403.07874.pdf
代码和模型:https://github.com/zh460045050/V2L-Tokenizer
今天和大家分享的这项工作非常有创意,研究和挖掘了大语言模型(LLM)直接理解视觉信号的潜力,而无需在多模态数据集上进行微调。方法的基础概念将图像视为一种语言实体,并将其翻译成LLM词汇表中派生的一组离散单词。为了实现这一点,本文提出了一种名为视觉到语言Tokenizer(Vision-to-Language Tokenizer,简称V2L Tokenizer)的工具,它通过编码器-解码器、LLM词汇表和CLIP模型的共同帮助,将图像转换为一种“外语”。通过这种创新的图像编码,LLM不仅获得了视觉理解的能力,而且还能够以自回归的方式进行图像去噪和恢复————关键是,无需任何微调。严格的实验验证发现,包括图像识别、图像描述、视觉问答等理解任务,以及包括修复、扩展、去模糊和位移恢复等图像去噪任务。
介绍
在自然语言处理(NLP)领域,通过部署大语言模型(LLMs),如GPT、PaLM和LLaMA,已经取得了显著的进步。为了解决需要结合文本和视觉理解的复杂挑战,学者们正在扩展现成LLMs的能力。这种增强涉及整合额外的视觉处理组件,以促进对视觉内容的理解或从文本生成图像。随后,这些改进的模型会使用各种多模态数据集进行额外的再训练或微调,以使视觉潜在空间与语言潜在空间对齐。然而,这种精炼过程通常需要大量的训练资源。
如上图1所示,我们的目标是为大语言模型赋予理解视觉信号的内在能力,重要的是,无需微调。在本方法中,将每个图像视为来自“外语”的语言实体,使其适应普通LLM的输入要求。因此,这种对齐发生在输入(token)空间而不是特征空间中,这区别于以前的多模态方法 ,这些方法需要微调来进行模态对齐。因此,在我们的方法论中,可以避免在多模态数据集上进行微调或再训练的过程。我们的技术将图像翻译成一组离散的token,这些token在LLM的词汇表中。一旦翻译完成,这些token就可以输入到LLM中,使其能够处理和理解视觉信息,从而促进一系列涉及图像理解和去噪的任务。
将图像翻译成一组冻结LLM可以理解的token是一项挑战。这项工作中介绍了一种 Tokenizer ,旨在将图像(一种非语言模态)映射到冻结LLM的输入(token)空间。这种 Tokenizer 被称为视觉到语言 Tokenizer (Vision-to-Language Tokenizer,简称V2L Tokenizer)。V2L Tokenizer的设计灵感来自于VQ-GAN 的成功,采用了编码器-量化器-解码器结构。然而,它的目标是将视觉信息翻译到LLM的token空间,这与它的灵感来源不同,后者旨在学习一个独立的潜在空间,仅用于图像生成。我们的V2L Tokenizer放弃了优化随机初始化的量化器codebook的标准过程;相反,它在整个训练过程中利用LLM的现有词汇作为其量化器codebook。在量化损失函数的指导下,图像在优化过程完成后被转换为一组LLM tokens。
通常,LLM的词汇表由完整的单词和子词单元组成,这是由于使用了诸如BPE和SentencePiece这样的语言Tokenizer。不失一般性,这个词汇表的广度影响其将图像编码为LLM tokens的能力————更大的词汇表通常提供更强大的表示能力。在我们的方法中,我们通过组合其词汇项形成二元组或三元组来扩展LLM的词汇表,这在将图像映射到LLM tokens时显著增加了表示能力。除了将每个图像块转换为语言token外,我们的V2L Tokenizer 还包括提取整个图像的全局表示。我们通过使用来自扩展LLM词汇表的子词、二元组或三元组的组合来实现这一点,以封装图像的全面信息。
在LLM中,上下文学习已被证明对zero-shot推理非常有益。这是通过在LLM推理过程中,在指令文本前加上一些特定领域的示例来实现的。我们的方法避免了LLM微调的必要性,而是采用上下文学习来指导LLM模仿给定的少数样本中的模式。这使得模型能够更好地理解“外语”(即视觉模态)。
从实验上看,我们的工作在这种新场景中超越了以前的尝试 ,其中LLM能够在没有任何微调或再训练的情况下理解视觉信号,包括图像描述和视觉问答等理解任务,以及包括修复、扩展、去模糊和图像恢复等图像去噪任务。
相关工作
图像量化: 图像量化过程旨在将图像转换为一系列来自codebook的离散token。VQ-VAE是该领域的著名工作,该方法采用编码器-解码器结构,将图像量化为一系列潜在的离散code,然后用于重建图像。VQ-GAN通过引入对抗性和感知损失来增强codebook学习过程,使codebook能够捕捉更精确和细致的表示。同时,将图像量化为一系列token使得可以使用GPT以自回归方式进行图像生成。RQ-VAE 采用了一种残差量化方法,其中每个图像块由多个codebook token表示,以更准确地反映原始图像特征。DQ-VAE 进一步提出了可变长度的token来编码图像,从而实现更精确和高效的量化。Reg-VQ 旨在通过利用先验分布正则化来提高codebook的利用率并防止其崩溃。
大语言模型(LLMs): 大语言模型,尤其是那些采用Transformer-解码器架构的模型,在自然语言处理领域取得了显著进展。开发有效的大语言模型(LLM)的过程通常包括多个阶段,包括初始预训练,随后的监督微调,奖励模型的训练,以及使用人类反馈的强化学习(RLHF)来实现与指令的对齐。LLaMA 系列一直处于提供开源LLMs的前沿,提供了一系列规模的对齐和非对齐版本。例如,LLaMA 2 提供了7B、13B和70B参数的模型。
使用LLMs进行视觉信号理解: 尽管LLMs天生具备自然语言理解的能力,但它们也可以作为各种视觉-语言应用中的解码器,通过使用模态桥接模块将视觉特征与语言特征对齐。例如,Flamingo 使用数十亿的图像-文本对来训练门控交叉注意力层,以促进冻结的视觉编码器和冻结的LLM之间的同步。类似地,BLIP-2 通过引入轻量级QFormer来弥合模态差距。这个QFormer在两个相应的阶段进行训练:一个用于代表性学习,另一个用于生成性学习。此外,MiniGPT-4 和LLaVA 都证实,通过在高质量的指令数据上调整单个线性层,就足以实现特征对齐。虽然这些方法为多模态理解任务提供了令人满意的结果,但它们缺乏生成视觉内容的能力,并且需要收集额外的图像-文本对来训练视觉-语言对齐模块。
不同于在特征空间中执行多模态对齐,一些方法通过将图像视为“外语”,将图像映射到LLMs的token(输入)空间。例如,LQAE 训练了一个VQVAE Tokenizer ,使用冻结的LLM codebook来量化图像,将其转换为一组语言token。为了使LLM执行图像理解和生成任务,SPAE通过引入分层量化技术和CLIP提供的语义指导,进一步提高了来自冻结LLM codebook的量化图像token的质量。然而,由于视觉特征和语言token embedding之间存在显著差异,这些方法难以将语义语言token分配给图像。这一限制阻碍了LLMs在给定上下文中充分理解视觉信号。与上述方法相比,我们的方法在共享的多模态空间内引入了图像量化,为给定图像分配了语义上有意义的语言token。此外,我们将图像token分为两类:全局token,用于图像理解任务,以及局部token,用于图像生成任务。这种分离是通过使用两种不同类型的量化器以及两个独立codebook来实现的。
方法
问题表述
我们将图像视为一种“外语”。给定一个包含个语言token的LLM词汇表,我们将图像转换为个离散token,每个token都属于。这种转换是通过我们的V2L Tokenizer完成的,如下图2所示。在我们的实现中,图像被分割成个全局token以用于理解任务,以及个局部token以用于去噪任务,其中。
随后,如下图3所示,可以执行一系列任务,如图像分类、图像描述、视觉问答和图像去噪。这是通过将任务指令、上下文学习样本以及全局或局部token的串联输入到冻结的LLM中以自回归方式完成的。
视觉到语言 Tokenizer (V2L Tokenizer)
V2L Tokenizer采用编码器-量化器-解码器结构。一共使用两个量化器:一个局部量化器和一个全局量化器。每个量化器都与一个独立的、来自LLM词汇表的冻结codebook相关联。然后,图像被量化为个全局token和个局部token,分别从全局和局部codebook中提取。
全局codebook。 LLM词汇表包括由语言Tokenizer生成的一组子词。这些子词元素通常具有有限的语义意义。为了增强LLM词汇表中实体的语义表示,我们引入了一种词汇扩展技术。这种技术通过组合中的两个或三个词汇项来创建二元组和三元组。然而,需要注意的是,由此产生的二元组和三元组可能不一定传达有意义的语义。例如,它们可能包括像“#”和“!”这样的符号。此外,生成二元组和三元组会导致大量可能的组合——个二元组和个三元组——这在后续的量化过程中提出了挑战。
为了解决这个问题,我们引入了一个简单的过滤策略。具体来说,使用一个图像量化数据集(如ImageNet)和扩展的LLM词汇表,计算数据集中每个图像与LLM词汇表中每个词汇项之间的CLIP相似度。然后,记录每个图像得分最高的前5个词汇项。最后,将所有图像的这些前5个词汇项聚合起来,形成最终的扩展LLM词汇表,作为我们的全局codebook。
局部codebook。 局部codebook的目标是使用codebook中的一个条目来表示图像的一部分(例如,一个图像块)。我们使用原始LLM词汇表作为局部codebook。
全局和局部codebook的Embeddings。 如前图2所示,通过CLIP文本编码器将全局codebook(即扩展的LLM词汇表)和局部codebook(即LLM词汇表)投影到embedding中。全局和局部codebook的embedding分别称为LLM embedding和E-LLM embedding。此外,我们使用一个可训练的投影器,它被实现为一个线性层,进一步将LLM embedding投影以与视觉空间对齐。量化器,稍后将介绍,进一步利用投影的LLM embedding(P-LLM embedding)和E-LLM embedding来编码输入图像的局部和全局信息。
编码器。 我们的编码器由一个可训练的CNN编码器和一个冻结的CLIP视觉编码器组成。CNN编码器与VQ-GAN 中使用的一个相同,但对下采样率进行了修改。将输入图像的尺寸缩小了8倍。CNN编码器旨在提取局部信息,而CLIP视觉编码器专注于编码全局信息。有关编码器的详细信息,请参见原文的补充材料。
量化器。 使用 来表示CNN编码器编码的特征图,其中是空间尺寸。同样, 表示CLIP视觉编码器编码的全局特征,表示的维度。让表示LLM词汇表的P-LLM embedding集合,表示扩展LLM词汇表的E-LLM embedding集合。
如前面图2所示,局部量化器通过识别每个元素在中最近的embedding来工作,其中指定空间位置(且)。识别基于欧几里得距离。这个过程产生了一个与大小相同的token化映射,其中的每个元素表示与T中的一个语言token相关的P-LLM embedding。总共有个局部token。
类似地,全局量化器通过识别全局特征中个最近的embedding在中来工作,基于它们的欧几里得距离。量化后,由个E-LLM embedding表示,与相应的语言token相关联。值得注意的是,在量化器的训练过程中,LLM embedding和E-LLM embedding以及CLIP模型保持冻结,如图2所示。
解码器。 解码器的目标是使用局部embedding和全局embedding作为输入来重建原始图像。我们的解码器基于VQ-GAN 采用的解码器构建,它使用自注意力层和一系列转置卷积层沿空间维度上采样。关键的区别在于引入了:通过交叉注意力层将的信息注入到解码过程中。在我们的实现中,这个交叉注意力层位于VQ-GAN的自注意力层之后,其中作为query,作为键。这种修改不影响VQ-GAN采用的原始解码器的结构。因此,解码器的最终输出是一个与输入图像大小匹配的张量。
损失函数。 如图2所示,我们只优化编码器、解码器和投影器,同时冻结LLM/E-LLM embedding、LLM/E-LLM词汇表和CLIP模型。遵循VQ-GAN,定义目标函数为:
其中、和分别代表向量量化损失、感知损失和GAN损失,如VQ-GAN引入的那样; 和表示相应损失的权重。我们将设为1.0,设为0.1。有关每种损失类型的更多详细信息,请参见原始的VQ-GAN 。
视觉信号理解
将与和相关的语言token分别称为全局token(记为)和局部token(记为),后者在展平后。注意,,其中表示CNN编码器产生的特征图的空间尺寸。给定一个图像,我们首先将其输入到我们的V2L Tokenizer中以生成其全局token 和局部token 。随后,可以通过结合特定任务的介绍、上下文学习样本以及全局或局部token来设计各种提示,并将提示输入到冻结的LLM中以执行一系列理解和生成任务,如图3所示。我们为每项任务提供以下提示。
N-Way K-Shot图像分类。 我们以2-Way K-Shot分类为例,目标是将图像分类为“法国斗牛犬”或“岩石美人”。提示的结构如下:[对于以下每对输入-输出对,输出是[“法国斗牛犬”,“岩石美人”]之一。{样本}。输入:,输出:],其中表示测试图像的全局语言token,“{样本}”表示N-Way K-Shot样本。每个样本遵循“输入:,输出:。”的格式,其中和分别表示每个样本的相应全局token和标签(无论是“法国斗牛犬”还是“岩石美人”)。
图像描述。 如下结构化提示:[根据描述图像的单词生成描述。{样本}。输入:,输出:],其中“{样本}”表示上下文学习样本。每个样本的格式为“输入:,输出:”,其中和分别表示每个样本的相应全局token和描述。LLM将这个提示作为输入,并自回归地用全局token对测试图像进行描述描述,直到遇到token“。”。
视觉问答。 VQA的提示设计如下:[根据条件用一个单词回答问题。{样本}。条件:。问题:。答案:],其中表示测试图像的全局token,是预期的问题,“{样本}”表示上下文学习样本。每个样本的格式为“条件:。问题:。答案:”,其中三元组表示一个样本的全局token、与此样本相关的问题和真实答案。
图像去噪。根据SPAE设计了几个图像去噪任务,包括修复、扩展、去模糊、位移恢复和旋转恢复。这些任务的提示如下图4所示。
实验
设置
采用LLaMA 2作为我们的LLM,它有三个版本,参数分别为7B、13B和70B。其词汇表大小为32,000。我们的局部codebook保留了LLaMA 2的原始词汇。经过词汇扩展和过滤后,全局codebook的大小为11,908。使用的CLIP模型是基于ViT-L/14骨干网络的版本。图像被调整为128×128像素的分辨率,然后由V2L Tokenizer处理,将其编码成16×16的token图。训练在ImageNet-1K数据集上进行,共100个epoch,使用32个NVIDIA V100 GPU。使用Adam优化器,初始学习率为,在5个epoch的线性预热阶段后进行半周期余弦衰减。
图像理解
Few-Shot 分类。 遵循SPAE的方法,在2路和5路MiniImageNet基准测试上进行图像理解实验。所有Few-Shot样本和测试图像都由我们的V2L Tokenizertoken为个全局token。然后我们将提示结构化,如第3.3节所述,并如图3所示。这个提示随后被输入到LLM中,目的是预测测试图像的类别。值得注意的是,预测以文本形式呈现。只有当所有生成的token与实际类别名称的token匹配时,预测才被认为是正确的。
上表1显示了使用不同配置的LLaMA 2模型与先前的工作(包括LQAE、SPAE和使用冻结语言模型进行多模态少样本学习的基线)之间的比较。检查了可能影响N-Way K-Shot分类的各种因素,包括:(1) N的值;(2) K的值;(3) 任务感应,定义为在提示中指定特定的N-Way类别;(4) 每个少样本样本的重复频率。有两个主要观察结果:(1) 我们的模型在所有场景中都超过了以前最好的方法SPAE,尽管使用的LLM更小(我们的13B/70B LLaMA 2与SPAE的340B PaLM-2相比)且词汇表更紧凑(我们的11,908与SPAE的65,000相比);(2) 随着用于表示图像的token数量的增加,我们模型的性能有所提高。这可以归因于引入的词汇扩展,它生成了更大池的语义相关token候选。
图像描述和视觉问答。 遵循SPAE,从COCO描述(或VQA)训练集中随机选择10个图像-描述对(或图像-问题-答案三元组),形成图像描述(或VQA)提示中的上下文学习样本,如前所述。默认情况下,使用21个全局token来表示一个图像。可视化结果呈现在图5中。更多结果请参见原文的补充材料。
语义解释。 下图6展示了一组随机选择的六幅图像的前四个全局token与最高相似度分数的可视化。我们的方法中的词汇扩展技术有效地增加了语义相关的token选项(即二元组和三元组)的范围。补充材料中提供了额外的结果。 在表2中,还定量评估了我们的全局token的语义质量,并在ImageNet-1K验证集上使用CLIP分数和相对CLIP分数(CLIP-R)与SPAE进行了比较,这些分数评估了每个图像与其关联的语言token之间的对齐程度。尽管SPAE使用了更大的词汇表(SPAE的65,000与我们的11,908相比),仍然观察到了一致的改进。
图像重建和去噪
重建评估。 V2L Tokenizer将图像编码成一组来自LLM词汇表的局部token。这些编码的token应该捕捉到最有意义的信息,使得解码器能够重建原始图像并恢复任何被污染(“污染性”)的图像。在本研究中,使用包括FID、LPIPS和PSNR等指标来评估V2L Tokenizer的重建质量。如表3所示,在ImageNet-1K验证集上将我们的方法与SPAE 和VQ-GAN进行了比较。在我们的方法中,探索了两种不同的设置:(1) 使用VQ-GAN的解码器而不涉及全局token;(2) 使用所提出的解码器,它在解码过程中加入了额外的Kg个全局token(默认配置,如前所讨论的)。我们的方法在所有指标上都优于SPAE。
图像去噪。 介绍了用于修复、扩展、去模糊、位移和旋转恢复的提示,以及恢复被污染图像的过程,如图4所示。在表4中,研究了影响这五个上下文图像去噪任务质量的两个因素:(1) 图像 Tokenizer ,它将图像编码成一组token;(2) LLM,它旨在预测给定污染图像token的原始图像的局部token,借助上下文学习样本。随机选择了ImageNet-1K验证集中的5,000张图像来形成我们的评估集。使用FID和LPIPS分数作为指标。V2L Tokenizer在几乎所有指标上的五个任务中都优于其他方法。这一成就归因于图像特征与冻结LLM的token空间的对齐。还展示了下图7中的一些定性结果。更多可视化结果可以在原文的补充材料中找到。
掩蔽图像恢复。 给定ImageNet-1K验证集中的一张图像,我们首先通过V2L Tokenizer提取其全局和局部token。随后对这些局部token的30%进行随机掩蔽。为了预测掩蔽token,使用LoRA调整的7B LLaMA-2模型(有关调整的详细信息,请参见补充材料)。下一步涉及将掩蔽token的预测与未掩蔽token的集成,然后将这些token输入到解码器中进行图像重建。这一视觉信号恢复过程的定性结果如图8所示。为了可视化目的,“输入”掩蔽图像是通过将原始图像的未掩蔽局部token与被设置为零的掩蔽token组合生成的,然后通过解码器处理。
结论
本文将图像视为一种“外语”,并引入了一个名为Vision-to-Language Tokenizer(V2L Tokenizer)的工具,它将连续的视觉信号映射到LLM的token空间。方法使得冻结的LLM能够在不需要在多模态数据集上进行资源密集型微调的情况下理解视觉信号。V2L Tokenizer通过生成全局和局部token来处理图像。全局token旨在通过我们提出的词汇扩展技术捕获基本的语义信息,这使得执行如图像识别、图像描述和视觉问答等任务成为可能。相比之下,局部token旨在从图像中提取详细的、块级别的特征,从而促进如修复和去模糊等图像去噪任务。广泛的定量和定性实验验证了我们方法相较于此前尝试的优越性。
参考文献
[1] Beyond Text: Frozen Large Language Models in Visual Signal Comprehension
更多精彩内容,请关注公众号:AI生成未来
欢迎加群交流AIGC技术,添加小助手