多模态预训练三要素:数据规模、对比学习与跨模态对齐的协同优化

博文小编

2025-04-14


博文视点
除了语言和代码,互联网上还存在大量图像或视频等数据。很多图像或视频能够获 得对应的语言文字描述,如网页中图像周围的文字、图像分享网站中用户对所分享图像 的描述(Caption)、视频网站中视频所配备的字幕等,这些图像或视频与对应的自然语 言文字所构成的数据被称为多模态数据。与 ImageNet 等人工标注的图像数据集类似,这些数据中的语言部分也可以看作一种对图像或视频的标签,只不过这些标签是一个开放的而非事先定义好的封闭集合。但是与人工标注数据不同的是,这种标签是用户在使用这些应用时不经意间产生的,其数量远远超过了ImageNet等人工标注的图像数据,当然其质量也参差不齐。因此,如果能够找到有效的方式,先在这些大量的多模态数据上进行自监督预训练,然后在下游任务上进行模型微调,就可以和预训练语言模型一样,大大提高下游任务的性能。这种融合了多种模态数据的预训练模型被称为多模态预训练模型,其可以打通语言与图像、视频等其他模态之间的界限,使模型能够更好地理解和生成现实世界的事物。下面介绍几种典型的多模态预训练模型。

掩码图像模型

1.VideoBERT
VideoBERT[166]是第一个多模态预训练模型。该模型首先将视频切分成每段30帧的片段,然后使用3维CNN将每个片段转换成向量,接着使用K-Means算法对这些向量进行聚类,共聚成124=20,736个簇,每个簇看作一个视觉词元的词表,这样一大段视频就可以和文本一样表示成一个词元序列。接下来,类似BERT模型,将带有掩码的“视频—字幕”对输入给Transformer模型,并让模型预测相应的词元,如图1所示。

图1 VideoBERT模型预训练示意图
预训练好的VideoBERT可以直接用于视频检索等任务,如输入一段文本,返回该文本在视频库中最相近的视频。另外,也可以将VideoBERT迁移到下游任务中,如生成更好的视频字幕等。
2.VL-BERT
VL-BERT[167]是一种用于图像和文本的预训练模型,使用图像及其对应的描述文本预训练。如图2所示,其中图像中的词元是使用FastR-CNN模型[168]自动识别出的兴趣区域(Region-of-Interest,RoI),其不但标定了相应区域的矩形范围,还有相应的物体类别标签(如“猫”等)。然后就可以采用与BERT类似的预训练策略,构造自监督学习任务预训练模型了。

图2 VL-BERT模型预训练示意图
可见,VL-BERT和VideoBERT类似,都采用了类似BERT的思想,将图像的某些区域进行掩码,并使用模型预测这些区域的词元。因此,这类方法又被称为掩码图像模型(MaskedImageModel,MIM)方法。

对比学习的多模态预训练模型

1.ALIGN与CLIP
与掩码语言模型类似,掩码图像模型也存在一个问题,即一旦图像的某些区域被掩码,那么该图像和原始图像就不一致了,可能会降低模型的性能。为了解决该问题,以Google提出的ALIGN(ALarge-scaleImaGeandNoisy-textembedding)[169]模型和OpenAI提出的CLIP(ContrastiveLanguage-ImagePretraining)[170]模型为代表的多模态预训练模型直接采用了“图像—文本”对作为预训练数据。这类方法主要使用了对比学习(ContrastiveLearning)技术,即将数据中存在的“图像—文本”对作为正例,并随机采样的“图像—文本”对作为负例学习模型的参数。其中,图像和文本分别使用各自的编码器编码。预训练好的模型可以直接应用于检索类任务,包括以文搜图、以图搜文或以“图+文”搜图等;另外,通过在下游任务上精调,还可以大幅提高图像分类等任务的性能。图3展示了这类模型的结构及其应用。

图3ALIGN模型结构及其应用

