多模态:InstructBLIP

Introduction

作者表示,与nlp任务不同,多模态任务由于引入额外的视觉输入,它的任务更加多样化,这似的联合多个模型是一个有挑战性的工作。

以前的方法大多要依靠LLM的生成能力,LLM在微调text- only instruction比微调Vision- language 的表现要更让人满意。

为了解决上述问题,作者提出了Instruct BLIP,一个多模态微调框架。
它由BLIP-2初始化,在微调期间,只微调Q- former保持LLM与image encoder frozen。

这篇文章的贡献主要是:

  1. 合并了当前的多模态数据集,并转换成指令微调的形式。
  2. 提出了新的 instruction-aware 视觉提取架构。
  3. 验证了有效性。

Method

dataset

在这里插入图片描述
联合上面的数据集,为不同的任务设置了不同的prompt template。
在这里插入图片描述

为了更好的验证性能,把验证集分割为两部分:
训练中见过此类任务,但是没见过这个样本,用于测试在相同任务unseen数据的性能。
训练集没见过此类任务,用于测试在unseen task 的unseen sample 的 迁移能力。

如果涉及到文本 图像,增加OCR token。

Instruction-aware 视觉提取架构

首先是 数据上的变化:

  1. 用相同的图像采取不同的instruction
  2. 不同的图像采取相同的instruction

这应该是增加泛化的一种方式。

然后是结构上的变化:
在这里插入图片描述
Image - Coder、LLM都被冻结,只微调Q- former。MiniGPT4则是微调Q- former与LLm之间 projection linear。

与BLIP2不同的是作者在Q- former阶段与LLM阶段都输入了Instruction。
由于在blip2预训练Q- former时,它就可以提取文本特征,然而到了推理阶段,就把这个Instruction放到了LLM侧。

在Q-fomer 阶段引入Instruction可以在计算self- attention的时候,query也考虑了instruction来抽取image- encoder的特征。

作者也通过实验证明了这样做的有效性。
在这里插入图片描述

Dataset Balance

由于作者混合多个数据集,每个数据集的大小不同,如果采用均匀采样,可能会造成大数据集underfitting,小数据集overfitting。所以作者对不同的数据集采取不同的sample比例。

实验

在这里插入图片描述

参考

https://arxiv.org/pdf/2305.06500.pdf

猜你喜欢

转载自blog.csdn.net/qq_18555105/article/details/130668331