编辑
2023-05-27
论文阅读
0
请注意,本文编写于 342 天前,最后修改于 342 天前,其中某些信息可能已经过时。

目录

BLIP、BLIP2模型以及InstructBLIP应用 - 论文阅读
BLIP
1. 主要解决的问题和思路
2. 模型
2.1 模型结构
2.2 模型模型训练目标
2.3 CapFilt模块
3. 对于不同任务使用不同的模型形式
4. 模型优点
BLIP2
1. 主要处理的问题和思路
2 模型
2.1 模型架构
2.2 模型模型训练目标
InstructBLIP
1. 主要处理的问题和思路
2 模型
2.1 模型架构
参考文献

BLIP、BLIP2模型以及InstructBLIP应用 - 论文阅读

前两个都是VLP(Vision-Language Pre-training)领域的架构,而后一个都是在之前一定基础上做的应用。BLIPBLIP2名字相似,但是思路并不一样。BLIP是从训练数据角度出发,通过对训练数据的提纯、增强,来达到提高训练效果;BLIP2是提出一种新的架构,通过利用现有的视觉大模型和语言大模型,提出Q-Former模块来解决两种模态间的隔阂,而InstructBLIP是在BLIP2的基础上,对输入的数据进行结构化,形成一种指令输入序列,其对26个数据集进行转换操作,从而达到不修改BLIP2的架构的情况下,实现VLP下各种任务的统一。

BLIP

1. 主要解决的问题和思路

该论文任务现在的VLP模型都是在大量web data(image-text pair) with noisy下训练出来的大模型,这是不是最优的训练数据。又由于人工标注数据是非常昂贵的,所以提出了BLIP模型。BLIP模型通过两个步骤完成图片相关的文本标注操作:captionerfilter。前者针对图像信息生成合成的标题(字幕),再通过后者从原始的text和合成的text中选择其中噪音多的一个去除掉,以此达到数据的优化,从而训练得到更好的模型。

2. 模型

2.1 模型结构

BLIP模型架构

这个模型有两部分组成:

  1. Image Encoder: 使用的ViT作为图片编码器,目的是把图片信息转化成embedding。采用这个方法的原因:更便于计算,并且大部分其他架构都使用。

    需要注意的一点是,[CLS]作为一个全局图像特征的表征的开始,其被添加到图像patch的前面。代码中体现如下: CLS被添加的代码实现

  2. Multimodal mixture of encoder-decoder(MED) 组成

    • Unimodal Encoder: 和BERT相同的文本编码器

      [CLS]作为文本输入的开始token。

    • Image-grounded Text Encoder: 接受文本和图像信息,其中文本信息被SA处理,图像信息和处理后的文本信息被CA处理。

      [Encode] token被添加到文本token的前面,[Encode]embedding作为图像文本对的多模态表征。

    • Image-grounded Text Decoder: 使用Causal Self-Attention代替Bi Self-Attention

      [Decode]被添加到文本序列的开始,表示一个序列的开始信号。

注意:文本编码器和文本解码器除了SA模块,其他模块都共享所有参数。换句话说就是,除了SA不同,其他的都是相同的,根据不同任务,可以通过即插即用的方式处理SA从而实现特定任务。

2.2 模型模型训练目标

  1. ITC(image-text contracstive learning): 用来对齐文本和视觉特征空间。
  2. ITM(image-text matching): 用来学习文本图像对的多模态表示,其可以捕捉文本和图像之间的细粒度对齐。

    这是个二分类任务(binnary classsification task),输出文本和图像是否匹配 论文中使用the hard negative mining strategy:具有较高对抗相似度的负数据集对更有可能被选择来计算损失。

  3. LM(image conditioned language modeling): 这个主要是用来生成符合给定图像的文本描述。

    使用交叉熵损失(cross entropy loss)。计算该损失时使用了标签平滑(0.1)的方法 这是使用LM,而不是用MLM的原因是为了提高模型的泛化能力

2.3 CapFilt模块

CapFilt模块

这个模块的作用就是处理数据,使数据更纯净,没有噪音。基本思路就是通过少量的人工标注数据训练模型生成标签(标题/字幕)。

两部分组成:

  1. captioner: 给定一个web图像,生成对应的caption。
  2. filter: 去除原始web文本TwT_w和合成文本TsT_s中的噪声文本,其中,如果ITM head预测文本与图像不匹配,则认为文本是噪声的。

