Multi-Modal Pre-trained Model总结(二)

多模态预训练模型BLIP, BLIP-2,BLIP-Adapter

BLIP: Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation

论文地址
代码地址

BLIP系列是Salesforce非常经典的作品,在作者自己文章对比的baseline中,blip也一直保持着很高的zero-shot performance。可以说在作者心目中CLIP和BLIP就是VLM中的两块奠基石。

结构

BLIP结构图
其实好的网络往往不需要对细节进行改进,clip focus在数据工程层面上,blip则是注重于复用pre-trained model并根据任务场景构建新的复合loss来完成性能的提升,在blip之前的ALBEF,VLMo也都是如此。在作者看来这种更贴近任务本质的方式往往可以取得更好的效果。因为复杂的blocks的初始设计思路就是针对某一些特定的任务场景,所以也无法泛化和迁移到其它场景下进行使用。

言归正传,BLIP的结构主要包括三个部分,visual encoder, text encoder和fusion decoder。落实到文章上,就是一个ViT+一个Bert。针对不同的任务,blip使用了不同的loss,想讲清楚blip系列就要先明确这三种loss和对应的任务。

ITC loss

L i t c = 1 2 E ( I , T ) ∼ D [ H ( y i 2 t ( I ) , p i 2 t ( I ) ) + H ( y t 2 i ( T ) , p t 2 i ( T ) ) ] = 1 2 E ( I , T ) ∼ D [ ( − 1 ) E ( I , T ) ∼ D [ ∑ y i 2 t ( I ) l o g ( e x p ( s ( I , T m ) / τ ) ∑ j = 1 J e x p ( s ( I , T j ) / τ ) ) ] + ( − 1 ) E ( I , T ) ∼ D [ ∑ y t 2 i ( T ) l o g ( e x p ( s ( T , I m ) / τ ) ∑ j = 1 J e x p ( s ( T , I j ) / τ ) ) ] ] \mathcal{L}_{itc}=\frac{1}{2}\mathbb{E}_{(I, T)\sim D}[\textbf{H}(\textbf{y}^{i2t}(I), \textbf{p}^{i2t}(I)) + \textbf{H}(\textbf{y}^{t2i}(T), \textbf{p}^{t2i}(T))] \\ = \frac{1}{2}\mathbb{E}_{(I, T)\sim D}[(-1)\mathbb{E}_{(I, T)\sim D}[\sum\textbf{y}^{i2t}(I) log(\frac{exp(s(I, T_m)/ \tau)}{\sum^{J}_{j=1}exp(s(I, T_j)/ \tau)})]+(-1)\mathbb{E}_{(I, T)\sim D}[\sum\textbf{y}^{t2i}(T) log(\frac{exp(s(T, I_m)/ \tau)}{\sum^{J}_{j=1}exp(s(T, I_j)/ \tau)})]] Litc=21E(I,T)D[H(yi2t(I),pi2t(I))+H(yt2i(T),pt2i(T))]=21E(I,T)D[(1)E(I,T)D[yi2t(I)log(j=1Jexp(s(I,Tj)/τ)exp(s(I,Tm)/τ))]+(1)E(I,T)D[yt2i(T)log(j=1Jexp(s(T,Ij)/τ)exp(s(T,Im)/τ))]]
ITC Loss是在一个batch内计算所有image-text pair score,尽可能让text和image在第一个stage上align。

ITM loss

L i t c = E ( I , T ) ∼ D H ( y i t m , p i t m ( I , T ) ) \mathcal{L}_{itc}=\mathbb{E}_{(I, T)\sim D}\textbf{H}(\textbf{y}^{itm}, \textbf{p}^{itm}(I, T)) Litc=E(I,T)DH(yitm,pitm(I,T))
ITM Loss是从ITC的所有负样本中选择一个最难的样本,在feature后接一个FC层进行二分类。

此时模型forward是原Image和原Text

MLM loss

L m l m = E ( I , T ^ ) ∼ D H ( y m s k , p m s k ( I , T ^ ) ) = E ( I , T ^ ) ∼ D − ∑ y m a s k l o g p m s k ( I , T ^ ) \mathcal{L}_{mlm}=\mathbb{E}_{(I, \hat{T})\sim D}\textbf{H}(\textbf{y}^{msk}, \textbf{p}^{msk}(I, \hat{T})) \\ = \mathbb{E}_{(I, \hat{T})\sim D} -\sum \textbf{y}^{mask} log\textbf{p}^{msk}(I, \hat{T}) Lmlm=E(I,T^)DH(ymsk,pmsk(I,T^))=E(I,T^)Dymasklogpmsk(I,T^)
MLM Loss首先需要对原始的text进行部分mask。具体操作是15%原text mask,12%用[MASK]标记掩盖,1.5%随机替换为原text list中的其它tokens,1.5%保持不变。之后计算预测tokens和原始tokens之间的交叉熵损失。
此时模型forward是原Image和带mask的 T ′ {T}^{'} T

CapFit

数据飞轮的代表,和SAM的逐阶段refine有点相似。
capfit

  1. 所有数据(脏数据+coco)一起pretrain
  2. 用coco进行finetune
  3. decoder过一遍脏数据生成新的caption
  4. encoder过滤一遍生成的caption,不合格的过滤掉,保留一部分质量高的caption
  5. 高质量生成caption+coco二次pretrain

实验结果

没啥好说的,反正很好用。

BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models

论文地址
代码地址

BLIP-2未完待续

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值