首页 > 其他分享 >多模态大模型(4)--InstructBLIP

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

时间:2024-11-24 10:05:09浏览次数:9  
标签:模态 -- 模型 InstructBLIP 指令 LLM 视觉 调优

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,感兴趣读者可以深入阅读。

标签:模态,--,模型,InstructBLIP,指令,LLM,视觉,调优
From: https://blog.csdn.net/burstone/article/details/143957315

相关文章

  • Android开发教程实战案例源码分享-BottomNavigationView 使用以及中间凸起效果
    Android开发教程实战案例源码分享-BottomNavigationView使用以及中间凸起效果主页中间往往有凸起效果的需求一、思路:BottomNavigationView,中间用盖一层方式二、效果图:也可以看视频,直观点:Android开发教程实战案例源码分享-BottomNavigationView使用以及中间凸起......
  • django的model时间怎么转时间戳
    在Django中,模型(Model)中的日期和时间字段通常使用Django的DateTimeField或相关字段来存储。如果你想要将这些日期时间字段转换为Unix时间戳(即自1970年1月1日以来的秒数),你可以使用Python的datetime模块中的timestamp()方法。以下是一个例子,展示了如何将Django模型中的DateTim......
  • 2024年11月17日 星期天 Go语言基础
    今日格言坚持每天进步一点点~一个人也可以是一个团队~学习全栈开发,做自己喜欢的产品~~Go语言的创始人Go语言的创始人有三位,分别是:RobertGriesemer:他参与开发了JavaHotSpot虚拟机。RobPike:他是Go语言项目的总负责人,曾是贝尔实验室Unix团队的成员,参与过Plan9、Inf......
  • MyBatis——分页插件(重要)
    目录(一)分页的计算方式(二)添加依赖(三)配置分页插件 (四)分页插件的使用1.PageHelper.startPage(intpageNum,intpageSize)2.PageInfo获取分页相关数据(一)分页的计算方式limit index,pageSizeindex:当前页的起始索引pageSize:每页显示的条数pageNum:当前页......
  • MyBatis入门——基本的增删改查
    目录一、MyBatis简介二、搭建MyBatis(一)配置依赖(二)log4j日志功能(三)数据库配置文件——jdbc.properties(四)创建MyBatis的核心配置文件(五)使用MyBatisX插件三、项目其他配置搭建(一)创建数据库连接工具类(二)创建表(三)创建数据库的实体类(四)UserMapper接口......
  • vue3大事件项目视频概述
    166请求工具架构搭建相关:将与请求相关(和axios相关)的配置封装成一个模块,此模块包含创建axios实例、请求拦截器和响应拦截器这三个核心部分。先在VSCode中操作,第一步是装包(如通过PNPMadd安装axios),对于axios的配置,可从官网的createinstance部分获取已有内容,将其......
  • 关于vue生命周期理解示例代码
    在业务运作时,特定的逻辑代码,需要在特定的阶段去执行,所以需要理解Vue的生命周期,以及各个周期内的方法,才能明确业务代码的编写概述:Vue生命周期,指一个vue实例从创建到销毁的过程。分为四个阶段:①创建-->②挂载-->③更新-->④销毁①创建阶段  拿到数据准备好,进行响应式处理......
  • 【yolo数据集】田间农作物焚烧灰烬数据集yolo-voc-221张3标签
    数据集概述数据集描述本数据集包含农村田间焚烧农作物秸秆等的图片,图片来源于网页爬取并自行标注,旨在用于训练和评估目标检测模型。数据集中共有221张图片,每张图片的分辨率为清晰,每张图片都有对应的VOC格式(XML)和YOLO格式(TXT)标注文件。标签种类为3种,总共有588个标注框。请注意......
  • 【泥石流;风险;脆弱性;风险评估;川藏公路北线|论文解读5】川藏高速公路北线泥石流风险评估
    【泥石流;风险;脆弱性;风险评估;川藏公路北线|论文解读5】川藏高速公路北线泥石流风险评估【泥石流;风险;脆弱性;风险评估;川藏公路北线|论文解读5】川藏高速公路北线泥石流风险评估文章目录【泥石流;风险;脆弱性;风险评估;川藏公路北线|论文解读5】川藏高速公路北线泥石流风险评......
  • 【EI会议推荐】EI会议预告 | 抢先掌握学术前沿!快来参加学术会议投稿,展示你的研究成果,
    【EI会议推荐】EI会议预告|计算机、电气能源、经管、教育、通信、医学、光学遥感、材料等多学科)【EI会议推荐】EI会议预告|计算机、电气能源、经管、教育、通信、医学、光学遥感、材料等多学科)文章目录【EI会议推荐】EI会议预告|计算机、电气能源、经管、教育、......