【综述】An Introduction to Vision-Language Modeling【二】
介绍
第一节的内容
该文章对视觉语言模型进行介绍,解释了什么是视觉语言模型,怎么训练的,如果基于各种研究目标来有效评估它。这项工作不是一个现有工作的综述,而是对视觉语言模型进行清晰易理解的介绍,以便更好入门。
1、首先介绍了几种训练范式。对比学习、基于掩码策略、生成式、基于预训练骨干网络。
2、然后提出了训练 VLM 的典型方法。例如:鉴于不同的研究目标,哪些数据集是合适的?哪种数据管理策略?是否需要训练文本编码器还是可以利用预训练的LLM?对比损失对于视觉理解是否足够?生成组件是否关键?
3、然后通过讨论现有 VLM 能力评估基准的优点和缺点,阐明未来的挑战以提高对 VLM 的理解。
本篇文章对第二部分的内容进行释读,主要涉及VLM模型训练的一些方法和细节。
3 VLM训练指南
多项研究已经揭示了扩展规模对于提升深度神经网络性能的重要性。受这些扩展法则的启发,大多数近期研究都集中在增加计算资源和规模以学习更好的模型。例如CLIP 使用了400M张图像并在极高的计算预算下进行训练。即使是其对应的开源实现OpenCLIP,也是使用256到600个GPU在数天或数周内进行训练,具体时间取决于模型大小。然而,最近的研究显示,通过使用数据筛选流程有可能打破扩展法则。
在本节中,我们首先讨论了训练模型时数据的重要性,并介绍了一些用于创建VLMs数据集的方法。然后,我们讨论了从业者可能用于更高效训练VLMs的常见软件、工具和技巧。由于训练VLMs的方法多种多样,我们还讨论了在特定情况下应选择哪种类型的模型。最后,我们介绍了一些提高groundding(正确地将文本与视觉线索映射的能力)的技巧。我们还引入了利用人类偏好来改善对齐的技术。VLMs通常用于阅读和翻译文本,因此我们也介绍了一些可以进一步提升VLMs光学字符识别(OCR)能力的技术。最后,我们讨论了常见的微调方法。
3.1 训练数据
为了评估预训练数据集的质量,DataComp [Gadre等人,2023] 提出了一个基准,其中固定了CLIP的模型架构和预训练超参数。重点在于设计图像-文本数据集,这些数据集在38个下游任务上实现了强大的零样本和检索性能。DataComp提供了多个有噪声网页数据集池,规模从小型(1.28M)到超大型(12.8B)不等。针对每个池,都有多个过滤策略被提出和评估。DataComp 表明:为了训练出高效高性能的 VLM,数据剪枝是一个关键步骤。用于 VLM 的数据剪枝方法可以分为三大类:(1) 启发式方法,可以清除低质量数据对;(2) bootstrapping 方法,使用预训练的 VLM 评估图像和文本的多模态对齐程度,然后丢弃其中对齐较差的数据对;(3) 用于创建多样化和平衡数据集的方法。具体的措施包括:
-
使用合成数据来提升训练数据
-
使用数据增强
-
交错式数据整编
-
评估多模态数据质量
-
利用人类专业知识:数据标注的力量
何时使用CLIP
对比模型如CLIP通过文本和图像表示在表示空间中匹配,将文本与视觉概念相关联,同时保持一个简单的训练范式。CLIP 学习到在图像和文本空间中都具有意义的表示,这使得我们可以用单词提示 CLIP 文本编码器,从而检索到映射到相应文本表示的图像。例如,许多数据管理流程如MetaCLIP [Xu et al., 2024] 正在使用元数据字符串匹配来构建数据集,以确保每个单词或概念都有足够的图像与之关联。
CLIP模型也是构建更复杂模型的一个良好基础,尤其是在尝试改进grounding时。对于正在探索尝试额外训练标准或不同模型架构以更好地捕捉关系或更深入理解概念的研究人员来说,CLIP是一个特别好的起点。
然而,需要注意的是,CLIP并非生成模型,因此无法针对特定图像生成标题。只能从已有的标题列表中检索出最佳标题。因此,当前的CLIP模型无法提供给定图像的高级描述。另一个缺点是,CLIP通常需要非常大的数据集以及大批次大小才能提供良好的性能,这意味着CLIP通常需要大量资源才能从头开始训练。
何时使用掩码模型
通过从掩码图像和文本中学习重构数据,可以联合建模他们的分别。与那种在表示空间内操作的对比模型不同,基于掩码的模型可能需要利用编码器将表述映射回输入空间,从而使用重构损失。训练额外的解码器可能会增加额外的瓶颈,这可能使得这些方法不如纯对比方法高效。然而,优点是不再存在批次依赖性,因为每个样本可以单独考虑,不需要负样本。移除负例可以使用更小的批次,而无需微调额外的超参数,例如softmax温度。许多视觉语言模型(VLM)方法结合了多种掩码策略以及一些对比损失。
何时使用生成模型
基于扩散或自回归准则的生成模型在根据文本提示生成逼真图像方面展现了令人印象深刻的能力。大多数大规模的VLM训练工作也开始集成图像生成组件。一些研究者认为,具备根据文字生成图像的能力是创建良好世界模型的重要步骤,而另一些研究者则认为这种重建步骤并非必要。然而,从应用的角度来看,当模型能够解码输入数据空间中的抽象表示时,理解和评估模型所学习的内容可能会更容易。像CLIP这样的模型需要使用数百万图像数据点进行广泛的k-NN评估,以展示与给定词嵌入最接近的图像看起来是什么样子,但生成模型可以直接输出最可能的图像,而无需如此昂贵的流程。此外,生成模型可以学习文本和图像之间的隐式联合分布,这比利用预训练的单模态编码器更适合学习良好的表示。然而,它们在训练过程中的计算成本更高。
何时在预训练骨干网络上使用LLM
使用已经预训练的文本或视觉编码器在资源有限的情况下可以是一个很好的替代方案。在这种情况下,只需学习文本表示与视觉表示之间的映射。然而,这种方法的主要问题在于VLM会受到LLM潜在幻觉的影响,它还可能受到预训练模型中任何偏差的影响。因此,在尝试纠正视觉模型或LLM的缺陷时,可能会产生额外的开销。一些人可能会认为,利用独立的图像和文本编码器将信息投影到低维流形上,以便我们学习映射关系是很重要的,而另一些人则可能会认为,联合学习图像和文本的分布才是重要的。总结来说,当计算资源有限且研究人员感兴趣于学习表示空间中的映射时,利用预训练模型是很有意义的。
3.4 提升基础理解能力
在视觉语言模型(VLM)和生成模型的研究中,基础理解能力是一个重要的挑战。它主要旨在解决模型未能充分理解文本提示的问题,这可能导致模型忽略提示的某些部分,或者产生与提示无关的内容。这些挑战中的一部分涉及理解对象之间的空间关系(如左右位置)、否定词、计数或属性(如颜色或纹理)的理解。
3.4.1 使用边界框标注
像X-VLM [Zeng et al., 2022] 这样的模型利用边界框标注,并结合边界框回归和交并比(IoU)损失,以准确定位视觉概念并将其与相应的文本描述对齐。通过了解图像中对象的位置以及每个对象相关的描述,模型更容易将文本与正确的视觉线索关联起来,从而提升基础理解能力。X-VLM在包括COCO [Lin et al., 2014]、Visual Genome [Krishna et al., 2017]、SBU和Conceptual Captions [Changpinyo et al., 2021] 在内的综合数据集上进行训练,累计达到1600万张图像。这种带有边界框标注的广泛训练数据使X-VLM在多种视觉语言任务中表现优异,如图文检索、视觉推理、视觉基础理解和图像描述生成。
与使用已标注数据不同,像Kosmos-2 [Peng et al., 2024] 这样的方法依赖于公共模型来创建自己的图文数据集。他们通过从网络爬取的数据中提取文本描述中的名词(使用spaCy [Honnibal and Montani, 2017]),然后使用基础模型GLIP [Li et al., 2022c] 预测与这些名词相关的边界框,从而构建大规模的基于网络的图文对。接着,他们使用spaCy提取与给定单词相关的表达,以生成可以与每个检测到的边界框相关联的描述。这种方法使得可以利用大规模的网络标注数据集。然而,这种方法的局限性在于用于边界框检测的基础模型的性能。如果基础模型在某些罕见名词或实例上失败,下游模型可能会犯类似的错误。
3.4.2 负样本描述
在对比学习目标中,负样本已被广泛用于缓解模型崩溃、增强泛化能力以及提升判别性特征学习 [Chen et al., 2020, Liu et al., 2023c, Grill et al., 2020, He et al., 2020, Caron et al., 2021]。通过将正样本对与负样本对进行对比,模型被迫对数据进行更细致的理解,超越表面特征,掌握区分不同类别或范畴的潜在模式。
最近在VLM中的研究表明,类似的技术(负样本)可以用于缓解视觉语言模型中的各种问题 。例如,ARO基准测试 [Yuksekgonul et al., 2023] 通过使用负样本来测试模型对错误或无意义配对的理解能力,评估VLM在正确关联图像与描述方面的表现。这种方法表明,VLM可以从负样本带来的细致区分能力中显著受益,从而生成更准确且具有上下文感知能力的模型。
3.5 提升对齐能力
受语言领域指令微调成功的启发,视觉语言模型也开始引入指令微调和基于人类反馈的强化学习(RLHF),以提升多模态对话能力并使模型输出与期望响应对齐。
指令微调涉及在包含指令、输入和期望响应的监督数据上对视觉语言模型进行微调。通常,指令微调数据集比预训练数据小得多,其规模从几千到几十万个样本不等(详见“Vision-language instruction tuning: A review and analysis.” (pdf) )。LLaVa、InstructBLIP和 OpenFlamingo 是三个引入指令微调的知名视觉语言模型。
RLHF 的目标也是使模型输出与人类偏好对齐。在 RLHF 中,训练一个奖励模型以匹配人类对模型响应的偏好,即判断模型响应是好是坏。虽然指令微调需要监督训练样本(收集成本较高),但 RLHF 利用辅助奖励模型来模拟人类偏好。然后,无论是纯语言模型还是视觉语言模型,主模型都会通过奖励模型进行微调,以使输出与人类偏好对齐。LLaVa-RLHF 是一个典型的视觉语言模型示例,它通过引入 RLHF 来提升模型输出与事实信息的一致性 [Sun et al., 2023]。
3.5.1 LLaVA 的故事
LLaVA是最早将指令微调引入视觉语言模型以提升多模态对话能力的模型之一。作者生成了 15 万个合成的视觉指令样本用于微调。原始的 LLaVA 模型结合了预训练的 Vicuna 语言模型编码器和预训练的 CLIP ViT-L/14 视觉编码器。编码器的输出通过线性投影器融合到同一维度空间。除了改进的定性对话交互外,LLaVA 在合成指令跟随和 Science QA 基准测试 [Lu et al., 2022] 中也表现出显著提升。
**LLaVA 1.5**
Liu 等人 [2023c] 通过使用跨模态全连接多层感知器(MLP)层并结合学术视觉问答(VQA)指令数据,改进了 LLaVA 的指令微调。LLaVA 1.5 在 60 万图文对上进行了训练,使其训练效率显著高于其他指令微调模型(如 InstructBLIP 或 Qwen-VL)。在 8 块 A100 GPU 上,训练大约需要一天时间。LLaVA 1.5 在一系列学术 VQA 和指令跟随基准测试中表现优异。
**LLaVA-RLHF**
由于视觉语言模型训练中高质量视觉指令数据的稀缺性,像 LLaVA 这样的视觉语言模型可能会出现视觉与语言模态不对齐的问题,并生成虚假输出。为了解决这一问题,LLaVA-RLHF 提出了一种新颖的 RLHF 算法——事实增强 RLHF(Factually Augmented RLHF),以改进多模态对齐。该算法将 RLHF 从文本领域迁移到视觉语言任务中,并通过图像描述和真实多选题这些事实信息增强奖励模型,以减少奖励欺骗。LLaVA-RLHF 还使用 GPT-4 生成的训练数据和人工编写的图文对,进一步提升其通用能力。在 LLaVA-Bench 上,LLaVA-RLHF 达到了 GPT-4 94% 的性能水平。在专门针对惩罚虚假生成的 MMHAL-BENCH 上,LLaVA-RLHF 比基线模型高出 60%。
**LLaVA-NeXT (v1.6)**
LLaVA-NeXT 在多个方面对 LLaVA-v1.5 进行了改进。
首先,通过将完整图像和较小图像块的视觉特征拼接,提高了图像分辨率,这些特征分别通过视觉编码器处理。
其次,改进了视觉指令微调数据,增加了更好的视觉推理、OCR、世界知识和逻辑推理示例。
第三,最大模型变体使用了 340 亿参数的 LLM 骨干网络(Nous-Hermes-2-Yi-34B)。与开源的 CogVLM 或 Yi-VL 等多模态 LLM 相比,LLaVA-NeXT 实现了最先进的性能,并缩小了与 Gemini Pro等商业模型的差距。
3.5.2 多模态上下文能力
Otter [Li et al., 2023c] 展示了多模态上下文学习的可能性:通过提供少量示例(例如指令-图像-答案元组)作为上下文,模型能够在测试示例中成功遵循指令,而无需额外的微调。这种能力类似于纯文本大语言模型(LLM)的上下文学习。
多模态上下文学习能力可以归因于该作者提出的多模态指令微调数据集 MIMIC-IT [Li et al., 2023b] ,并在其上进行微调。数据集包含约 280 万条带有上下文示例的多模态指令-响应对,每个样本都包含上下文指令-图像-答案元组以及一个测试示例(在测试示例中,给定指令和图像,目标是生成答案)。上下文元组与测试示例的相关性体现在以下三种方式之一:(1) 上下文指令相似但图像不同;(2) 图像相同但指令不同;(3) 图像以连续方式呈现但指令不同,其中连续图像来自视频库,如 Yang 等人 [2023] 的研究。在 MIMIC-IT 上对 OpenFlamingo 进行微调后得到的模型 Otter 表现出更强的指令遵循能力以及多模态上下文学习能力。
3.6 提升富文本图像的理解能力 OCR
理解文本是我们日常生活中视觉感知的关键方面。多模态大语言模型(MLLMs)的成功为视觉语言模型(VLMs)在零样本任务中的非凡应用铺平了道路,这些任务可以迁移到许多现实场景中。Liu 等人 [2023e] 表明,MLLMs 在野外表现出出色的零样本光学字符识别(OCR)性能,而无需在 OCR 领域特定数据上进行显式训练。然而,当数据类型之间存在复杂关系时,这些模型在解释图像中的文本时常常遇到困难,这可能是由于训练数据中自然图像的普遍性。
以下是一些常见的文本理解挑战及解决这些挑战的模型:
**细粒度富文本数据指令微调:LLaVAR **
为了解决理解图像中文本细节的问题,LLaVAR 通过使用文本丰富的图像(如电影海报和书籍封面)增强了当前的视觉指令微调流程。作者使用公开的 OCR 工具从 LAION 数据集中收集了 422K 张富文本图像的结果。然后,他们使用纯文本 GPT-4结合识别的文本和图像描述生成 16K 条对话,每条对话包含针对富文本图像的问题-答案对。通过将这些收集的数据与先前的多模态指令跟随数据结合,LLaVAR 模型显著提升了 LLaVA 模型的能力,在基于文本的 VQA 数据集上准确率提高了高达 20%,在自然图像上也有小幅提升。
**处理高分辨率图像中的细粒度文本:Monkey [Li et al., 2023h]**
目前,大多数多模态大语言模型(MM-LLMs)的输入图像分辨率限制在 224 x 224,与其架构中使用的视觉编码器的输入尺寸一致。这些模型在处理以复杂文本为中心的任务如场景文本中心VQA、文档导向 VQA 和关键信息提取(KIE))时,难以从高分辨率输入和详细场景理解中提取详细信息。为了解决这些挑战,Monkey提出了一种新方法。
Monkey 的架构旨在通过使用滑动窗口方法处理统一大小的图像块来增强 LLMs 的能力,每个图像块的大小与训练良好的视觉编码器的原始训练尺寸相匹配。每个图像块由静态视觉编码器独立处理,并通过 LoRA 模块和可训练的视觉重采样器进行增强。这使得 Monkey 能够处理高达 1344×896 像素的分辨率,从而能够详细捕捉复杂的视觉信息。它还采用了多级描述生成方法,丰富了场景-对象关联的上下文。这种两部分策略确保从生成的数据中更有效地学习。通过整合这些系统的独特能力,Monkey 提供了一种全面且分层的字幕生成方法,捕捉了广泛的视觉细节。
**解耦的场景文本识别模块与多模态大语言模型:Lumos [Shenoy et al., 2024]**
Lumos 提出了一种具有文本理解能力的多模态助手,结合了设备端和云端计算。Lumos 使用了一个解耦的场景文本识别(STR)模块,然后将结果输入到多模态大语言模型中。Lumos 的 STR 模块包含四个子组件:感兴趣区域(ROI)检测、文本检测、文本识别和阅读顺序重建。ROI 检测有效地检测视觉中的显著区域,然后将显著区域裁剪为 STR 输入。文本检测以 ROI 检测的裁剪图像为输入,检测单词,并输出每个单词的识别边界框坐标。文本识别以 ROI 检测的裁剪图像和文本检测的单词边界框坐标为输入,返回识别的单词。阅读顺序重建根据布局将识别的单词组织成段落,并在每个段落内按阅读顺序排列。
云端托管了一个多模态大语言模型模块,该模块接收来自 STR 模块的识别文本和坐标。这种解耦的 STR 模块可以在设备端运行,减少了将高分辨率图像传输到云端的功耗和延迟。如上所述,关键挑战之一是由于 LLM 编码器的限制,难以从场景中捕捉细粒度文本。Lumos 的 STR 模块可以处理 3kx4k 大小的图像,从而在类似于 Monkey 的复杂文本理解任务中表现出增强的性能。
3.7 参数高效微调
参数高效微调(Parameter-Efficient Fine-Tuning, PEFT)方法旨在降低大规模模型微调的高计算成本。这些方法专注于训练参数的子集,而不是整个模型,以适应下游任务。现有的 PEFT 方法可以分为四类:基于低秩适配器(LoRA)的方法、基于提示(Prompt)的方法、基于适配器(Adapter)的方法以及基于映射(Mapping)的方法。
**基于 LoRA 的方法**
LoRA [Hu et al., 2022] 是一种广受欢迎的参数微调方法,适用于纯语言模型和视觉语言模型。为了增强其功能和效率,已经开发了多种 LoRA 变体。例如,QLoRA [Dettmers et al., 2023] 将 LoRA 与量化主干结合,支持通过冻结的 4 位量化预训练语言模型反向传播梯度到 LoRA。另一个变体是 VeRA [Kopiczko et al., 2024],它旨在减少可训练参数的数量,同时保持与 LoRA 相当的性能水平,这是通过在所有层共享一对低秩矩阵并学习小规模缩放向量来实现的。最后,DoRA [Liu et al., 2024b] 将预训练权重分解为幅度和方向两个部分进行微调。DoRA 通过实验证明了将低秩适应方法从语言模型推广到视觉语言基准的能力。
**基于提示的方法**
视觉语言预训练的过程涉及将图像和文本对齐到共享特征空间中,从而通过提示实现零样本迁移到后续任务。因此,另一种高效微调方法与提示相关。Zhou 等人 [2022] 提出了上下文优化(CoOp),这是一种适应大型预训练视觉语言模型(如 CLIP)的技术,用于下游图像识别任务,无需手动设计提示。CoOp 在训练过程中使用可学习向量优化提示的上下文词。该方法提供了两种实现方式:统一上下文和类特定上下文。在 11 个数据集上的实验结果表明,CoOp 在少样本学习中优于手工设计的提示和线性探测模型,并且在领域泛化能力上优于使用手动提示的零样本模型。此外,Jia 等人 [2022] 提出了视觉提示微调(VPT),用于适应视觉中的大规模 Transformer 模型。与传统的全微调方法(更新所有主干参数)不同,VPT 在输入空间中引入了极少量(少于模型参数的 1%)的可训练参数,同时保持模型主干冻结。在许多情况下,VPT 表现出与全微调相当甚至更高的准确性。
基于适配器的方法
适配器是指在预训练网络的层之间添加的新模块 [Houlsby et al., 2019]。具体来说,在视觉语言模型领域,CLIP-Adapter [Gao et al., 2024] 在视觉或语言分支上使用特征适配器进行微调。它采用额外的瓶颈层来学习新特征,并与原始预训练特征进行残差式特征融合。此外,VL-adapter [Sung et al., 2022] 在一个统一的多任务框架中评估了多种基于适配器的方法,涵盖了广泛的图像-文本和视频-文本基准任务。研究进一步探讨了任务间权重共享的概念,作为提高这些适配器效率和性能的策略。实验结果表明,结合权重共享技术的适配器可以有效地与全微调的性能相媲美,同时只需更新总参数的极小部分(图像-文本任务为 4.18%,视频-文本任务为 3.39%)。随后,LLaMA-Adapter V2 [Gao et al., 2023] 提出了一种参数高效的视觉指令模型,无需大量参数或多模态训练数据即可增强大语言模型的多模态推理能力。它提出了解锁更多可学习参数(如归一化、偏置和缩放)以及一种早期融合方法,将视觉 token 融入 LLM 层。与 MiniGPT-4 和 LLaVA 等其他全微调方法相比,LLaMA-Adapter V2 涉及的额外参数要少得多。
基于映射的方法
通过适配器或 LoRA 向预训练模型注入可训练模块需要对网络架构有一定的了解,以决定在何处插入或调整参数。在视觉语言模型的背景下,Mañas 等人 [2023] 和 Merullo 等人 [2022] 提出了一种更简单的方法,只需训练预训练单模态模块(即视觉编码器和 LLMs)之间的映射,同时保持它们完全冻结且无需适配器层。此外,这种方法需要更少的可训练参数,并提高了数据效率 [Vallaeys et al., 2024]。LiMBeR [Merullo et al., 2022] 使用线性层将视觉特征投影到与 LLM 隐藏状态维度相同的空间。这种投影独立应用于每个特征向量,这意味着传递给 LLM 的序列长度与视觉特征向量的数量相同,从而增加了训练和推理的计算成本。MAPL [Mañas et al., 2023] 设计了一种映射网络,通过将视觉特征向量聚合为更小的集合来解决这一问题。输入特征向量被投影并连接到一系列可学习的查询 token,只有查询 token 的输出被馈送到 LLM。