2.模型的改进
此后,一系列训练模型从不同角度对ALIGN和CLIP进行了改进,如使用更大规模或更高质量的数据,对模型结构进行调整,修改预训练目标函数等,从而进一步提高了模型的性能。下面列举这些方面的代表性工作。
在数据方面,CLIP使用的多模态预训练数据规模虽然达4亿个“文本—图像”对,但是这对于训练一个优质的多模态模型还远远不够。虽然ALIGN使用了18亿个“文本—图像”对,但是很可惜Google并没有开放这些数据。为了进一步提高模型的性能,同时为了提高数据集的开放性,LAION[171]开放了一系列“文本—图像”对数据集,最大规模达到了50亿个。
除了数据规模,数据质量也对模型性能有非常大的影响。如DataComp[172]采用过滤的方法获得规模更小但质量更高的数据。实验结果显示,利用数据过滤获得更高质量的数据,可以显著提高模型的性能。
在模型结构方面,FLIP(FastLanguage-ImagePre-training)[173]以CLIP为基础,假设图像中只有部分区域与文本是对应的,可以随机地删除掉大量的图像区域,来加快预训练的速度。从而在相同的计算资源下,使用更多的数据进行预训练,最终提高了CLIP模型的性能;或者在达到与CLIP模型相同性能的条件下,大幅减少了预训练的时间。从另一方面讲,由于图像的描述文本并不能完全描述图像的内容,因此随机删除图像的部分区域,也可以看作更好地对齐了图像和文本,这也可能是使模型性能提高的一个原因。
除了文本、图像和视频模态,ImageBind[174]将音频、深度图和热力图等更多模态统一映射到相同的向量空间,从而实现了更多模态的融合。数据上无须每种模态之间都对应起来,只需利用图像作为锚点,将其他模态的数据映射到图像的向量空间中即可。学习方法采用类似CLIP的对比学习方法,将预训练数据中其他模态和图像对作为正例,利用随机采样的数据对作为负例学习模型的参数。学习后的模型可用于多模态的检索、识别和生成等任务,而且即便在训练中没有使用的模态对,也能表现出很好的性能。
如果单纯使用不同模态样本间的对比学习方法,可能会出现模态之间并非完全对齐的情况,如在图像中出现的内容在文本中并没有出现,或者反过来的情况。为了解决这个问题,FILIP(Fine-grainedInteractiveLanguage-ImagePre-training)[175]修改了预训练的目标,使用了一种细粒度的对比学习方法,即计算文本中的词元和图像块的相似度,然后取最相似的词元和图像块进行对比学习。
除对比学习外,还有一些工作使用额外的自监督学习方法,包括使用图像生成文本的内容等。如CoCa(ContrastiveCaptioners)[176]在对比损失外,增加了图像描述生成的损失。下面介绍的图到文预训练模型便是该类方法的延伸。

图到文预训练模型

受到预训练语言模型成功的鼓舞和启发,近年来产生了一系列图到文预训练模型,将图像预训练模型和语言预训练模型进行了结合。这些模型的基本思想是,首先使用一个图像编码器将图像表示为图像词元序列,然后将该词元序列作为语言模型的输入,并使用自回归语言模型预测该图像对应文本的内容,如图4所示。此外,在将图像的表示输入语言模型之前,还可以用一个可选的桥接模块将两个模态的表示进行对齐。完成预训练后,图到文预训练模型便可完成与文本生成相关的各种下游任务,如多模态问答、图像描述的生成等。

图4图文模型的预训练过程
GIP(GenerativeImage-to-textTransformer)[177]模型是最早的图到文预训练模型,其图像编码器使用了CLIP等图文预训练模型,而语言模型则是从头开始训练的。
BLIP2(BootstrappingLanguage-ImagePre-training)[178]模型则冻结了图像和文本预训练模型,通过学习一个轻量级的Transformer桥接模型(Q-Former)来对齐图像和文本的表示。
Flamingo[179]模型则在图到文预训练模型中引入了语境学习(In-contextLearning)的方法。同语言模型采用的语境学习方法类似,Flamingo在模型输入中先给出少量图像及其对应输出文本的示例,从而指引模型更好地完成不同类型的文本生成任务,如图像的情感分类、问答等。图5展示了一些Flamingo模型的输入输出示例,可以看到当输入不同的演示后,同一个模型能够完成不同类型的任务。
GPT-4、Claude-3等商业闭源大语言模型则展现出了强大的图文指令遵循能力,也就是说这些模型允许用户针对自己上传的图像发出各种指令,模型会给出相应的文本回复。如GPT-4的技术报告[58]中所展示的一个示例:针对图6,用户如果提问“Whatisunusualaboutthisimage?”则GPT-4回复“Theunusualthingaboutthisimageisthatamanisironingclothesonanironingboardattachedtotheroofofamovingtaxi.”

图5Flamingo模型的输入输出示例图文模型的预训练过程

图6GPT-4技术报告中的示例图像
LLaVA(LargeLanguageandVisionAssistant)[180]及MiniGPT-4[181]等试图使用开源模型复现GPT-4的图文生成功能。基本思路与GIP、BLIP2等图到文预训练模型类似,也是将图像用编码器表示为词元序列输入给大语言模型,同时拼接文本的指令,并期望语言模型输出相应的回复。其中,比较关键的是如何获得“图像—指令—回复”的数据集用于微调大语言模型。以LLaVA为例,其调用文本模态的GPT-4,将各种现有人工标注的图像—文本数据集(如图像—文本描述、图像目标检测等)中的文本部分转换为对话、图像的详细描述、复杂推理等指令及相应回复的数据,从而获得大量的“图像—指令—回复”的数据集。

图像或视频生成

