多模态和多模态大模型 (LMM)[译]

作者:

Chip Huyen

以前,我们的机器学习模型一般都只处理一种类型的数据,比如只处理文本(翻译、语言建模)、图像(对象检测、图像分类)或音频(语音识别)。

但是,想想我们人类的大脑。我们不仅仅读写文字,还可以看图、看视频,听音乐,还能够辨识各种不同的声音。所以,为了让 AI 更接近真实世界,处理多种类型的数据显得非常重要。

OpenAI 在他们的 GPT-4V 系统简介 中提到:

将额外模态(如图像输入)融入大语言模型(LLMs)被认为是 AI 研究和发展的一个关键新领域

这种融合的方法就是将大语言模型 (LLMs) 扩展到多种数据类型,从而得到所谓的多模态大模型 (LMMs)。去年,几乎每周都有研究团队推出自己的 LMM,比如 DeepMind 的 Flamingo、Salesforce 的 BLIP、微软的 KOSMOS-1、Google 的 PaLM-E,还有腾讯的 Macaw-LLM。甚至像 ChatGPTGemini 这样的聊天机器人也采用了这种技术。

不是所有多模态系统都属于 LMM。例如,像 Midjourney、Stable Diffusion 和 Dall-E 这样的文本到图像模型虽然是多模态的,但并不包含语言模型组件。多模态可能指的是:

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

本文将全面介绍多模态系统,包括 LMM。内容共分为三部分。

  • 第 1 部分围绕多模态的概念展开,讲述了使用多模态的原因、不同类型的数据模态以及多模态任务的种类。
  • 第 2 部分深入探讨了多模态系统的核心原理,以 CLIP 和 Flamingo 为例,分别为未来多模态系统的发展奠定了基础,并通过 Flamingo 的卓越表现引领了大语言模型(LLM)的兴起。
  • 第 3 部分聚焦于大语言模型(LLM)的当前研究热点,探讨了生成多模态输出和高效多模态训练适配器的新进展,涉及了像 BLIP-2、LLaVA、LLaMA-Adapter V2、LAVIN 等新兴多模态系统。

虽然这篇文章篇幅较长,但你可以直接跳到你最关心的那部分。

⚠ 术语澄清 ⚠

在这里,多模态数据指的是结合不同类型数据的系统,与此不同的是,多模态分布(例如双峰分布)是一个统计学术语,它与本文讨论的多模态概念不同。


第 1 部分:深入理解多模态

多模态的重要性

很多应用场景如果没有多模态技术支持几乎难以实现,尤其是在需要处理多种类型数据的领域,例如医疗、机器人、电商、零售、游戏等。

医疗领域如何运用多模态技术的例子。图片摘自:多模态生物医学人工智能研究 (Acosta 等,Nature Medicine 2022)
医疗领域如何运用多模态技术的例子。图片摘自:多模态生物医学人工智能研究 (Acosta 等,Nature Medicine 2022)

更重要的是,综合使用多种数据模式的信息,可以显著提升模型的性能。比如,一个能够同时处理文本和图片的模型,其效果不是应该比只能处理文本或只能处理图片的模型更出色吗?

多模态技术使得我们与系统交互更加灵活多样,可以根据自己的喜好或场合选择交互方式,比如键盘输入、语音对话或者拍照识别。

其中一个让我非常兴奋的应用是,借助多模态技术,视力受损的人也能轻松浏览网络,甚至在真实世界中进行导航。

GPT-4V 展示的多模态应用亮点
GPT-4V 展示的多模态应用亮点

数据的多种模式

