万字长文总结多模态大模型最新进展(Modality Bridging篇)

4d1d98db1448cd6b4cfbb96077fce882.gif

多模态大型语言模型(MLLM)最近已成为一个新兴的研究热点,它将强大的大型语言模型(LLMs)作为大脑来执行多模态任务。MLLM 的惊人新能力,如基于图像撰写故事和无 OCR 的数学推理,在传统方法中很少见,这表明了通向通用人工智能的潜在路径。

通常人们会在 pair 数据上进行大规模(相对于 instruction tuning)的预训练,以促进不同模态之间的对齐。对齐数据集通常是图像文本对或自动语音识别(ASR)数据集,它们都包含文本。

更具体地说,图像文本对以自然语言句子的形式描述图像,而 ASR 数据集包含语音的转录。对齐预训练的常见方法是保持预训练模块(例如视觉编码器和 LLMs)冻结,并训练一个可学习的接口,本文调研了到近期位置不同的接口设计以及学习方法相关的文章。

40b03f19427ebd4931e5ff8015675916.png

Flamingo

论文标题:

Flamingo: a Visual Language Model for Few-Shot Learning

论文链接:

https://arxiv.org/abs/2204.14198

cc11aaa9150e2110cd707fa545fcb168.png

总的来说,首先,Perceiver Resampler 接收来自视觉编码器的时空特征(从图像或视频获取),并输出固定数量的视觉标记。其次,这些视觉标记用于通过新初始化的交叉注意力层对冻结的语言模型进行条件化,这些层被插入到预训练的语言模型层之间。这些新层为语言模型提供了一种表达方式,以便将视觉信息纳入到下一个标记预测任务中

1.1 Visual processing and the Perceiver Resampler

视觉编码器:是一个预训练并冻结的 Normalizer-Free ResNet(NFNet),使用 Radford 等人提出的 two-term contrastive loss,在图像和文本对数据集上对视觉编码器进行对比目标的预训练。使用最终阶段的输出,即一个二维空间网格的特征,将其压平为一个一维序列。

对于视频输入,帧以 1 FPS 进行采样并独立编码,以获得一个三维时空特征网格,然后将学习到的时间嵌入添加到其中。特征然后被压平为一维,然后输入到 Perceiver Resampler 中。

995ee1b235dba7ccb92910dce401b8f8.png

▲ Perceiver Resampler 模块将由 Vision Encoder 输出的可变大小的时空视觉特征网格映射到固定数量的输出标记(图中为五个),与输入图像分辨率或输入视频帧数无关。这个 transformer 具有一组学习到的潜在向量作为查询,而键和值则是由时空视觉特征与学习到的潜在向量的连接组成。

Perceiver Resampler:从不同大小的大型特征图到少量视觉标记。这个模块将视觉编码器连接到冻结的语言模型,如上图所示。它以视觉编码器中的图像或视频特征的可变数量作为输入,并产生固定数量的视觉输出(64 个),从而降低了视觉-文本交叉注意力的计算复杂度。

类似于 Perceiver 和 DETR,本文学习了预定义数量的潜在输入查询,这些查询被输入到一个 Transformer 中,并对视觉特征进行交叉关注。消融研究中展示了使用这样一个视觉-语言重采样模块优于一个普通的 Transformer 和一个 MLP。

1.2 GATED XATTN-DENSE details

3d35f64ef0762448c5bb16c92c2f99b2.png

上图提供了一个 GATED XATTN-DENSE 块的示意图,以及它与一个冻结的 LM 块的连接方式,同时附上了伪代码。下图绘制了 Flamingo-3B 模型的 24 个 LM 层在训练过程中(从 0% 到 100%)不同层中 tanh 门控值的绝对值的演变。冻结的 LM 堆栈的所有层似乎都利用了视觉信息,因为 tanh 门控的绝对值从其 0 初始化中迅速增长。

我们还注意到,绝对值似乎随着深度增加而增加。然而,从这个观察中很难得出强有力的结论:门控之前的激活的规模也可能随着深度变化。未来的工作需要更好地理解这些添加层对优化动态和模型本身的影响。

3b4969e8b0adbef80d1f3c02b5c56b57.png

1.3 Multi-visual input support

21be7ed890124f8c480d83c914997b0a.png

▲ 首先通过在文本中的视觉数据位置插入 image 标签以及特殊标记 BOS 表示“序列开始”或 EOC 表示“块结束”)来处理文本。图像由 Vision Encoder 和 Perceiver Resampler 独立处理,以提取视觉标记。在给定的文本标记处,模型仅与最后一个前导图像/视频对应的视觉标记进行交叉关注。𝜑 指示文本标记可以关注的图像/视频,或者在没有前导图像/视频时为 0

上图说明了本文使用的 mask 方法,以限制某个文本标记看到的视觉标记数量。我们还对图像/视频和文本的交错序列的符号化进行了规范化。交错的视觉数据和文本序列。我们考虑交错的图像/视频和文本示例:每个示例包含一系列文本 𝑦,一系列图像/视频 𝑥,以及图像在文本中的位置序列。

基于视觉数据的位置,我们定义一个函数 𝜑 : [1, 𝐿] ↦ → [0, 𝑁 ],它为每个文本位置分配最后一个出现在该位置之前的图像/视频的索引(或者如果该位置之前没有视觉数据,则为 0)。函数 𝜑 定义了我们考虑用于预测的标记 的可用视觉输入:前面的标记 .

1.4 训练细节

1. 训练数据集由不同格式的训练数据集混合而成。去除交错的图像文本数据集 M3W 导致性能下降超过 17%,而去除传统的配对图像文本对也会导致性能下降(下降 9.8%),这表明需要不同类型的数据集。

