【论文极速读】 指令微调BLIP:一种对指令微调敏感的Q-Former设计

2024-03-31 22:12

本文主要是介绍【论文极速读】 指令微调BLIP:一种对指令微调敏感的Q-Former设计,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

【论文极速读】 指令微调BLIP:一种对指令微调敏感的Q-Former设计
FesianXu 20240330 at Tencent WeChat search team

前言

之前笔者在[1]中曾经介绍过BLIP2,其采用Q-Former的方式融合了多模态视觉信息和LLM,本文作者想要简单介绍一个在BLIP2的基础上进一步加强了图文指令微调能力的工作——InstructBLIP,希望对诸位读者有所帮助。如有谬误请见谅并联系指出,本文遵守CC 4.0 BY-SA版权协议,转载请联系作者并注明出处,谢谢

∇ \nabla 联系方式:

  • e-mail: FesianXu@gmail.com

  • github: https://github.com/FesianXu

  • github page: https://fesianxu.github.io/

  • 知乎专栏: 计算机视觉/计算机图形理论与应用

  • 微信公众号:机器学习杂货铺3号店


之前我们介绍过BLIP2模型[1],其特点是采用Q-Former的方式在LLM中融合了多模态视觉信息,其中的learnable query可视为是一种软提示词(soft prompt)。如Fig 1. (b)所示,在整个BLIP2体系下,笔者个人认为可视为用学习出来的learnable query结合Q-Former,提炼出视觉表达,而这个视觉表达可视为也是一种软提示词,对参数固定的LLM进行提示,从而在LLM中融入多模态视觉信息。因此这个learnable query作为一种弱提示词是否学习得足够好,是影响后续MLLM表现的一个关键性因素之一。在BLIP2中的视觉特征提取是指令无关的,也即是Q-Former无法感知到不同指令的区别,在不同指令下都只能产出相同的视觉特征,这一点对一些细粒度的指令需求非常不友好。举例来说,一张图片的信息量是很丰富的,而人类在某次对话中的指令则可能只聚焦在这图片中的某个层面的细节上,如Fig 2所示,一个指令去请求模型回答名画的作者亦或是名画的作画细节,对图片视觉特征提取的要求是截然不同的,如果Q-Former无法对不同的指令进行感知,那么其提取出来的视觉特征则很难保证其能很好地满足指令的需求。instructBLIP在这个思考下,对Q-Former进行了改造使得其产出的视觉特征对指令敏感,如Fig 1 (a)所示,具体来说就是令Q-Former的learnable query同时配合指令进行输入,而learnable queryinstruction之间通过自注意力机制进行关联,这样能保证提取的视觉特征具有一定的指令敏感性,这个思路可谓是相当直接。

fig_1

Fig 1. InstructBLIP中采用的指令微调敏感的Q-Former结构 vs BLIP2中采用的指令无关Q-Former设计。

fig_2

Fig 2. 对视觉的不同需求,会对提取出来的视觉特征有着不同的粒度要求。

当然,为了引入更好的指令微调能力,不可避免地需要收集更大范围的指令微调数据,在instructBLIP中,作者汇总了包含了11个任务类别的26个数据集,如Fig 3所示,其中的LLaVa-Instruct-150k则是来自于工作[3]。为了进行更准确的任务迁移能力测试,作者对这26个数据集进行了留内集(held-on set)和留外集(held-out set)的划分(留内集会参与训练,而留外集则作为任务迁移能力的测试,不参与训练),这个划分有一些考虑:

  1. 任务粒度的划分: 作者按照任务粒度进行划分,其中visual reasoning、visual conversation QA、video question answering和image classification任务上都是作为留外集
  2. 数据集内部的划分:在以上提到的其他任务种类上,则在任务本身内进行划分,如image captioning上就将4个数据集划分为了2个留内集和2个留外集。

因此整个训练&测试的流程为:

  1. 在被划分为留内集的数据集本身的训练集中进行指令微调,然后通过这些留内集的验证集或者测试集进行留内验证(held-in evaluation)。
  2. 在留外验证(held-out evaluation)中,根据我们刚才的数据划分,有两种类型:
    • 数据集未被模型使用,但是有相同任务的数据集参与了训练
    • 数据集未被模型使用,同时也无相同任务的数据集参与了训练

