VLM(视觉语言模型)综述

news2024/11/16 19:43:40

概述

大型语言模型的出现标志着人工智能领域转型的开始,它们在文本信息处理上的能力极大地推动了这一进程。尽管LLMs在文本处理上表现出色,但它们主要限于处理单一模态的数据,即文本。这限制了它们在理解和生成涉及图像和视频等多模态数据方面的能力。自然智能能够处理多种模态的信息,包括书面和口头语言、图像的视觉解释以及视频的理解。为了使人工智能系统具有类似人类的认知功能,它们必须也能够处理多模态数据。

为了克服LLMs的局限性,研究人员开发了视觉-语言模型(VLMs)。这些模型结合了视觉和文本信息,展示了在理解和生成涉及图像和文本的内容方面的卓越能力。

VLM的应用

  1. 图像字幕生成:VLMs可以自动为图像生成描述性文字,这在社交媒体、内容管理和辅助视觉障碍人士方面非常有用。

  2. 视觉问答(VQA):VLMs能够理解自然语言问题并根据图像内容提供答案,这项技术可以用于教育软件、虚拟助手和交互式客户服务系统。

  3. 图像检索:通过理解和索引图像内容及其相关文本,VLMs可以用于改进图像搜索技术,提供更准确和相关的搜索结果。

  4. 内容创作:VLMs可以根据给定的文本描述生成图像或视频,这对于艺术创作、游戏设计和电影制作等领域具有创新性的影响。

  5. 自动翻译和语言学习:VLMs可以帮助翻译多模态内容,例如带有图像说明的文档,同时也能够辅助语言学习应用,提供视觉辅助学习材料。

  6. 医疗影像分析:在医疗领域,VLMs可以辅助医生分析医学影像,并结合相关病例报告或临床笔记,以支持诊断过程。

  7. 自动驾驶:VLMs可以整合视觉传感器数据和语言指令,帮助自动驾驶系统更好地理解周围环境并做出决策。

  8. 文档理解:VLMs可以处理包含混合媒体的文档,如带有图表或图像的科学论文,以提取关键信息和洞见。

  9. 增强现实(AR)和虚拟现实(VR):在AR和VR应用中,VLMs可以提供对用户视觉和语言输入的更深层次理解,从而创造更丰富的交互体验。

  10. 社交媒体分析: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)来克服这一限制,即使在只有少量示例的情况下也能快速适应新的视觉和语言任务。

输入输出示例:

  1. 多模态输入:Flamingo模型能够接收交错的视觉数据(如图像或视频)和文本作为输入。这允许模型在处理视觉信息的同时,也能够理解和生成语言。

  2. 少样本学习:图1展示了Flamingo模型如何通过少量的示例(即“shots”)快速适应各种图像和视频理解任务。例如,模型可能只看到一个或几个示例,然后就能够对新图像生成描述或回答问题。

  3. 开放式任务:Flamingo能够处理开放式任务,如视觉问答(Visual Question Answering, VQA),在这些任务中,模型被提示一个问题,并需要生成答案。例如,如果输入是一个图像和一个问题,模型将生成一个答案。

  4. 描述任务:模型还能够描述场景或事件,如图1中的“这是一个有粉红色火烈鸟的房间,有火烈鸟形状的泳池浮床”。

  5. 视觉对话:Flamingo能够参与多图像的视觉对话,如图1底部所示,模型能够根据提供的图像和对话历史生成合适的回复。

  6. 数学问题解答:图1还展示了模型能够解决简单的数学问题,如2+1=3,5+6=11等。

  7. 文本生成:Flamingo能够根据给定的文本提示生成新的文本,例如,根据提示“我喜欢阅读,我最喜欢的剧本是《哈姆雷特》。我也喜欢...”,模型生成了“...我最喜欢的书是《我父亲的梦想》”。

  8. 图像识别和描述:模型能够识别图像中的对象,并根据这些对象生成描述,如图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] 令牌用于对序列的开头进行信号,并使用序列结束标记对其结尾进行信号。
