Skip to content

大型多模态模型(LMM)概述

ChatGPT 再次让世界惊叹。通过 GPT-4 的最新升级,ChatGPT 将能力从文本扩展到图像和语音。借助这些新功能,AI 多模态系统的行业应用实现了飞跃,也引发了围绕多模态模型未来的新一轮讨论。

1. 从 LLM 到 LMM

生成式人工智能中的多模态系统或多模态性,表示模型产生各种输出的能力,包括文本、图像、音频、视频,甚至基于输入的其他模态。这些模型根据特定数据进行训练,学习潜在模态以生成类似的新数据,从而丰富人工智能应用。

并非所有多模态系统都是大型多模态模型(Large Multimodal Model,LMM)。例如,像 Midjourney、Stable Diffusion 和 DALL·E 这样的文本到图像模型是多模态的,但不是 LMM,因为它们没有大型语言模型(LLM)组件。多模态性意味着以下一个或多个特点:

  1. 输入和输出属于不同的模态(例如文本到图像、图像到文本)。
  2. 输入是多模态的(例如一个同时处理文本和图像的系统)。
  3. 输出是多模态的(例如一个能生成文本和图像的系统)。

LMM 是通过将额外的模态合并到 LLM 中构成的,例如 OpenAI 推出的 DALL·E 3。LMM 的表现高度依赖于其基础 LLM,但随着每种模态的添加,它也增强了基础 LLM 的能力。

与仅生成文本的 LLM 相比,LMM 更接近人类的自然智能。人类通过多种方式感知世界,尤其是视觉。使用图像作为 Prompt 可以让用户更轻松地查询模型,而不必在文本中起草完美的 Prompt。

事实上,整合多模态模型扩展并丰富了 LMM 对世界的理解。不同信息格式的融合可以使人工智能系统模仿人类的认知模型,通过多种感官而非单纯语言来理解世界,从而减少幻觉,提高推理能力和持续学习能力。

1.1 科技巨头引领 LMM 发展

多模态 ChatGPT 让 OpenAI 更接近通用人工智能(AGI)时代,这是 OpenAI 的终极愿景,也是数十年来 AI 社区的圣杯。正如 OpenAI 在 GPT-4V System Card 中指出:“将额外的模态(例如图像输入)融入到 LLM 中,被视为人工智能研究和发展的关键前沿。”

OpenAI 并不是唯一一家在多模态人工智能领域领先的公司。在过去的一年里,每周都有主要研究实验室推出新的 LMM,例如 DeepMind 的 Flamingo、Salesforce 的 BLIP、微软的 KOSMOS-1、Google 的 PaLM-E 和腾讯的 Macaw-LLM。

OpenAI 推出 GPT-4V 后,Google 也发布了 Gemini,号称是一个从头开始创建的多模态系统。据说 Gemini 接受训练的 Token 数量是 GPT-4 的两倍,在从大量专有数据中获得的见解和推论的复杂性方面具有明显优势。同样,Meta 最近推出的 SeamlessM4TAudioCraftCM3leon 系列,都表明了其在多模态 AI 进步方面与 OpenAI 和 Google 竞争的决心。

1.2 内容总览

本文分为 3 个部分:

  • 第 1 部分:介绍多模态背景,包括为什么需要多模态、不同的数据模态以及多模态任务的类型。
  • 第 2 部分:讨论多模态系统的基础,以 CLIP 和 Flamingo 为例,它们为理解 LMM 奠定了基础。
  • 第 3 部分:讨论 LMM 的一些活跃研究方向,包括生成多模态输出、高效多模态训练的适配器等,涵盖 BLIP-2、LLaVA、LLaMA-Adapter V2、LAVIN 等新模型。

2. 第 1 部分:了解多模态

2.1 为什么需要多模态

许多用例在没有多模态的情况下是不可能实现的,尤其是那些涉及多种数据模态的行业,如医疗保健、机器人技术、电子商务、零售、游戏等。

多模态在医疗保健领域的应用

