01

引言

直到最近,人工智能模型的范围还很狭窄,仅限于理解语言或特定图像,但很少能同时理解这两者。在这方面,像 GPT 这样的通用语言模型是一个巨大的飞跃,因为我们从专门的模型变成了通用但功能更强大的模型。

但是,即使语言模型在不断进步,它们仍然与计算机视觉领域相分离,每个领域都在各自发展,而没有弥合两者之间的差距。试想一下,如果只能听而不能看,或者反之亦然,会发生什么?

在本文中,我将讨论视觉语言模型(VLM),我相信它是多模态人工智能系统的未来。闲话少说,我们直接开始吧

02

什么是VLM?

拥有数十亿甚至上千亿个参数的 LLM 不再是新鲜事物。我们到处都能看到它们!

LLM 研究的下一个重点更倾向于开发多模态模型(omni-models)–能够理解和处理多种数据类型的模型。

顾名思义,这些模型可以处理的不仅仅是文本。它们还能分析图像、视频和音频。但我们为什么要这样做呢?

如今,语言驱动的LLM模型已变得相对先进和通用。一个模型可以翻译、总结、识别语音标签等。

但早些时候,这些模型都是针对特定任务的:

  • 专门用于翻译任务的模型
  • 用于总结等的专有模型
换句话说,如今的 NLP 模型(特别是 LLM)可以实现多种目的,而以前则需要开发高度针对特定任务的解决方案。
其次,这种方法允许我们以指数方式扩展用于模型训练的数据,这在文本数据量有限的情况下至关重要。然而,早些时候,我们需要针对特定任务的专有数据:
  • 专门用于翻译任务的人工标注数据集。
  • 专用的摘要数据集。
第三,我们认为训练多模态模型可以提高每种数据类型的性能,就像人类一样。
因此,本文针对VLM模型的处理流程进行简化,将其视为黑盒子,其接受图像和文本指令作为输入,如下图所示:
在深入探讨技术细节之前,先来看看VLM这类模型能解决哪些问题。
  • 左上方图像:我们要求模型描述图像,使用文字进行描述。
  • 顶部中间图像:我们要求模型对图像进行解读。
  • 右上图:我们要求模型解释图片,并告诉我们如果我们按照标志走会发生什么。
  • 下方图:这是最复杂的例子。我们给模型出了一些数学题。从这些例子中,您可以看到任务的范围是广泛而多样的。

VLM 是计算机视觉领域的一个新前沿方向,它可以在零样本和少样本模式下解决与计算机视觉相关的各种基本任务(分类、检测、描述)。虽然 VLM 可能还不能胜任所有标准任务,但它们正在迅速发展。

03

 VLM架构

这些模型通常由三个主要部分组成:

  • LLM – 大语言模型,主要用于处理文本,他们并不理解图像。

  • 图像编码器 – 用于提取图像特征的图像模型(CNN 或 VIT)
  • Adapter –  可确保 LLM 和图像编码器相处融洽,用于对齐图像特征和文本特征。

相应的处理流程也很简单,如下:

  • 将图像输入图像编码器。
  • 使用适配器将图像编码器的输出特征转换为某种表示形式。
  • 将适配器的输出集成到 LLM 中
  • 在处理图像的同时,将文本指示转换为一系列标记,并将其一并输入 LLM。

04

 Adapter 介绍

适配器Adapter是这列模型中最令人兴奋和最重要的部分,因为它恰恰促进了 LLM 与图像编码器之间的通信和交互。

适配器主要分为两种类型:

  • 基于提示的适配器

  • 基于交叉注意力的适配器

其中,基于提示的适配器最早是在 BLIP-2 和 LLaVa 模型中提出的。这个想法简单直观,从名称本身就可以看出。

我们将图像编码器的输出(一个向量或一个张量,具体取决于架构)转换成一串向量(Token),并将其输入 LLM。你可以用一个简单的 MLP 模型(多层)作为适配器,效果可能会很好。

VLM:计算机视觉模型的未来

基于交叉注意力的适配器在这方面更为复杂。最近关于 Llama 3.2 和 NVLM 的论文中使用了该结构。

这些适配器旨在转换图像编码器的输出,以便在 LLM 的交叉注意模块中作为键/值矩阵使用。这类适配器的例子包括 perceiver resamplerQ‑former等Transformer架构。