我们接触到的数据有多种形式,例如:文本、图片、音频、数据表格等。这些数据的一种形式有时可以转换或 模拟 成另一种形式。例如:

  • 音频可以转化为图像形式,如音谱图。

  • 语音内容可以转写为文字,但这样做可能会丢失某些信息,如声音的响度、语调和停顿等。

  • 图像可以转化为向量,并进一步被转换为一串文本词元(Token)序列。

  • 视频实际上是一系列的图片加上音频。但现在,很多机器学习模型只把视频看作是图片的连续播放。这真的大大限制了它们的能力,因为研究表明,声音在视频中起到的作用与画面一样重要。比如,88% 的 TikTok 用户表示,在 TikTok 上,声音是不可或缺的

  • 其实,只要你为一段文字拍张照,它就能被视为一张图片。

  • 你知道吗,数据表格也可以变成图表,也就是我们常说的图像。


那么,其他的数据模态呢?

事实上,所有的数字数据都可以用一系列的 0 和 1(即比特串)或者字节序列来表示。如果一个模型能够有效地处理这些比特串或字节序列,它就具有强大的学习能力,能处理任何类型的数据。

此外,还有一些我们尚未提及的数据模态,如图形和三维(3D)素材,以及用于表示气味和触觉(如触觉反馈设备)的数据格式。


现在在机器学习领域,音频大多只被当作是语音的另一种形式。它大多用于把人声转化为文字,或是把文字转化为人声。而非语音的应用,比如创作音乐,还比较少见。可以参考有人用技术合成了 Drake 和 Weeknd 的歌,你可以在 HuggingFace 的 MusicGen 模型里找到它。

而图片则可以说是最多用途的输入方式了,它不仅可以代表文字、数据表,还可以代表音频和部分视频。并且,我们每天都在产生大量的图片和视频数据,因为手机和摄像头无时无刻不在拍摄。

但当我们谈到输出时,文本就显得更有力量了。一个只能生成图片的模型其实用途有限,但如果一个模型能输出文本,它就能完成许多任务,如摘要、翻译、逻辑推理和问答等。

为简单起见,我们将重点关注两种模式:图像和文本。这些知识可以在某种程度上推广到其他模式。

多模态任务

要深入了解多模态的系统,我们最好看看它们是为了解决哪些问题而设计的。存在很多这样的任务,组织方法也五花八门。在很多学术文章中,我常看到把与视觉和语言相关的任务分为两类:生成视觉语言理解(VLU)。VLU 通常指的是不涉及生成的所有任务。这两类之间并没有严格的分界,因为生成出答案也需要理解。

生成

对于生成任务,输出可以是单模态(例如只是文本、图像或 3D 图)或多模态结合。现在,单模态的输出已经很普遍,但多模态的输出还在发展中。文章最后会详细讨论这个。

从文本生成图像

这个任务就是直接通过文本生成对应的图像。比如:Dall-E、Stable Diffusion 和 Midjourney 这些技术都做得很好。

文本生成

一个常见的任务是视觉问题回答。这意味着,除了提供文字信息外,还可以为模型提供图片。比如,你可以随时拍摄任何东西,并提出问题:“我的车怎么不动了,是怎么回事?”、“这道菜怎么做?”或“这个梗是什么意思?”。

另一个应用场景是图片的描述,这也可以帮助搜索特定的图片。想象一个大公司,他们可能有上百万甚至十亿的图片:产品照片、统计图、设计稿、团队合影、宣传海报等等。AI 能够自动为这些图片生成描述和相关信息,这样你就可以轻松地找到你需要的图片了。

视觉语言理解

我们将重点介绍两种任务类型:分类和基于文本的图像检索(Text-based Image Retrieval, TBIR)。

图像分类

图像分类模型只会将图像归入一些预设的类别。当我们只关心有限的几种结果时,这种模型很实用。比如,OCR(光学字符识别)系统就是来判断某个图像上的字符是不是我们已知的字符,如数字或字母。

额外说明:OCR 主要是对单个字符进行分析。但当它和一个能够理解全文背景的系统结合时,效果会更好,比如它能让我们“与”任何教科书、合同、汇编指令等“交谈”。