多模态在医疗保健领域的应用示例。图片来自 Multimodal biomedical AI(Acosta 等,Nature Medicine 2022)。

不仅如此,整合来自其他模态的数据可以帮助提高模型性能。一个既能从文本学习又能从图像学习的模型,应该比只能从文本或图像学习的模型性能更好。

多模态系统可以提供更灵活的界面,允许你在特定时刻以最适合你的方式与它们交互——打字、说话,或者只需将摄像头对准某物来提问。

我特别期待的一个用例是,多模态可以让视障人士能够浏览互联网并在现实世界中导航。

GPT-4V 的多模态用例

GPT-4V 提供的一些酷炫的多模态用例。

2.2 数据模态

不同的数据模态包括文本、图像、音频、表格数据等。一个数据模态可以被另一个数据模态所表示或近似。例如:

  • 音频可以被表示为图像(梅尔频谱图)。
  • 语音可以被转录成文本,尽管纯文本表示会丢失音量、语调、停顿等信息。
  • 图像可以被表示为向量,然后被压平并表示为一系列文本 token。
  • 视频是图像和音频的序列。目前的机器学习模型主要将视频视为图像的序列,这是一个严重限制,因为声音对于视频和视觉同样重要。88% 的 TikTok 用户表示声音对他们的 TikTok 体验非常重要。
  • 文本可以被表示为图像,如果你只是简单地拍照。
  • 数据表可以转换为图表,即图像。

那其他的数据模态呢?

所有数字数据格式都可以用位串(由 0 和 1 组成的字符串)或字节串表示。一个能够有效学习位串或字节串的模型将非常强大,它可以从任何数据模态中学习。

还有其他我们没有涉及的数据模态,比如图表和 3D 图。我们也没有涉及用于表示气味和触觉的格式。


在当前的机器学习中,音频仍然主要被视为文本的语音替代品。音频最常见的用例仍然是语音识别(语音转文本)和语音合成(文本转语音)。非语音音频用例,例如音乐生成,仍然相对小众。可以参考 Hugging Face 上的 Drake & Weeknd 歌曲和 MusicGen model on Hugging Face

图像可能是模型输入最通用的格式,因为它可用于表示文本、表格数据、音频,在某种程度上还可以表示视频。视觉数据也比文本数据多得多——如今我们有手机、网络摄像头可以不断地拍照和录制视频。

文本是模型输出的一个更强大的模态。一个能够生成图像的模型只能用于图像生成,而一个能够生成文本的模型可以用于许多任务:摘要、翻译、推理、回答问题等。

为简单起见,本文主要关注两种模态:图像和文本。这些知识在一定程度上可以推广到其他模态。

2.3 多模态任务

要了解多模态系统,了解它们旨在解决的任务会很有帮助。文献中通常将视觉语言任务分为两组:生成任务视觉语言理解(Vision-Language Understanding,VLU)任务。VLU 是所有不需要生成的任务的总称。这两组之间的界限是模糊的,因为能够生成答案也需要理解。

2.3.1 生成任务

对于生成任务,输出可以是单模态的(例如文本、图像、3D 渲染)或多模态的。虽然单模态输出在今天很常见,但多模态输出仍在不断发展中。

2.3.2 图像生成(Text-to-Image)

这个任务类别很直接,例如 DALL-E、Stable Diffusion 和 Midjourney。

2.3.3 文本生成(Text Generation)

一个常见的文本生成任务是视觉问答。与其只依赖文本进行上下文,你可以同时给模型提供文本和图像。想象一下你可以用相机对准任何东西并问问题,比如:

  • “我的车无法启动。出了什么问题?”
  • “怎么制作这道菜?”
  • “这个梗是什么意思?”

另一个常见的用例是图像描述,它可以作为基于文本的图像检索系统的一部分。一个组织可能有数百万甚至数十亿张图片:产品图片、图表、设计、团队照片、宣传材料等。AI 可以自动生成这些图片的描述和元数据,使得更容易找到想要的确切图片。

2.3.4 视觉语言理解

我们将关注两种任务类型:分类和基于文本的图像检索(Text-Based Image Retrieval,TBIR)。

