BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models论文阅读笔记
Motivation & Abs
端到端大规模视觉语言预训练的开销极大。为此,本文提出了BLIP2,利用现成的冻住的image encoder以及LLM引导视觉语言预训练。
模态差距:通过两阶段训练的轻量级的Query Transformer(Q-Former)弥补。第一阶段:从冻结的image encoder引导VL学习;第二阶段:从冻结的LLM引导视觉到语言的生成学习。
Method
模型结构
Q-Former的作用是从图片中提取固定数量的特征(与图片分辨率无关),从而弥补两个模态之间的差异。Q-Former由两个transformer子模块构成,其共享self-attn层:image transformer与冻结的图像编码器进行交互,以提取视觉特征;text transformer包括encoder和decoder。image transformer的输入为一系列的learned queries,在self-attn层彼此之间进行交互;随后在cross-attn层与冻结的图像特征进行交互(方式类似detr的query)。query还可以通过参数共享的self-attn层与text进行交互。
基于预训练任务,作者使用不同的self-attn mask控制query-text的交互。Q-Former通过\(BERT_{base}\)的权重初始化(cross-attn采用随机初始化),参数量总计188M。在实验中,作者使用32个query,其中每个query的维度为768
从冻结的图像编码器引导视觉语言表征学习
使用图像文本对进行预训练。受到BLIP的启发,作者联合优化了三个预训练目标(共享相同的输入形式以及模型参数),通过三种attention mask进行控制。
Image-Text Contrastive Learning (ITC)学习将图像表征与文本表征对齐以最大化互信息,对比损失的形式与CLIP类似。因为每张图片对应多个query,作者选择了与text相似性最高的token计算image-text similarity。为避免信息泄漏,作者使用了一个统一模态的self-attn mask,query与text彼此不可见。由于image encoder是冻结的,因此每个GPU上可以放更多的样本,作者使用in-batch negatives而非BLIP的momentum queue。
Image-grounded Text Generation (ITG) loss训练Q-Former在给定图像的条件下生成文本。因为image encoder无法直接与text tokens进行交互,因此生成text的信息必须先通过query提取,随后在self-attn层与text token进行交互。在这一过程中query可以相互交互但不能与text交互,而text可以与query以及之前的text交互。
Image-Text Matching (ITM)旨在学习将image与text的表征进行细粒度对齐。这一部分本质上做的是二分类任务,即判断一个image-text pair是否是匹配的。作者使用了bi-directional self-attn mask,其中queries和texts可以相互交互。作者将output query送入一个类别数为2的线性层得到二分类分数,再对所有query得分数进行average得到最终的matching score。作者还使用了难负例挖掘从而创建包含更多信息的负样本对。
从冻结的LLM中引导视觉到语言的生成学习
在生成式预训练阶段,作者将冻结的image encoder以及Q-Former连接到冻结的LLM,从而获得LLM的生成语言能力。作者通过一个FC层将output query投影到LLM的text embedding space。经过预训练的Q-Former给出的query往往包含更有效的视觉信息,减轻了LLM学习视觉语言对齐的负担,也就减轻了灾难性遗忘。
Q-Former与两种不同的LLM结合:
对于Decoder-only的LLM作者使用language modeling loss,LLM需要给出基于视觉表示的文本;对于encoder-decoder结构的LLM作者使用prefix language modeling loss,prefix text与output query连接作为编码器输入,suffix text作为解码器的生成目标。
模型预训练
略
实验
Q-Former存在的问题
难训练,训练图像与测试图像有gap的话效果会变差,丢失信息导致幻觉