上图左侧显示了基于提示的适配器,右图展示了基于交叉注意力的适配器。目前,基于提示的适配器能提供更好的结果,但会占用大量 LLM 的输入上下文,这一点很重要,因为 LLM 的上下文长度一般是有限的。而基于交叉注意力的适配器不会脱离 LLM 的语境,但需要大量参数才能达到良好的质量。

    05

      VLM训练

    模型架构理清了,接着我们就开始训练吧。
    首先需要注意的是,VLM 并不是从头开始训练的(虽然我们认为这只是时间问题),而是建立在预先训练好的 LLM 和图像编码器基础上的。利用这些预训练模型,我们在多模态文本和图像数据中对 VLM 进行微调。
    这一过程主要包括两个步骤:
    • Pre-training
    • Alignment: SFT + RL
    图示如下:

    仔细观察上图,大家注意这些阶段与训练LLM的相似之处了吗?这是因为这两个过程的概念十分相似。让我们简单了解一下这些阶段。

    06

    VLM 预训练

    以下是我们在该阶段想要实现的目标:

    • 将文本和图像两个模态连接在一起(请记住,我们的模型包含一个我们之前未训练过的适配器)
    • 将世界知识加载到我们的模型中(图像有很多具体内容,例如 OCR VQA等)。
    一般来说,用于预训练 VLM 的数据有以下三种:
    • Interleaved Pre-training: 这与 LLM 的预训练阶段如出一辙,在这一阶段,我们通过向模型提供网络爬取数据,教它执行下一个标记预测任务。在 VLM 预训练中,我们挑选带有图像的网络文档,然后训练模型预测文本。这里的关键区别在于,VLM 会同时考虑页面上的文本和图像。这种数据很容易获得,因此这种预训练并不难扩展。但是,数据质量并不高,因此提升数据质量是一项艰巨的工作。

    Interleaved Pre-training dataset 

    • Image-Text Pairs Pre-training:  在这一阶段,我们训练模型来执行一项特定任务:为图像添加描述。要做到这一点,您需要一个包含相关描述的大型图像语料库。这种方法比较流行,因为许多此类语料库都用于训练其他模型(文本到图像生成、图像到文本检索)。

    Image-Text Pairs Pre-training dataset 

    • Instruct-Based Pre-training:  在推理过程中,我们将向模型提供图像和文本。为什么不从一开始就这样训练模型呢?这正是基于指令的预训练所要做的:它在图像-指令-答案三元组的海量数据集上训练模型,即使数据并不总是完美的。

    Instruct-Based Pre-training dataset

    需要多少数据才能正确训练 VLM 模型是一个复杂的问题。在现阶段,所需的数据集大小可能从几百万到几十亿个样本不等。

    07

    VLM校准

    完成前期预训练后,就可以该开始对齐了。它包括 SFT 训练和可选的 RL 阶段。由于我比较熟悉 SFT 阶段,因此我将重点介绍这一阶段。

    不过,近期的论文(如RLAIF-V)通常会在 VLM 的基础上加入一个 RL 阶段,该阶段使用的方法与 LLM 相同(DPO 及其各种修改)。言归正传,回到 SFT。

    严格来说,SFT阶段类似于基于指令的预训练阶段。

    其与众不同之处在于,我们需要注重高质量的数据、适当的响应结构、格式化和强大的推理能力。

    这意味着模型必须能够理解图像并对其进行推理。理想情况下,它应该对没有图像的文本指示做出同样好的反应,因此我们还将在其中加入高质量的纯文本数据。

    最终,这一阶段的数据通常介于几十万到几百万个样本之间。在相关论文中,这个数字大约是六位数。

    08

    质量评估

    让我们来讨论一下评估 VLM 质量的方法。我们使用两种方法:

    • 根据开源评测基准计算指标。
    • 使用并排评估(SBS)对模型进行比较,即评估人员比较两个模型的响应,并选择较好的一个。
    第一种方法允许我们在特定的数据子集上测量替代指标(如分类任务的准确性)。不过,由于大多数基准都是英文的,因此不能用来比较用其他语言(如德语、法语、俄语等)训练的模型。虽然可以使用翻译,但翻译模型带来的误差会使结果不可靠。
    第二种方法可以对模型进行更深入的分析,但需要细致(昂贵)的人工标注数据。


    09

    总结

    正如上文所述,我们坚信 VLM 是计算机视觉模型的未来。

    VLM 已经能够解决许多开箱即用的问题。只要稍加微调,它们绝对可以提供最先进的质量。


    #artContent h1{font-size:16px;font-weight: 400;}#artContent p img{float:none !important;}#artContent table{width:100% !important;}