爱笑的小姐姐 · 2023年05月19日

华人团队开源指令精调的InstructBLIP多模态大模型

image.png

Title: nstructBLIP: Towards General-purpose Vision-Language Models with Instruction Tuning
PDF: https://arxiv.org/pdf/2305.06500v1.pdf
Code: https://github.com/salesforce/lavis

导读

本文提出了一个名为InstructBLIP的视觉语言指令调整框架,它基于预训练的BLIP-2模型,对视觉语言指令进行调整。虽然视觉语言预训练已经得到了广泛的研究,但视觉语言指令调整仍相对较少探索。本文收集了26个公开可用的数据集,并将其转换为指令调整格式,并进行zero-shot泛化评估。此外,本文还引入了指令感知的视觉特征提取方法,使模型能够提取适合给定指令的视觉信息特征。结果表明,InstructBLIP模型在所有13个数据集上实现了最先进的zero-shot性能,明显优于BLIP-2和更大的Flamingo。在个别下游任务(例如ScienceQA IMG达到了90.7%准确率)微调时,也达到了最先进的性能。此外,本文还定性地展示了InstructBLIP相对于并行多模型的优势。

引言

在人工智能领域,建立一个能够适用于各种任务的统一模型一直是各大研究学者努力的方向。在NLP领域中,指令调整Instruction-tuned通过在大语言模型上微调来处理和遵循理解一些新的指令,取得了不错效果。近期,指令调整也被用于视觉语言任务,BLIP-2通过适应冻结的指令调整语言模型有效地理解视觉信息输入,在图像到文本生成方面展示了初步的指令遵循Instruction-following能力。

然而,与NLP任务不同,由于来自不同领域的额外视觉输入,视觉-语言任务在性质上更加多样化。这使得构建一个能够推广到广泛的视觉-语言任务的统一模型更具挑战性。以前的方法要么执行多任务训练,要么直接利用LLMs的内在泛化能力。然而,多任务训练方式尽管使用统一的输入输出格式,却未能充分解决任务之间的差异。另一方面,仅针对文本指令进行调整的LLMs在NLP任务的zero-shot泛化上更有效,但对于视觉-语言任务的表现则不够令人满意。

本文介绍了一个名为InstructBLIP的视觉语言指令调整框架,该框架通过一个统一的自然语言接口,使通用模型能够解决广泛的视觉任务。InstructBLIP的初始化来自一个预训练的BLIP-2模型,包括图像编码器、LLM和Q-Former。在指令调整期间,作者保持图像编码器和LLM不变,而只对Q-Former进行微调。文章的主要贡献点如下:

  1. 对视觉语言指令调整进行了全面系统的研究。将26个数据集转换成指令调整格式并分成11个任务类别。其中,13个数据集用于指令调整,13个数据集用于zero-shot评估。此外,还有四个任务类别被专门保留用于任务级zero-shot的评估。相关定量和定性结果证明了InstructBLIP在视觉语言zero-shot泛化方面的有效性。
  2. 提出了一种指令感知的视觉特征提取机制,它可以根据给定的指令灵活且有效地提取视觉信息特征。指令不仅作为生成文本的条件被提供给冻结的LLM,还作为从冻结的图像编码器中提取视觉特征的条件被提供给Q-Former。
  3. 评估和开源了一套InstructBLIP模型,使用了两个LLM系列:1)FlanT5,从T5微调的编码器-解码器LLM;2)Vicuna,从LLaMA微调的仅解码器LLM。InstructBLIP模型在广泛的视觉语言任务上实现了最先进的zero-shot表现。此外,当用作模型初始化时,InstructBLIP模型还具备最先进的微调性能。

方法

image.png

InstructBLIP是一个针对视觉语言指令微调的框架,旨在解决视觉语言任务中的挑战,并提供系统性的研究来提高模型对未见数据和任务的泛化能力。如上图1展示了InstructBLIP的模型架构:Q-Former从冻结的图像编码器的输出嵌入中提取具有指导意义的视觉特征,并将这些视觉特征作为软提示输入到冻结的LLM中,并使用语言模型损失对模型进行指导训练,以生成回答。

指令微调数据构建

image.png

为确保指令调整数据的多样性,作者收集了广泛可用的视觉语言数据集,并将它们转换为指令调整格式。如上图2所示,最终收集了11个任务类别和28个数据集,包括图像字幕、图像字幕阅读理解、视觉推理、图像问答、知识驱动的图像问答、图像问答阅读理解、图像问答生成、视频问答、视觉对话问答、图像分类和 LLaVA-Instruct-150K 数据集等。作者为每个任务精心设计了10到15个不同的指令模板,作为构建指令调整数据的基础。对于本来就倾向于生成短响应的公共数据集,作者在一些对应的指令模板中加入了“简短”、“简洁”等词语,以减少模型过拟合。