注意到这些数据集本身可能并不是为了指令微调设计的(除了llava-instruct-150k),因此需要构建一些提示词模版(prompt template),在原文中作者构建了10到15个指令提示词模版,如下所示。注意到一些公开数据集中更青睐于短回答,因此在模版构建中使用了类似于"short"或者"briefly"的字眼去减少模型总是生成短答案的风险,当然更好的方法还是应该去收集一些长答案的训练集,笔者觉得也许通过GPT4去扩展/修正短回答也是一种可行的思路?

编号image captioning的任务模版VQA的任务模版VQG的任务模版
1A short image caption:{Question}Given the image, generate a question whose answer is: {Answer}. Question:
2A short image description:Question: {Question}Based on the image, provide a question with the answer: {Answer}. Question:
3A photo of{Question} A short answer to the question isGiven the visual representation, create a question for which the answer is “{Answer}”
4An image that showsQ: {Question} A:From the image provided, craft a question that leads to the reply: {Answer}. Question:
5Write a short description for the imageQuestion: {Question} Short answer:Considering the picture, come up with a question where the answer is: {Answer}.
6Write a description for the photo.Given the image, answer the following question with no more than three words. {Question}Taking the image into account, generate an question that has the answer: {Answer}. Question:
7Provide a description of what is presented in the photo.Based on the image, respond to this question with a short answer: {Question}. Answer:
8Briefly describe the content of the image.Use the provided image to answer the question: {Question} Provide your answer as short as possible:
9Can you briefly explain what you see in the image?What is the answer to the following question? “{Question}”
10Could you use a few words to describe what you perceive in the photo?The question “{Question}” can be answered using the image. A short answer is
11Please provide a short depiction of the picture.
12Using language, provide a short account of the image.
13Use a few words to illustrate what is happening in the picture.

由于训练集混合了多种数据来源,每个数据集的尺度都差别很大,如果均匀混在一起进行训练,在训练一定数量的token情况下,模型会见更多次小规模数据集,这导致模型容易倾向于小数据集的任务,而忽略大规模数据集的任务。为了解决这种问题,作者提出采用数据集规模的方式进行采样,假设 D D D个数据集的尺寸为 { S 1 , ⋯ , S D } \{S_1,\cdots,S_D\} {S1,,SD},那么第 d d d个训练集的采样概率则为 p d = S d ∑ i = 1 D S i p_d = \dfrac{\sqrt{S_d}}{\sum_{i=1}^D \sqrt{S_i}} pd=i=1DSi Sd 。为了减少某些特定任务数据集带来的风险,比如A-OKVQA (是一个多选择的问答任务)就需要手动降低权重,而会手动调高OKVQA数据集的权重。

fig_3

Fig 3. instructBLIP中的指令数据集中采用的原始26个数据集和其属于的不同任务类型分类。其中黄色框表示保留集,白色框表示留外集。

在训练过程中,作者采用BLIP2的checkpoint作为热启,固定了LLM底座和图片编码器,只微调Q-Former的参数,从动机上看,就是想要通过引入指令敏感的能力提高软提示词的效果。作者首先进行了模型zero-shot能力的测试,如Fig 4所示,在留外集上进行测试的结果验证了instructBLIP的领先性,而且在所有测试集上的提升均不少。

fig_5

Fig 4. instructBLIP在zero-shot任务上(留外集)的能力表现。

作者对文中提到的指令敏感Q-Former的引入、指令微调、数据平衡等方式进行了消融实现。首先看到指令微调和多任务训练方式的对比,在多任务训练方式中,数据不进行指令模版的格式化,如Fig 5所示,我们可以发现无论是多任务还是指令微调方式,都在留内集上表现接近,这意味着这两种方式都有同样的输入模式学习效果。但是在留外集上指令微调方式明显优于多任务学习方式,而后者表现与BLIP2基线接近,这意味着指令微调这种方式是加强LLM模型的zero-shot通用能力的关键。

fig_6

Fig 5. 指令微调方式和多任务训练方式在留内集和留外集的平均效果对比。

如Fig 6所示,作者在不同的LLM底座(FlanT5和Vicuna-7B)下,进行了去除指令敏感Q-Former和数据均衡策略的消融试验,试验证明这两者对性能的提升都是关键性的,其中指令敏感Q-Former的去除,在依赖于空间视觉推断的ScienceQA和时间视觉推断的iVQA任务上性能损失最大,这意味着引入指令敏感Q-Former模块的确能够提取更适合该指令下的图像视觉特征。

