深入探讨视觉语言模型

视觉语言模型(VLM)将视觉和语言模态结合,能够同时处理图像和自然语言文本,实现零样本图像分类、图像描述和视觉问答等复杂任务。通过使用独立或融合的视觉和语言编码器,这些模型可以将视觉信息与文本描述关联,从而在跨模态之间进行推理和检索。

视觉语言预训练的核心学习策略

现代视觉语言模型通常使用图像编码器、文本编码器以及融合策略。早期模型依赖手工特征,而当前研究主要采用 Transformer 架构。以下五种策略定义了对这些模型进行预训练的主要方法:

1. 对比学习

对比学习通过最小化匹配图像-文本对之间的距离、最大化不匹配对之间的距离,将图像和文本对齐到共同的特征空间。

  • 关键模型: CLIP、CLOOB、ALIGN 和 DeCLIP。
  • 机制: 这些模型使用大规模的 {image, caption} 对数据集。例如,CLIP 使用余弦距离来衡量嵌入相似度。
  • 变体: LiT(Language-Image Pre-training)在保持图像编码器冻结的情况下微调文本编码器,以提升样本效率。

2. PrefixLM

PrefixLM 将图像视为语言模型的前缀,使模型能够基于视觉输入预测序列中的下一个 token。

  • 机制: Visual Transformers(ViT)将图像划分为若干 patch,并按顺序输入。在 SimVLM 和 VirTex 等模型中,编码器接收拼接的图像 patch 与前缀文本,解码器预测文本的后续内容。
  • 冻结 PrefixLM: 为提升效率,Frozen 和 ClipCap 等模型保持语言模型冻结,仅更新图像编码器,使图像嵌入与冻结的 LM 空间对齐。
  • 高级架构: Flamingo 使用 Perceiver Resampler 模块和新的跨注意力层,将冻结的 LM 条件化于视觉数据,实现了最先进的少样本学习。

3. 使用跨注意力的多模态融合

该策略通过跨注意力机制将视觉信息直接融合到语言模型解码器的层中,而不是将图像作为前缀。

  • 关键模型: VisualGPT、VC-GPT 和 Flamingo。
  • 目标: 该方法在文本生成能力与视觉信息之间取得平衡,这在缺乏大规模多模态数据集时尤为关键。FIBER 通过在视觉和语言骨干网络中插入带门控机制的跨注意力层来提升此效果。

4. 掩码语言建模(MLM)与图文匹配(ITM)

MLM 与 ITM 将特定图像区域与相应的文本片段对齐。

  • MLM: 模型根据关联图像预测标题中被掩码的词。这通常需要使用边界框或目标检测模型(例如 Faster-RCNN)来生成区域提议。
  • ITM: 模型预测给定的图像和标题是否匹配。
  • 关键模型: VisualBERT、FLAVA、ViLBERT、LXMERT 和 BridgeTower。FLAVA 特别结合了 MLM、ITM、掩码图像建模(MIM)以及对比学习。

5. 无训练(基于优化)

一些策略通过使用预训练的单模态模型而无需进一步训练来桥接模态。

  • MaGiC: 使用自回归 LM 生成标题,并通过基于 CLIP 的 “Magic score” 进行优化。
  • ASIF: 在由少量真实多模态对构建的相对表示空间中执行基于相似度的检索。

多模态数据集

预训练数据集

VLM 在大规模网络抓取的图像-文本对数据集上进行预训练。示例包括:

  • PMD: Flickr30K、COCO 与 Conceptual Captions 的组合。
  • LAION-5B: 使用 CLIP 过滤噪声并确保高质量对的大规模数据集。
  • COCO: 包含带有对象标签和自然语言描述的图像实例。
  • Conceptual Captions 与 Flickr30K: 由网络抓取的图像和自由形式的标题组成。

下游数据集

微调在特定任务的数据集上进行:

  • 视觉问答(VQA): VQA、VQA v2、NLVR2、OKVQA、TextVQA、TextCaps 与 VizWiz。
  • 分类与推理: Hateful Memes(多模态分类)、SNLI-VE(视觉蕴含)和 Winoground(组合推理)。

在 🤗 Transformers 中的实现

Hugging Face Transformers 支持多种 VLM,提供零样本分类、分割和 VQA 等工具。

支持的模型

  • 通用用途: CLIP、FLAVA、BridgeTower、BLIP、LiT。
  • 专用任务: OWL-ViT(零样本目标检测)、CLIPSeg 与 GroupViT(图像分割)以及 X-CLIP(零样本视频分类)。
  • 架构模板: VisionEncoderDecoderModel 允许用户将任意基于 Transformer 的视觉编码器(如 ViT、Swin)与任意语言解码器(如 GPT2、BERT)组合。

实践示例

  • ViLT 用于 VQA: 用户可以使用 ViltForQuestionAnsweringViltProcessor 输入图像和问题(例如 “How many cats are there?”),得到预测答案。
  • CLIPSeg 用于分割: CLIPSegForImageSegmentation 通过提供文本描述(例如 “a cat”)实现零样本分割,生成图像中特定对象的二值分割图。

新兴研究方向

视觉语言表征正扩展到专门领域和复杂的物理交互:

  • 医学: Clinical-BERT 用于医学诊断和报告生成,MedFuseNet 处理医学 VQA。
  • 图像与 3D 操作: StyleCLIP 与 DiffusionCLIP 实现图像操控;AvatarCLIP 与 Text2Mesh 促进 3D 形状和纹理的操作。
  • 机器人学: CLIPort 使用联合表征进行模仿学习。大型语言模型(LLM)正被集成到机器人中用于任务规划和推理,如 ProgPrompt 与 SayCan。开放词汇检测模型如 OWL-ViT 与 GLIP 的出现有望进一步将多模态模型融入机器人导航与操作。

Sources