社区计算机视觉课程文档

视觉语言模型导论

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

视觉语言模型导论

您将从本章节中学到什么

  • 多模态的简要介绍
  • 视觉语言模型导论
  • 各种学习策略
  • 用于 VLM 的常用数据集
  • 下游任务和评估

我们的世界是多模态的

人类通过多种感官探索世界:视觉、听觉、触觉和嗅觉。通过协调来自这些不同模态的见解,才能完整地掌握我们周围的环境。我们最初在数学中将模态视为不同的峰值,并以诗意的方式思考模态:“每种模态,都扮演着独特的部分,它们共同构成了我们的理解阵列。感官的交响曲,和谐的融合,在感知的舞蹈中,我们的世界超越了。” 为了让人工智能能够理解世界,机器学习领域致力于开发能够处理和整合跨多种模态数据的模型。然而,必须解决几个挑战,包括表示和对齐。表示探索有效概括多模态数据的技术,捕捉各个模态元素之间错综复杂的联系。对齐侧重于识别所有元素之间的联系和互动。此外,承认处理多模态的固有困难至关重要

  • 一种模态可能支配其他模态。
  • 额外的模态可能会引入噪声。
  • 无法保证所有模态的完全覆盖。
  • 不同的模态可能具有复杂的关系。

尽管存在这些挑战,机器学习社区在开发这些系统方面取得了显著进展。本章节深入探讨视觉和语言的融合,从而产生了视觉语言模型 (VLM)。为了更深入地理解多模态,请参阅本单元的前一部分。

导论

处理图像以生成文本(例如图像描述和视觉问答)已经研究多年,其中包括自动驾驶、遥感等。我们还看到了从头开始的传统机器学习/深度学习训练向包括预训练、微调和预测的新学习范式的转变,这已经显示出巨大的优势,因为在传统方式中,我们可能需要收集大量数据等。

该范式最初在 ULMFIT 论文中提出,涉及

  • 使用广泛的训练数据预训练模型。
  • 使用特定于任务的数据微调预训练模型。
  • 利用训练后的模型进行下游任务,例如分类。

在 VLM 中,我们采用这种范式并将其扩展到结合视觉图像,从而产生期望的结果。例如,2021 年,OpenAI 推出了一篇开创性的论文,名为 CLIP,它极大地影响了这种方法的采用。CLIP 利用图像-文本对比目标,通过拉近配对的图像和文本,同时在嵌入空间中推远其他图像和文本来进行学习。这种预训练方法使 VLM 能够捕获丰富的视觉-语言对应关系知识,从而可以通过匹配任何给定图像和文本的嵌入来实现零样本预测。值得注意的是,CLIP 在超出分布的任务上优于 Imagenet 模型。本章的下一节将进一步探讨 CLIP 和类似模型!

机制

为了实现视觉语言模型 (VLM) 的功能,文本和图像的有意义的组合对于联合学习至关重要。我们如何做到这一点?一种简单/常见的方法是给定图像-文本对

  • 使用文本和图像编码器提取图像和文本特征。对于图像,它可以是基于 CNNtransformer 的架构。
  • 通过某些预训练目标学习视觉-语言相关性。
    • 预训练目标可以分为三组
      • 对比 (contrastive) 目标训练 VLM 学习判别性表示,方法是在嵌入空间中拉近配对的样本,并推远其他样本。
      • 生成 (generative) 目标使 VLM 通过训练网络生成图像/文本数据来学习语义特征。
      • 对齐 (alignment) 目标通过全局图像-文本匹配或局部区域-词语匹配在嵌入空间上对齐图像-文本对。
  • 通过学习到的视觉-语言相关性,VLM 可以通过匹配任何给定图像和文本的嵌入,以零样本方式在未见过的数据上进行评估。

Basic Mechanism of CLIP model

现有研究主要侧重于从三个关键角度增强 VLM

  • 收集大规模信息丰富的图像-文本数据。
  • 设计有效的模型以从大数据中学习。
  • 设计新的预训练方法/目标,以学习有效的视觉-语言相关性。

VLM 预训练旨在预训练 VLM 以学习图像-文本相关性,目标是在视觉识别任务(可以是分割、分类等)上进行有效的零样本预测。

策略