上图显示了 GPT-4V 在处理文档时的情况,其中的错误用红色标出。
上图显示了 GPT-4V 在处理文档时的情况,其中的错误用红色标出。

与图像分类相似的另一任务是 图像到文本检索:也就是根据给定的图像,从一堆文字中找出最匹配的描述。这种技术在搜索商品图片时特别有用,可以从图片中找出相关的商品评论。

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

图像搜索不仅对搜索引擎有意义,对于企业内部查找文档和图片也同样重要。有些人也称它为“文本到图像检索”。

关于这种基于文本的图像搜索,大体上有两种方法:

  1. 为每张图像生成标题和元数据,这可以是手动或自动的(参见 文本生成 中的图像描述)。给定一个文本查询,找出其标题或元数据与查询文本最匹配的图像。

  2. 训练图像和文本的联合向量空间。给定一个文本查询,生成该查询的向量,并找到向量最接近该向量的所有图像。

第二种方法更加灵活,相信会得到更广泛的应用。简单说,这就是需要一个能够同时处理图像和文本的“联合向量空间”,例如 OpenAI 的 CLIP 就做到了这一点。

第 2 部分:多模态训练的基本原理

当今,我们有很多高效的多模态系统。那么,我应该重点介绍哪些呢?我选择了两个:CLIP (2021) 和 Flamingo (2022),它们在科学界都很有影响力,而且公众可以轻易获取关于它们的详细资料。

  • CLIP 是第一个可以通过零样本和少样本学习推广到多个图像分类任务的模型。

  • 虽然 Flamingo 不是第一个能够生成开放式回应的多模态大模型(Salesforce 的 BLIP 比它早 3 个月),然而,Flamingo 的出色表现使得一些人将其视为多模式领域的 GPT-3 时刻

尽管这两个模型较旧,但它们使用的许多技术在今天仍然适用。希望它们能帮助我们更好地理解那些新兴的模型。现在,这个领域正在飞速进步,新的想法层出不穷。接下来,在第 3 部分,我们会探讨一些最新的研究模型。

要了解多模态系统,我们可以从以下几个关键部分开始:

  1. 一个编码器,它可以把各种类型的数据转化为数字向量。
  2. 一种将不同模态的向量对齐到同一多模态向量空间的方法。
  3. [仅限生成模型] 用于生成文本结果的语言模型。由于输入可以包含文本和视觉效果,因此需要开发新技术,使语言模型不仅可以根据文本,还可以根据视觉效果来调节其生成结果。

在理想的情况下,很多这类工具或组件都应该经过预训练,可以在多个场景下重复使用。

CLIP:将语言和图像联系起来的魔法

CLIP 最大的亮点就是它能够将不同模式、文本和图像的数据映射到共享向量空间。这种共享的多模态向量空间使文本到图像和图像到文本的任务变得更加容易。

训练这个多模态向量空间 CLIP 还产生了一个强大的图像编码器,让它在很多图像识别任务上都表现出色,甚至不需要额外的训练。这个编码器不仅可以帮助识别图像,还可以生成图像、回答与图像相关的问题,甚至搜索与文字描述相符的图像。Flamingo 和 LLaVa 使用 CLIP 作为图像编码器。而 DALL-E 则用 CLIP 来筛选生成的图像。目前,我们还不确定 GPT-4V 是否也使用了 CLIP。

用 CLIP 进行图像分类的示例
用 CLIP 进行图像分类的示例

CLIP 的优势还在于它巧妙地利用了我们日常的语言知识,结合了一种叫做“对比学习”的技巧,这使得它可以处理更多的数据,并且训练得更加高效。接下来,我们会深入探讨这两种技术是怎么工作的。

CLIP 的内部构造图解

