Instruction BLIP系列–量产大模型入门必看


作者:中投靓仔

链接:https://zhuanlan.zhihu.com/p/9584597631

最近在研究机器人领域的Visual Grounding任务,把今年上半年用来给Grounding-dino制作Image-Text Pair数据集的BLIP系列工作总结一下。Instruction BLIP是2023年的工作,它是一种根据图像内容和文本指令进行文本生成的模型,可以用于VQA,caption等很多任务。本文从BLIP V1开始分享Instruction BLIP的原理。

欢迎加入自动驾驶实战群


Instruction BLIP系列--量产大模型入门必看

  • BLIP V1

  • 整体网络结构

Instruction BLIP系列--量产大模型入门必看

上图中颜色相同的模块是参数共享的。BLIP V1通过ITC,ITM,LM三个子任务来完成image-text的特征融合。

Bi Self Attention:就是正常的transformer attention结构,word embedding可以看到左右两侧其他word的信息并做融合。适用于Bert这种结构。

Casual Self Attention:用一个下三角mask将后面的内容全部遮住,当前的word只能看到前面的,不能看到后面的word信息。适用于生成式的LM,例如GPT。

  • ITC

contrastive loss:在batch内构造相似性矩阵,交叉熵损失作为约束,目的是让text-image的特征对齐。下图是CLIP中截取的:

Instruction BLIP系列--量产大模型入门必看
  • ITM

ITM出自于另外一篇paper:

Instruction BLIP系列--量产大模型入门必看

ITM子任务中,一段文本经过self attention和corss attention之后,取第一个embedding,这个embedding在self-attention中看到了全部的文本内容,并在cross attention中获取了图像特征。这个embedding经过FC层构造二分类问题。相当于是想让text-image融合后的特征能够胜任这个分类任务,进一步地提升文本-图像特征的对齐能力

在这个过程中,如果cross attention是 对应的text-image做的,那么label就是1;另一方面还需要提供一些负样本,这时候会从ITC(CLIP)中找到得分数第二高的,当作负样本。

  • LM

LM就是一个文本生成模型。

  • BLIP V2 和 Instruction BLIP

BLIP V2的训练方式如下:

  • pretrain stage1:frozen image encoder,训练Q-former

  • pretrain stage2:frozen LLM,训练Q-former+Image  Encoder

  • finetune:frozen LLM,训练Q-former + Image Encoder(我感觉这里Image Encoder可以不学,因为pretrain的时候图像特征已经学差不多了,instruction blip就把image encoder给frozen了)

Instruction BLIP 是在BLIP V2的pretrain model上进行Instruction Finetune的。因此,Instruction BLIP相当于是一种在pretrain model上的finetune方法。下面把两个一起讲了。

  • Q-Former

像沙漏一样提取图像中和文本强相关的关键特征。

Q-Former的结构是两个并行的transformer,self attention的输入比较特殊,是Queries和Input Text在sequence维度上拼接,self attention的过程中有相互的信息融合。

  • 左侧:Queries融合了文本信息,和图像特征做cross attention,获取到和文本强相关的信息。

  • 右侧:是一个生成类的LM模型,文本融合了图像信息,生成和图像相关的文本,所以叫做“Image Grounded Text Generation

这样做的好处是:Query的数量为超参32,这个应该是远小于Image encoder输出的embeddings的数量,左侧相当于是提取了和文本强相关的图像特征,像是一个沙漏过滤掉不重要的信息。这样在text-image特征对齐的时候能削弱灾难性遗忘。

Instruction BLIP系列--量产大模型入门必看
  • Pretrain Stage1:Representing Learning

跟BLIP1差不多,也是ITM,ITC,ITG三个任务。只不过这里需要用mask避免信息泄露

ITC:主要是用来约束文本特征和图像特征的对齐,因此在self attention时,它们互相不可以看到对方

Instruction BLIP系列--量产大模型入门必看