我们可以根据我们如何利用两种学习模式对 VLM 进行 分组

  • 将图像转换为可以与 token 嵌入联合训练的嵌入特征。

    • 在这种方法中,我们通过将图像视为普通文本 token,并将模型训练在文本和图像的联合表示序列上来将视觉信息融合到语言模型中。准确地说,图像被分成多个较小的补丁,每个补丁在输入序列中被视为一个“token”。例如 VisualBERT, SimVLM
  • 学习良好的图像嵌入,可以作为冻结的预训练语言模型的前缀。

    • 在这种方法中,我们在适应处理视觉信号时不会更改语言模型参数。相反,我们为图像学习这样的嵌入空间,使其与语言模型兼容。例如 Frozen, ClipCap
  • 使用专门设计的交叉注意力机制将视觉信息融合到语言模型的层中。

    • 为了增强跨语言模型层的视觉信息的融合,采用定制的交叉注意力融合机制来平衡文本生成和视觉输入。例如 VisualGPT 等。
  • 在没有任何训练的情况下组合视觉和语言模型。

    • 更新近的方法,如 MAGiC,进行引导解码以采样下一个 token,而无需微调。

常用 VLM 数据集

这些是在 HF 数据集 中存在的 VLM 中使用的一些常用数据集。

MSCOCO 包含 328K 张图像,每张图像都配有 5 个独立的描述。

NoCaps 旨在衡量对未见类别和概念的泛化能力,其中域内 (in-domain) 仅包含描绘 COCO 类别的图像,近域 (near-domain) 包含 COCO 和新类别,而域外 (out-of-domain) 仅包含新类别。

Conceptual Captions 包含 300 万对图像和描述,从网络挖掘并经过后处理。

ALIGN 是一个包含超过 10 亿个图像 alt-text 对的噪声数据集,无需像 Conceptual Captions 数据集那样进行昂贵的过滤或后处理步骤即可获得。

LAION 数据集由图像-文本对组成。图像-文本对是从 Common Crawl 网络数据转储中提取的,并且来自 2014 年至 2021 年间抓取的随机网页。该数据集用于训练 Stable-Diffusion 模型。

下游任务和评估

VLM 在许多下游任务中表现良好,包括图像分类、物体检测、语义分割、图像-文本检索和动作识别,同时超越了传统训练的模型。

通常,用于评估 VLM 的设置是零样本预测和线性探针 (linear probing)。零样本预测是评估 VLM 最常见的方式,我们直接将预训练的 VLM 应用于下游任务,而无需进行任何特定于任务的微调。

在线性探针中,我们冻结预训练的 VLM 并训练线性分类器来对 VLM 编码的嵌入进行分类,以衡量其表示。我们如何评估这些模型?我们可以检查它们在数据集上的表现,例如,给定图像和一个问题,任务是正确回答问题!我们还可以检查这些模型如何推理回答有关视觉数据的问题。为此,最常用的数据集是 CLEVR

像 MSCOCO 这样的标准数据集可能很容易让模型学习,因为它们的分布,这可能不足以证明模型在更具挑战性或多样化的数据集上进行泛化的能力。为了应对这个问题,创建了像 Hateful Memes 这样的数据集,通过在数据集中添加困难的示例(“良性混淆因素”)来使其变得困难,从而理解模型的极端能力,这表明多模态预训练不起作用,并且模型与人类的性能存在巨大差距。

Winogrand Idea

另一个这样的数据集称为 Winoground,旨在 выяснить CLIP 实际上有多好。上图 这个数据集挑战我们去思考,模型尽管取得了令人印象深刻的结果,但它们是否真正像人类一样掌握了组合关系,或者它们是否只是在泛化数据。例如,早期版本的 Stable Diffusion 和其他文本到图像模型无法清楚地数手指。因此,为了使 VLM 进入下一个阶段,仍然有很多令人惊叹的工作要做!

接下来是什么?

社区发展迅速,我们已经看到了许多令人惊叹的工作,例如 FLAVA,它试图为所有目标模态一次性拥有一个单一的“基础”模型。这是未来可能的一种情景 - 模态不可知的基础模型,可以读取和生成多种模态!但也可能我们会看到其他替代方案的发展,我们可以肯定地说一件事是:未来令人期待。

要了解更多关于这些最新进展的信息,请随时关注 HF 的 Transformers LibraryDiffusers Library,我们尝试尽可能快地添加最新的进展和模型!如果您觉得我们遗漏了重要的内容,您也可以为这些库打开一个 issue 并自己贡献代码。

< > 在 GitHub 上更新