CLIP 的架构(对比语言 - 图像预训练)。图像编码器和文本编码器以及投影矩阵是从头开始一起训练的。训练目标是通过最大化正确(图像、文本)配对的相似度分数,并最小化错误配对的相似度分数,以实现对比学习。
CLIP 的架构(对比语言 - 图像预训练)。图像编码器和文本编码器以及投影矩阵是从头开始一起训练的。训练目标是通过最大化正确(图像、文本)配对的相似度分数,并最小化错误配对的相似度分数,以实现对比学习。

图像编码器 方面,研究团队试验了 ResNet 和 ViT 这两种方法,其中 ViT-L/14@336px 表现最好:

  • 它是一个大型的视觉 Transformer (ViT-L)

  • 它将每个图像分成 14 个小部分来处理

  • 可以处理 336x336 像素的图像输入

对于 文本编码器,CLIP 使用了一个类似于 GPT-2 但规模较小的 Transformer 模型。基础模型包含 63M 参数,拥有 8 个注意力头。研究表明,CLIP 的性能对于文本编码器的规模并不敏感。

图像和文本的编码转化为“向量”,而这些向量都会经过两个“转换矩阵” WvW_vWlW_l,使其处于同一种类型的空间。

  • 有个图像向量叫做 ViV_i,转化后的多模态向量就是:WvViW_vV_i
  • 有个文本向量叫做 LiL_i,转化后的多模态向量就是:WlLiW_lL_i

提到 CLIP 向量,大家可能指的是这两种多模态向量,或者是由 CLIP 图像编码器产生的向量。

如何“教”机器看懂图片和文字?

很多年,人们都是手动给图片打上标签(如“这是一只猫”),然后用这些数据集(如 ImageNet、MS COCO)训练机器。但这种方法既慢又贵。

CLIP 团队发现,现有的数据集既不够大,也不够精准。所以他们创造了一个拥有 400M 图片 - 文字配对的超大数据集。方法是:

  1. 制定了一个包含 50 万个查询请求的列表,这些请求包括常用词汇、双词组合,以及热门维基百科文章的标题。
  2. 通过字符串匹配,找到与这些请求相符的图像。论文中没有提到这一搜索是在哪里进行的,但提到并非通过搜索引擎。我推测,由于 OpenAI 已经为其大语言模型 (GPT) 收集了整个互联网的数据,他们可能是在自己的内部数据库中进行搜索。
  3. 为了使描述更加丰富,每个图像都配对了出现在同一上下文中的文本(比如标题或评论),而非简单的查询词。

为了保证数据的平衡性,他们确保了每个关键词最多只对应 2 万张图像。

一种新方法:对比学习

在 CLIP 出现之前,很多模型训练都是基于固定的分类或语言模型。而 CLIP 采用了“对比学习”,这种新技巧让它能应对更多种类的任务。

以图像描述为例,我们来看看为什么 CLIP 采用对比学习法更为高效:模型需要根据给定的图像生成相应的描述文本。

什么是分类器目标?

想象一个机器,它的工作就是从一堆预先设定的选项中,选择一个最合适的类别。但这种方法只在选项有限的情况下才行得通。之前的很多模型都受到这样的限制。比如,ILSVRC-2012 的模型只能在 1,000 个类别中选择,而 JFT-300M 的选择则为 18,291 个类别。

这种方法的缺陷是,模型可能会受到类别的限制而无法给出丰富的回答,还限制了其零样本 (Zero-shot) 学习的能力。比方说,如果训练它只认识 10 种类别,那么当出现 100 种类别时,它就不知所措了。

语言模型目标是怎样的?

与分类器只给出一个答案不同,语言模型可以输出一系列的答案。这里的每个答案,我们称之为“Token”。每个“Token”都来自语言模型的预定列表(词汇表)。

分类器和语言模型的区别
分类器和语言模型的区别

对比目标有何不同?

语言模型虽然输出更灵活,但 CLIP 的研究者们发现,它在训练过程中会遇到一些困难。因为它总是尝试精确地生成与图片相符的文字。但实际上,一张图片可以有很多不同的描述,比如图片的替代文字、标题或评论等。

