论文:https://arxiv.org/pdf/2301.12597.pdf
代码:https://github.com/salesforce/LAVIS/tree/main/projects/blip2
demo:https://huggingface.co/spaces/Salesforce/BLIP2
引言:
-
现代计算机视觉和自然语言模型在能力越来越强大的同时,模型尺寸也随之显著增大,进行一次单模态模型的预训练十分昂贵,因此端到端视觉语言预训练的成本也已变得越来越高
-
本文提出一种新的视觉语言预训练范式,该范式可以任意组合并充分利用两个预训练好的视觉编码器和 LLM语言模型,是BLIP模型的续作。
-
模型优势:
-
实现了开放性的多模态内容理解与生成,让我们有了更多的想象空间
-
无须端到端地预训练整个架构,使得我们可以在多个视觉语言任务上实现最先进的结果,
-
显著减少训练参数量和预训练成本,比起动辄几百张卡的大模型,BLIP 2 最大的模型也不过16张A100 40G
-
模型示例:
BLIP2模型的多模态问答
开始前介绍论文前我们先来讨论下,实现图片中的问答,需要什么能力呢?
-
图片里发生了什么:一位男士在船头搂着一位女士。(图像理解-CV模型的能力)
-
问题问的什么:电影的结尾是什么?(文本理解-NLP模型的能力)
-
图片和电影有什么关系:这是泰坦尼克号里的经典镜头。(对齐融合-多模态模型的能力)
-
电影的结尾是什么:泰坦尼克号沉没了。(推理-LLM模型的能力)
模型结构:
模型整体框架:
可训练的Q-Former模块连接冻结的image encoder和冻结的LLM,训练分为两阶段representation learning stage和generative pre-training stage.
Representation Learning Stage:![](https://i-blog.csdnimg.cn/blog_migrate/e9356c89cfa0ddc2f41e82e475a0971a.png)
模块组成:
-
一个image transformer,与冻结的image encoder交互,抽取图像特征
-
一个可学习的queries embedding [32x768],与图像特征([257 × 1024] forViT-L/14)进行交互
-
一个text transformer,可作为text encoder或text decoder
模块训练:
-
训练数据:图像文本pair对
-
训练目标:使得queries embedding能够从图像特征中抽取出与text最相关的信息
-
受到BLIP启发,三个预训练任务:
-
Image-Text Contrastive Learning (ITC):计算image transformer输出query表征Z与text transformer输出文本表征T中【CLS】token相似性,相似度取Z与【CLS】向量最高的分数,使用单模态的mask矩阵防止信息泄漏
-
Image-Text Matching (ITM):学习图像和文本特征匹配,根据ITC得到的相似度在线hard构建正负例pair对,拼接query表征Z和文本表征T,采用双向的mask矩阵,经过self-attention交互,对query表征Z进行线性层二分类,对分数取平均,作为最终的输出分数
-
Image-grounded Text Generation (ITG) :效仿UniLM方法,queries embedding与图像特征进行交互得到有效信息,作为text transformer的输入前缀,以【DEC】作为文本解码表示,采用因果自注意力mask控制可视范围
-
Generative Pre-training Stage:![](https://i-blog.csdnimg.cn/blog_migrate/d432ea5f578432108a364f57cc03e9b5.png)
将Q-Former与大型LLM模型相连,获取LLM的语言生成能力,用FC层映射输出的query表征Z至LLM的特征空间
基于Q-Former提取到的视觉表征作为soft visual prompt,作为LLM语言模型的输入前缀,由于Q-Former已经预训练用于提取对文本有用的视觉表征,可减轻LLM学习视觉-文本对齐的负担
模型实验
消融实验,representation learning stage训练的重要性
模型在VQA、Image Caption、ITR任务上的实验效果,达到zero-shot SOTA的效果,同时只需要很少的训练参数
开放性的多模态模型,拼接任何图像编码器和LLM语言模型