ITG:简单讲是根据图像的信息生成文本,所以Text可以随便看Q的内容,但是在Text的内部,前面的文本不能看到后面的。

Instruction BLIP系列--量产大模型入门必看

ITM:这个任务输出的特征是文本-图像融合后的特征。相当于是想让text-image融合后的特征能够胜任这个分类任务,进一步地提升文本-图像特征的对齐能力。因此,这个子任务中就是想让Q和T相互看到。

  • Pretrain Stage2

先思考:paretrain stage1训练出来的Q-Former具有什么能力?

在stage2中使用的时候,Q-Former输入只有一张图(并没有文本)。

Instruction BLIP系列--量产大模型入门必看

回头看下面这张图:在训练ITG这部分的时候,Input Text这部分是用下三角的掩码mask住的。在Input Text前会有一个[decoder]的embedding,或者blabla其他的embedding,总之这个embedding表示我要开始解码输出文本了。这里主要是根据在self-attention中获取到的图像信息来进行解码,当解码出靠前的word后,后面的文本才能根据前面的图像特征+文本特征继续进行解码。所以还是要再次关注下Image-Grounded Text Generation这个命名,很有意义。换句话说,即便只输入了Image和Queries,Q-former也能自行生成出文本。

Instruction BLIP系列--量产大模型入门必看

前面的pretrain阶段只是让模型有根据图像进行文本生成的能力,输入一张图,输出文本描述,类似caption。和具体的下游任务例如VQA等还没有一点关系,下游任务需要finetune。

  • Instruction Tuning

看了一些Instraction Tuning的工作,它们都指的是基于pretrain model进行finetune的工作。这里的Instruction就是和下游任务相关的指令。BLIP加Instruction的位置有两个:

  • Q-Former的输入:加在与Queries并列的位置,Finetune的时候让Queries提取的图像特征与任务更相关

    Instruction BLIP系列--量产大模型入门必看

    LLM的输入:接在visual prompt的后面,让LLM理解任务训练的方式是Multi-Task,就是把caption,vqa等等全部的任务混在一起训练。

    Instruction BLIP系列--量产大模型入门必看

  • Instruction TemplateInstruction BLIP系列--量产大模型入门必看

  • 数据

Web Data数据制作:

爬虫到Image-Text Pair数据,将Image输入到最大的BLIP模型中,生成10个不同的caption(通过语言模型的参数控制)。然后将10个语言模型和Web text 与 Image之间使用CLIP计算相似性,保留相似性最大的两个caption,作为训练数据。在pretrain 的不同epoch,随机选取两个caption中的一个。

  • 参数含义

huggingface:https://huggingface.co/spaces/hysts/InstructBLIP

  • number of  beams

Beam search方法中,每一次选取 n=5 个概率最大的词

  • Max Length

生成sentence的最大词数量

  • Top P

Nucleus方法中,每一次选取概率总和刚好等于P的最小数量的words

  • Temperature

设置温度改变词的概率分布:Instruction BLIP系列--量产大模型入门必看

当温度很小时,模型选择的是概率最高的词;温度=1时,就是标准的softmax,默认的就是1;温度很大时,输出更加不稳定,生成的文本多样。所以,问答系统一般T<1,生成类的任务T=1,或者T>1.Length Penalty 长度惩罚系数也是改变词的概率分布,通过下面的公式直接改变每个词的得分值。我的理解是α越大,概率值越小,同时EOS的概率值越小,越不容易停止。

Instruction BLIP系列--量产大模型入门必看


最后别忘了,帮忙点“在看”。  

您的点赞,在看,是我创作的动力。


AiFighing是全网第一且唯一以代码、项目的形式讲解自动驾驶感知方向的关键技术。


长按扫描下面二维码,加入知识星球。

Instruction BLIP系列--量产大模型入门必看



  文章内容来自于网络,由百合树AI整理,如有侵权,联系删除。如需开始AI写作请返回主页。

上一篇:

下一篇:

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注