Flickr30K 数据集 为例,每张图片都有 5 种不同的描述,而且这些描述之间可能差异很大。

同一张图片的五种描述
同一张图片的五种描述

为了解决这个问题,对比学习应运而生。它不再追求精确匹配,而是判断哪些文字更可能与图片匹配。

在处理每一组 NN 个(图片和文本)的数据时,模型都会创建 NN 个文本向量和 NN 个图片向量。

  • V1,V2,...,VnV_1, V_2, ..., V_n 想象成 NN 张图片的向量。
  • L1,L2,...,LnL_1, L_2, ..., L_n 想象成 NN 段文本的向量。

CLIP 会计算出所有 N2N^2 中可能的图片与文本向量组合的相似度。它的目标是确保正确的图片 - 文本组合有最高的相似度,而不正确的组合相似度要尽量低。对 CLIP 来说,一次处理的数据量 N=32,768N = 32,768

CLIP 是如何工作的
CLIP 是如何工作的

换个角度理解,每次 CLIP 的训练实际上是完成了两项分类工作:

  1. 每张图片都尝试与 N 段文本配对,模型要找出哪段文本是正确的。这就好比我们在找与图片描述最匹配的文字。
Lcontrastive:txt2im=1NiNlog(exp(LiTViβ)jNexp(LiTVjβ))L_{\text{contrastive:txt2im}} = -\frac{1}{N}\sum_i^N\log(\frac{\exp(L_i^TV_i\beta)}{\sum_j^N\exp(L_i^TV_j\beta)})
  1. 反之,每段文本都会尝试与 N 张图片配对,模型要判断哪张图片最匹配。这跟我们从文字描述中挑选对应的图片是一个道理。
Lcontrastive:im2txt=1NiNlog(exp(ViTLiβ)jNexp(ViTLjβ))L_{\text{contrastive:im2txt}} = -\frac{1}{N}\sum_i^N\log(\frac{\exp(V_i^TL_i\beta)}{\sum_j^N\exp(V_i^TL_j\beta)})

为了达到最好的效果,模型会试图减少两种错误的总数。而 𝛽𝛽 这个参数就是帮助模型调整“敏感度”的。

下面的伪代码展示了整个过程:

CLIP 的伪代码
CLIP 的伪代码

CLIP 的研究者发现,使用这种对比法,模型的效率比传统的语言模型高出了 12 倍,并且还能生成更好的图片向量。

CLIP constrastive learning
CLIP constrastive learning

CLIP 技术的日常应用

图像分类

在当今的图像分类领域,CLIP 是一个备受推崇的“即插即用”工具,你既可以直接拿来使用,也可以根据需要进行微调。

CLIP 在图像分类中的卓越表现
CLIP 在图像分类中的卓越表现

基于文本的图像检索

CLIP 的独特之处在于,它的训练方式与常见的“图片转文字”和“文字转图片”搜索方式相似。这使得 CLIP 在图像搜索任务上有着巨大的潜力。不过,与当前最顶尖的技术相比,CLIP 在这方面的表现还有些距离。

有些创新者已经尝试用 CLIP 来搜索图片。例如,clip-retrieval 这个工具就是这样做的:

  1. 将你的所有图片转化为 CLIP 的向量数据格式,并保存在专门的向量数据库中。

  2. 对你输入的文字进行转化,使其符合 CLIP 的向量数据格式。

  3. 在向量数据库中做相似度检索,找出与你输入的文字向量最接近的所有图像。

生成图像

CLIP 不仅仅可以搜索图片,还可以帮助生成图片。比如,你只需给 DALL-E (2021) 一个文字描述,它就可以创作出与之相关的多种图片。然后再通过 CLIP 来选择最佳的图片展示给用户。