训练和评估方法

为了涵盖多种训练任务,同时为zero-shot评估保留足够数量的未见数据,本文将这26个数据集划分为13个训练数据集和13个测试数据集。如上图2所示,黄色表示训练数据集,白色表示测试数据集。对于测试集外的评估,本文定义了两种类型的数据:

  1. 在训练过程中未曾暴露给模型,但其任务在训练集内出现过
  2. 完全未在训练过程中见过的数据集和任务

对于第一种类型的评估,由于训练集和测试集之间的图像分布不同,因此解决该问题是不容易的;对于第二种类型,本文保留了一些任务,包括视觉推理、视频问答、视觉会话QA和图像分类。在训练期间,本文混合了所有训练数据集并均匀采样每个数据集的指令模板进行训练。

指令感知和视觉特征提取

image.png
通过删除指令感知的视觉特征提取机制和数据平衡策略进行的消融实验结果。对于内部数据集的评估,计算了四个数据集(COCO Caption、OKVQA、A-OKVQA和TextCaps)的平均分数。对于外部数据集的评估,展示了来自不同任务的五个数据集的结果。

现有的零样本图像到文本生成的方法(包括BLIP-2)都是不考虑指令的,即视觉输入与指令无关,这降低了模型在不同任务上的灵活性。为了解决这个问题,InstructBLIP提出了一种指令感知的视觉特征提取方法Q-FormerQ-Former利用BLIP-2模型中的Q-Former结构,从固定的图像编码器的输出中提取视觉特征。在预训练阶段,Q-Former学习提取与文本对齐的视觉特征。在InstructBLIP中,指令文本不仅被输入到LLM中,还被输入到Q-Former中,提取查询向量提取更符合指令的视觉特征,进而提高模型性能。作者在上表2中展示了指令感知的视觉特征提取在内部和外部评估中带来了明显的性能提升。

数据平衡策略

为了解决因数据集大小差异导致模型过拟合小数据集、欠拟合大数据集的问题,作者提出了一种按照数据集大小加权采样的方法。具体来说,对于D个数据集,每个数据集的大小为,,,,训练过程中从数据集D中选择一个样本的概率由一个公式计算。作者还进行了一些手动权重调整以提高收敛速度,特别是降低A-OKVQA(多选题)的权重,提高OKVQA的权重。作者在上表2中展示了数据平衡策略对于保持数据集内和数据集间泛化性能的提升。

实验结果

image.png
在外部数据集上的zero-shot结果。Visdial、HM和SciQA分别代表Visual Dialog、HatefulMemes和ScienceQA数据集。对于ScienceQA,只评估带有图像上下文的集合。本文报告了NoCaps和Flickr30K的CIDEr分数[41],iVQA的准确率,HatefulMemes的AUC分数以及Visual Dialog的Mean Reciprocal Rank(MRR)。

image.png

InstructBLIP Vicuna模型生成的一些定性示例。这些示例展示了模型的多样化能力,包括复杂的视觉场景理解和推理、基于知识的图像描述、多轮视觉对话等等。

image.png

基于BLIP-2 FlanT5XL骨干架构的指导调整和多任务训练的比较。对于内部评估,本文计算所有内部数据集的平均得分。对于外部评估,则计算GQA、TextVQA、VSR、HatefulMemes、IconQA、ScienceQA、iVQA、VizWiz这些数据集的平均得分。

image.png

对下游数据集进行的BLIP-2InstructBLIP微调的结果如上所示。与BLIP-2相比,InstructBLIP提供了更好的权重初始化模型,并在四个数据集中有三个达到了最先进的性能水平。

结论

本文介绍的InstructBLIP是一个简单而创新的面向通用视觉语言模型的指令调整框架。作者对视觉语言指导调整进行了全面的研究,并展示了InstructBLIP模型在广泛的未知任务上具有最先进的性能。定性示例还展示了InstructBLIP在指令遵循Instruction Following方面的各种能力,如复杂的视觉推理、知识驱动的图像描述和多轮对话等。此外,作者还展示了InstructBLIP可以作为下游任务微调的增强模型初始化,实现了最先进的结果。本文希望InstructBLIP能够推动通用多模态人工智能及其应用领域的新研究。

作者: 派派星
文章来源:CVHub

推荐阅读

更多嵌入式AI干货请关注嵌入式AI专栏。欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。
推荐阅读
关注数
18839
内容数
1375
嵌入式端AI,包括AI算法在推理框架Tengine,MNN,NCNN,PaddlePaddle及相关芯片上的实现。欢迎加入微信交流群,微信号:aijishu20(备注:嵌入式)
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息