2.3.5 分类

分类模型只能生成属于预定义类别列表的输出。当你只关心有限数量的结果时,这种方法是可行的。例如,一个 OCR 系统只需要预测一个视觉元素是否为已知字符(例如数字或字母)。

补充说明:OCR 系统在字符级别处理数据。当与一个能够理解更广泛上下文的系统结合使用时,它可以改善用例,比如允许你“与”任何教科书、合同、装配说明等进行交流。

使用 GPT-4V 进行文档处理

使用 GPT-4V 进行文档处理。模型的错误被标记为红色。

与分类相关的一个任务是图像到文本的检索:给定一张图片和一组预定义的文本,找到最有可能与该图片配对的文本。这对于产品图片搜索很有帮助,即从图片中检索产品评论。

2.3.6 基于文本的图像检索(图像搜索)

图像搜索不仅对搜索引擎很重要,对于企业搜索其所有内部图片和文档也至关重要。有些人将基于文本的图像检索称为“文本到图像检索”。

基于文本的图像检索有几种方法,其中两种是:

  1. 为每张图片生成标题和元数据(可以手动或自动完成,参见文本生成中的图像描述)。给定一个文本查询,找到标题/元数据与该查询最接近的图像。
  2. 为图像和文本训练一个联合嵌入空间。给定一个文本查询,生成该查询的嵌入,然后找到所有与该嵌入最接近的图像嵌入。

第二种方法更加灵活,预计将更广泛地使用。这种方法需要在视觉和语言之间建立强大的联合嵌入空间,就像 OpenAI 的 CLIP 所开发的那种空间。

3. 第 2 部分:多模态训练的基础