除了能够生成文本,人们也希望模型能够进行图像或视频的自动生成。这对于艺术创造、媒体娱乐、广告和市场营销等领域都具有积极的推动作用。2021年初,OpenAI发布了一个被称为DALL·E的跨模态预训练生成模型。该模型使用图像及其对应的描述文本预训练,模型结构采用与GPT一样的自回归语言模型,只是生成的不是语言词元,而是图像词元①。最终,DALL·E能够根据输入的自然语言文本生成相应的图像。即便输入的语言表达了一个现在世界上可能不存在的物体,也能够生成一个结果,这为艺术创造或工业设计提供了灵感。图7展示了DALL·E的输出结果,其中输入为“aclockintheshapeofapeacock.(一个孔雀形的时钟)”。

图7DALL·E的输出结果
2022年4月,OpenAI发布了DALL·E2模型。与第1代DALL·E模型不同,DALL·E2模型采用了一种被称为扩散模型(DiffusionModels)[182]的图像合成技术。简单来讲,扩散模型首先使用前向过程对图像增加高斯噪声进行模糊化,然后使用逆向过程去除噪声。扩散模型的学习目标就是对噪声图像进行去噪,所以也属于一种自监督学习方法。训练收敛后模型便可以用于图像生成,从由随机噪声组成的图像开始,让网络迭代去噪生成清晰的图像。此后,StabilityAI、Midjourney等公司也陆续发布了基于扩散模型的图像生成模型,提高了生成图像的质量。2023年10月,OpenAI发布了DALL·E3模型。与之前的模型不同,DALL·E3模型使用了一个额外训练的图像描述生成器,用于为大量的图像生成高质量且包含丰富图像细节的描述文本,这些自动生成的大量“图像—文本”对被用于训练文本到图像的生成模型。该思想与机器翻译中使用的回译(Back-Translation)[183]类似,即使用一个翻译模型将目标语言翻译成源语言,从而获得大量“源语言—目标语言”对的训练数据,从而提高了翻译模型的性能。此外,在使用文本到图像生成模型时,首先使用GPT-4模型对用户输入的文本指令进行预处理,生成更适合生成图像的包含更丰富细节信息的文本指令,然后将文本输入到图像生成模型中,这样可以大幅提高生成图像的质量。图8展示了对于同样的输入“aclockintheshapeofapeacock.(一个孔雀形的时钟)”,DALL·E3的输出结果。与图7的对比可以发现,DALL·E3模型生成的图像更加真实、清晰,且包含了更多的细节信息。

图8DALL·E3的输出结果
受到图像生成模型成功的鼓舞,人们也希望能够使用文本自动生成视频。虽然有不少的研究机构和创业公司在从事相关的工作,并发布了一些初步的生成结果,但是生成的视频效果还远远不能满足人们的期望。直到OpenAI在2024年2月发布了Sora模型,才引爆了大众对文本到视频生成的热情。Sora不但可以生成高质量的视频,而且视频的时长最多可以达到1分钟(之前的模型只能生成几秒钟的视频)。同时,Sora具有更好的生成内容保持性、指令遵循性等重要特性。更不可思议的是,其生成的视频内容更加符合物理规律,这使Sora的生成视频更加真实。虽然OpenAI并没有公开Sora的具体技术细节,但是其技术报告中透露了Sora使用的仍为扩散模型,同时使用Transformer作为模型主干框架。更为重要的是,Sora借鉴了DALL·E3模型的训练数据生成经验,即使用视频到文字生成器为大量的视频生成相应的文本描述,用于训练文本到视频的生成模型。此外,Sora同样使用了GPT-4模型对用户输入的指令进行预处理,以获得更适合生成视频的文本指令。
本文节选自《自然语言处理:基于大语言模型的方法》(车万翔,郭江,崔一鸣,著;刘挺,主审.电子工业出版社,2025.3)

读者评论

相关博文

  • 社区使用反馈专区

    陈晓猛 2016-10-04

    尊敬的博文视点用户您好: 欢迎您访问本站,您在本站点访问过程中遇到任何问题,均可以在本页留言,我们会根据您的意见和建议,对网站进行不断的优化和改进,给您带来更好的访问体验! 同时,您被采纳的意见和建议,管理员也会赠送您相应的积分...

    陈晓猛 2016-10-04
    5700 747 3 7
  • 迎战“双12”!《Unity3D实战核心技术详解》独家预售开启!

    陈晓猛 2016-12-05

    时隔一周,让大家时刻挂念的《Unity3D实战核心技术详解》终于开放预售啦! 这本书不仅满足了很多年轻人的学习欲望,并且与实际开发相结合,能够解决工作中真实遇到的问题。预售期间优惠多多,实在不容错过! Unity 3D实战核心技术详解 ...

    陈晓猛 2016-12-05
    3427 36 0 1
  • czk 2017-07-29
    6277 28 0 1