2022 年,OpenAI 推出了一个升级版的技术—— unCLIP。这是一个先进的“文字到图片”的转化工具。它的工作方式分为两步:

  1. CLIP 经过训练并冻结。预训练的 CLIP 模型可以在同一向量空间中生成文本和图像的向量。

  2. 图像生成时发生两件事:

    • 使用 CLIP 生成此文本的向量。
    • 使用扩散解码器根据这个向量生成图像。

文本生成:如何用文字描述图片?

CLIP 之前尝试过文本生成。他们有个实验版叫 LM RN50。虽然它能生成对应的文本,但和 CLIP 最好的版本比,差距大概有 10%。

虽然如今 CLIP 不直接用于文本生成,但它的图像处理部分却是很多能生成文本的多模态大语言模型的基石。

Flamingo:新一代的多模态大语言模型

与 CLIP 不同,Flamingo 可以生成文本回复。简单说,Flamingo 就像是 CLIP 加上了一个语言模型,使得它能够根据看到的图和文,生成相应的文本 Token。

与 Flamingo 聊天机器人的对话,Flamingo 可以根据你给的文字和图片,给你相应的回复。
与 Flamingo 聊天机器人的对话,Flamingo 可以根据你给的文字和图片,给你相应的回复。

Flamingo 是怎么构建的?

简单来说,Flamingo 主要由两大部分组成:

  1. “看”的部分(视觉编码器):使用对比学习先训练一个和 CLIP 类似的模型。然后,把这个模型的文本编码器去掉,只保留视觉编码器。

  2. “说”的部分(语言模型):这部分基于一个叫 Chinchilla 的模型,让它学会了看图说话。除此之外,还加入了两种新技术:Perceiver Resampler 和 GATED XATTN-DENSE。这两个我们后面再详细聊。

Flamingo 的构建蓝图
Flamingo 的构建蓝图

Flamingo 的训练数据集

Flamingo 利用了四种类型的数据集:两个包含图像和文本配对的数据集,一个包含视频和文本配对的数据集,以及一个图像与文本交替出现的数据集。

Flamingo 使用的四个数据集
Flamingo 使用的四个数据集

数据集类型规模使用方式训练权重
M3W图文交错数据集4300 万个网页对每个网页,随机抽取一段含有 256 个 Token 的内容,并取出这段内容中的前 5 张图片。1.0
ALIGN图文配对18 亿对文本是图片的备选文字描述(alt-texts),平均每段描述有 12 个 Token。0.2
LTIP图文配对3.12 亿对文本是详细描述,平均每段描述约 20.5 个 Token。0.2
VTP视频文本配对2700 万个短视频每个视频平均时长约为 22 秒。0.03

Flamingo 的视觉编码器

Flamingo 的“眼睛”(图像处理部分)是从头开始训练的,使用的是一种叫做对比学习的方法。而且,它用了两套图文配对的资料,总共有 2.1M 对。这个数量比 CLIP 用的还要多 5 倍呢。

  • Flamingo 在处理文本时选择了 BERT 技术,而不是常见的 GPT-2。

  • 而在处理图像方面,它选择使用了 NormalizerFree ResNet (NFNet) F6 这一模型。

  • 在整合文本和图像信息之前,Flamingo 会对这些信息进行平均处理。

Flamingo 语言模型的秘密

Flamingo 的背后有一个强大的语言模型叫做 Chinchilla。具体来说,它利用了 Chinchilla 的 9 层预训练技术。我们常见的语言模型是根据前面的文本 Token 来猜测下一个 Token 是什么,但 Flamingo 进行了创新,它同时考虑了文字和图片,根据前面的文本和视觉 Token 预测下一个文本 Token。

下一个 Token 的生成取决于文本和视觉 Token。这一概念来自 Chunyuan Li 在 CVPR 2023 的教程“大型多模态模型”。
下一个 Token 的生成取决于文本和视觉 Token。这一概念来自 Chunyuan Li 在 CVPR 2023 的教程“大型多模态模型”。