鉴于存在如此多令人惊叹的多模态系统,编写这篇文章的挑战之一是选择专注于哪些系统。最终,我决定专注于两个模型:CLIP(2021 年)和 Flamingo(2022 年),这两个模型因其重要性以及公开细节的可用性和清晰度而备受关注。

  • CLIP 是第一个能够通过零样本和少样本学习泛化到多个图像分类任务的模型。
  • Flamingo 虽然不是第一个能够生成开放性回答的大型多模态模型(Salesforce's BLIP 比它早 3 个月发布),但 Flamingo 的出色性能使一些人认为它是多模态领域的 GPT-3 时刻。

尽管这两个模型较老,但它们使用的许多技术在今天仍然适用。希望它们为理解更新的模型奠定基础。

从高层次来看,一个多模态系统包括以下组件:

  1. 编码器:为每个数据模态构建编码器,以生成该模态数据的嵌入。
  2. 模态对齐:一种将不同模态的嵌入对齐到相同多模态嵌入空间的方法。
  3. 语言模型(仅用于生成模型):用于生成文本回应。因为输入可能同时包含文本和图像,需要开发新技术,使语言模型不仅可以根据文本,还可以根据图像生成回应。

理想情况下,尽可能多的这些组件应该是可以预训练的和可重复使用的。

3.1 CLIP:Contrastive Language-Image Pre-training

CLIP 的关键贡献在于能够将不同模态的数据——文本和图像——映射到共享的嵌入空间中。这个共享的多模态嵌入空间使得文本到图像和图像到文本的任务变得更加容易。

训练这个多模态嵌入空间还产生了一个强大的图像编码器,使得 CLIP 在许多图像分类任务上实现了有竞争力的零样本性能。这个图像编码器可以用于许多其他任务:图像生成、视觉问答和基于文本的图像检索。Flamingo 和 LLaVA 使用 CLIP 作为它们的图像编码器,DALL-E 使用 CLIP 对生成的图像进行重新排序。目前尚不清楚 GPT-4V 是否使用了 CLIP。

使用 CLIP 进行零样本图像分类

使用 CLIP 进行零样本图像分类。

CLIP 利用了自然语言监督和对比学习,这使得 CLIP 既能够扩大其数据规模,又能够提高训练效率。

3.1.1 CLIP 的高级架构

OpenAI CLIP 架构

CLIP 的架构包括两个主要部分:图像编码器和文本编码器,以及用于将它们投影到相同嵌入空间的两个投影矩阵,这两个部分是从头开始联合训练的。训练目标是在最大化正确的(图像,文本)配对相似度分数的同时,最小化错误配对的相似度分数(对比学习)。

对于图像编码器,作者尝试了 ResNet 和 ViT 两种架构。最佳性能的模型是 ViT-L/14@336px

  • Large Vision Transformer(ViT-L)
  • 输入分辨率为 336×336 像素

对于文本编码器,CLIP 使用了一个类似于 GPT-2 但规模较小的 Transformer 模型。它们的基础模型仅有 63M 参数和 8 个注意力头。作者发现 CLIP 的性能对文本编码器的容量不太敏感。

图像编码器和文本编码器生成的嵌入,通过两个投影矩阵 WvWl 被投影到相同的嵌入空间中。

  • 给定图像嵌入 Vi,相应的多模态嵌入计算为 WvVi
  • 给定文本嵌入 Li,相应的多模态嵌入计算为 WlLi

当人们提到 CLIP 嵌入时,他们指的是这些多模态嵌入,或者是由 CLIP 图像编码器生成的嵌入。

3.1.2 自然语言监督

多年来,图像模型是通过手动标注的(图像,文本)数据集(例如 ImageNet、MS COCO)进行训练的。但这种方法不太容易扩展,手动标注非常耗时和昂贵。

CLIP 的论文指出,当时可用的(图像,文本)数据集都不够大、质量也不够高。因此,它们创建了自己的数据集,包含了 4 亿个(图像,文本)配对。具体方法如下:

  • 构建一个包含 50 万个查询的列表。这些查询是常见单词、二元组和热门维基百科文章的标题。
  • 找到与这些查询匹配的图像(进行字符串和子字符串匹配)。论文中并未详细说明搜索来源,但 OpenAI 可能已经抓取了互联网并查询了内部数据库。
  • 每个图像都与一个文本配对(例如标题、评论等),而不是查询,因为查询太短,无法描述图像。

由于某些查询比其他查询更受欢迎,为了避免数据不平衡,每个查询最多使用 2 万个图像。

3.1.3 对比学习

在 CLIP 出现之前,大多数视觉-语言模型都是使用分类器或语言模型目标进行训练的。对比学习是一种聪明的技术,使得 CLIP 能够扩展并泛化到多个任务。

我们通过一个图像描述任务来说明为什么对比目标更适合 CLIP:给定一个图像,生成描述它的文本。

3.1.4 分类器目标

分类器预测预定义类别列表中的正确类别。当输出空间有限时,这种方法有效。之前使用(图像,文本)配对数据集的模型都有这个限制。例如,使用 ILSVRC-2012 数据集的模型限制自己在 1000 个类别中预测,而使用 JFT-300M 数据集的模型限制在 18291 个类别中预测。

这个目标不仅限制了模型输出有意义响应的能力,还限制了它进行零样本学习的能力。也就是说,如果模型被训练为在 10 个类别中预测,那么它不适用于有 100 个类别的任务。

3.1.5 语言模型目标

如果分类器只为每个输入输出一个类别,那么语言模型则输出一个类别序列。生成的每个类别被称为一个 token,每个 token 都来自语言模型的预定义词汇表。

分类器与语言模型目标

分类器与语言模型目标。

3.1.6 对比目标

虽然语言模型目标允许更加灵活的输出,但 CLIP 的作者指出,这个目标使得训练变得困难。他们的假设是:模型试图生成与每个图像相伴随的确切文本,而一个图像可能有很多可能的伴随文本,例如可替代文本、标题、评论等。

例如,在 Flickr30K 数据集中,每个图像都有由人类注释者提供的 5 个标题,并且同一图像的标题可能非常不同。

同一张图片的多个标题

对比学习就是为了克服这一挑战。CLIP 的训练目的不是预测每个图像的确切文本,而是预测文本是否比其他文本更有可能伴随图像。

对于每个包含 N 对(图像,文本)的批次,模型生成 N 个文本嵌入和 N 个图像嵌入:

  • V1,V2,,VnN 个图像的嵌入。
  • L1,L2,,LnN 个文本的嵌入。

CLIP 计算 N2 个可能的 (Vi,Lj) 配对的余弦相似度分数。模型的训练目标是最大化 N 个正确配对的相似度分数,同时最小化 N2N 个不正确配对的分数。对于 CLIP,N=32,768

另一种看待这个问题的方法是:CLIP 的每个训练批次都是两个分类任务。

  1. 每张图像都可以与 N 个可能的文本配对,模型尝试预测正确的文本。这与图像到文本检索的设置相同。
Lcontrastive:txt2im=1Ni=1Nlog(exp(LiViβ)j=1Nexp(LiVjβ))
  1. 每个文本可以与 N 个可能的图像配对,模型尝试预测正确的图像。这与文本到图像检索的设置相同。
Lcontrastive:im2txt=1Ni=1Nlog(exp(ViLiβ)j=1Nexp(ViLjβ))

这两个损失的总和被最小化,其中 β 是可训练的逆温度参数。

下面是伪代码示意。

CLIP 伪代码

CLIP 作者发现,与语言模型目标基线相比,对比目标的效率提高了 12 倍,同时产生了更高质量的图像嵌入。

CLIP 对比学习效率

3.1.7 CLIP 模型的应用

3.1.8 分类

如今,对于许多图像分类任务,CLIP 仍然是一个强大的开箱即用基线,可以按原样使用或进行微调。

CLIP 作为图像分类基线

3.1.9 基于文本的图像检索

由于 CLIP 的训练过程在概念上类似于图像到文本检索和文本到图像检索,因此 CLIP “为图像检索或搜索等广泛应用的任务展现了巨大的前景”。然而,“在图像检索方面,CLIP 的性能相对于整体现有技术水平明显较低”。

有人尝试使用 CLIP 进行图像检索。例如,clip-retrieval 的工作原理如下:

  1. 为所有图像生成 CLIP 嵌入并将它们存储在向量数据库中。
  2. 对于每个文本查询,生成该文本的 CLIP 嵌入。
  3. 在向量数据库中查询与该文本查询嵌入接近的所有图像。

3.1.10 图像生成

CLIP 的联合图像文本嵌入对于图像生成非常有用。给定文本提示,DALL-E(2021)会生成许多不同的视觉效果,并使用 CLIP 对这些视觉效果重新排序,然后再向用户显示顶级结果。

2022 年,OpenAI 推出了 unCLIP,这是一种以 CLIP 潜在特征为条件的文本到图像合成模型。它由两个主要部分组成:

  1. CLIP 经过训练并冻结。预训练的 CLIP 模型可以在同一嵌入空间中生成文本和图像的嵌入。
  2. 图像生成时发生两件事:
    • 使用 CLIP 生成此文本的嵌入。
    • 使用扩散解码器生成以此嵌入为条件的图像。

unCLIP 架构

3.1.11 文本生成:视觉问答、图像摘要

CLIP 作者确实尝试创建一个文本生成模型。他们试验的一个版本称为 LM RN50。尽管该模型可以生成文本响应,但在 CLIP 评估的所有视觉语言理解任务上,其性能始终比 CLIP 的最佳性能模型低约 10%。

虽然现在 CLIP 不直接用于文本生成,但其图像编码器通常是可生成文本的 LMM 的骨干。

3.2 Flamingo:LMM 的黎明

与 CLIP 不同,Flamingo 可以生成文本响应。从简化的角度看,Flamingo 是 CLIP + 语言模型,再添加一些技术,使语言模型能够根据视觉和文本输入生成文本 token。

与 Flamingo LMM 对话

Flamingo 可以根据文本和图像生成文本响应。

3.2.1 Flamingo 的高层架构

从高层次来看,Flamingo 由两部分组成:

  1. 视觉编码器:使用对比学习训练类似 CLIP 的模型,然后丢弃该模型的文本编码器。视觉编码器被冻结以在主模型中使用。
  2. 语言模型:Flamingo 微调 Chinchilla 以生成文本 token,以视觉和文本为条件,使用语言模型损失,以及两个附加组件:Perceiver Resampler 和 GATED XATTN-DENSE 层。

Flamingo 高层架构

3.2.2 数据

Flamingo 使用了 4 个数据集:2 个(图像,文本)对数据集、1 个(视频,文本)对数据集和 1 个交错的图像和文本数据集。

Flamingo 的 4 个数据集

3.2.3 数据集概览

数据集类型规模说明训练权重
M3W交错的图像与文本数据4300 万个网页每个网页随机采样 256 个 token 的序列,并取采样序列中最多前 5 张图像1.0
ALIGN(图像,文本)对18 亿对文本为替代文本,平均每个文本 12 个 token0.2
LTIP(图像,文本)对3.12 亿对文本为长描述,平均每个文本 20.5 个 token0.2
VTP(视频,文本)对2700 万个短视频平均每个视频约 22 秒0.03

3.2.4 Flamingo 的视觉编码器

Flamingo 首先使用对比学习从头开始训练类似 CLIP 的模型。该组件仅使用 2 个(图像,文本)对数据集:ALIGN 和 LTIP,总共 21 亿个(图像,文本)对,这比 CLIP 训练的数据集大 5 倍。

  • 对于文本编码器,Flamingo 使用 BERT 而不是 GPT-2。
  • 对于视觉编码器,Flamingo 使用 Normalizer-Free ResNet(NFNet)F6 模型。
  • 文本和视觉嵌入在投影到联合嵌入空间之前进行均值池化。

3.2.5 Flamingo 的语言模型

Flamingo 使用 Chinchilla 作为语言模型。更具体地说,它们冻结了 9 个预训练的 Chinchilla LM 层。传统的语言模型根据前面的文本 token 预测下一个文本 token,而 Flamingo 根据前面的文本和视觉 token 预测下一个文本 token。

Flamingo 文本生成

下一个 token 的生成以文本和视觉 token 为条件。插图取自 Chunyuan Li 的 CVPR 2023 教程:Large Multimodal Models。

为了能够根据文本和视觉输入生成文本,Flamingo 依赖于 Perceiver Resampler 和 GATED XATTN-DENSE 层。

3.2.6 Perceiver Resampler

由于视觉输入可以是图像和视频,视觉编码器可以产生可变数量的图像或视频特征。Perceiver Resampler 将这些可变特征转换为一致的 64 个视觉输出。

有趣的是,在训练视觉编码器时,使用的分辨率为 288×288。然而,在此阶段,视觉输入被调整为 320×320。使用 CNN 时,更高的测试时分辨率可以提高性能

Flamingo 的 Perceiver Resampler

3.2.7 门控 XATTN-DENSE 层

门控 XATTN-DENSE 层插入现有且冻结的 LM 层之间,使语言模型在生成文本 token 时更有效地处理视觉 token。如果没有这些层,Flamingo 作者指出总体得分会下降 4.2%。

Flamingo 的门控注意力密集层

3.2.8 损失函数

Flamingo 计算以交错的图像和视频 x 为条件的文本 y 的似然:

p(yx)==1Lp(yy<,x)

训练损失函数是所有 4 个数据集生成文本的预期负对数似然的加权和,其中 λm 是数据集 m 的训练权重:

m=1MλmE(x,y)Dm[=1Llogp(yy<,x)]

3.2.9 训练

虽然 Chinchilla LM 层经过微调并被冻结,但附加组件是使用所有 4 个具有不同权重的 Flamingo 数据集从头开始训练的。找到正确的每个数据集权重是性能的关键。每个数据集的权重位于上表“训练权重”列中。

VTP 的权重比其他数据集小得多(0.03 与 0.2 和 1 相比),因此它对训练的贡献应该很小。然而,作者指出,删除该数据集会对所有视频任务的性能产生负面影响。

虽然 Flamingo 不是开源的,但有许多开源复制品:

3.3 CLIP 与 Flamingo

CLIP 与 Flamingo 对比

4. 第 3 部分:LMM 的研究方向

CLIP 已经 3 岁了,Flamingo 也快 2 岁了。虽然它们的架构为我们理解 LMM 的构建方式奠定了良好基础,但该领域已经取得了许多新的进展。

以下是一些令人兴奋的方向。这远不是一个详尽的列表。

4.1 纳入更多数据模态

如今,大多数多模态系统都使用文本和图像。能够整合视频、音乐和 3D 等其他模态的系统只是时间问题。为所有数据模态提供一个共享嵌入空间,这将是一件令人惊奇的事情。

该领域的研究包括:

ImageBind

4.2 用于遵循指令的多模态系统

Flamingo 接受了补全任务的训练,但没有接受对话或遵循指令的训练。许多人正在致力于构建可以遵循指令并进行对话的 LMM,例如:

LaVIN 示例

LaVIN 的输出示例与其他 LMM 相比,如 LaVIN 论文所示。

4.3 更高效的多模态训练适配器

虽然 Flamingo 使用了 Chinchilla 的 9 个预训练和冻结层,但它必须从头开始预训练其视觉编码器、Perceiver Resampler 和 GATED XATTN-DENSE 层。这些从头开始训练的模块可能需要大量计算资源。许多研究侧重于使用更少的从头开始训练来启动多模态系统。

例如,BLIP-2 在零样本 VQA-v2 上的性能比 Flamingo-80B 高出 8.7%,并且可训练参数减少了 54 倍。

该领域的研究包括:

下面的两张图片来自 Chunyuan Li 在 CVPR 2023 上的 Large Multimodal Models 教程,非常值得推荐。

LMM 适配器 1

LMM 适配器 2

4.4 生成多模态输出

虽然能够处理多模态输入的模型正变得普遍,但多模态输出仍然滞后。许多应用场景需要多模态输出。例如,如果我们要求 ChatGPT 解释 RLHF,一个有效的解释可能需要图表、方程式,甚至简单的动画。

为了生成多模态输出,模型首先需要生成一个共享的中间输出。一个关键问题是中间输出应该是什么样子的。

一个中间输出的选择是文本,然后将其用于生成/合成其他模态。

例如,CM3(Aghajanyan 等,2022)输出 HTML 标记,可以编译成不仅包含文本还包含格式、链接和图像的网页。GPT-4V 可以生成 LaTeX 代码,然后重建为数据表。

CM3 采样输出

CM3 的采样输出。

GPT-4V 生成 LaTeX

GPT-4V 生成 LaTeX 代码,然后可以将其重建为数据表。

另一个中间输出的选择是多模态 token。这是 Salesforce 团队 Caiming Xiong 倡导的选择。每个 token 将有一个标签,表示它是文本 token 还是图像 token。然后,图像 token 将被输入到像 Diffusion 这样的图像模型中以生成图像,文本 token 则被输入到语言模型中。

Generating Images with Multimodal Language Models(Koh 等,2023 年 6 月)是一篇很棒的论文,展示了 LMM 如何在生成文本的同时生成和检索图像。

LMM 生成文本和图像

结论

总的来说,在本文中我回顾了很多多模态论文,并与正在进行出色工作的人们交流,试图在一篇博文中总结关键要点。多模态系统还处于早期阶段——早到一个朋友告诉我他不确定 LMM 这个缩写是否会流行起来的阶段。是的,在我大部分的对话中,人们普遍认为多模态系统总体上,尤其是大型多模态模型,将比大型语言模型更具影响力。但请记住,LMM 并不会使 LLM 过时。由于 LMM 在 LLM 的基础上进行了扩展,LMM 的性能依赖于其基础 LLM 的性能。许多实验室同时致力于多模态系统和大型语言模型的研究。

5. 资源

5.1 带代码的优秀论文

5.2 模型时间线

下面是一个不完整的多模态系统时间线,让你感受这个领域发展有多快:

5.3 其他资源

Maintained by Robin