社区计算机视觉课程文档
视觉语言模型简介
并获得增强的文档体验
开始使用
视觉语言模型简介
本章你将学到什么
- 多模态的简要介绍
- 视觉语言模型简介
- 各种学习策略
- VLM常用的数据集
- 下游任务和评估
我们的世界是多模态的
人类通过多种感官探索世界:视觉、听觉、触觉和嗅觉。通过协调这些不同模态的洞察力,我们才能完整地理解周围的环境。我们以一种诗意的方式看待模态(最初在数学中被引入为不同的峰值):“每一种模态都扮演着独特的角色,它们共同构成了我们的理解阵列。感官的交响乐,和谐的融合,在感知的舞蹈中,我们的世界得以超越。” 为了使人工智能能够理解世界,机器学习领域致力于开发能够处理和整合来自多个模态数据的模型。然而,必须解决一些挑战,包括表示和对齐。表示探索有效总结多模态数据的技术,捕捉个体模态元素之间复杂的联系。对齐则侧重于识别所有元素之间的联系和交互。此外,承认处理多模态固有的困难也至关重要:
- 一种模态可能主导其他模态。
- 额外的模态可能会引入噪声。
- 无法保证所有模态都被完全覆盖。
- 不同模态之间可能存在复杂的关系。
尽管存在这些挑战,机器学习社区在开发这些系统方面取得了显著进展。本章将深入探讨视觉和语言的融合,由此产生了视觉语言模型 (VLM)。要更深入地了解多模态,请参阅本单元的前一部分。
引言
多年来,对图像进行处理以生成文本(例如图像字幕和视觉问答)的研究一直很活跃,其中包括自动驾驶、遥感等领域。我们也看到了从传统的机器学习/深度学习从零开始训练,转向了预训练、微调和预测的新学习范式,这种范式显示出巨大的优势,因为传统方法可能需要收集大量的数据等。
这种范式最初在ULMFIT论文中提出,它包括:
- 使用大量训练数据对模型进行预训练。
- 使用任务特定数据对预训练模型进行微调。
- 利用训练好的模型执行下游任务,例如分类。
在视觉语言模型 (VLM) 中,我们采用这种范式并将其扩展以结合视觉图像,从而获得所需的结果。例如,2021年,OpenAI发表了一篇开创性的论文,名为CLIP,这极大地影响了这种方法的采用。CLIP利用图像-文本对比目标,通过在嵌入空间中将配对的图像和文本拉近,同时将其他图像和文本推远来学习。这种预训练方法使VLM能够捕获丰富的视觉-语言对应知识,通过匹配任何给定图像和文本的嵌入来启用零样本预测。值得注意的是,CLIP在分布外任务上优于Imagenet模型。本章的下一节将进一步探讨CLIP和类似模型!
机制
为了使视觉语言模型 (VLM) 能够正常工作,文本和图像的有意义组合对于联合学习至关重要。我们如何做到这一点?一个简单/常见的方法是给定图像-文本对:
- 使用文本和图像编码器提取图像和文本特征。对于图像,可以是CNN或Transformer架构。
- 通过特定的预训练目标学习视觉-语言相关性。
- 预训练目标可分为三组:
- 对比目标通过在嵌入空间中将配对样本拉近并推开其他样本来训练VLM学习判别表示。
- 生成目标通过训练网络生成图像/文本数据,使VLM学习语义特征。
- 对齐目标通过全局图像-文本匹配或嵌入空间中的局部区域-单词匹配来对齐图像-文本对。
- 预训练目标可分为三组:
- 通过学习到的视觉-语言相关性,VLM可以通过匹配任何给定图像和文本的嵌入,以零样本方式对未见数据进行评估。
现有研究主要从三个关键视角关注增强VLM:
- 收集大规模信息丰富的图像-文本数据。
- 设计有效的模型用于从大数据中学习。
- 设计新的预训练方法/目标以学习有效的视觉-语言相关性。
VLM预训练旨在预训练VLM以学习图像-文本相关性,目标是在视觉识别任务(可以是分割、分类等)上实现有效的零样本预测。
策略
我们可以根据如何利用两种学习模式对VLM进行分组。
将图像转换为可以与token嵌入联合训练的嵌入特征。
- 在这种方法中,我们通过将图像视为普通文本标记来将视觉信息融合到语言模型中,并在文本和图像的联合表示序列上训练模型。具体来说,图像被分割成多个较小的补丁,每个补丁被视为输入序列中的一个“标记”。例如:VisualBERT,SimVLM。
学习良好的图像嵌入,作为冻结的预训练语言模型的前缀。
使用专门设计的交叉注意力机制将视觉信息融合到语言模型的层中。
- 为了增强视觉信息在语言模型层中的融合,采用量身定制的交叉注意力融合机制,以平衡文本生成和视觉输入。例如:VisualGPT等。
无需任何训练即可结合视觉和语言模型。
- 最近的方法,例如MAGiC,无需微调即可进行引导解码以采样下一个token。
常用VLM数据集
这些是Hugging Face数据集中VLM常用的一些数据集:
MSCOCO 包含32.8万张图像,每张图像配有5个独立的字幕。
NoCaps 旨在衡量对未见类和概念的泛化能力,其中领域内包含仅描绘COCO类的图像,近领域包含COCO和新颖类,域外则仅包含新颖类。
Conceptual Captions 包含300万对图像和字幕,从网络挖掘并经过后处理。
ALIGN 是一个包含超过10亿对图像alt-text的噪声数据集,在概念字幕数据集中无需昂贵的过滤或后处理步骤即可获得。
LAION 数据集由图像-文本对组成。这些图像-文本对是从Common Crawl网络数据转储中提取的,来自2014年至2021年期间抓取的随机网页。该数据集用于训练Stable-Diffusion模型。
下游任务和评估
VLM在许多下游任务中表现出色,包括图像分类、目标检测、语义分割、图像-文本检索和动作识别,并且超越了传统训练的模型。
通常用于评估VLM的设置是零样本预测和线性探测。零样本预测是评估VLM最常用的方法,我们直接将预训练的VLM应用于下游任务,无需任何任务特定的微调。
在线性探测中,我们冻结预训练的 VLM,并训练一个线性分类器来对 VLM 编码的嵌入进行分类,以衡量其表示能力。我们如何评估这些模型?我们可以检查它们在数据集上的表现,例如,给定一张图像和一个问题,任务是正确回答问题!我们还可以检查这些模型如何推理视觉数据并回答相关问题。为此,最常用的数据集是 CLEVR。
像MSCOCO这样的标准数据集对模型来说可能很容易学习,因为它们的分布特性,这可能无法充分展示模型在更具挑战性或多样化数据集上的泛化能力。为此,像Hateful Memes这样的数据集被创建出来,通过在数据集中添加困难示例(“良性混淆项”)来解决这个问题,从而使其更具挑战性,结果表明多模态预训练不起作用,模型与人类表现之间存在巨大差距。
另一个名为Winoground的数据集旨在找出CLIP的实际能力。上图所示,这个数据集挑战我们思考,尽管模型取得了令人印象深刻的结果,但它们是否真正像人类一样掌握了组合关系,还是仅仅泛化了数据。例如,早期版本的Stable Diffusion和其他文本到图像模型无法清晰地数清手指。因此,要让VLM达到下一阶段,还有大量令人惊叹的工作要做!
下一步是什么?
社区发展迅速,我们已经看到了许多令人惊叹的工作,例如FLAVA,它试图为所有目标模态提供一个单一的“基础”模型。这可能是未来的一个场景——模态无关的基础模型,可以读取和生成多种模态!但也可能出现其他替代方案,我们可以肯定地说,未来充满趣味。
要了解更多这些最新进展,请随时关注HF的Transformers库和Diffusers库,我们正努力尽快添加最新进展和模型!如果您认为我们遗漏了重要内容,您也可以为这些库提出问题并亲自贡献代码。
< > 在 GitHub 上更新