社区计算机视觉课程文档

视觉语言模型简介

Hugging Face's logo
加入 Hugging Face 社区

并获得增强文档体验

开始

视觉语言模型简介

您将从本章中学到什么

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

我们的世界是多模态的

人类通过不同的感官来探索世界:视觉、听觉、触觉和嗅觉。通过整合这些不同模态的见解,我们才能全面了解周围环境。我们以诗意的方式将最初在数学中作为不同峰值引入的模态定义为:“每种模态都扮演着独特的角色,共同构成我们的理解数组。感官交响曲,和谐的融合,在感知的舞蹈中,我们的世界超越了。”在追求让 AI 能够理解世界的过程中,机器学习领域力求开发能够跨多个模态处理和整合数据的模型。然而,必须解决一些挑战,包括表示和对齐。表示探索了有效地概括多模态数据,捕捉单个模态元素之间错综复杂的连接的技术。对齐侧重于识别所有元素之间的连接和交互。此外,重要的是要认识到处理多模态的固有困难

  • 一种模态可能主导其他模态。
  • 附加的模态可能会引入噪声。
  • 不能保证对所有模态的全面覆盖。
  • 不同的模态之间可能存在复杂的关系。

尽管存在这些挑战,机器学习社区在开发这些系统方面取得了重大进展。本章深入研究了视觉和语言的融合,产生了视觉语言模型 (VLMs)。要更深入地了解多模态,请参阅本单元的先前部分。

简介

多年来,人们一直在研究处理图像以生成文本的方法,例如图像字幕和视觉问答,其中包括自动驾驶、遥感等。我们也看到从传统的 ML/DL 从头训练转向新的学习范式,包括预训练、微调和预测,这已经显示出巨大的益处,因为在传统方式中,我们可能需要收集大量数据等。

该范式首先在 ULMFIT 论文 中提出,它包括以下步骤:

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

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

机制

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

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

Basic Mechanism of CLIP model

现有的研究主要从三个关键角度增强 VLMs

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

VLM 预训练旨在预训练一个 VLM 来学习图像-文本相关性,目标是针对视觉识别任务(例如分割、分类等)实现有效的零样本预测。

策略

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

  • 将图像转换为可以与词元嵌入一起训练的嵌入特征。

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

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

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

    • MAGiC 这样的更近期的方法在没有微调的情况下,通过引导解码来采样下一个词元。

常见的 VLM 数据集

这些是 VLM 中一些常见的,在 HF 数据集 中出现的数据集。

MSCOCO 包含 328K 张图像,每张图像配有 5 个独立的标题。

NoCaps 旨在衡量对看不见的类别和概念的泛化能力,其中,域内包含仅描述 COCO 类别的图像,近域包含 COCO 类别和新类别,而域外则仅包含新类别。

Conceptual Captions 包含 300 万对图像和标题,从网络中挖掘并进行后处理。

ALIGN 是一个包含超过 10 亿个图像 alt-text 对的嘈杂数据集,它是在 Conceptual Captions 数据集中无需昂贵过滤或后处理步骤的情况下获得的。

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

下游任务和评估

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

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

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

像 MSCOCO 这样的标准数据集对于模型来说可能很容易学习,因为它们的分布可能无法充分展示模型在更具挑战性或更具多样性的数据集上的泛化能力。为了解决这个问题,像 Hateful Memes 这样的数据集被创建出来,通过理解模型在极端情况下的能力来解决这个问题,即在数据集中添加困难的例子(“良性混淆因素”)来使其难以判断,这表明多模态预训练不起作用,模型与人类的表现之间存在巨大的差距。

Winogrand Idea

另一个名为 Winoground 的数据集旨在找出 CLIP 到底有多好。上图 此数据集挑战我们去思考模型是否真的像人类一样理解组成关系,或者它们是否只是在泛化数据,尽管它们取得了令人印象深刻的结果。例如,早期的 Stable Diffusion 和其他文本到图像模型版本无法清楚地数出手指。因此,要让 VLM 进入下一个阶段,还有很多令人惊叹的工作要做!

下一步是什么?

社区发展迅速,我们已经看到了很多令人惊叹的工作,比如 FLAVA,它试图同时为所有目标模态建立一个单一的“基础”模型。这可能是未来的一种可能场景——模态无关的基础模型,能够读取和生成多种模态!但我们可能也会看到其他替代方案的发展,有一点可以肯定,未来充满了无限可能。

要了解更多有关这些最新进展的信息,请随时关注 HF 的 Transformers 库Diffusers 库,我们努力尽快添加最新进展和模型!如果你觉得我们遗漏了重要的内容,你也可以为这些库创建问题并自己贡献代码。

< > 在 GitHub 上更新