为了更好地结合文字和图像,Flamingo 引入了两个高级技术:Perceiver Resampler 和 GATED XATTN-DENSE。

Perceiver Resampler 的作用

视觉信息既包括图片也包括视频,因此处理这些信息时会产生不同数量的数据。而 Perceiver Resampler 的任务就是将这些不同的数据统一为 64 个标准输出。

有个有趣的细节是,在初始的图像处理中,Flamingo 使用了 288 x 288 的分辨率。但后来,这个分辨率被提高到了 320 × 320。为什么呢?研究发现,提高图像处理的分辨率能够提升模型的表现

Flamingo 的视觉处理技术
Flamingo 的视觉处理技术

GATED XATTN-DENSE 层的秘密

为了让语言模型在创作文本时更好地融入视觉信息,Flamingo 在原有的语言模型层之间加入了 GATED XATTN-DENSE 技术。但如果缺少这种技术,Flamingo 的性能会下滑,具体来说,整体得分会降低 4.2%。

Flamingo 的高级 GATED ATTN-DENSE 结构
Flamingo 的高级 GATED ATTN-DENSE 结构

损失函数

Flamingo 能够根据交错显示的图片和视频 xx 计算文本 yy 的可能性。

p(yx)=l=1Np(yly<l,xl)p(y|x) = \prod_{l=1}^N p(y_l|y_{<l}, x_{\leq l})

这个训练中使用的损失函数考虑了四个不同数据集对文本生成的影响,其中 λmλ_m 代表了数据集 mm 的训练权重。

m=1MλmE(x,y)Dm[l=1Llogp(yx)]\sum_{m=1}^M \lambda_m E_{(x, y)\sim D_m} [ -\sum_{l=1}^L \log p(y|x)]

训练细节

Chinchilla LM 的部分已经微调并锁定,而新增的部分则是从零开始在四个 Flamingo 数据集上训练的,每个数据集都有其独特的权重。选择正确的权重对于获得好的性能非常关键。 每个数据集的具体权重可以在前文的 Training weight 列中找到。

尽管 VTP 的权重比其他数据集小很多(0.03 与 0.2 和 1 相比),但作者发现移除这个数据集会对所有与视频相关的任务产生不良影响。

虽然 Flamingo 没有正式开源,但有一些开源的 Flamingo 项目复刻。

一句话总结:CLIP 和 Flamingo 的对比

Flamingo 的 4 个数据集简介
Flamingo 的 4 个数据集简介

第 3 部分:LMM 发展趋势

CLIP 已经发布 3 年了,而 Flamingo 也有将近 2 年。虽然他们的技术结构给了我们一个深入了解 LMM 构建方法的机会,但这个领域仍然在不断进化。

以下列举了我目前对几个领域的热切期待。这只是其中的一部分,因为一来,这篇文章写得太长了;二来,我自己还在对这个领域进行探索。如果你有什么好的建议或点子,请分享给我!

融合更丰富的数据类型

现在的多模态系统主要处理文本和图片,但随着时间的推移,我们可能需要处理视频、音乐甚至 3D 这样的内容。想象一下,如果所有这些不同的数据都能在一个统一的空间中表示,那该多好!

在这方面的代表性研究包括:

更智能的指令响应系统

Flamingo 这个系统虽然能完成很多任务,但在对话和按指令执行方面还有待加强。如果你对这方面不太了解,我之前写了一篇文章 RLHF 可以供你参考。目前,很多研究者都在探索如何让机器更好地理解和执行人类的指令,例如:

LaVIN 论文中对其输出与其他模型的对比。
LaVIN 论文中对其输出与其他模型的对比。

为多模态训练提高效率的适配器技术

虽然 Flamingo 采用了 Chinchilla 的 9 个预先训练的固定层,但它还是得重新训练它的视觉编码器、Perceiver 重采样器和 GATED XATTN-DENSE 层。这种从头开始的方法可能非常消耗计算资源。因此,许多研究者都在探寻如何通过较少的基础训练更高效地启动多模态系统。

