BLIP-2论文笔记

今天分享另外一篇在llava出现之前的文章:blip2。这篇文章中的主要贡献是提出了一个Q-former的结构,这个结构在llava出现之前在各个图文多模态模型中用的比较多。但是我感觉blip2和blip一样都存在一些过度设计的问题,模型结构设计的比较复杂,和bert时期的nlp任务比较相似:先预训练,再在特定任务上微调。不如大模型时期模型的特点:模型结构简单,一个模型基本上解决所有问题,不需要微调。不过设计复杂的模型可以学学其中的代码,这种一般需要更强的代码能力。
1、引言和背景
之前的图文模型从头训练需要较多的计算资源,图文模型的主要研究在两种模态特征的交叉点上,所有希望从之前单模态的研究中收益。也有一些工作进行两种模态之间的特征对其,如Frozen和Flamingo。但是之前的研究效果并不好,所以本文提出了一个新的轻量级结构:Q-Former,并提出一个两阶段训练策略进行训练。Q-Former通过一组可学习的查询向量从冻结的图像编码器中提取视觉特征,当作冻结的图像编码器和冻结的LLM之间的连接器,提取出对LLM生成所需文本最有用的视觉特征。
在这里插入图片描述

blip2的优势:1、利用现有的图像模型和语言模型,通过两阶段训练的Q-Former可以有效的对齐两种模态;2、结构包含llm,具有zero-shot的能力,并且具有指令遵循、推理、对话的能力;3、单模态的模型都被冻结,只需要训练Q-Former,消耗的计算资源更少。
2、模型架构和训练策略
在这里插入图片描述

Q-Former的架构主要包含两个Transformer结构,一个Transformer与图像编码器进行交互,用于提取视觉特征,另一个可以作为文本编码器和文本解码器。需要注意的是,两个Transformer共享注意力层的模块,并且整个Q-Former的权重由bert-base初始化,交叉注意力随机初始化。文章新增加了一个query矩阵,大小是32*768,768是bert-base的隐藏层维度。这个query的意思是查询所有图像编码器中哪些内容更重要,提取关键视觉信息。
blip2的Q-Former预训练与blip相似,也是设计了3个loss:图像-文本对比学习(ITC)、基于图像的文本生成(ITG)损失、图像-文本匹配(ITM,一个二分类任务)。图像-文本对比学习是将与图像编码器进行交互的Transformer和另一个文本的Transformer之间的距离最小化。基于图像的文本生成是给定图像生成文本,并计算损失。图像-文本匹配就是一个二分类任务,判断文本和图片是否匹配。感觉和blip的训练方法差不多。

在这里插入图片描述

语言生成的预训练是将连接了冻结图像编码器的Q-Former经过一层全连接层进行维度的转换,拼接到语言模型的最前面,输入的语言模型生成文本。并且针对decoder-only和encoder-decoder结构的llm设计了两种训练方法。decoder-only:直接根据图像特征生成文本,encoder-decoder:加一个本文前缀再生成文本。llm都是冻结的。
预训练的数据就是图片文本对,文本生成也是生成图像的描述。
三、下游实验和评估
1、Zero-shot 基于图像的文本生成
在零样本视觉问答测试集上blip2的效果大部分优于Flamingo80B,但是训练参数小很多。如果没有那三个loss的表示学习阶段,只有文本生成阶段的训练,效果会降低很多。
2、图像描述
在图像描述数据集上进行了微调,冻结LLM,更新Q-Former和图像编码器。
3、视觉问答
在视觉问答数据集上进行微调,冻结LLM,更新Q-Former和图像编码器。
4、图像-文本检索
对第一个阶段预训练的模型进行微调,而不使用LLM,训练目标与第一阶段相同,包含ITC、ITM和ITG。
四、总结展望
BLIP-2的实验中没有观察到提供上下文VQA示例后VQA性能的提升,可能是因为数据集的问题,数据集仅包含一个图像文本对,后续可以设计包含多个图像的数据集。
五、个人总结
blip2这篇文章的模型结构、训练方法、下游任务使用上感觉还是比较复杂的,相当于在视觉编码器和llm之间加了一个bert变体,训练loss也包含3个,与llava相比确实要复杂不少,并且效果不如llava。blip2还需要针对每个任务再微调,不如一个模型解决大部分问题来的优雅。优秀的模型果然都是更简洁的。本来想要看完文章后看看代码,现在感觉这个模型太复杂了,而且感觉没有必要,后续还要分享其它的论文,有时间再阅读和分享代码吧,感兴趣的可以自己去看一下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值