type
status
date
slug
summary
tags
category
icon
password

1 motivation

目前多模态模型在图片理解类任务、生成类任务表现卓越主要源于Scale up model and scale up dataset(更大的模型,更多的数据)。但是VLP(vision-language pre-training)数据集大多是网络爬取而来(称之为web datasets),里面的caption包含很多噪声,并不是一个理想的监督来源。BLIP这篇文章提出一种boostrapping caption的方案来“提纯”带噪声web datasets,从而进一步提升多模态模型的能力。
概括来说:这篇文章设计了一种去噪方案,来提纯web datasets,以此带来精度提升。

2 method

2.1 模型架构

BLIP多模态架构为双塔架构。论文中用3个vision language pretraining(VLP) task来激发模型的多模态能力。

2.2 多模态预训练任务

2.2.1 Image-Text Contrastive Loss (ITC)

和CLIP训练任务一致。核心思想是:给定图片-文本向量对其训练目标为,同pair的相似度越接近越好,非同pair的相似度越远越好,形如
伪代码如下(from CLIP paper)
notion image
有了上面的背景知识,ITC的步骤就很好理解了:
STEP1: 图片经过image encoder得到image embedding
STEP2: 文本经过text encoder得到text embedding
STEP3: 分别拿到image embedding中[CLS]token对应的embedding, 与文本text embedding中[CLS]token对应的embedding
STEP4:投影到同一维度
STEP5: 同pair的相似度约接近越好,非同pair的相似度越远越好。
notion image

2.2.2 Image-text matching (ITM)

ITM也是VLP的常用任务,它的实现形式有很多,核心思想是:给定图片-文本向量对其训练目标为预测是否来自同一个pair。是为1,否则为0。形如:
下面来看具体是如何实现的。
STEP1: 图片经过image encoder得到 image embedding
STEP2: 文本经过text encoder得到text embedding 和ITC有所区别的是,此处将image embedding 作为encoder_hidden_states也送入到text encoder(image embedding与text embedding在cross-attent层进行特征交互,image se quence embedding作为key,value。text embedding作为query)。因此最后输出的text embedding也同时蕴含了image sequence embedding的信息。作者将此时的text encoder称为image-ground text encoder
image embedding与text embedding在cross-attention的特征交互实现可见transformers库BertSelfAttention函数
STEP3: 取文本text embedding中[CLS]token对应的embedding
  • 当送入image sequence embedding与text是pair时,的类别标签为1
  • 当送入image sequence embedding与text非pair时,的类别标签为0
随后用cross-entropy计算损失。
训练完成后:得到 image-ground text encoder
notion image

2.2.3 Language modeling loss(LM)

LM时GPT系列的预训练任务。简单来说就是根据前面的词来预测下一个词。与NLP的LM有所不同的是VLP同时将image-embedding引入到上下文信息。
STEP1: 图片输入到image encoder中的得到 image embedding( )。
STEP2: 将 image embedding()作为key,value送入到text-decoder的cross-attention中与text embedding进行特征交互。作者将此时的text-decoder称为image-ground text decoder
STEP3:最大化自回归序列的似然概率进行训练。训练完成后:得到 image-ground text decoder
notion image
通过以上预训练任务:得到
  • image encoder
  • image-ground text encoder
  • image-ground text decoder

2.3 boostrapping caption

通过2.2节的预训练任务我们得到3个模型:1)image encoder;2)image-ground text encoder ;3) image-ground text decoder
下面来看如何结合上述上个模型来对web dataset进行“提纯”,主要步骤如下:
STEP1: 用人工标注的数据集对预训练模型image-ground text encoder与 image-ground text decoder 进行微调。(I_h, T_h)为图文对。
STEP2: 遍历web datasets进行下面操作
  • STEP2.1 通过 image-ground text decoder (论文称之为Captioner)预测的caption 。此时对于图片有两个图文对
  • STEP2.2 通过image-ground text encoder(论文称之为Filter)来判别图文对是否matching。过滤不matching的图文对
STEP3: 汇总所有图文对
用提纯后的数据集用2.2的预训练任务重新训练。
notion image

3 result

从作者给出的实验来看,boostrapping caption不论在retrieval还是在caption任务上都能带来一定的提升。但当scale up dataset and scale up model后,boostrapping caption的提升就很有限了(在caption任务上尤为明显),如下表的最后一行。
notion image
BLIP只评估了在flickr30K上的zero-shot retrieval的能力,相比之前的SOTA在image-to-text retrieval的R@1上有2个点的提升,其它指标提升不大。其它对比结果见原论文。
notion image
 
BLIP-2小结Attention Free Transformer(AFT)技术小结
  • Twikoo