概述
大型语言模型的出现标志着人工智能领域转型的开始,它们在文本信息处理上的能力极大地推动了这一进程。尽管LLMs在文本处理上表现出色,但它们主要限于处理单一模态的数据,即文本。这限制了它们在理解和生成涉及图像和视频等多模态数据方面的能力。自然智能能够处理多种模态的信息,包括书面和口头语言、图像的视觉解释以及视频的理解。为了使人工智能系统具有类似人类的认知功能,它们必须也能够处理多模态数据。
为了克服LLMs的局限性,研究人员开发了视觉-语言模型(VLMs)。这些模型结合了视觉和文本信息,展示了在理解和生成涉及图像和文本的内容方面的卓越能力。
VLM的应用:
图像字幕生成:VLMs可以自动为图像生成描述性文字,这在社交媒体、内容管理和辅助视觉障碍人士方面非常有用。
视觉问答(VQA):VLMs能够理解自然语言问题并根据图像内容提供答案,这项技术可以用于教育软件、虚拟助手和交互式客户服务系统。
图像检索:通过理解和索引图像内容及其相关文本,VLMs可以用于改进图像搜索技术,提供更准确和相关的搜索结果。
内容创作:VLMs可以根据给定的文本描述生成图像或视频,这对于艺术创作、游戏设计和电影制作等领域具有创新性的影响。
自动翻译和语言学习:VLMs可以帮助翻译多模态内容,例如带有图像说明的文档,同时也能够辅助语言学习应用,提供视觉辅助学习材料。
医疗影像分析:在医疗领域,VLMs可以辅助医生分析医学影像,并结合相关病例报告或临床笔记,以支持诊断过程。
自动驾驶:VLMs可以整合视觉传感器数据和语言指令,帮助自动驾驶系统更好地理解周围环境并做出决策。
文档理解:VLMs可以处理包含混合媒体的文档,如带有图表或图像的科学论文,以提取关键信息和洞见。
增强现实(AR)和虚拟现实(VR):在AR和VR应用中,VLMs可以提供对用户视觉和语言输入的更深层次理解,从而创造更丰富的交互体验。
社交媒体分析:VLMs可以分析社交媒体上的图像和文本内容,以识别趋势、情感或其他有用的信息。
VLMS的基本架构:
- 由图像和文本编码器生成嵌入
- 在图像和文本融合层中进行融合
- 将融合向量通过LLM生成最终的视觉感知生成文本
VLMs的分类:根据VLM的输入处理和输出生成能力将其分为三个不同的组:
- 视觉语言理解模型:专门为视觉信息与语言的解释和理解而设计的模型
- 多模态输入文本生成模型:擅长利用多模态输入(如图像、视频和文本)来生成文本内容
- 多模态输入多模态输出模型:不仅接受多模态输入,还能产生多模态的输出
拓展阅读:
BERT:一个关键预训练任务是遮蔽语言建模(MLM),它通过预测文本中被随机遮蔽的单词来训练模型,从而提高模型对语言的理解能力。
BEIT:将BERT的预训练概念扩展到图像领域的模型。它通过在大量图像数据上进行预训练,学习图像的特征表示。
视觉语言理解
- (Vision-Language Understanding, VLU)的VLMs专注于对视觉信息与语言的解释和理解的结合。
- 它们设计用来处理涉及图像和文本的复杂查询,例如视觉问答(VQA)和图像字幕生成。
- VLU模型通常需要对图像内容有深入的理解,并且能够准确地用语言来描述或回答有关图像的问题。
CLIP
论文:《Learning Transferable Visual Models From Natural Language Supervision》
CLIP是一种神经网络,它通过自然语言指导来理解视觉概念。它能够识别多种基准上的视觉上的类别,展现出"零样本"(zero-shot)能力,即在没有看过特定类别样本的情况下也能识别它们。
通过对比学习的方式进行预训练,它将图像与其对应的文本描述进行对齐,从而学习视觉和语言之间的关联。
优势:对于分类任务,CLIP比一般的微调深度学习视觉模型具有更强的鲁棒性。
挑战:在抽象任务、细粒度分类、泛化和措辞敏感性方面仍存在困难。
CLIP的训练使用了大量成对的图像和文本数据。这些数据对通常包括一个图像及其相关的描述或标题。图像编码器将输入的图像转换成一个固定大小的特征向量,而文本编码器将输入的文本描述转换成另一个固定大小的特征向量。CLIP的核心是对图像和文本特征向量进行对比学习。模型试图将与图像内容相匹配的文本描述的特征向量拉近,同时将不匹配的文本描述的特征向量推远。
零样本学习:一旦模型被训练,它就可以在没有额外训练数据的情况下识别新的图像类别。这是因为模型已经学习了将视觉概念与语言描述联系起来的通用表示。
AlphaCLIP
论文:《Alpha-CLIP: A CLIP Model Focusing on Wherever You Want》
AlphaCLIP 是 CLIP 模型的一个扩展版本,它增加了对图像中特定区域的注意力指示功能。
注意力机制:AlphaCLIP 通过添加一个注意力机制来提高模型对图像中特定区域的聚焦能力。这种机制允许模型识别图像中的关键部分,并相应地调整其处理过程。
alpha channel:AlphaCLIP 的核心特性是它的“alpha channel”,这是一个额外的通道,用于指示图像中哪些区域在特定的视觉-语言任务中更为重要。这个通道可以被视为一个掩码,它将注意力集中在图像的特定部分。
细粒度的图像理解:AlphaCLIP 的这种能力使其在处理需要对图像中特定对象或部分进行识别的任务时更为有效,例如在复杂的场景中识别多个对象。
对CLIP图像编码器实现了微妙的结构修改,以保持CLIP的先验知识。在CLIP图像编码器的ViT结构中,对第一层的图像应用RGB卷积。引入了一个与 RGB Conv 层平行的附加 Alpha Conv 层,这使得 CLIP 图像编码器能够接受额外的 alpha 通道作为输入。alpha 通道输入设置为 [0, 1] 的范围,其中 1 表示前景,0 表示背景。我们将 Alpha Conv 内核权重初始化为零,确保初始 Alpha-CLIP 忽略 alpha 通道作为输入。
GLIP
论文:《Grounded Language-Image Pre-trainin》
通过短语定位(phrase grounding)实现对象级别的对齐,这意味着模型能够将文本中的短语与图像中的具体对象联系起来。
GLIP 将对象检测重新定义为一种视觉-语言任务,通过深度融合(deep fusion)改进表示学习,从而提高模型对图像中对象的识别能力。
GLIP 能够利用语义丰富的数据进行可扩展的预训练,这使得模型能够自动生成定位框(grounding box),并且在零样本/少样本(zero/few-shot)迁移性方面表现出色。
GLIP 在多种视觉-语言任务上表现出色,包括图像字幕生成和下游目标检测任务。它能够与完全监督的动态头部(dynamic head)竞争。
GLIP的一个关键特性是短语定位,它通过将文本中的短语与图像中的对象匹配来实现。这有助于模型理解文本描述与视觉内容之间的对应关系。通过对比性学习框架进行预训练,其中包括正样本对和负样本对。模型被训练为将正样本对的嵌入拉近,同时将负样本对的嵌入推远。通过定位损失,实现对图像的所有目标的定位。
VLMo
论文:《VLMo: Unified Vision-Language Pre-Training with Mixture-of-Modality-Experts》
论文旨在解决现有视觉-语言模型在处理复杂分类任务时存在的局限性,以及在检索任务中的效率问题。现有模型通常采用双重编码器或融合编码器架构,但这些架构各有优缺点,无法同时满足高效检索和复杂分类任务的需求。
文章提出了一个统一的视觉-语言预训练模型(VLMO),该模型通过模块化的Transformer网络联合学习一个双重编码器(dual encoder)和一个融合编码器(fusion encoder)。VLMO引入了一种新型的Mixture-of-Modality-Experts (MOME) Transformer,每个模块包含特定模态的专家池和共享的自注意力层。这种设计使得预训练的VLMO可以作为融合编码器进行视觉-语言分类任务的微调,或者作为双重编码器用于高效的图像-文本检索。此外,文章还提出了一种阶段性预训练策略,充分利用大规模的图像和文本数据。
MOME Transformer是VLMO的核心,它在每个Transformer块中引入了模态专家池和共享的自注意力层。模态专家包括视觉专家(V-FFN)、语言专家(L-FFN)和视觉-语言专家(VL-FFN),分别负责处理图像、文本和图像-文本对的融合。
预训练过程:三个预训练阶段如下图所示
- 图像预训练:在图像数据上进行预训练,使用masked image modeling,类似于BEIT模型中的预训练方法。这个阶段训练视觉专家(V-FFN)和自注意力模块。
- 文本预训练:在文本数据上进行预训练,使用masked language modeling,类似于BERT模型中的预训练方法。这个阶段训练语言专家(L-FFN)。
- 联合预训练:在图像和文本预训练完成后,在图像-文本对上进行联合预训练。这个阶段使用图像-文本对比学习、图像-文本匹配和遮蔽语言建模任务来进一步训练模型。
联合训练的三个任务:
1. 图像-文本对比学习(Image-Text Contrastive Learning)
- 目的:此任务旨在训练模型以识别和匹配相关的图像和文本对,同时区分不匹配的对。
- 方法:通过最小化正样本对(即匹配的图像和文本)之间的距离,同时最大化负样本对(即不匹配的图像和文本)之间的距离。
- 应用:这有助于模型学习如何将图像内容与相应的文本描述相关联,增强其对视觉概念的理解。
2. 遮蔽语言建模(Masked Language Modeling, MLM)
- 目的:此任务类似于BERT模型中的遮蔽语言建模,目的是让模型预测文本序列中被随机遮蔽(masked)的单词。
- 方法:在文本序列中随机选择一定比例的单词,并用特殊标记[MASK]替换,模型需要根据上下文预测这些单词。
- 应用:这有助于模型学习语言的结构和语义,提高对文本内容的理解能力。
3. 图像-文本匹配(Image-Text Matching)
- 目的:此任务训练模型识别图像和文本描述是否匹配,这通常用于评估模型对视觉内容和语言描述之间一致性的理解。
- 方法:提供成对的图像和文本,模型需要判断它们是否在语义上相匹配。
- 应用:这项任务有助于模型学习如何将视觉信息与语言描述相结合,对于提高图像-文本检索和视觉问答等任务的性能至关重要。
本文从ALBEF里借鉴用这三个loss训练模型以及hard negative mining的思想。例如当计算ITC contrastive loss的时候,VLMo类似CLIP模型,图像端只有图像,输入ViT,FFN都用的Vision FFN,如果用Vision Transformer Base,就是12层的一个transformer,文本端就是文本的token单独输入language model,后面用的是language expert是一个12层的BERT base,当计算ITM或者mask language modeling 的时候,模型变成fusion encoder的形式,图像和文本的一起输入multi-head self-attention(这里的self-attention与之前的self-attention和后面的self-attention都是share weights,都是一样的,不论哪个modality,自注意力的参数都不变,都是共享的)。
在前面的L-F的transformer block里,模型对视觉和language信号分别做训练,也就是分别用Vision Expert(VE)和Language Expert(LE),只有在最后的F层,才用Vision Language Expert训练。例如,如果用的是transformer base模型,前十层做VE和LE,后面做VLE,也就是后面只有两层transformer block做模态之间的融合。
多模态输入的文本生成
Flamingo
论文:《Flamingo: a Visual Language Model for Few-Shot Learning》
传统的视觉模型通常需要大量的标注数据来进行特定任务的训练和微调。然而,获取大量标注数据成本高昂且耗时。Flamingo 旨在通过少样本学习(few-shot learning)来克服这一限制,即使在只有少量示例的情况下也能快速适应新的视觉和语言任务。
输入输出示例:
多模态输入:Flamingo模型能够接收交错的视觉数据(如图像或视频)和文本作为输入。这允许模型在处理视觉信息的同时,也能够理解和生成语言。
少样本学习:图1展示了Flamingo模型如何通过少量的示例(即“shots”)快速适应各种图像和视频理解任务。例如,模型可能只看到一个或几个示例,然后就能够对新图像生成描述或回答问题。
开放式任务:Flamingo能够处理开放式任务,如视觉问答(Visual Question Answering, VQA),在这些任务中,模型被提示一个问题,并需要生成答案。例如,如果输入是一个图像和一个问题,模型将生成一个答案。
描述任务:模型还能够描述场景或事件,如图1中的“这是一个有粉红色火烈鸟的房间,有火烈鸟形状的泳池浮床”。
视觉对话:Flamingo能够参与多图像的视觉对话,如图1底部所示,模型能够根据提供的图像和对话历史生成合适的回复。
数学问题解答:图1还展示了模型能够解决简单的数学问题,如2+1=3,5+6=11等。
文本生成:Flamingo能够根据给定的文本提示生成新的文本,例如,根据提示“我喜欢阅读,我最喜欢的剧本是《哈姆雷特》。我也喜欢...”,模型生成了“...我最喜欢的书是《我父亲的梦想》”。
图像识别和描述:模型能够识别图像中的对象,并根据这些对象生成描述,如图1中的“这是一只栗鼠。它们主要在智利发现。”
方法架构:
一种视觉语言模型,它接受与图像/视频交错的文本作为输入并输出自由形式的文本。选择图中显示的关键架构组件来利用预训练的视觉和语言模型并有效地桥接它们。首先,感知器重采样器从视觉编码器(从图像或视频获得)接收时空特征并输出固定数量的视觉标记。其次,这些视觉标记用于使用新初始化的交叉注意力层来调节冻结的 LM,这些层在预训练的 LM 层之间交错。这些新层为 LM 提供了一种富有表现力的方法,以将视觉信息纳入下一个令牌预测任务。
视觉处理和感知器重采样器:
- 视觉编码器是模型的第一部分,它负责将原始视觉数据(像素)转换成特征表示。Flamingo 使用了一个预训练且冻结的 NormalizerFree ResNet(NFNet)模型作为视觉编码器。
- 紧随视觉编码器之后的是感知重采样模块,可以将感知重采样器想象成一个过滤器。它接收固定长度的预定义标记,然后使用从视频中提取的输入图像来过滤这些标记。无论输入中有多少图像,输出始终是相同固定数量的标记。这个模块采用了与 Perceiver 模型相似的架构,我们学习了一组预定义的潜在输入查询,这些查询被馈送到Transformer,并交叉关注视觉特征。
在视觉表示上调节冻结的语言模型:
将视觉信息注入预训练的语言模型。
Flamingo 模型使用了一个大型的预训练语言模型(例如,Chinchilla),这个模型在训练过程中是冻结的,即不更新其权重。这样做是为了避免在训练新任务时发生灾难性遗忘(catastrophic forgetting),即模型忘记了之前学到的知识。
在冻结的语言模型层之间,插入了新的交叉注意力层,这些层是从头开始训练的。这些层被称为 GATED XATTN-DENSE 层,它们能够将视觉信息整合到文本生成过程中。
- 这些层由两部分组成:交叉注意力(Cross-Attention)和密集前馈网络(Dense Feed-Forward Network)。交叉注意力层使用来自感知重采样模块的视觉特征作为键(keys)和值(values),而语言输入作为查询(queries)。
- GATED XATTN-DENSE 层使用了一个特殊的门控机制,通过 tanh 激活函数对新层的输出进行缩放。这个门控参数在初始化时设置为0,这意味着在训练开始时,新层的输出不会影响模型的输出,保持了冻结语言模型的完整性。
交叉注意力层使得模型能够在生成文本时考虑视觉输入,例如图像或视频内容。这允许模型生成与视觉场景相关的描述或回答视觉相关问题。
多视觉输入支持:每张图像/视频注意力掩蔽
- 为了有效处理多个视觉输入,Flamingo 使用了一种注意力掩蔽技术。这种技术通过限制模型在每个文本标记上可以看到的视觉标记的数量,来控制模型的注意力。
- 在给定的文本标记上,模型只关注在该文本标记之前出现的最后一张图像的视觉标记。这种设计允许模型专注于与当前文本标记最相关的视觉信息。
- 尽管模型在任何给定的文本标记上只直接关注一张图像,但通过语言模型中的自注意力机制,模型仍然可以隐式地依赖之前的所有图像。
在视觉和语言数据集的混合上进行训练:
在三种数据集的混合上训练Flamingo模型,这些数据集都是从网络上抓取的:从网页、图像文本对和视频文本对中提取的交错图像和文本数据集。
多目标训练与优化策略。在给定视觉输入的情况下,我们通过最小化每个数据集的预期文本负对数似然的加权和来训练我们的模型:
其中,D𝑚和𝜆𝑚分别是𝑚-th数据集及其权重。调整每个数据集的权重𝜆𝑚是性能的关键。
- 预训练过程中使用的主要损失函数是语言模型的标准交叉熵损失。模型需要预测给定上下文(包括图像和前面的文本)后的下一个词。这种训练方式使得模型能够学习如何将视觉信息融入到语言生成过程中。
- 值得注意的是,Flamingo在预训练阶段就采用了多任务学习的方法。模型不仅要学习生成与图像相关的文本,还要学习回答关于图像的问题,以及进行基于图像的对话。这种多样化的训练有助于提高模型的泛化能力。
基于few-shot上下文学习的任务适应 :
预训练完成后,Flamingo会在特定的下游任务上进行微调。这些任务可能包括视觉问答、图像描述、视觉对话等。微调过程使用的数据集通常规模较小,但针对性更强。
微调阶段的关键是采用了少样本学习(few-shot learning)的策略。研究人员发现,通过在每个任务开始时给模型几个示例(通常是8个),可以显著提高模型在新任务上的表现。这些示例被称为"in-context examples",它们帮助模型理解当前任务的具体要求和输出格式。
例如,对于视觉问答任务,一个in-context example可能包括:
- 一张图片
- 关于图片的问题
- 正确的答案
模型会先看到这些示例,然后再尝试回答新的问题。这种方法允许Flamingo快速适应新任务,而无需大量的特定任务训练数据。
BLIP
论文:《BLIP: Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation》
现有的视觉-语言预训练模型通常只在理解型任务或生成型任务上表现优异,而BLIP旨在两者上都有所突破。现有方法通过扩大从网络收集的含噪声的图文对数据集来提升性能,但这种方法得到的监督信号并不理想。
BLIP框架通过多模态混合编码器-解码器(MED)模型和数据自举方法(CapFilt),在预训练阶段生成高质量合成标题并滤除噪声,实现在多种视觉-语言任务上的统一理解和生成能力。
多模态混合编码器-解码器:
- (1) 单模态编码器,分别编码图像和文本。文本编码器与 BERT相同,其中 [CLS] 标记附加到文本输入的开头以总结句子。
- (2)基于图像的文本编码器,通过在文本编码器的每个变压器块的自我注意(SA)层和前馈网络(FFN)之间插入一个额外的交叉注意(CA)层来注入视觉信息。将特定于任务的 [Encode] 标记附加到文本中,[Encode] 的输出嵌入用作图像-文本对的多模态表示。
- (3)基于图像的文本解码器,它将基于图像的文本编码器中的双向自注意力层替换为因果自注意力层。[Decode] 令牌用于对序列的开头进行信号,并使用序列结束标记对其结尾进行信号。
![](https://i-blog.csdnimg.cn/direct/19be888fef5e4008b0802e4f2abf76c2.png)
预训练目标:在预培训期间共同优化了三个目标,其中两个是基于理解的目标,一个是基于生成的目标。每个图像-文本对只需要一次前向通过计算量较大的视觉变换器,三次前向穿过文本变换器,在文本变换器中激活不同的功能来计算三个损失,如下所述:
- 像-文本对比损失(Image-Text Contrastive Loss, ITC):通过单模态编码器对齐视觉和文本特征空间。它旨在通过鼓励正图像-文本对与负对具有相似的表示来对齐视觉转换器和文本转换器的特征空间。
- 图像-文本匹配损失(Image-Text Matching Loss, ITM):它旨在学习图像-文本多模态表示,以捕获视觉和语言之间的细粒度对齐。ITM 是一个二元分类任务,其中模型使用 ITM 头(线性层)来预测图像-文本对在给定多模态特征的情况下是否为正(匹配)或负(不匹配)。
- 语言建模损失(Language Modeling Loss, LM):训练模型生成给定图像的文本描述。它优化了交叉熵损失,它训练模型以自回归方式最大化文本的可能性。
文本编码器和文本解码器共享除 SA 层之外的所有参数。原因是编码和解码任务之间的差异最好由 SA 层捕获。特别是,编码器使用双向自注意力来为当前输入标记构建表示,而解码器使用因果自注意力来预测下一个标记。另一方面,编码和解码任务之间的嵌入层 CA 层和 FFN 函数相似,因此共享这些层可以提高训练效率,同时受益于多任务学习。
CapFilt:
用于改善从网络收集的图文对数据的质量。这个方法包含两个主要模块:标题生成器(Captioner)和过滤器(Filter)。
标题生成器(Captioner):
- 标题生成器是一个图像引导的文本解码器,它接收网络图像作为输入,并生成相应的合成文本(标题)。
- 在CapFilt过程中,标题生成器被初始化为预训练的MED模型,然后在一个小型的、人工标注的数据集(如COCO数据集)上进行微调,以优化其生成高质量标题的能力。
- 它使用 LM 目标进行微调,以解码给定图像的文本。给定网络图像
,标题器生成合成字幕
,每张图像有一个标题。
过滤器(Filter):
- 过滤器是一个图像引导的文本编码器,它的任务是从原始网络文本和标题生成器生成的合成文本中移除噪声文本。
- 过滤器同样初始化为预训练的MED模型,然后在COCO数据集上进行微调,这次是为了学习区分和过滤掉与图像不匹配的文本。
- 它使用 ITC 和 ITM 目标进行微调,以学习文本是否与图像匹配。该过滤器删除了原始 Web 文本
和合成文本
中的嘈杂文本,如果 ITM 头部将其预测为与图像不匹配,则认为文本有噪声。
数据自举过程:
- 使用标题生成器为网络图像生成合成标题,每个图像生成一个标题。
- 使用过滤器评估原始网络文本和合成文本,移除那些与图像不匹配的噪声文本。过滤器通过预测文本是否与图像匹配来决定是否保留某条文本。
数据集形成:过滤器筛选后的图像-文本对与高质量的人工标注图像-文本对结合起来,形成一个新的、更干净、更高质量的数据集。
BLIPV2
论文:《BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models》
解决的问题:BLIP-2旨在解决视觉-语言模型在预训练期间的高计算成本问题,尤其是在使用大规模模型和数据集进行端到端训练时。此外,它还解决了在冻结大型语言模型(LLMs)的情况下,如何有效地进行视觉-语言对齐的挑战。
创新点:
- 两阶段预训练策略:BLIP-2提出了一个新颖的两阶段预训练方法,首先从冻结的图像编码器中学习视觉-语言表示,然后利用冻结的语言模型进行视觉到语言的生成学习。
- 轻量级查询变换器(Q-Former):Q-Former是一个轻量级的变换器,使用一组可学习的查询向量从冻结的图像编码器中提取视觉特征,作为冻结图像编码器和冻结LLM之间的信息瓶颈。
第一阶段:联合优化三个目标,强制查询(一组可学习的嵌入)以提取与文本最相关的视觉表示
Q-Former:一个轻量级的Transformer,负责在冻结的图像编码器和冻结的大型语言模型(LLM)之间进行有效的跨模态对齐和信息提取。Q-Former由两部分组成:图像变换器和文本变换器,它们共享自注意力层。图像变换器与冻结的图像编码器交互提取视觉特征,而文本变换器既可以作为文本编码器也可以作为文本解码器使用。Q-Former使用一组可学习的查询向量作为输入,这些查询通过自注意力层交互,并与冻结图像特征通过交叉注意力层交互。查询还可以通过自注意力层与文本交互。
预训练Q-Former:使用图像-文本对进行预训练,以便查询可以学习提取文本信息量最大的视觉表示。和BLIP的预训练方式一样,采用三种训练方法
- 图像-文本对比学习(Image-Text Contrastive Learning, ITC):通过最大化正样本对的图像和文本表示之间的相似度,同时最小化负样本对之间的相似度来学习图像和文本的对齐。使用单模态自注意力掩码,查询和文本不能相互看见,以避免信息泄露。使用对比损失来优化图像和文本表示之间的相似度。
- 图像引导的文本生成(Image-grounded Text Generation, ITG):Q-Former需要根据输入图像生成描述性文本,这迫使查询向量提取所有对生成文本至关重要的视觉信息。使用多模态因果自注意力掩码,查询可以相互看见但不能看见文本,而文本可以看见所有查询和之前的文本,以支持文本生成。使用语言模型损失来训练Q-Former生成文本。
- 图像-文本匹配(Image-Text Matching, ITM):这是一个二分类任务,模型需要预测给定的图像-文本对是否匹配(正样本)或不匹配(负样本)。使用双向自注意力掩码,查询和文本可以相互看见,以捕获更细粒度的图像和文本之间的对齐。使用二元交叉熵损失来训练模型区分匹配和不匹配的图像-文本对。
第二阶段:进一步优化Q-Former,使其能够将从图像编码器提取的视觉特征有效地转换为对LLM有用的视觉提示,从而提高模型在视觉到语言任务上的生成能力。
![](https://i-blog.csdnimg.cn/direct/a68dbc1106d14fe3a44468886100e078.png)
Q-Former的输出作为视觉提示,通过全连接层转换后,将投影的查询嵌入添加到输入文本嵌入中。它们充当软视觉提示,它根据Q-Former提取的视觉表示来调节LLM。
BEIT3
旨在解决视觉和视觉-语言任务中模型预训练的问题,特别是在大规模数据上进行预训练以便于模型迁移到各种下游任务。
从三个方面推动了大型融合模型的发展:主干架构、预训练任务和模型扩展。
主干网络:多路Transformer(Multiway Transformers)
- 多路Transformer是BEIT-3的主干网络,用于编码不同的模态(如图像、文本和图像-文本对)。
- 每个Transformer块由一个共享的自注意力模块和多个前馈网络(即模态专家)组成,用于处理不同模态的输入。
- 根据输入的模态,将每个输入标记路由到相应的专家。
- 实现中,每层包含视觉专家和语言专家,并且在顶层还包含视觉-语言专家,用于融合编码器。
预训练任务:遮蔽数据建模(Masked Data Modeling)
- 采用统一的遮蔽数据建模目标对单模态(图像和文本)和多模态数据(图像-文本对)进行预训练。
- 在预训练过程中,随机遮蔽一定比例的文本标记或图像块,并训练模型恢复这些被遮蔽的标记。
- 使用SentencePiece tokenizer对文本数据进行标记化,图像数据则使用BEIT v2的tokenizer来获取离散的视觉标记。
模型扩展
- 遵循通用的模型扩展原则,通过增加模型大小和数据量来提高模型的泛化能力。
- BEIT-3模型包含40层Transformer,具有1408的隐藏尺寸和6144的中间尺寸,共有16个注意力头。
- 模型总共包含19亿参数,包括视觉专家、语言专家和视觉-语言专家的参数。
多模态输入的多模态输出
CoDi
现有的多模态模型在现实世界中应用受限,因为它们通常只能生成单一模态,并且在多模态共存和交互的环境中,串联生成模型的每一步的生成能力受到限制。此外,独立生成的单模态流在后期处理中拼接时无法保持一致和对齐(例如同步视频和音频)。因此,研究者提出了开发一种能够从任何输入条件生成任何模态组合的全面且多功能模型的需求。
首先,对每种模态(文本、图像、视频、音频)分别训练一个潜在扩散模型,这些模型可以独立地学习将数据去噪并生成高质量的输出。
第一阶段:组合条件训练,给每个模态都打造一个潜在扩散模型(LDM),进行组合训练。
针对A模态生成B模态数据集缺失的问题,作者们提出了一种名为桥接对齐(Bridging Alignment)的策略。具体来说,就是以带文本模态的数据集为“中介”,对齐另外几种模态的训练效果。
以音频生成图像为例:
虽然音频生成图像数据集不多,但文本生成音频、文本生成图像的数据集却有不少,因此可以将这两类数据集合并起来,用于训练文本+音频生成图像的效果。
在此期间,文本和音频输入经过模型处理,会被“放置”进一个共享特征空间,并用输出LDM来处理输入输入的组合特征,输出对应的图像结果。
第二阶段:进一步增加生成的模态数量。
在阶段一的基础上,给每个潜在扩散模型和环境编码器上增加一个交叉注意力模块,就能将潜在扩散模型的潜变量投射到共享空间中,使得生成的模态也进一步多样化。
推理阶段:
NExT-GPT
NExT-GPT 包括三个主要阶段:多模态编码、LLM 理解和推理、多模态生成。利用现有的高性能编码器和解码器,通过微调输入投影层和输出投影层来实现特征对齐。此外,通过 LoRA 技术对整体系统进行指令调整,更新了输入和输出投影层以及某些 LLM 参数。
轻量级多模态对齐学习:通过轻量级的方法实现不同模态之间的特征对齐,确保模型能够流畅地理解不同输入模态的语义。分为编码端和解码端的对齐
编码端的LLM中心多模态对齐:
- 目的:为了确保不同模态的特征能够有效地被语言模型(LLM)理解,需要进行特征空间的对齐。
- 方法:使用现有的多模态编码器生成的基于网格的特征(例如图像、音频或视频),并通过线性层将它们投影到文本特征空间,使其能够被LLM理解。
- 分组机制(Grouping Mechanism):设计了一种可学习的“概念令牌”(concept tokens),通过分组机制将网格级特征聚合成语义概念令牌,然后将这些概念表示输入LLM。这种方法的灵感来自于直观的语言令牌通常包含不同的概念。
解码端的指令跟随对齐:
- 目的:为了使解码器能够根据LLM的输出指令生成相应的多模态内容,需要在解码端进行指令跟随的对齐。
- 方法:使用特殊的信号令牌(例如 '[IMGi]'、'[AUDi]' 和 '[VIDi]'),这些令牌隐式地携带了丰富的指令信息,用于指导下游的扩散模型生成适当的图像、视频或音频。
- 对齐训练:在对齐训练阶段,使用来自不同数据集的标题作为输入,并将它们与信号令牌的输出连接起来。损失函数包括三个关键部分:生成信号令牌的负对数似然、LLM产生的信号令牌与扩散模型中的条件文本表示之间的l2距离,以及条件潜在去噪损失。
对齐方法:
- 条件扩散模型:使用预训练的条件扩散模型来生成图像、音频或视频。这些模型仅接受文本条件作为输入。
- 信号令牌的表示:LLM 输出的信号令牌通过 Transformer 层进行处理,以生成与扩散模型兼容的表示。
- 最小化距离:通过最小化信号令牌表示与扩散模型的条件文本表示之间的距离,加速对齐学习过程。