引言
长期以来,每个机器学习模型都以一种数据模式运行——文本(翻译、语言建模)、图像(对象检测、图像分类)或音频(语音识别)。
然而,自然智能并不仅限于单一模态。人类可以阅读和书写文本。我们可以看到图像并观看视频。我们听音乐来放松,留意奇怪的声音来发现危险。能够处理多模态数据对于我们或任何人工智能在现实世界中运行至关重要。
OpenAI 在其 GPT-4V system card 中指出,“将额外的模态(例如图像输入)纳入大语言模型被一些人视为人工智能研究和开发的关键前沿。”
将额外模态纳入 LLM(大型语言模型)可创建 LMM(大型多模态模型)。去年,各大研究实验室每周都会推出新的 LMM,例如 DeepMind 的 Flamingo、Salesforce 的 BLIP、微软的 KOSMOS-1、谷歌的 PaLM-E 和腾讯的 Macaw-LLM。ChatGPT和Gemini等聊天机器人都是 LMM。
并非多模态系统都是 LMM。例如,Midjourney、Stable Diffusion 和 Dall-E 等文本到图像模型是多模态的,但没有语言模型组件。多模态有如下几重含义:
- 输入和输出具有不同的模式(例如文本到图像、图像到文本)
- 输入是多模式的(例如可以处理文本和图像的系统)
- 输出是多模式的(例如可以生成文本和图像的系统)
本博文将涵盖一般的多模式系统,包括 LMMs。全文由 3 部分组成:
-
第 1 部分介绍多模态的背景,包括为什么采用多模态、不同的数据模态以及多模态任务的类型。
-
第 2 部分使用 CLIP 和 Flamingo 示例讨论多模态系统的基础知识,CLIP 为许多未来的多模态系统奠定了基础,而 Flamingo 的令人印象深刻的性能催生了 LMM。
-
第 3 部分讨论了 LMM 的一些活跃研究领域,包括生成多模态输出和adapters以实现更高效的多模态训练,涵盖较新的多模态系统,例如 BLIP-2、LLaVA、LLaMA-Adapter V2、LAVIN 等。
理解多模态
为何要有多模态?
如果没有多模态,许多应用都是不可能实现的,尤其是那些处理混合数据模态的行业,例如医疗保健、机器人、电子商务、零售、游戏等。
不仅如此,合并来自其他模态的数据可以帮助提高模型性能。可以从文本和图像中学习的模型难道不应该比只能从文本或图像中学习的模型表现得更好吗?
多模态系统可以提供更灵活的接口,允许用户以目前最适合的方式与其进行交互。想象一下,您可以通过打字、说话或只是将相机对准某物来提出问题。
我特别兴奋的一个可能应用是,多模态还可以让视障人士浏览互联网并导航现实世界。
数据模态
不同的数据模态包括文本、图像、音频、表格数据等。一种数据模态可以用另一种数据模式来表示或近似。例如:
- 音频可以表示为图像(梅尔频谱图)。
- 语音可以转录为文本,尽管其纯文本表示会丢失音量、语调、停顿等信息。
- 图像可以表示为向量,而向量又可以被展平并表示为文本tokens序列。
- 视频是图像加音频的序列。如今的机器学习模型大多将视频视为图像序列。这是一个严重的限制,因为事实证明声音与视频的视觉效果一样重要。88% 的 TikTok 用户表示声音对于他们的 TikTok 体验至关重要。
- 如果您简单地拍摄一张照片,文本就可以表示为图像。
- 数据表可以转换为图表,即图像。
其他数据模态怎么样?
所有数字数据格式都可以使用位串(0 和 1 的字符串)或字节串来表示。能够有效地从位串或字节串中学习的模型将非常强大,它可以从任何数据模态中学习。
还有其他我们没有涉及的数据模态,例如图表和 3D 资产。我们还没有涉及用于表示气味和触觉(haptics)的格式。
在今天的机器学习中,音频在很大程度上仍然被视为基于语音的文本替代品。音频最常见的用例仍然是语音识别(语音转文本)和语音合成(文本转语音)。非语音音频用例(例如音乐生成)仍然相当小众。
图像可能是模型输入最通用的格式,因为它可用于表示文本、表格数据、音频,在某种程度上还可以表示视频。视觉数据也比文本数据多得多。今天,到处都是不断拍摄照片和视频的手机/网络摄像头。
文本是模型输出的一种更强大的模式。可以生成图像的模型只能用于图像生成,而可以生成文本的模型可以用于许多任务:摘要、翻译、推理、问答等。
为简单起见,我们将重点关注两种模式:图像和文本。这些知识可以在某种程度上推广到其他模态。
多模态任务
要了解多模态系统,了解它们想要解决的任务会很有帮助。有许多任务以及许多可能的组织方法。在文献中,我通常看到视觉语言任务分为两组:生成和视觉语言理解(vision-language understanding,VLU),VLU是所有不需要生成的任务的总称。但是这两组任务之间的界限是模糊的,因为能够生成答案也需要理解。
生成
对于生成任务,输出可以是单模态(例如文本、图像、3D 渲染)或多模态。虽然单模态输出如今已很常见,但多模式输出也在不断普及中。我们将在本文末尾讨论多模式输出。
图像生成(文本到图像合成)
此任务类别很简单。示例:Dall-E、Stable Diffusion和Mid Journey。
文本生成
常见的文本生成任务是视觉问答。您可以为模型提供文本和图像,而不是仅依赖文本作为上下文。想象一下,您可以将相机对准任何物体并提出诸如以下之类的问题:“我的车无法启动。它有什么问题吗?”、“这道菜怎么做?”或“这个表情包是关于什么的?”。
另一个常见的用例是图像caption,它可以用作基于文本的图像检索系统的一部分。一个组织可能拥有数百万甚至数十亿张图像:产品图像、图表、设计、团队照片、宣传材料等。AI可以自动为它们生成caption和元数据,从而更轻松地找到您想要的确切图像。
视觉语言理解
我们将重点讨论两种任务类型:分类和基于文本的图像检索(text-based image retrieval,TBIR)。
分类
分类模型只能生成属于预定类列表的输出。当您只关心固定数量的结果时,这很有效。例如,OCR 系统只需要预测视觉内容是否是已知字符之一(例如数字或字母)。
注意:OCR 系统在字符级别处理数据。当与可以理解更广泛上下文的LLM系统一起使用时,它可以有新的应用,例如允许用户与任何教材、合同、汇编指令等“对话”。
与分类相关的一项任务是图像到文本检索:给定图像和预定义文本池,找到最有可能伴随图像的文本。这对于产品图像搜索很有帮助,即从图片中检索产品评论。
基于文本的图像检索(图像搜索)
图像搜索不仅对搜索引擎很重要,而且对企业能够搜索所有内部图像和文档也很重要。有些人将基于文本的图像检索称为“文本到图像检索”。
基于文本的图像检索有多种方法。其中两个是:
- 手动或自动为每个图像生成caption和元数据(请参阅文本生成中的图像caption)。给定一个文本查询,查找其caption/元数据最接近该文本查询的图像。
- 训练图像和文本的联合嵌入空间。给定一个文本查询,生成该查询的嵌入,并找到嵌入最接近该嵌入的所有图像。
第二种方式更加灵活,相信会得到更广泛的应用。这种方法需要为视觉和语言提供强大的联合嵌入空间,就像 OpenAI 的CLIP开发的那样。
多模态训练基础
鉴于存在如此多令人惊叹的多模态系统,撰写这篇文章的一个挑战是选择要关注的系统。最后,我决定重点关注两个模型: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的高层架构
对于图像编码器,作者使用 ResNet 和 ViT 进行了实验。他们表现最好的模型是ViT-L/14@336px:
- 大型视觉transformer(ViT-L)
- 14x14 pixel patches(每个图像分为 576 个子图像)
- 输入为 336x336 像素
对于文本编码器,CLIP 使用类似于GPT-2但更小的 Transformer 模型。他们的基础模型只有 63M 个参数和 8 个注意力头。作者发现 CLIP 的性能对文本编码器的容量不太敏感。
使用两个投影矩阵 W v W_v Wv和 W l W_l Wl将图像编码器和文本编码器生成的嵌入投影到相同的嵌入空间。
给定图像嵌入
V
i
V_i
Vi,相应的多模态嵌入计算如下:
W
v
V
i
W_vV_i
WvVi。
给定文本嵌入
L
i
L_i
Li,相应的多模态嵌入计算如下:
W
l
L
i
W_lL_i
WlLi。
当人们说 CLIP 嵌入时,他们要么指这些多模态嵌入,要么指由 CLIP 图像编码器生成的嵌入。
自然语言监督
多年来,图像模型都是使用手动标注(图像、文本)数据集(例如 ImageNet、MS COCO)进行训练。这是不可扩展的,手动标注既耗时又昂贵。
CLIP 论文指出,当时可用的(图像、文本)数据集都不够大且质量足够高。他们创建了自己的数据集——400M(图像、文本)对——如下:
- 构建包含 500,000 个query的列表。query是常用词、二元词和流行维基百科文章的标题。
- 查找与这些query匹配的图像(字符串和子字符串匹配)。该论文提到这次搜索并未在搜索引擎上发生,但没有具体说明在哪里。我认为,由于 OpenAI 已经在训练GPT模型时进行了整个互联网的搜索,他们可能只是查询了他们的内部数据库。
- 每个图像都与与其同时出现的文本(例如caption、评论)而非query配对,因为query太短而无法描述。
- 由于某些查询比其他查询更受欢迎,为了避免数据不平衡,对每个query最多使用 20K 图像。
对比学习
在 CLIP 之前,大多数视觉语言模型都是使用分类器或语言模型目标进行训练的。对比目标是一种巧妙的技术,它允许 CLIP 扩展并推广到多个任务。
我们将使用图像caption示例任务来展示为什么对比目标更适合 CLIP:给定图像,生成描述它的文本。
分类器目标
分类器在预定的类别列表中预测正确的类别。当输出空间有限时,这才有效。以前使用(图像、文本)对数据集的模型都存在此限制。例如,使用ILSVRC-2012 的模型将自身限制为 1,000 个类别,而使用JFT-300M 则将其限制为 18,291 个类别。
这一目标不仅限制了模型输出有意义的响应的能力,还限制了其零样本学习的能力。假设,如果模型经过训练可以在 10 个类别中进行预测,则它不适用于具有 100 个类别的任务。
语言模型目标
如果分类器为每个输入仅输出一个类,则语言模型会输出一系列类。每个生成的类称为一个token。每个token都来自语言模型的预定列表(词汇表)。
对比目标
虽然语言模型目标允许更加灵活的输出,但 CLIP 作者指出这个目标使训练变得困难。他们假设这是因为模型试图准确生成每个图像附带的文本,而图像可以附带许多可能的文本:alt-text, caption, comments等。
例如,在Flickr30K 数据集中,每个图像都有由人类标注者提供的 5 个caption,并且同一图像的caption可能非常不同。
对比学习就是为了克服这一挑战。CLIP 的训练目的不是预测每个图像的确切文本,而是预测文本是否比其他文本更有可能伴随图像。
对于每批 N个(图像,文本)对,模型生成 N 个文本嵌入和 N 个图像嵌入。
- 令 V 1 , V 2 , . . . , V n V_1, V_2, ..., V_n V1,V2,...,Vn 是N个图像嵌入;
- 令
L
1
,
L
2
,
.
.
.
,
L
n
L_1, L_2, ..., L_n
L1,L2,...,Ln 是N个文本嵌入。
CLIP计算所有 N 2 N^2 N2 对可能的 ( V i , L j ) (V_i, L_j) (Vi,Lj) 图像文本对的余弦相似度。该模型被训练以最大化N个匹配对的相似度分数,同时最小化 N 2 − N N^2-N N2−N个错误配对的相似度分数。对于 CLIP, N=32,768。
另一种看待这个问题的方法是,CLIP 的每个训练批次都是两个分类任务。
-
每张图像都可以与 N 个可能的文本配对,模型会尝试预测正确的文本。这与图像到文本检索的设置相同。
L contrastive:txt2im = − 1 N ∑ i N log ( exp ( L i T V i β ) ∑ j N exp ( L i T V j β ) ) 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)}) Lcontrastive:txt2im=−N1i∑Nlog(∑jNexp(LiTVjβ)exp(LiTViβ)) -
每个文本可以与 N 个可能的图像配对,并且模型尝试预测正确的图像。这与文本到图像检索的设置相同。
L contrastive:im2txt = − 1 N ∑ i N log ( exp ( V i T L i β ) ∑ j N exp ( V i T L j β ) ) 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)}) Lcontrastive:im2txt=−N1i∑Nlog(∑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 生成此文本的嵌入。
- 使用扩散解码器生成以此嵌入为条件的图像。
文本生成:视觉问答、caption
CLIP 作者确实尝试创建一个文本生成模型。他们试验的一个版本称为 LM RN50。尽管该模型可以生成文本响应,但在 CLIP 评估的所有视觉语言理解任务上,其性能始终比 CLIP 的最佳性能模型低 10% 左右。
虽然现在 CLIP 不直接用于文本生成,但其图像编码器通常是可生成文本的 LMM 的骨干。
Flamingo:LMM 的黎明
与 CLIP 不同,Flamingo 可以生成文本响应。从简化的角度来看,Flamingo 是 CLIP + 语言模型,添加了一些技术,使语言模型能够根据视觉和文本输入生成文本token。
Flamingo的高层架构
从高层次来看,Flamingo 由两部分组成:
- 视觉编码器:使用对比学习来训练类似 CLIP 的模型。然后丢弃该模型的文本编码器。视觉编码器被冻结以在主模型中使用。
- 语言模型:Flamingo 微调 Chinchilla 以生成文本token,以视觉和文本为条件,使用语言模型损失,以及两个附加组件 Perceiver Resampler 和 GATED XATTN-DENSE 层。我们稍后讨论它们。
数据
Flamingo 使用了 4 个数据集:2 个(图像、文本)对数据集、1 个(视频、文本)对数据集和 1 个交错的图像和文本数据集。
Flamingo 的视觉编码器
Flamingo 首先使用对比学习从头开始训练类似 CLIP 的模型。该组件仅使用 2 个(图像、文本)对数据集:ALIGN 和 LTIP,总共 21亿个(图像、文本)对。这比 CLIP 训练的数据集大 5 倍。
- 对于文本编码器,Flamingo 使用 BERT 而不是 GPT-2。
- 对于视觉编码器,Flamingo 使用 NormalizerFree ResNet (NFNet) F6 模型。
- 文本和视觉嵌入在投影到联合嵌入空间之前进行均值池化。
Flamingo的语言模型
Flamingo 使用 Chinchilla 作为它们的语言模型。更具体地说,他们冻结了 9 个预训练的 Chinchilla LM 层。传统的语言模型根据前面的文本token来预测下一个文本token。Flamingo 根据前面的文本和视觉token预测下一个文本token。
为了能够根据文本和视觉输入生成文本,Flamingo 依赖于 Perceiver Resampler 和 GATED XATTN-DENSE 层。
Perceiver Resampler
由于视觉输入可以是图像和视频,因此视觉编码器可以产生可变数量的图像或视频特征。Perceiver Resampler 将这些可变特征转换为一致的 64 个视觉输出。
有趣的是,在训练视觉编码器时,使用的分辨率为 288 x 288。然而,在此阶段,视觉输入大小调整为 320 × 320。事实证明,使用CNN 时,更高的测试时分辨率可以提高性能。
GATED XATTN-DENSE 层
门控 XATTN-DENSE 层插入现有的和冻结的 LM 层之间,以允许语言模型在生成文本token时更有效地处理视觉token。如果没有这些层,Flamingo 作者指出总体得分下降了 4.2%。
损失函数
Flamingo 以交错的图像和视频为条件
x
x
x计算文本的可能性
y
y
y。
p
(
y
∣
x
)
=
∏
l
=
1
N
p
(
y
l
∣
y
<
l
,
x
≤
l
)
p(y|x) = \prod_{l=1}^N p(y_l|y_{<l}, x_{\leq l})
p(y∣x)=l=1∏Np(yl∣y<l,x≤l)
训练损失函数是所有 4 个数据集生成文本的预期负对数似然的加权和,其中
λ
m
\lambda_m
λm是数据集m的训练权重.
∑
m
=
1
M
λ
m
E
(
x
,
y
)
∼
D
m
[
−
∑
l
=
1
L
log
p
(
y
∣
x
)
]
\sum_{m=1}^M \lambda_m E_{(x, y)\sim D_m} [ -\sum_{l=1}^L \log p(y|x)]
m=1∑MλmE(x,y)∼Dm[−l=1∑Llogp(y∣x)]
训练
虽然 Chinchilla LM 层经过微调和冻结,但附加组件是使用所有 4 个具有不同权重的 Flamingo 数据集从头开始训练的。找到正确的每个数据集权重是性能的关键。每个数据集的权重位于上面数据集表的“训练权重”列中。
VTP 的权重比其他数据集小得多(0.03 与 0.2 和 1 相比),因此它对训练的贡献应该很小。然而,作者指出,删除该数据集会对所有视频任务的性能产生负面影响。
虽然 Flamingo 不是开源的,但有许多 Flamingo 的开源复制品。
- IDEFICS(HuggingFace)
- mlfoundations/open_flamingo
LMM 的研究方向
CLIP 已经 3 岁了,Flamingo 也快 2 岁了。虽然他们的架构为我们理解 LMM 的构建方式奠定了良好的基础,但该领域已经取得了许多新的进展。
以下是一些令我兴奋的方向。这远不是一个详尽的列表,既因为这篇文章很长,又因为我仍在了解这个领域。如果你有任何指示或建议,请告诉我!
纳入更多数据模式
如今,大多数多模态系统都使用文本和图像。我们距离能够整合视频、音乐和 3D 等其他模态的系统应该只剩下时间问题。为所有数据模态提供一个公共的嵌入空间,这不是一件令人惊奇的事情吗?
这类工作的示例:
- ULIP: Learning a Unified Representation of Language, Images, and Point Clouds for 3D Understanding (Xue et al., Dec 2022)
- ImageBind: One Embedding Space To Bind Them All (Girdhar et al., May 2023)
- NExT-GPT: Any-to-Any Multimodal Large Language Model (Wu et al., Sep 2023)
- Jeff Dean 雄心勃勃的Pathways项目(2021 年):其愿景是“实现同时包含视觉、听觉和语言理解的多模态模型。”
用于遵循指令的多模式系统
Flamingo接受了completion任务的训练,但没有接受对话或遵循指令的训练。许多人正在致力于构建可以遵循指令并进行对话的 LMM,例如:
- MultiInstruct: Improving Multi-Modal Zero-Shot Learning via Instruction Tuning (Xu et al., Dec 2022)
- LLaVA: Visual Instruction Tuning (Liu et al., Apr 28, 2023)
- InstructBLIP: Towards General-purpose Vision-Language Models with - - Instruction Tuning (Salesforce, May 11, 2023)
- LaVIN: Cheap and Quick: Efficient Vision-Language Instruction Tuning for - Large Language Models (Luo et al., May 24, 2023)
用于更高效多模态训练的Adapters
虽然 Flamingo 使用了 Chinchilla 的 9 个预训练和冻结层,但它必须从头开始预训练其视觉编码器、感知器重采样器和 GATED XATTN-DENSE 层。这些从头开始训练的模块可能是计算密集型的。许多工作专注于从头开始使用更少的训练来引导多模态系统的更有效方法。
有些工作还是很有潜力的。例如,BLIP-2 在零样本 VQA-v2 上的性能比 Flamingo-80B 高出 8.7%,可训练参数减少了 54 倍。
这方面的工作包括:
- BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models
- [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 上的大型多模态模型教程,顺便说一句,这是一个很棒的教程。
生成多模态输出
虽然可以处理多模态输入的模型正在成为常态,但多模态输出仍然滞后。许多用例需要多模态输出。例如,如果我们要求 ChatGPT 解释 RLHF,有效的解释可能需要图表、方程,甚至简单的动画。
为了生成多模态输出,模型首先需要生成公共的中间输出。一个关键问题是中间输出会是什么样子。
中间输出的一种选择是文本,然后它将用于生成/合成其他操作。
例如,CM3(Aghajanyan 等人,2022)输出 HTML 标记,该标记可以编译成不仅包含文本还包含格式、链接和图像的网页。GPT-4V 生成 Latex 代码,然后可以将其重建为数据表。
中间输出的另一个选择是多模态tokens。这是Caiming Xiong的选择,他的 Salesforce 团队在多模态方面做了很多出色的工作。每个token都有一个标签来表示它是文本token还是图像token。然后图像token将被输入到像 Diffusion 这样的图像生成模型中以生成图像。然后文本token将被输入到语言模型中。
Generating Images with Multimodal Language Models(Koh 等人,2023 年 6 月)是一篇很棒的论文,展示了 LMM 如何在生成文本的同时生成和检索图像。
结论
阅读如此多的多模态论文,与做出杰出工作的人交谈并尝试在一篇博文中总结关键模态是非常有趣的。关于多模态的内容太多了,我确信我一定错过了很多东西,但我希望这篇文章提供的核心模态将帮助您开发多模态系统并将其应用到您的工作中。
正如你在本文的第 3 部分中看到的,我们仍处于多模态系统的早期阶段(太早了,以至于一位朋友告诉我,他不确定 LMM 缩写是否会流行)。毫无疑问,一般的多模态系统,特别是 LMM,将比大型语言模型更具影响力。然而,请记住,LMM 并不会让 LLM 变得过时。由于 LMM 是 LLM 的扩展,因此 LMM 的性能依赖于其基础 LLM 的性能。许多研究多模态系统的实验室同时研究大语言模型。
本博文译自Chip Huyen的博文。