以前,我们的机器学习模型一般都只处理一种类型的数据,比如只处理文本、图像或音频。
原文:Multimodality and Large Multimodal Models (LMMs)
2023 年 10 月 10 日 • Chip Huyen
以前,我们的机器学习模型一般都只处理一种类型的数据,比如只处理文本(翻译、语言建模)、图像(对象检测、图像分类)或音频(语音识别)。
但是,想想我们人类的大脑。我们不仅仅读写文字,还可以看图、看视频,听音乐,还能够辨识各种不同的声音。所以,为了让 AI 更接近真实世界,处理多种类型的数据显得非常重要。
OpenAI 在他们的 GPT-4V 系统简介 中提到:
有人认为,把其他数据类型(比如图像输入)融入到大语言模型中,是 AI 研究与发展的新方向。
这种融合的方法就是将大语言模型 (LLMs) 扩展到多种数据类型,从而得到所谓的多模态大模型 (LMMs)。去年,几乎每周都有研究团队推出自己的 LMM,比如 DeepMind 的 Flamingo、Salesforce 的 BLIP、微软的 KOSMOS-1、Google 的 PaLM-E,还有腾讯的 Macaw-LLM。甚至像 ChatGPT 和 Gemini 这样的聊天机器人也采用了这种技术。
当然,不是所有的多数据系统都是 LMMs。有些模型,如 Midjourney、Stable Diffusion 和 Dall-E,虽然可以处理多种数据,但并没有集成语言模型。简单说,多模态可能意味着以下一项或多项:
- 输入和输出数据不同(如,从文本生成图像,或从图像生成文本)
- 同时处理多种输入数据(如,处理文本和图像)
- 能够生成多种类型的输出(如,生成文本和图像)
这篇文章主要介绍了多模态系统,特别是 LMMs,并且内容分为三部分。
-
第一部分涵盖了多模态的背景,包括为什么要使用多模态、不同的数据模态以及多模态任务的类型。
-
第二部分深入探讨了多模态系统的神奇之处。通过 CLIP 这个例子,我们可以看到它如何为未来的系统铺平了道路;而 Flamingo 的出色表现,则为 LMMs 这类技术带来了新的启示。
-
第三部分带我们走进 LMMs 的研究前沿,看看如何生成多模态的结果,以及如何更高效地进行多模态训练。当然,还会介绍一些新晋的多模态技术,例如 BLIP-2、LLaVA、LLaMA-Adapter V2 和 LAVIN。
虽然这篇文章篇幅较长,但你可以直接跳到你最关心的那部分。
⚠ 注意:术语可能会引起误解 ⚠
多模态数据有时指的是不同的数据分布方式,例如所谓的 “双峰分布”。但这和我们这篇文章中谈到的多模态数据是两码事。
文章大纲
Table of Contents
第 1 部分:深入理解 “多模态”
为何 “多模态” 如此重要
很多应用场景如果没有多模态技术支持几乎难以实现,尤其是在需要处理多种类型数据的领域,例如医疗、机器人、电商、零售、游戏等。
医疗领域如何运用多模态技术的例子。图片摘自:多模态生物医学人工智能研究 (Acosta 等,Nature Medicine 2022)
更重要的是,综合使用多种数据模式的信息,可以显著提升模型的性能。比如,一个能够同时处理文本和图片的模型,其效果不是应该比只能处理文本或只能处理图片的模型更出色吗?
多模态技术使得我们与系统交互更加灵活多样,可以根据自己的喜好或场合选择交互方式,比如键盘输入、语音对话或者拍照识别。
其中一个让我非常兴奋的应用是,借助多模态技术,视力受损的人也能轻松浏览网络,甚至在真实世界中进行导航。
GPT-4V 展示的多模态应用亮点
数据的多种模式
我们接触到的数据有多种形式,例如:文本、图片、音频、数据表格等。这些数据的一种形式有时可以转换或 模拟 成另一种形式。例如:
-
音频可以转化为图像形式,如音谱图。
-
语音内容可以转写为文字,但这样做可能会丢失某些信息,如声音的响度、语调和停顿等。
-
图像可以转化为向量,并进一步被转换为一串文本词元(Token)序列。
-
视频实际上是一系列的图片加上音频。但现在,很多机器学习模型只把视频看作是图片的连续播放。这真的大大限制了它们的能力,因为研究表明,声音在视频中起到的作用与画面一样重要。比如,88% 的 TikTok 用户表示,在 TikTok 上,声音是不可或缺的。
-
其实,只要你为一段文字拍张照,它就能被视为一张图片。
-
你知道吗,数据表格也可以变成图表,也就是我们常说的图像。
那么,还有其他的数据类型吗?
事实上,任何数字化的数据都可以用 0 和 1 的组合来表示。如果有一个模型能够很好地从这些 0 和 1 的组合中学习,那它就能处理各种数据了!
当然,还有一些我们没提及的数据类型,比如图形数据和 3D 模型。此外,我们还没有涉及到代表气味和触觉的数据格式呢。
现在在机器学习领域,音频大多只被当作是语音的另一种形式。它大多用于把人声转化为文字,或是把文字转化为人声。而非语音的应用,比如创作音乐,还比较少见。不信你看,有人用技术合成了 Drake 和 Weeknd 的歌,你可以在 HuggingFace 的 MusicGen 模型里找到它。
而图片则可以说是最多用途的输入方式了,它不仅可以代表文字、数据表,还可以代表音频和部分视频。并且,我们每天都在产生大量的图片和视频数据,因为手机和摄像头无时无刻不在拍摄。
但当我们谈到输出时,文本就显得更有力量了。一个只能生成图片的模型其实用途有限,但如果一个模型能输出文本,它就能完成许多任务,如摘要、翻译、逻辑推理和问答等。
为简单起见,我们将重点关注两种模式:图像和文本。这些知识可以在某种程度上推广到其他模式。
多模态任务
要深入了解多模态的系统,我们最好看看它们是为了解决哪些问题而设计的。存在很多这样的任务,组织方法也五花八门。在很多学术文章中,我常看到把与视觉和语言相关的任务分为两类:生成 和 视觉语言理解(VLU)。VLU 通常指的是不涉及生成的所有任务。这两类之间并没有严格的分界,因为生成出答案也需要理解。
生成
对于生成任务,输出可以是单模态(例如只是文本、图像或 3D 图)或多模态结合。现在,单模态的输出已经很普遍,但多模态的输出还在发展中。文章最后会详细讨论这个。
从文字生成图像
这个任务就是直接通过文本生成对应的图像。比如:Dall-E、Stable Diffusion 和 Midjourney 这些技术都做得很好。
文字生成
一个常见的任务是视觉问题回答。这意味着,除了提供文字信息外,还可以为模型提供图片。比如,你可以随时拍摄任何东西,并提出问题:“我的车怎么不动了,是怎么回事?”、“这道菜怎么做?” 或 “这个梗是什么意思?”。
另一个应用场景是图片的描述,这也可以帮助搜索特定的图片。想象一个大公司,他们可能有上百万甚至十亿的图片:产品照片、统计图、设计稿、团队合影、宣传海报等等。AI 能够自动为这些图片生成描述和相关信息,这样你就可以轻松地找到你需要的图片了。
视觉语言理解
我们重点讨论两个任务:图像分类和基于文字的图像检索。
图像分类
图像分类模型只会将图像归入一些预设的类别。当我们只关心有限的几种结果时,这种模型很实用。比如,OCR(光学字符识别)系统就是来判断某个图像上的字符是不是我们已知的字符,如数字或字母。
额外说明:OCR 主要是对单个字符进行分析。但当它和一个能够理解全文背景的系统结合时,效果会更好,比如它能让我们 “与” 任何教科书、合同、汇编指令等“交谈”。
上图显示了 GPT-4V 在处理文档时的情况,其中的错误用红色标出。
与图像分类相似的另一任务是 图像到文本检索:也就是根据给定的图像,从一堆文字中找出最匹配的描述。这种技术在搜索商品图片时特别有用,可以从图片中找出相关的商品评论。
基于文本的图像检索(图像搜索)
图像搜索不仅对搜索引擎有意义,对于企业内部查找文档和图片也同样重要。有些人也称它为 “文本到图像检索”。
关于这种基于文本的图像搜索,大体上有两种方法:
-
为每张图片添加描述或标签,可以是手动添加,也可以是自动识别(比如在 文本生成 中提到的自动图像描述技术)。然后根据输入的文本,找出与之匹配的图片。
-
训练图像和文本的联合向量空间。给定一个文本查询,生成该查询的向量,并找到向量最接近该向量的所有图像。
第二种方法更加灵活,相信会得到更广泛的应用。简单说,这就是需要一个能够同时处理图像和文本的 “联合向量空间”,例如 OpenAI 的 CLIP 就做到了这一点。
第 2 部分:多模态训练是什么?
当今,我们有很多高效的多模态系统。那么,我应该重点介绍哪些呢?我选择了两个:CLIP (2021) 和 Flamingo (2022),它们在科学界都很有影响力,而且公众可以轻易获取关于它们的详细资料。
-
CLIP 是第一个可以通过零样本和少样本学习推广到多个图像分类任务的模型。
-
虽然 Flamingo 不是第一个能够 “自由聊天” 的多模态大脑(Salesforce 的 BLIP 比它早 3 个月),然而,Flamingo 的强劲表现促使一些人将其视为多模式领域的 GPT-3 时刻。
尽管这两个模型较旧,但它们使用的许多技术在今天仍然适用。希望它们能帮助我们更好地理解那些新兴的模型。现在,这个领域正在飞速进步,新的想法层出不穷。接下来,在第 3 部分,我们会探讨一些最新的研究模型。
要了解多模态系统,我们可以从以下几个关键部分开始:
- 一个编码器,它可以把各种类型的数据转化为数字向量。
- 一种将不同模态的向量对齐到同一多模态向量空间的方法。
- [仅限生成模型] 用于生成文本结果的语言模型。由于输入可以包含文本和视觉效果,因此需要开发新技术,使语言模型不仅可以根据文本,还可以根据视觉效果来调节其生成结果。
在理想的情况下,很多这类工具或组件都应该经过预训练,可以在多个场景下重复使用。
CLIP:将语言和图像联系起来的魔法
CLIP 最大的亮点就是它能够将不同模式、文本和图像的数据映射到共享向量空间。这种共享的多模态向量空间使文本到图像和图像到文本的任务变得更加容易。
训练这个多模态向量空间 CLIP 还产生了一个强大的图像编码器,让它在很多图像识别任务上都表现出色,甚至不需要额外的训练。这个编码器不仅可以帮助识别图像,还可以生成图像、回答与图像相关的问题,甚至搜索与文字描述相符的图像。Flamingo 和 LLaVa 使用 CLIP 作为图像编码器。而 DALL-E 则用 CLIP 来筛选生成的图像。目前,我们还不确定 GPT-4V 是否也使用了 CLIP。
CLIP 如何进行图像分类
CLIP 的优势还在于它巧妙地利用了我们日常的语言知识,结合了一种叫做 “对比学习” 的技巧,这使得它可以处理更多的数据,并且训练得更加高效。接下来,我们会深入探讨这两种技术是怎么工作的。
CLIP 的内部构造图解
简单来说,CLIP 的工作原理是训练两个 “解码器”,使它们可以很好地配合。这个训练的目标是让正确的图片和文字组合尽可能地 “相似”,而错误的组合尽可能地 “不相似”。
在处理图像方面,研究团队试验了 ResNet 和 ViT 这两种方法,其中 ViT-L/14@336px
表现最好:
-
它是一个大型的视觉 Transformer (ViT-L)
-
它将每个图像分成 14 个小部分来处理
-
可以处理 336×336 像素的图像输入
而在处理文本方面,CLIP 采用了与 GPT-2 类似但规模较小的 Transformer 模型。他们的基础模型只有 63M 个参数和 8 个注意力头。研究人员发现,CLIP 处理文本的能力并不太依赖于它的规模。
图像和文本的编码转化为 “向量”,而这些向量都会经过两个 “转换矩阵” Wv 和 Wl,使其处于同一种类型的空间。
- 有个图像向量叫做 Vi,转化后的多模态向量就是:WvVi。
- 有个文本向量叫做 Li,转化后的多模态向量就是:WlLi。
提到 CLIP 向量,大家可能指的是这两种多模态向量,或者是由 CLIP 图像编码器产生的向量。
如何 “教” 机器看懂图片和文字?
很多年,人们都是手动给图片打上标签(如 “这是一只猫”),然后用这些数据集(如 ImageNet、MS COCO)训练机器。但这种方法既慢又贵。
CLIP 团队发现,现有的数据集既不够大,也不够精准。所以他们创造了一个拥有 400M 图片 – 文字配对的超大数据集。方法是:
- 列出 500,000 个关键词,像是常见的词或者维基百科的热门文章标题。
- 在大量数据中找到与这些关键词匹配的图片。虽然具体搜寻方法是秘密,但很可能 OpenAI 使用了自家的大型数据库。
- 把每张图片与与它相关的文字(比如图片说明或评论)配对起来,但不是与关键词配对,因为单纯的关键词描述得太简单了。
为了保证数据的平衡性,他们确保了每个关键词最多只对应 20K 张图片。
一种新方法:对比学习
在 CLIP 出现之前,很多模型训练都是基于固定的分类或语言模型。而 CLIP 采用了 “对比学习”,这种新技巧让它能应对更多种类的任务。
我们来揭示为什么在 CLIP 中,对比目标比其他方法更胜一筹。以图像描述为例:你有一张图片,怎样生成一个恰到好处的描述呢?
什么是分类器目标?
想象一个机器,它的工作就是从一堆预先设定的选项中,选择一个最合适的类别。但这种方法只在选项有限的情况下才行得通。之前的很多模型都受到这样的限制。比如,JFT-300M 的选择则为 18,291 个类别。
这种方法的缺陷是,模型可能会受到类别的限制而无法给出丰富的回答,还限制了其零样本学习的能力。比方说,如果训练它只认识 10 种类别,那么当出现 100 种类别时,它就不知所措了。
语言模型目标是怎样的?
与分类器只给出一个答案不同,语言模型可以输出一系列的答案。这里的每个答案,我们称之为 “Token”。每个“Token” 都来自语言模型的预定列表(词汇表)。
分类器与语言模型目标
对比目标有何不同?
语言模型虽然输出更灵活,但 CLIP 的研究者们发现,它在训练过程中会遇到一些困难。因为它总是尝试精确地生成与图片相符的文字。但实际上,一张图片可以有很多不同的描述,比如图片的替代文字、标题或评论等。
拿 Flickr30K 数据集 为例,每张图片都有 5 种不同的描述,而且这些描述之间可能差异很大。
为了解决这个问题,对比学习应运而生。它不再追求精确匹配,而是判断哪些文字更可能与图片匹配。
在处理每一组 N 个(图片和文本)的数据时,模型都会创建 N 个文本向量和 N 个图片向量。
- 把 V1,V2,…,Vn 想象成 N 张图片的向量。
- 把 L1,L2,…,Ln 想象成 N 段文本的向量。
CLIP 会计算出所有 N2 中可能的图片与文本向量组合的相似度。它的目标是确保正确的图片 – 文本组合有最高的相似度,而不正确的组合相似度要尽量低。对 CLIP 来说,一次处理的数据量 N=32,768。
换个角度理解,每次 CLIP 的训练实际上是完成了两项分类工作:
-
每张图片都尝试与 N 段文本配对,模型要找出哪段文本是正确的。这就好比我们在找与图片描述最匹配的文字。
Lcontrastive:txt2im=−N1∑iNlog(∑jNexp(LiTVjβ)exp(LiTViβ))
-
反之,每段文本都会尝试与 N 张图片配对,模型要判断哪张图片最匹配。这跟我们从文字描述中挑选对应的图片是一个道理。
Lcontrastive:im2txt=−N1∑iNlog(∑jNexp(ViTLjβ)exp(ViTLiβ))
为了达到最好的效果,模型会试图减少两种错误的总数。而 𝛽 这个参数就是帮助模型调整 “敏感度” 的。
下面的伪代码展示了整个过程:
CLIP 的研究者发现,使用这种对比法,模型的效率比传统的语言模型高出了 12 倍,并且还能生成更好的图片向量。
CLIP 技术的日常应用
图像分类
在当今的图像分类领域,CLIP 是一个备受推崇的 “即插即用” 工具,你既可以直接拿来使用,也可以根据需要进行微调。
基于文本的图像检索
CLIP 的独特之处在于,它的训练方式与常见的 “图片转文字” 和“文字转图片”搜索方式相似。这使得 CLIP 在图像搜索任务上有着巨大的潜力。不过,与当前最顶尖的技术相比,CLIP 在这方面的表现还有些距离。
有些创新者已经尝试用 CLIP 来搜索图片。例如,clip-retrieval 这个工具就是这样做的:
-
将你的所有图片转化为 CLIP 的向量数据格式,并保存在专门的向量数据库中。
-
对你输入的文字进行转化,使其符合 CLIP 的向量数据格式。
-
在向量数据库中做相似度检索,找出与你输入的文字向量最接近的所有图像。
生成图像
CLIP 不仅仅可以搜索图片,还可以帮助生成图片。比如,你只需给 DALL-E (2021) 一个文字描述,它就可以创作出与之相关的多种图片。然后再通过 CLIP 来选择最佳的图片展示给用户。
2022 年,OpenAI 推出了一个升级版的技术—— unCLIP。这是一个先进的 “文字到图片” 的转化工具。它的工作方式分为两步:
-
CLIP 经过训练并冻结。预训练的 CLIP 模型可以在同一向量空间中生成文本和图像的向量。
-
图像生成时发生两件事:
- 使用 CLIP 生成此文本的向量。
- 使用扩散解码器根据这个向量生成图像。
文本生成:如何用文字描述图片?
CLIP 之前尝试过文本生成。他们有个实验版叫 LM RN50。虽然它能生成对应的文本,但和 CLIP 最好的版本比,差距大概有 10%。
虽然如今 CLIP 不直接用于文本生成,但它的图像处理部分却是很多能生成文本的多模态大语言模型的基石。
Flamingo:新一代的多模态大语言模型
与 CLIP 不同,Flamingo 可以生成文本回复。简单说,Flamingo 就像是 CLIP 加上了一个语言模型,使得它能够根据看到的图和文,生成相应的文本 Token。
Flamingo 可以根据你给的文字和图片,给你相应的回复。
Flamingo 是怎么构建的?
简单来说,Flamingo 主要由两大部分组成:
-
“看” 的部分(视觉编码器):使用对比学习先训练一个和 CLIP 类似的模型。然后,把这个模型的文本编码器去掉,只保留视觉编码器。
-
“说” 的部分(语言模型):这部分基于一个叫 Chinchilla 的模型,让它学会了看图说话。除此之外,还加入了两种新技术:Perceiver Resampler 和 GATED XATTN-DENSE。这两个我们后面再详细聊。
Flamingo 学习的资料
Flamingo 学习用了 4 套资料:2 套是图和文配对,1 套是视频和文配对,还有 1 套是图文交错的。
Dataset | Type | Size | How | Training weight |
M3W | Interleaved image and text dataset | 43M webpages |
For each webpage, they sample a random subsequence of 256 tokens and take up to the first 5 images included in the sampled sequence. |
1.0 |
ALIGN | (Image, text) pairs | 1.8B pairs | Texts are alt-texts, averaging 12 tokens/text. | 0.2 |
LTIP | (Image, text) pairs | 312M pairs | Texts are long descriptions, averaging 20.5 tokens/text. | 0.2 |
VTP | (Video, text) pairs | 27M short videos | ~22 seconds/video on average | 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。
这种方法使得文本生成不仅仅依赖文字,还会考虑图像信息。这一点从 Chunyuan Li 在 CVPR 2023 上的教程中得到了很好的解释:它是如何构建大型的多模态模型的。
为了更好地结合文字和图像,Flamingo 引入了两个高级技术:Perceiver Resampler 和 GATED XATTN-DENSE。
Perceiver Resampler 的作用
视觉信息既包括图片也包括视频,因此处理这些信息时会产生不同数量的数据。而 Perceiver Resampler 的任务就是将这些不同的数据统一为 64 个标准输出。
有个有趣的细节是,在初始的图像处理中,Flamingo 使用了 288 x 288 的分辨率。但后来,这个分辨率被提高到了 320 × 320。为什么呢?研究发现,提高图像处理的分辨率能够提升模型的表现。
GATED XATTN-DENSE 层的秘密
为了让语言模型在创作文本时更好地融入视觉信息,Flamingo 在原有的语言模型层之间加入了 GATED XATTN-DENSE 技术。但如果缺少这种技术,Flamingo 的性能会下滑,具体来说,整体得分会降低 4.2%。
损失函数
Flamingo 能够根据交错显示的图片和视频 x 计算文本 y 的可能性。
p(y∣x)=l=1∏Np(yl∣y<l,x≤l)
这个训练中使用的损失函数考虑了四个不同数据集对文本生成的影响,其中 λm 代表了数据集 m 的训练权重。
m=1∑MλmE(x,y)∼Dm[−l=1∑Llogp(y∣x)]
训练细节
Chinchilla LM 的部分已经微调并锁定,而新增的部分则是从零开始在四个 Flamingo 数据集上训练的,每个数据集都有其独特的权重。选择正确的权重对于获得好的性能非常关键。 每个数据集的具体权重可以在前文的 Training weight 列中找到。
尽管 VTP 的权重比其他数据集小很多(0.03 与 0.2 和 1 相比),但作者发现移除这个数据集会对所有与视频相关的任务产生不良影响。
虽然 Flamingo 没有正式开源,但有一些开源的 Flamingo 项目复刻。
-
IDEFICS (由 HuggingFace 提供)
一句话总结:CLIP 和 Flamingo 的对比
第 3 部分:LMM 发展趋势
CLIP 已经发布 3 年了,而 Flamingo 也有将近 2 年。虽然他们的技术结构给了我们一个深入了解 LMM 构建方法的机会,但这个领域仍然在不断进化。
以下列举了我目前对几个领域的热切期待。这只是其中的一部分,因为一来,这篇文章写得太长了;二来,我自己还在对这个领域进行探索。如果你有什么好的建议或点子,请分享给我!
融合更丰富的数据类型
现在的多模态系统主要处理文本和图片,但随着时间的推移,我们可能需要处理视频、音乐甚至 3D 这样的内容。想象一下,如果所有这些不同的数据都能在一个统一的空间中表示,那该多好!
在这方面的代表性研究包括:
-
ULIP: 一种将语言、图片和三维点云统一表示的技术 (由 Xue 等人于 2022 年 12 月发表)
-
ImageBind: 一个能将所有内容连接在一起的向量空间 (Girdhar 等人于 2023 年 5 月发表)
-
Jeff Dean 在 2021 年提出的 Pathways 项目,其目标是 “创建一个同时涵盖视觉、听觉和语言理解的多模态模型”。
更智能的指令响应系统
Flamingo 这个系统虽然能完成很多任务,但在对话和按指令执行方面还有待加强。如果你对这方面不太了解,我之前写了一篇文章 RLHF 可以供你参考。目前,很多研究者都在探索如何让机器更好地理解和执行人类的指令,例如:
-
MultiInstruct: 一个通过指导来优化多模态学习的技术 (由 Xu 等人于 2022 年 12 月发表)
-
LLaVA: 针对视觉的指令优化技术 (Liu 等人于 2023 年 4 月 28 日发表)
-
InstructBLIP: 一种结合视觉与语言的全能模型 (由 Salesforce 于 2023 年 5 月 11 日发布)
-
LaVIN: Cheap and Quick: Efficient Vision-Language Instruction Tuning for Large Language Models (由 Luo 等人于 2023 年 5 月 24 日发表)
LaVIN 论文中对其输出与其他模型的对比。
为多模态训练提高效率的适配器技术
虽然 Flamingo 采用了 Chinchilla 的 9 个预先训练的固定层,但它还是得重新训练它的视觉编码器、Perceiver 重采样器和 GATED XATTN-DENSE 层。这种从头开始的方法可能非常消耗计算资源。因此,许多研究者都在探寻如何通过较少的基础训练更高效地启动多模态系统。
例如,BLIP-2 的表现在 VQA-v2 的零射击测试中超过了 Flamingo-80B 8.7%,但它的参数数量是后者的 1/54。
这个领域的相关研究有:
-
[LAVIN] Cheap and Quick: Efficient Vision-Language Instruction Tuning for Large Language Models
-
LLaMA-Adapter V2: Parameter-Efficient Visual Instruction Model
下图是 Chunyuan Li 在 CVPR 2023 上的 Large Multimodal Models 教程中的内容,这确实是一个值得一看的教程。
输出的多模态化
现在,越来越多的模型可以处理多种类型的输入数据,但在输出多种类型的结果方面,仍然有所欠缺。例如,如果我们询问 ChatGPT 来解释 RLHF,一个全面的答案可能不仅仅是文字,还需要图形、公式,甚至是简单动画来辅助解释。
为了产生多模态的输出结果,模型首先要生成一种 “桥接” 的中间产物。那么,这个中间产物长什么样呢?
一个选择是以文本形式出现。之后这些文本会被转化为其他形式。
举例来说,CM3(由 Aghajanyan 等人在 2022 年提出)会产生 HTML 代码,这些代码可以被转化为包括文字、格式、链接和图片的网页内容。而 GPT-4V 则能输出 Latex 代码,这些代码之后可以变为数据表格。
这是 CM3 产生的示例
GPT-4V 输出的 Latex 代码,能被变为数据表
另外一个选择是生成能代表不同内容的多模态 Token。Caiming Xiong 向我展示了这一方法,他和他在 Salesforce 的团队在这方面做了很多炫酷的研究。每个 “Token” 都有标签,用来区分是文字还是图片。图片 Token 可以被送入图像模型如 Diffusion 产生图片,而文字 Token 则进入语言模型转化为文本。
有一篇很酷的论文 用多模态语言模型生成图片(由 Koh 等人在 2023 年 6 月发布),展示了如何使用 LMMs 既生成文本又提取图片。具体如下。
最后说两句
浏览这么多关于多模态的研究文章,与从事此领域的专家交流,真的是一次愉快的经历。虽然我可能还遗漏了一些细节,但我希望这篇总结能帮到你,让你了解这一领域的核心思想,并应用在自己的工作中。
如你所见,在这篇文章的第三部分提到,多模态系统还在刚起步的阶段(真的很新,我的一个朋友都在怀疑 LMM 这个缩写是否能够流行起来)。确实,在我众多的讨论中,我深信,多模态系统,尤其是 LMM,将比大语言模型有更深远的影响。但需要明白的是,LMMs 的出现,并不意味着 LLMs 就过时了。LMMs 其实是在 LLMs 的基础上发展出来的,所以 LMM 的表现在很大程度上依赖于 LLM。很多致力于研究多模态系统的实验室,同时也在对 LLM 进行深入研究。
提前阅读并提供反馈的人
在此,我想对以下几位早期为这篇文章提供了宝贵意见和建议的读者表示感谢:Han-chung Lee、Sam Reiswig 和 Luke Metz。
如你所见,在这篇文章的第三部分提到,多模态系统还在刚起步的阶段(真的很新,我的一个朋友都在怀疑 LMM 这个缩写是否能够流行起来)。确实,在我众多的讨论中,我深信,多模态系统,尤其是 LMM,将比大语言模型有更深远的影响。但需要明白的是,LMMs 的出现,并不意味着 LLMs 就过时了。LMMs 其实是在 LLMs 的基础上发展出来的,所以 LMM 的表现在很大程度上依赖于 LLM。很多致力于研究多模态系统的实验室,同时也在对 LLM 进行深入研究。
资源
模型
以下是按时间排序的不完整的多模态系统列表,以展现该领域的快速发展!
- Microsoft COCO Captions: 数据收集和评估服务器 (Apr 2015)
- VQA: 视觉问题回答 (May 2015)
- VideoBERT: 视频和语言表示学习的联合模型 (Google, Apr 3, 2019)
- LXMERT: 从转换器学习跨模态编码器表示 (UNC Chapel Hill, Aug 20, 2019)
- [CLIP] 从自然语言监督中学习可转移的视觉模型 (OpenAI, 2021)
- 通过文本生成统一视觉和语言任务 (UNC Chapel Hill, May 2021)
- BLIP: 启动语言图像预训练,用于统一的视觉语言理解和生成 (Salesforce, Jan 28, 2022)
- Flamingo: 用于小样本学习的视觉语言模型 (DeepMind, April 29, 2022)
- GIT: 一种生成性图像到文本的变换器,用于视觉和语言 (Microsoft, May 2, 2022)
- MultiInstruct: 通过指导调优提高多模态零射击学习 (Xu 等人,Dec 2022)
- BLIP-2: 通过冻结图像编码器和大型语言模型启动语言图像预训练 (Salesforce, Jan 30, 2023)
- 跨模态微调:先对齐再优化 (Shen 等人,Feb 11, 2023)
- KOSMOS-1: 语言不是你所需要的一切:与语言模型对齐的感知 (Microsoft, Feb 27, 2023)
- PaLM-E: 一个具体的多模态语言模型 (Google, Mar 10, 2023)
- LLaMA-Adapter: 使用零初始化注意力的语言模型的高效微调 (Zhang 等人,Mar 28, 2023)
- mPLUG-Owl: 模块化赋予大型语言模型多模态性能 (Ye 等人,Apr 2, 2023)
- LLaMA-Adapter V2: 参数高效的视觉指令模型 (Gao 等人,Apr 28, 2023)
- LLaVA: 视觉指令调优 (Liu 等人,Apr 28, 2023)
- InstructBLIP: 通过指导调优朝着通用的视觉语言模型迈进 (Salesforce, May 11, 2023)
- 朝着专家级医疗问题回答的大型语言模型 (Singhal 等人,May 16, 2023)
- 便宜且快速:大型语言模型的高效视觉语言指令调优 (Luo 等人,May 24, 2023)
- Shikra: 释放多模态 LLM 的参考对话魔法 (SenseTime, Jun 3, 2023)
- Macaw-LLM: 带有图像、音频、视频和文本集成的多模态语言建模 (Tencent, Jun 15, 2023)
其他资源
- [CVPR2023 教程演讲] 多模态大模型:向建设和超越多模态 GPT-4 迈进
- 幻灯片:多模态大模型
- [CMU 课程] 11-777 MMML
- [开源] Salesforce 的 LAVIS