赞
踩
BLIP:统一视觉-语言理解和生成的自举多模态模型,其下游的应用可以为检索任务、描述任务、VQA任务(视觉问答)、NLVR(Natural Language Vision Reasoning)
BLIP(BLIP: Bootstrapping Language-Image Pretraining for Unified Vision-Language Understanding and Generation)是Salesforce Research在2022年公开的一个统一理解和生成的多模态模型,该方法的Motivaion如下:
BLIP针对以上的两个问题,提出了解决方案:
Step1: 用人工标注的数据集图文对{Ih, Th}对预训练模型Image-ground text encoder和decoder进行微调;
Step2: 遍历web datasets {Iw, Tw}进行以下操作:
Step3: 汇总所有匹配的图文对D = {{Iw,Tw},{Iw,Ts},{Ih, Th}}
模型涉及4个结构:
颜色相同的部分表示参数共享,即视觉-文本编码器和视觉-文本解码器共享除self-attention层之外的所有参数。每个image-text在输入时,Image只需要经过一个ViT模型,text部分需要经过3次BERT模型。
BLIP 在预训练期间联合优化了3个目标,有两个理解任务的目标函数和一个生成任务的目标函数。
对比学习目标函数 (Image-Text Contrastive Loss, ITC)
ITC 作用于1 视觉编码器 和 2 文本编码器,目标是对齐视觉和文本的特征空间。方法是使得正样本图文对的相似性更大,负样本图文对的相似性更低,在 ALBEF 里面也有使用到。作者在这里依然使用了 ALBEF 中的动量编码器,它的目的是产生一些伪标签,辅助模型的训练。
图文匹配目标函数 (Image-Text Matching Loss, ITM)
ITM 作用于1 视觉编码器 和 3 视觉文本编码器,目标是学习图像文本的联合表征,以捕获视觉和语言之间的细粒度对齐。ITM 是一个二分类任务,使用一个分类头来预测图像文本对是正样本还是负样本。作者在这里依然使用了 ALBEF 中的 hard negative mining 技术。
语言模型目标函数 (Language Modeling Loss, LM)
BLIP 包含解码器,用于生成任务。既然有这个任务需求,那就意味着需要一个针对于生成任务的语言模型目标函数。LM 作用于1 视觉编码器 和 4 视觉文本编码器,目标是根据给定的图像以自回归方式来生成关于文本的描述。与 VLP 中广泛使用的 MLM 损失 (完形填空) 相比,LM 使模型能够将视觉信息转换为连贯的字幕。
BLIPv2:节约多模态训练成本,冻结预训练好的视觉语言模型参数
BLIP2也是salesforce在2023发表在ICML2023上的方法,这个工作提出了一种借助现成的冻结参数的预训练视觉模型和大型语言模型的,高效的视觉语言预训练方法。但是,简单的冻结预训练好的视觉模型的参数或者语言模型的参数会带来一个问题:就是视觉特征的空间和文本特征的空间,它不容易对齐。那么为了解决这个问题,BLIP-2 提出了一个轻量级的 Querying Transformer,该 Transformer 分两个阶段进行预训练。
参考资料:https://zhuanlan.zhihu.com/p/664011842
Q-Former训练第一步:联合视觉编码器训练
Q-Former 训练的第一步,作者将 Q-Former 连接到冻结参数的图像编码器,并使用图像-文本对进行预训练,那么这一步的目标是训练好 Q-Former,以便 Queries 可以学习到如何更好地结合文本提取图片信息。
训练的目标函数,作者遵循 BLIP 的做法,联合优化3个具有相同输入格式和模型参数的预训练目标,每个目标函数使用不同的 mask Attention 来控制注意力的交互。
1. 图文对比学习(Image-Text Contrastive Learning,ITC)
与常规ITC任务不同的是:单个图片BLIP2产生的image embedding有32个(等于learned query的数量),而text embedding只有1个。BLIP2的操作是,同时计算32个image embedding与text embedding的距离,仅取最近的计算loss。下图详细梳理了整体pipeline及对应的shape变化(忽略了batchsize)
2. 图文匹配任务(Image-Text Matching,ITM)
这是多模态预训练中的经典目标函数,旨在更加细粒度地对齐图像和文本的表征,使其互信息最大化。
此时会将query embedding与text embedding拼接起来作为输入,送入到QFormer中的Image Transformer中,通过一个二分类线性分类器,最后对Qformer在query embedding位置的输出向量取平均后进行预测。下图中详细展示了整体pipeline与shape变化(包含batch size维度)。
3. 基于图像的文本生成(Image-Grounded Text Generation,ITG)
ITG 给定一张输入图片,旨在训练 Q-Former 生成对应的文本描述。此处直接用QFormer的text transformer做image caption任务。有一个细节值得注意:作者将图片与文本表征的交互放到了self-attention中。
Q-Former训练第二步:联合视觉编码器和大型语言模型训练 在生成预训练的阶段,作者把 Q-Former 和冻结参数的 LLM 连接起来,以利用 LLM 的文本生成能力。 其过程如下:
作者尝试了2种大语言模型,分别时基于Decoder-only和介于Encoder-Decoder架构
主要工作:基于BLIPv2,将指令微调的范式引入到视觉语言模型上。
文章的主要贡献:
参考资料:https://www.datalearner.com/blog/1051681306547159
指令微调技术的主要思想就是在输入阶段对指令做调整,使其得到更好的结果输出。如对于问题任务,Instruction可以提供具体的指令,例如:“请回答下列问题:谁是美国的第一位总统?”。以InstructGPT为例,其基本流程如下:
这样的方式训练了出来的模型可以让模型更好地识别输入的意图,同时也在zero-shot中表现更好!InstructBLIP的自然语言指令集模板如下:
基于上一节的自然语言指令集模板,将26个数据集转化成Instruction tuning的形式。 其中13个用于训练(held-in),剩余13个用于验证和测试(held-out)。
在训练期间,把所有训练集held-in的数据混合后,在不同任务中均匀采样instruction templates,语言建模损失函数训练:给定输入图片和Instruction templates,希望它输出回答。
为了避免过拟合较小的数据集,欠拟合较大的数据集,作者修改了采样概率,数据集越大的,采样概率越高,越小的,采样概率越低:p = sqrt(S) / Σ(sqrt(Si)),其中S是每个数据集的大小。
结构上:Image encoder(ViT-g/14)、LLM(FlanT5-XL-3B,FlanT5-XXL-11B,Vicuna-13B)都冻结,只微调Q-Former 。其中可学习的Queries通过Self-attention层与Instructions进行交互,可学习的Queries通过Cross-attention再与Image embeddings进行交互,这样就可以鼓励网络提取与任务相关的图像特征,整个过程非常直观和符合直觉。
推理阶段:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。