fig_7

Fig 6. 对指令敏感的Q-Former模块引入和数据均衡方式的消融试验。

总得来看,本文的贡献点主要是:

  1. 针对图文多模态的指令微调任务,设计了指令敏感的Q-Former模块,可以提取指令敏感的视觉特征。
  2. 针对图文多模态的指令微调任务,收集了一个由多个公开数据集组成的指令微调数据集。
  3. 采用一种数据均衡方式协调了数据集中的尺度大小不一的问题,提高了训练稳定性。

Reference

[1]. https://blog.csdn.net/LoseInVain/article/details/136013909, 《BLIP2——采用Q-Former融合视觉语义与LLM能力的方法》

[2]. Dai, Wenliang, Junnan Li, Dongxu Li, Anthony Meng Huat Tiong, Junqi Zhao, Weisheng Wang, Boyang Li, Pascale N. Fung, and Steven Hoi. “Instructblip: Towards general-purpose vision-language models with instruction tuning.” Advances in Neural Information Processing Systems 36 (2024). aka InstructBLIP

[3]. Liu, Haotian, Chunyuan Li, Qingyang Wu, and Yong Jae Lee. “Visual instruction tuning.” Advances in neural information processing systems 36 (2024). aka llava

这篇关于【论文极速读】 指令微调BLIP:一种对指令微调敏感的Q-Former设计的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/865480

相关文章

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

AI hospital 论文Idea

一、Benchmarking Large Language Models on Communicative Medical Coaching: A Dataset and a Novel System论文地址含代码 大多数现有模型和工具主要迎合以患者为中心的服务。这项工作深入探讨了LLMs在提高医疗专业人员的沟通能力。目标是构建一个模拟实践环境,人类医生(即医学学习者)可以在其中与患者代理进行医学

怎么让1台电脑共享给7人同时流畅设计

在当今的创意设计与数字内容生产领域,图形工作站以其强大的计算能力、专业的图形处理能力和稳定的系统性能,成为了众多设计师、动画师、视频编辑师等创意工作者的必备工具。 设计团队面临资源有限,比如只有一台高性能电脑时,如何高效地让七人同时流畅地进行设计工作,便成为了一个亟待解决的问题。 一、硬件升级与配置 1.高性能处理器(CPU):选择多核、高线程的处理器,例如Intel的至强系列或AMD的Ry

AI Toolkit + H100 GPU,一小时内微调最新热门文生图模型 FLUX

上个月,FLUX 席卷了互联网,这并非没有原因。他们声称优于 DALLE 3、Ideogram 和 Stable Diffusion 3 等模型,而这一点已被证明是有依据的。随着越来越多的流行图像生成工具(如 Stable Diffusion Web UI Forge 和 ComyUI)开始支持这些模型,FLUX 在 Stable Diffusion 领域的扩展将会持续下去。 自 FLU

基于51单片机的自动转向修复系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机

论文翻译:arxiv-2024 Benchmark Data Contamination of Large Language Models: A Survey

Benchmark Data Contamination of Large Language Models: A Survey https://arxiv.org/abs/2406.04244 大规模语言模型的基准数据污染:一项综述 文章目录 大规模语言模型的基准数据污染:一项综述摘要1 引言 摘要 大规模语言模型(LLMs),如GPT-4、Claude-3和Gemini的快

论文阅读笔记: Segment Anything

文章目录 Segment Anything摘要引言任务模型数据引擎数据集负责任的人工智能 Segment Anything Model图像编码器提示编码器mask解码器解决歧义损失和训练 Segment Anything 论文地址: https://arxiv.org/abs/2304.02643 代码地址:https://github.com/facebookresear

工作常用指令与快捷键

Git提交代码 git fetch  git add .  git commit -m “desc”  git pull  git push Git查看当前分支 git symbolic-ref --short -q HEAD Git创建新的分支并切换 git checkout -b XXXXXXXXXXXXXX git push origin XXXXXXXXXXXXXX

SprinBoot+Vue网络商城海鲜市场的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 application.yml3.5 SpringbootApplication3.5 Vue 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍:CSDN认证博客专家,CSDN平台Java领域优质创作者,全网30w+