3. 对于不同任务使用不同的模型形式

tasks

4. 模型优点

  1. 可以达到更好的结果
  2. 对下游任务应用范围更广

论文中说的....

BLIP2

1. 主要处理的问题和思路

该论文的出发点是任务现在VLP模型都是建立在大数据集上的,训练起来非常昂贵,所以提出一种利用现有的模型,固定其原本的参数(防止微调/训练的时候灾难性遗忘),通过小参数的模型整合,从而达到低资源大提升的目的。

提出一种轻量级的Querying Transformer(Q-Former),通过Q-Former来连接两种模态的预训练模型。主要做法是通过两阶段来训练:第一阶段接受文本图像表征来训练得到一个表示向量query;第二阶段通过Q-Former的输出来引导一个语言与训练模型达到图像文本生成学习。整体思路如下: BLIP2整体思路

整体思路一句话说就是:使用一个可以学习的query向量从图像编码器中抽取有用的视觉特征,然后再把这个query喂给LLM,是其输出渴望的文本。

2 模型

2.1 模型架构

BLIP2模型架构-第一阶段

其中只有Q-Former是可训练的模块。

Q-Former模块组成:

  1. 一个图像Transfomer子模块:与固定的图像编码器交互,用于视觉特征提取的图像Transformer
  2. 一个文本Transfomer子模块:一种既可以作为文本编码器又可以作为文本解码器的文本Transformer

这两个子模块的SA是共享的。 使用不同的SA mask控制query-text交互 使用32个查询,其中每个查询的维度为768

初始化:

  • 对于Q-Former,使用与训练好的BERTbaseBERT_{base}权重
  • 对于CA层使用随机初始化参数

固定参数的预训练模型:

  • 图像编码器:ViT-L/14ViT-G/14
  • 文本编码器:OPT(decoder-based LLMs)FlanT5(encoder-decoder-based LLMs) BLIP2模型架构-第二阶段

全连接层的作用:用于将输出query embedding线性投影到与LLM的文本嵌入相同的维度中。

2.2 模型模型训练目标

  1. ITC(image-text contracstive learning): 用来对齐文本和视觉特征,使他们的互信息最大。

    利用a unimodal self-attention mask控制query-text之间不能互相看见 [CLS]token作为第一个文本token

  2. ITG(Image-grounded Text Generation): 训练Q-Former在给定条件文本,生成目标文本

    使用a multimodal causal self-attention mask控制query-text之间交互 用新的[DEC]token替换[CLS]token作为第一个文本token,以用控制解码任务。

  3. ITM(image-text matching): 学习图像和文本表示之间的细粒度对齐。通过将每一个query的输出送到一个二分类线性器中,获得logits,然后将所有querylogits平均值作为输出匹配分数

    使用a bi-directional self-attention mask控制query-text交互 使用the hard negative mining strategy创建有信息的负性对

InstructBLIP

1. 主要处理的问题和思路

该论文主要是解决VLP任务中,不同任务需要不同格式的输入信息这个问题。改论文在BLIP2的基础上,对26个数据集,11种任务,做了系统和综合的分析,通过修改数据集格式到统一的形式,即输入信息中包含指令(instruction-aware),可以通过指令信息对视觉特征进行抽取工作,从而完成对应的任务。

相关任务和数据集如下: 数据集

对于每一项任务,使用10到15个不同的自然语言指令模板。

2 模型

2.1 模型架构

模型

使用the language modeling loss来指令微调模型

固定参数的预训练模型:

  • 图像编码器:ViT-G/14
  • 文本编码器:FlanT5-XLFlanT5-XXLVicuna-7BVicuna-13B

参考文献

  1. Junnan Li等, 《BLIP: Bootstrapping Language-Image Pre-Training for Unified Vision-Language Understanding and Generation》 (arXiv, 2022年2月15日), http://arxiv.org/abs/2201.12086;
  2. Junnan Li等, 《BLIP-2: Bootstrapping Language-Image Pre-Training with Frozen Image Encoders and Large Language Models》 (arXiv, 2023年1月29日), http://arxiv.org/abs/2301.12597;
  3. Wenliang Dai等, 《InstructBLIP: Towards General-Purpose Vision-Language Models with Instruction Tuning》 (arXiv, 2023年5月10日), http://arxiv.org/abs/2305.06500.

本文作者:HuanQing

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!