BLIP的预训练模型体系结构和目标(相同的参数具有相同的颜色)。提出了编码器-解码器的多模态混合,这是一种统一的视觉语言模型,可以在三种功能之一中运行:(1)单模态编码器使用图像-文本对比 (ITC) 损失进行训练,以对齐视觉和语言表示。(2) 基于图像的文本编码器使用额外的交叉注意力层来模拟视觉语言交互,并使用图像文本匹配 (ITM) 损失进行训练,以区分正负图像-文本对。(3)基于图像的文本解码器将双向自注意力层替换为因果自注意力层,并与编码器共享相同的交叉注意力层和前馈网络。解码器使用语言建模 (LM) 损失进行训练,以生成给定图像的标题。

 预训练目标:在预培训期间共同优化了三个目标,其中两个是基于理解的目标,一个是基于生成的目标。每个图像-文本对只需要一次前向通过计算量较大的视觉变换器,三次前向穿过文本变换器,在文本变换器中激活不同的功能来计算三个损失,如下所述:

  • 像-文本对比损失(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 目标进行微调,以解码给定图像的文本。给定网络图像 I_{w},标题器生成合成字幕 T_{s},每张图像有一个标题。

过滤器(Filter)

  • 过滤器是一个图像引导的文本编码器,它的任务是从原始网络文本和标题生成器生成的合成文本中移除噪声文本。
  • 过滤器同样初始化为预训练的MED模型,然后在COCO数据集上进行微调,这次是为了学习区分和过滤掉与图像不匹配的文本。
  • 它使用 ITC 和 ITM 目标进行微调,以学习文本是否与图像匹配。该过滤器删除了原始 Web 文本 I_{w} 和合成文本 T_{s} 中的嘈杂文本,如果 ITM 头部将其预测为与图像不匹配,则认为文本有噪声。

数据自举过程

  • 使用标题生成器为网络图像生成合成标题,每个图像生成一个标题。
  • 使用过滤器评估原始网络文本和合成文本,移除那些与图像不匹配的噪声文本。过滤器通过预测文本是否与图像匹配来决定是否保留某条文本。

数据集形成:过滤器筛选后的图像-文本对与高质量的人工标注图像-文本对结合起来,形成一个新的、更干净、更高质量的数据集。

 BLIPV2

论文:《BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models》

解决的问题:BLIP-2旨在解决视觉-语言模型在预训练期间的高计算成本问题,尤其是在使用大规模模型和数据集进行端到端训练时。此外,它还解决了在冻结大型语言模型(LLMs)的情况下,如何有效地进行视觉-语言对齐的挑战。

创新点

  1. 两阶段预训练策略:BLIP-2提出了一个新颖的两阶段预训练方法,首先从冻结的图像编码器中学习视觉-语言表示,然后利用冻结的语言模型进行视觉到语言的生成学习。
  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有用的视觉提示,从而提高模型在视觉到语言任务上的生成能力。

(上)引导基于解码器的LLM(例如OPT)。(下)引导基于编码器-解码器的LLM(例如FlanT5)。全连接层从 Q-Former 的输出维度适应所选 LLM 的输入维度。

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 层进行处理,以生成与扩散模型兼容的表示。
  • 最小化距离:通过最小化信号令牌表示与扩散模型的条件文本表示之间的距离,加速对齐学习过程。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2090680.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

最新华为OD机试-E卷-流浪地球(100分)-五语言题解(Python/C/JavaScript/Java/Cpp)

🍭 大家好这里是春秋招笔试突围 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-E/D卷的三语言AC题解 💻 ACM金牌🏅️团队| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 🍿 最新华为OD机试D卷目录,全、新、准,题目覆盖率达 95% 以上,…

XSS LABS - Level 20 过关思路

关注这个靶场的其他相关笔记:XSS - LABS —— 靶场笔记合集-CSDN博客 0x01:环境配置 提示:Flash 逆向工具 JPEXS 配置请看 Level 19 的过关流程,这里就不重新教怎么安装配置了。 要想完成本关,需要下载 Flash,不然就会出现下面的情况: 我个人建议,是直接下载一个 Flash…

HUD杂散光环境模拟测试设备

概述 HUD(Head-Up Display)杂散光环境模拟测试设备是用于模拟飞行器在实际运行过程中可能遇到的多种光照环境的系统。它主要用于测试和验证HUD显示系统的性能,确保其能在各种光线条件下清晰、准确地显示信息,从而保障飞行员在复杂…

学习C语言(19)

整理今天的学习内容 1.memmove使用和模拟实现 void* memmove (void* destination,const void* source,size_t num); 和momcpy的差别是memmove函数处理的源内存块和目标内存块是可以重叠的 memmove的模拟实现: 2.mem…

程序批量卸载工具 | BCUninstaller v5.8.1 绿色版

大家好,今天电脑天空给大家推荐一款强大的Windows软件卸载工具——Bulk Crap Uninstaller(BCUninstaller)。如果你经常需要安装和卸载软件,那么这款工具绝对值得你一试。以下是我在使用BCUninstaller的一些心得分享,希…

具备自动灵敏度校准、支持单键和多点触控的触摸芯片-GTX315L

电容式触摸芯片 - GTX315L是具有多通道触发传感器的15位触摸传感器系列,它是通过持续模式提供中断功能和唤醒功能,具备自动灵敏度校准、超强抗干扰能力,可抗特斯拉(小黑盒)线圈干扰,支持单键/多点触控&…

CN05.1,NDVI,CMIP6及TIFF图像数据处理方法合集

笔记链接: 数据处理数据集:https://www.wolai.com/aKjMiRrEk6C3WG4Yg8rYiz需要登录wolai才能查看,用于个人学习记录。

五,Spring Boot中的 Spring initializr 的使用

五,Spring Boot中的 Spring initializr 的使用 文章目录 五,Spring Boot中的 Spring initializr 的使用1. 方式1:IDEA创建2. 方式2:start.spring.io 创建3. 注意事项和细节4. 最后: 需要:使用 Spring initi…

我的私有云-IOT定位/追踪系统

目录 1. 说明 2 完成后的效果 2.1 实时定位 2.2 轨迹重现 2.3 设备美照 3. 项目设计 3.1 系统拓扑图​编辑 3.2 技术选型 3.3 消息订阅处理架构图 3.4 frp服务在线监控​编辑 4. 实施 4.1 数据模型 - DeviceLocation 4.2 数据报规格定义 订阅主题 数据报格式 …

ARM32开发——(二十三)存储器介绍

1. 存储器分类 存储器按其存储介质特性主要分为“易失性存储器”和“非易失性存储器”两大类。 “易失/非易失”是指存储器断电后, 它存储的数据内容是否会丢失的特性。 在计算机中易失性存储器最典型的代表是内存,非易失性存储器的代表则是硬盘。 2.…

互联网全景消息(2)之RabbitMq高阶使用

一、RabbitMQ消息可靠性保障 消息的可靠性投递是使用消息中间件不可避免的问题,不管是Kafka、rocketMQ或者是rabbitMQ,那么在RabbitMQ中如何保障消息的可靠性呢? 首先来看一下rabbitMQ的 架构图: 首先从图里我们可以看到&#xff…

python发现是anaconda的,而不是原来的编译环境

发现有三个python编译器。 可以检查一下环境变量,把原来的python编译器版本上移到anaconda的python编译器之前。这样每次在终端使用python命令就是原来的python编译器版本了

基于Docker搭建Graylog分布式日志采集系统

文章目录 一、简介二、Graylog1、主要特点2、组件3、工作流程介绍4、使用场景 三、Graylog 安装部署1、 安装 docker2、安装docker compose3、 安装graylog4、Graylog控制台 四、springboot集成Graylog 一、简介 Graylog是一个开源的日志管理工具,主要功能包括日志…

c++中的匿名对象及内存管理及模版初阶

c中的匿名对象 A a;//a的生命周期在整个main函数中 a.Sum(1); //匿名对象生命周期只有一行,只有这一行会创建对象,出了这一行就会调析构 A().Sum(1);//只有这一行需要这个对象,其他地方不需要。 return 0; 日期到天数的转换 计算日期到天数转换_牛客…

解读GaussianTalker:利用音频驱动的基于3D高斯点染技术的实时高保真讲话头像合成

单位:首尔大学 项目地址:https://ku-cvlab.github.io/GaussianTalker/ github:https://github.com/KU-CVLAB/gaussiantalker 本文是对GaussianTalker的解读,欢迎大家阅读指正! 目录 前言摘要一、背景介绍二 相关工作三…

拼多多Temu半托管和全托管对比

根据东吴证券报告显示,与全托管相比,半托管给予商家更灵活的物流选择,允许商家自行负责仓配物流;与传统3P模式相比,半托管仍保留平台核价、平台负责营销售后客服等特点。 Temu 最开始采用全托管模式,但随着…

【C++ Primer Plus习题】7.6

问题: 解答: #include <iostream> using namespace std;#define SIZE 20int Fill_array(double* arr, int len) {int i 0;for (i 0; i < len; i){cout << "请输入值:";cin >> arr[i];if (cin.fail()){cout << "输入非法数字,结束…

.NET中分布式服务

单体架构 特点&#xff1a; 所有的功能集成在一个项目工程中。所有的功能打在一个安装包。 优点&#xff1a; 项目架构简单。开发效率高。容易打包。 缺点&#xff1a; 全部功能集成在一个工程中&#xff0c;如果要更新&#xff0c; 所有的都要重新发布版本迭代速度逐渐变…

C#笔记4 详细解释事件及其原型、匿名方法和委托的关系

匿名方法 定义 匿名方法允许一个与委托关联的代码被内联的写入使用委托的位置。 语法形式 delegate(参数列表) {代码块 } 前文说过&#xff0c;委托是定义了一个公司&#xff0c;公司专门承接某一类型的任务。 委托的实例化就是公司把任务交给了具体的职员&#xff08;方…

【React】从零开始搭建 react 项目(初始化+路由)

创建 React 项目 创建项目的方式&#xff1a;create-react-app 项目名称 如果没有安装 react 脚手架&#xff0c;请先安装 npm isntall create-react-app -g安装成功后&#xff0c;开始配置项目 配置项目的 icon 和标题 配置 jsconfig.json 目的&#xff1a;用于配置 Java…