例如,BLIP-2 的表现在 VQA-v2 的零射击测试中超过了 Flamingo-80B 8.7%,但它的参数数量是后者的 1/54。

这个领域的相关研究有:

下图是 Chunyuan Li 在 CVPR 2023 上的 Large Multimodal Models 教程中的内容,这确实是一个值得一看的教程。

输出的多模态化

现在,越来越多的模型可以处理多种类型的输入数据,但在输出多种类型的结果方面,仍然有所欠缺。例如,如果我们询问 ChatGPT 来解释 RLHF,一个全面的答案可能不仅仅是文字,还需要图形、公式,甚至是简单动画来辅助解释。

为了产生多模态的输出结果,模型首先要生成一种“桥接”的中间产物。那么,这个中间产物长什么样呢?

一个选择是以文本形式出现。之后这些文本会被转化为其他形式。

举例来说,CM3(由 Aghajanyan 等人在 2022 年提出)会产生 HTML 代码,这些代码可以被转化为包括文字、格式、链接和图片的网页内容。而 GPT-4V 则能输出 Latex 代码,这些代码之后可以变为数据表格。

这是 CM3 产生的示例
这是 CM3 产生的示例

GPT-4V 生成的 Latex 代码,可以转换为数据表格
GPT-4V 生成的 Latex 代码,可以转换为数据表格

另外一个选择是生成能代表不同内容的多模态 Token。Caiming Xiong 向我展示了这一方法,他和他在 Salesforce 的团队在这方面做了很多炫酷的研究。每个“Token”都有标签,用来区分是文字还是图片。图片 Token 可以被送入图像模型如 Diffusion 产生图片,而文字 Token 则进入语言模型转化为文本。

有一篇很酷的论文 用多模态语言模型生成图片(由 Koh 等人在 2023 年 6 月发布),展示了如何使用 LMMs 既生成文本又提取图片。具体如下。

LMMs 输出文字和图片
LMMs 输出文字和图片

最后说两句

浏览这么多关于多模态的研究文章,与从事此领域的专家交流,真的是一次愉快的经历。虽然我可能还遗漏了一些细节,但我希望这篇总结能帮到你,让你了解这一领域的核心思想,并应用在自己的工作中。

如你所见,在这篇文章的第三部分提到,多模态系统还在刚起步的阶段(真的很新,我的一个朋友都在怀疑 LMM 这个缩写是否能够流行起来)。确实,在我众多的讨论中,我深信,多模态系统,尤其是 LMM,将比大语言模型有更深远的影响。但需要明白的是,LMMs 的出现,并不意味着 LLMs 就过时了。LMMs 其实是在 LLMs 的基础上发展出来的,所以 LMM 的表现在很大程度上依赖于 LLM。很多致力于研究多模态系统的实验室,同时也在对 LLM 进行深入研究。

提前阅读并提供反馈的人

在此,我想对以下几位早期为这篇文章提供了宝贵意见和建议的读者表示感谢:Han-chung LeeSam ReiswigLuke Metz

如你所见,在这篇文章的第三部分提到,多模态系统还在刚起步的阶段(真的很新,我的一个朋友都在怀疑 LMM 这个缩写是否能够流行起来)。确实,在我众多的讨论中,我深信,多模态系统,尤其是 LMM,将比大语言模型有更深远的影响。但需要明白的是,LMMs 的出现,并不意味着 LLMs 就过时了。LMMs 其实是在 LLMs 的基础上发展出来的,所以 LMM 的表现在很大程度上依赖于 LLM。很多致力于研究多模态系统的实验室,同时也在对 LLM 进行深入研究。

资源

模型

以下是按时间排序的不完整的多模态系统列表,以展现该领域的快速发展!

其他资源