当前位置: 首页 > article >正文

多模态大模型(4)--InstructBLIP

BLIP-2通过冻结的指令调优LLM以理解视觉输入,展示了在图像到文本生成中遵循指令的初步能力。然而,由于额外的视觉输入由于输入分布和任务多样性,构建通用视觉语言模型面临很大的挑战。因而,在视觉领域,指令调优技术仍未被充分探索。InstructBLIP(《InstructBLIP: Towards General-purpose Vision-Language Models with Instruction Tuning》),是由Salesforce Research与香港科技大学和新加坡南洋理工大学合作提出的多模态预训练模型。InstructBLIP基于预训练的BLIP-2模型,进行视觉指令微调,旨在构建一个通用的视觉语言模型,能够处理多种视觉语言任务。实验表明,在13个保留数据集上训练的InstructBLIP并分别测试,结果显示在全部的数据集上都取得了最先进的零样本性能,显著优于BLIP-2和更大的Flamingo模型。

主要贡献

● 对视觉语言指令调优进行了全面和系统的研究,证明了InstructBLIP在视觉语言零样本泛化方面的有效性。
● 提出了指令感知的视觉特征提取以及一种平衡采样策略,以同步数据集之间的学习进度。
● 开源了一系列使用两个LLM家族的InstructBLIP模型:1)FlanT5,一个从T5微调的编码器-解码器LLM;2)Vicuna,一个从LLaMA微调的仅解码器LLM。

微调中使用的相关数据集如下:
在这里插入图片描述

模型

在这里插入图片描述
InstructBLIP模型的工作流程可以概括为以下几个关键步骤:

  1. 预训练模型初始化:
    ○ InstructBLIP基于预训练的BLIP-2模型,该模型包含一个图像编码器、一个大型语言模型(LLM)和一个查询变换器(Q-Former)。这些组件共同构成了模型的核心架构。
  2. 指令感知的视觉特征提取:
    ○ InstructBLIP引入了一个指令感知的Q-Former,它不仅接收图像特征,还接收文本指令作为输入。这样,Q-Former可以根据给定的指令从图像编码器的输出中提取与任务相关的特征。
  3. 指令调优:
    ○ 在指令调优阶段,模型在13个保留数据集上进行微调,同时保持图像编码器和LLM冻结。这一过程使得模型能够学习如何根据自然语言指令执行特定的视觉语言任务。
  4. 平衡采样策略:
    ○ 为了处理不同数据集大小的差异,InstructBLIP采用了平衡采样策略,确保模型不会过度拟合小数据集或在大数据集上欠拟合。
  5. 零样本评估:
    ○ InstructBLIP在13个保留数据集上进行零样本评估,以测试模型在未见任务上的泛化能力。这包括在训练期间未见过的完整任务类别。
  6. 下游任务微调:
    ○ InstructBLIP还可以在特定的下游任务上进行微调,以进一步提高性能。由于图像编码器在指令调优期间保持冻结,这减少了可训练参数的数量,提高了微调效率。
  7. 多模态接口:
    ○ InstructBLIP通过统一的自然语言界面处理广泛的视觉语言任务,使其成为一个通用的视觉语言模型。

实验结果

在downstreat的数据集测试,InstructBLIP超过了以前的SOTA(state of the art)以及BLIP-2方法。
在这里插入图片描述

总结

InstructBLIP模型的核心创新在于其指令感知的视觉特征提取机制和指令调优策略,这使得模型能够灵活地适应不同的视觉语言任务,并在零样本设置下展现出强大的泛化能力。通过这种方式,InstructBLIP能够在多种视觉语言任务上实现更为先进的性能。

PS:附原文:https://arxiv.org/pdf/2305.06500,感兴趣读者可以深入阅读。


http://www.kler.cn/a/404043.html

相关文章:

  • Unity3D基于ECS的游戏逻辑线程详解
  • MySQL - 数据库基础 | 数据库操作 | 表操作
  • Matlab 答题卡方案
  • Spring Cloud Alibaba、Spring Cloud 与 Spring Boot各版本的对应关系
  • Makefile 之 自动化变量
  • 7-9 求无向图连通分量的数量
  • python中Pandas操作excel补全内容
  • 无人机与低空经济:开启新质生产力的新时代
  • Makefile 之 自动化变量
  • brpc 与 Etcd 二次封装
  • GitHub 开源项目 Puter :云端互联操作系统
  • Linux设置以及软件的安装(hadoop集群安装02)
  • pycharm复现github项目代码问题记录
  • 【zookeeper01】消息队列与微服务之zookeeper工作原理
  • GPT系列文章
  • 小作业顺序表
  • Word 插入分节符页码更新问题
  • ChatGPT 与其他 AI 技术在短视频营销中的技术应用与协同策略
  • 用户无法登陆,修改用户进程数
  • 聊聊Flink:Flink中的时间语义和Watermark详解
  • Qt/C++离线地图的加载和交互/可以离线使用/百度和天地图离线/支持手机上运行
  • 优化算法|基于Deep-Q-Network(DQN)的邻域搜索算法求解分布式柔性作业车间调度问题
  • InstantStyle容器构建指南
  • 2035:【例5.2】平移数据
  • 1. 语音信号基础
  • 笔记记录 k8s操作