BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models
目前(2023)的图文模型都是基于端到端训练方式,大规模的模型和数据集导致了在预训练过程需要的大量计算。作者提出一种从离线、梯度冻结的图像、语言模型中提升图文的预训练模型。为了联系两个不同模态预训练模型,作者提出一种使用两个阶段预训练模型
Querying Transformer (Q-Former)
。
一、预训练方法
这种预训练方法分为了两个阶段 (1)视觉语言特征表示学习阶段 (2)视觉到文本的生成学习阶段
1.1 Q-Former
主要作用就是对齐两个不同模态的冻结预训练模型
🟢 Q-Former包含了两个transformer子模块:(1)Image Transformer (特征提取) (2) Text transformer (作为文本编码器和解码器) ;
🟢 一组可学习的查询嵌入向量作为 Image Transformer
的输入,这些向量在self-attention layer
相互联系以及通过 cross-attention layer
与预训练的图像模型特征交互; 除此之外,这组可学习的嵌入向量也与文本token进行拼接作为Text transformer
的输入;
🟢 将Q-Former初始化为 BERT base \text{BERT}_{\text{base}} BERTbase, cross-attention layer
是随机初始化的;同时查询向量的大小为:( 32 × 768 32 \times 768 32×768)
1.2 视觉语言特征表示学习
第一阶段的训练目标是基于文本对,通过 Q-Former 与冻结图像编码器,使得可学习的 query 向量能够从图像中提取出与文本语义最相关、最具信息量的视觉特征。在这个阶段中,采用了与BLIP
预训练过程近似的目标损失:Image-Text Contrastive Learning (ITC) 、Image-grounded Text Generation (ITG)、Image-Text Matching (ITM).
🟢 ITC:图像、文本特征对比学习,通过可学习的查询向量和Text transformer
中的[CLS]计算相似度,为了防止数据泄露,采用unimodal self-attention
,禁止 query 与文本 token 之间的直接交互;
🟢 ITG:将可学习的向量作为条件输入,以自回归的方式生成图像描述,采用了causal self-attention mask
;
🟢 ITM:二分类匹配任务,采用bi-directional self-attention mask
;
1.3 图像到文本的生成学习
第二阶段利用LLM的生成语言的能力来训练Q-Former。将图像通过图像冻结模型和Image Transformer
得到与文本语义最相关、最具信息量的视觉特征。接着通过一个全连接层的线性变换,将大小转换为符合到LLM模型中的输入维度。作者尝试了两种LLM冻结模型:
(1) decoder-based LLMs : query 表征作为 LLM 的输入前缀(prefix) → LLM 自己完成文本生成
(2) encoder-decoder-based LLMs : 模型学习在给定图像(query 表征)+ 前缀(自定义)的条件下,生成后缀内容
架构类型 | 模型例子 | 输入方式 | 损失函数类型 | 说明 |
---|---|---|---|---|
Decoder-only | GPT, OPT, LLaMA | Q-Former 输出作为前缀,LLM 自回归生成 | Language Modeling Loss | query → LLM 直接生成 |
Encoder-Decoder | T5, BART | Q-Former 输出 + 前缀文本 → encoder 后缀文本作为 decoder target | Prefix Language Modeling Loss | query + prefix → 生成 suffix |