fde600f9956c8d417135603c9bb6fb39.png

2. 冻结 LM 组件可以防止灾难性遗忘。如果从头开始训练,我们观察到性能大幅下降了-12.9%。有趣的是,微调我们预训练的 LM 也导致了性能下降了-8.0%。

3. 数据集加权。M3W、ALIGN、LTIP 和 VTP,其权重分别为 1.0、0.2、0.2 和 0.03。这些权重是在小模型规模下经验性地获得的,并且在之后保持不变。

0a570b37f6ff2baa8d3893ff678b9ae5.png

BLIP-2

论文标题:

BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models

论文链接:

https://arxiv.org/abs/2301.12597

83a68d4e2d8f31d9b5a267e81f423c1b.png

▲ BLIP-2 框架概述。我们通过一个两阶段策略预训练轻量级的查询 Transformer,以弥合模态差距。第一阶段从冻结的图像编码器中引导视觉-语言表示学习。第二阶段从冻结的 LLM 中引导视觉到语言的生成学习,这使得零样本指导的图像到文本生成成为可能。

LLM 本质上是个语言模型,自然无法直接接受其他模态的信息。所以如何把各个模态的信息,统一到 LLM 能理解的特征空间,就是第一步要解决的问题。为此,作者提出了 Q-Former。

e617bda251fc02df335025e3979f529a.png

▲(左)Q-Former 和 BLIP-2 的第一阶段视觉-语言表示学习目标的模型架构。我们共同优化三个目标,这些目标强制查询(一组可学习的嵌入)提取与文本最相关的视觉表示。(右)每个目标的自注意力屏蔽策略,以控制查询-文本交互。

Learned Query 的引入在这里至关重要。可以看到这些 Query 通过 Cross-Attention 与图像的特征交互,通过 Self-Attention 与文本的特征交互。这样做的好处有两个:

1. 这些 Query 是基于两种模态信息得到的;

2. 无论多大的视觉 Backbone,最后都是 Query 长度的特征输出,大大降低了计算量。

比如在实际实验中,ViT-L/14 的模型的输出的特征是 257x1024 的大小,最后也是 32x768 的 Query 特征。针对 Q-Former 的三个训练任务分别是 Image-Text Contrastive Learning(ITC),Image-grounded Text Generation(ITG),Image-Text Matching(ITM)。

第一阶段,对于模型的训练,就是由以上三个任务组成,通过这几个任务,实现了对于特征的提取与融合。但现在模型还没见过 LLM。我们现在用传感器完成了数据的提取与融合,下一步,我们得把数据转换成处理器能识别的格式。

a0505ebda9826b02a0128d5b386f7b8c.png

▲ BLIP-2 的第二阶段视觉到语言生成预训练,从冻结的大型语言模型(LLM)中引导。(顶部)引导基于解码器的 LLM(例如 OPT)。(底部)引导基于编码器-解码器的 LLM(例如 FlanT5)。全连接层从 Q-Former 的输出维度调整到所选 LLM 的输入维度。

通过第一阶段的训练,Query 已经浓缩了图片的精华,现在要做的,就是把 Query 变成 LLM 认识的样子。这里作者针对两类不同 LLM 设计了不同的任务:

Decoder 类型的 LLM(如 OPT):以 Query 做输入,文本做目标;Encoder-Decoder 类型的 LLM(如 FlanT5):以 Query 和一句话的前半段做输入,以后半段做目标;

为了适合各模型不同的 Embedding 维度,作者引入了一个 FC 层做维度变换。

训练细节

作为图文预训练的工作,工程问题往往是关键。BLIP2 的训练过程主要由以下几个值得关注的点:

  1. 训练数据方面:包含常见的 COCO,VG,SBU,CC3M,CC12M 以及 115M的LAION400M中的图片。采用了BLIP中的CapFilt方法来 Bootstrapping 训练数据。

  2. CV 模型:选择了 CLIP 的 ViT-L/14 和 ViT-G/14,特别的是,作者采用倒数第二层的特征作为输出。

  3. 训练时,CV 模型和 LLM 都是冻结的状态,并且参数都转为了 FP16。这使得模型的计算量大幅度降低。主要训练的基于 BERT-base 初始化的 Q-Former 只有 188M 的参数量。

f18b70603ef11a4a404e46e1ba5deed3.png

InstructBLIP

论文标题:

InstructBLIP: Towards General-purpose Vision-Language Models with Instruction Tuning

论文链接:

https://arxiv.org/abs/2305.06500

af5da83dd9909d01edab18894cd390da.png

▲ InstructBLIP 的模型架构。Q-Former 从冻结的图像编码器的输出嵌入中提取了指示感知的视觉特征,并将这些视觉特征作为软提示输入馈送给冻结的 LLM。我们使用语言建模损失对模型进行指令调整,以生成响应。

视觉编码器提取输入图片的特征,并喂入 Q-Former 中。此外,Q-Former 的输入还包括可学习的 Queries(BLIP-2 的做法)和 Instruction。Q-Former 的内部结构黄色部分所示,其中可学习的 Queries 通过 Self-Attention 和 Instruction 交互,可学习的 Queries 通过 Cross-Attention 和输入图片的特征交互,鼓励提取与任务相关的图像特征。

Q-Former 的输出通过一个 FC 层送入 LLM,Q-Former 的预训练过程遵循 BLIP-2 的两步:1)不用 LLM,固定视觉编码器的参数预训练 Q-Former 的参数,训练目标是视觉语言建模。2)固定 LLM 的参数,训练 Q-Former 的参数,训练目标是文本生成。

在推理的时候,对于大部分数据集,如 image captioning,open-ended VQA 等&#x

  • 8
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值