论文笔记--InstructBLIP: Towards General-purpose Vision-Language Models with Instruction Tuning

论文笔记--InstructBLIP: Towards General-purpose Vision-Language Models with Instruction Tuning

  • 1. 文章简介
  • 2. 文章概括
  • 3 文章重点技术
    • 3.1 数据集构建
    • 3.2 特征提取
    • 3.3 数据平衡
    • 3.4 模型实现
    • 3.5 多任务学习&指令微调
  • 4. 文章亮点
  • 5. 原文传送门

1. 文章简介

  • 标题:InstructBLIP: Towards General-purpose Vision-Language Models with Instruction Tuning
  • 作者:Wenliang Dai, Junnan Li, Dongxu Li, Anthony Meng Huat Tiong, Junqi Zhao, Weisheng Wang, Boyang Li, Pascale Fung, Steven Hoi
  • 日期:NeurIPS
  • 期刊:2023

2. 文章概括

  文章提出了一种基于指令微调的多模态语言模型InstructBLIP,模型提出了一种可将指令信息编码的Query Transformer,并在13个指令微调数据集上进行模型训练。模型在多个测试集上得到了SOTA表现,且实验表明基于InstructBLIP进行SFT的模型在多个下游任务上取得更好的表现。

3 文章重点技术

3.1 数据集构建

  如下图所示,文章收集了来自11个任务的26个数据集,将其中13个数据集作为held-in datasets(图中黄色部分),将held-in datasets的training sets用于指令微调训练,将held-in datasets的dev/test sets用于held-in 评估;将另外13个数据集作为held-out datasets(图中白色部分),该部分数据又可进一步划分为1) 模型训练(held-in)未见过的数据&模型训练见过的任务类型 2)模型训练(held-in)未见过的数据&模型训练未见过的任务类型 ,后者的难度更大。
论文笔记--InstructBLIP: Towards General-purpose Vision-Language Models with Instruction Tuning_第1张图片

3.2 特征提取

  文章的整体算法框架基于BLIP-2模型。如下图左所示,BLIP-2使用了一个Query-Transformer模块:Q-Former 将(frozen) Image Encoder编码生成的视觉特征作为输入,将通过cross-attention模块得到编码后的视觉特征向量作为输出,Q-Former的输出再经过一个全连接层之后传入到一个(Frozen) LLM。
  不同于BLIP-2,文章提出一种Instruction-aware 的特征提取方法,如下图右所示,Q-Former会同时将Instruction和Queries通过self-attention层交互得到指令相关的特征向量,再和图像编码进行cross attention。
论文笔记--InstructBLIP: Towards General-purpose Vision-Language Models with Instruction Tuning_第2张图片

3.3 数据平衡

  为了使不同来源的数据尽可能平衡且不至于对小样本的数据集过拟合,文章提出下述采样方法:给定 D D D个数据集,每个大小分别为 { S 1 , … , S D } \{S_1, \dots, S_D\} {S1,,SD},则训练集从数据集 d d d中采样一个样本的概率为 S d ∑ i = 1 D S i \frac {\sqrt{S_d}}{\sum_{i=1}^D \sqrt{S_i}} i=1DSi Sd 。在此基础上,文章降低了多选题的权重,增加了开放式文本生成的权重。下表中w/o data balancing表示不采用数据平衡策略进行训练的表现,可以看到数据平衡对held-in 和held-out评估均有小幅提升。
论文笔记--InstructBLIP: Towards General-purpose Vision-Language Models with Instruction Tuning_第3张图片

3.4 模型实现

  文章选择了BLIP-2的FlanT5-XL, FlanT5-XXl, Vicuna-7B和Vicuna-13B作为模型底座进行微调。训练过程中冻结image encoder 和LLM的参数,只更新Q-Former的参数即可。

3.5 多任务学习&指令微调

  为了排除多任务学习对模型表现的影响,文章设计了两个实验1)不采用指令,直接用原始的训练输入-输出进行训练2)采用指令[Task:Dataset]进行训练。如下图所示,在held-in评估集上,多任务学习和InstructBLIP表现都很好;在held-out评估集上,指令微调模型表现明显优于多任务学习。说明指令微调是提升模型zero-shot泛化能力的关键。
论文笔记--InstructBLIP: Towards General-purpose Vision-Language Models with Instruction Tuning_第4张图片

4. 文章亮点

  文章通过对BLIP-2模型进行Instruction aware的指令微调得到了模型InstructBLIP,模型在多个验证集上达到了SOTA表现,大幅提升了多模态模型的zero-shot泛化能力。多个实例表明InstructBLIP可生成更加精准的回复。且实验表明,InstructBLIP可作为更强大的模型底座支撑下游任务。

5. 原文传送门

InstructBLIP: Towards General-purpose Vision-Language Models with Instruction Tuning

你可能感兴趣的:(论文阅读,论文阅读,语言模型,InstructBLIP,BLIP,多模态)