论文阅读——Img2LLM(cvpr2023)

news2025/3/1 11:03:04

arxiv:[2212.10846] From Images to Textual Prompts: Zero-shot VQA with Frozen Large Language Models (arxiv.org)

一、介绍

使用大语言模解决VQA任务的方法大概两种:multi-modal pretraining and language-mediated VQA,即多模态预训练的方法和以语言模型为媒介的VQA。

Multi-modal pretraining:训练一个额外的模块对齐视觉和语言向量。这类方法有两个很大的缺点,一是计算资源大,训练Flamingo需要1536 TPUv4,耗时两周。另外是灾难性遗Catastrophic forgetting. 如果LLM与视觉模型联合训练,则对齐步骤可能对LLM的推理能力不利。

Language-mediated VQA:这种VQA范式直接采用自然语言作为图像的中间表示,不再需要昂贵的预训练,不需要将图片向量化表示。PICa这种方法在few-shot setting中,为图片生成描述,然后从训练样本中选择in-context exemplars范例,但是当没有样本时,其性能会显著下降;另外还有一种方法生成与问题相关的标题。由于零样本的要求,它无法提供上下文中的范例,也无法获得上下文中学习的好处。因此,它必须依赖于特定QA的LLM,UnifiedQAv2,以实现高性能。

以语言为媒介的VQA,模态连接是通过将图片转化为语言描述,而不是稠密向量。任务连接是通过few-shot in-context exemplars或者大模型直接在文本问答上微调。

Img2LLM:本文提出的方法Img2LLM是,为图片生成问答范例,即从当前图像中生成合成的问答对作为上下文示例。也就是这些示例不仅演示了QA任务,而且还将图像的内容传达给LLM以回答问题Q。

三种方式比较:

二、Method

1. Answer Extraction

寻找可以作为合成问题答案的单词。方法是,使用现成的描述模块生成图片描述,然后从里面提取候选答案。提取时,提取名词短语(包括命名实体)、动词短语、形容词短语、数字和布尔型单词(如“是”和“否”)作为候选答案。

2. Question Generation

有了候选答案后可以使用现成的任意的问题生成模型为每一个候选答案生成具体的问题。

生成问题有两中方式:基于模板的方式和基于神经网络的方式。

Template-based Question Generation

For example, for answers that are nouns, we use the question “What object is in this image?” For verb answers, we use the question “What action is being taken in this image?

就是有个模板,然后填文本,生成问题。

Neural Question Generation

微调一个T5-large模型从答案里面产生问题。

training 输入:“Answer: [answer]. Context: [context]”,[answer] denotes the answer text,[context] denotes the context text from textual QA datasets。

inference:replace [answer] with an extracted answer candidate and [context] with the generated caption from which the answer was extracted.

在5个textual QA数据集上训练:SQuAD2.0, MultiRC, BookQA, Common-senseQA and Social IQA

有一个prompt组成的对比数据:

3. Question-relevant Caption Prompt

除了合成的QA对,和问题相关的图片描述也会输入模型。

问的问题可能会询问图像中的特定对象或区域,但现有网络生成的通用描述可能不包含相关信息。比如,在图2中,“什么东西在后台旋转,可以用来控制电力?”这个问题只与风力涡轮机有关。然而,从整个图像中生成的描述可能会集中在突出或倾斜的船上,使LLM没有信息来回答这个问题。为了解决这个问题,我们生成关于图像中与问题相关的部分的标题,并将其包含在LLM的提示中。

那么,怎么做到生成关于图像中与问题相关的部分的标题?使用了两个模型:Imagegrounded Text Encoder (ITE) in BLIP,GradCAM。ITE可以计算图片和问题的相似度,GradCAM可以生成一个粗略的定位图,突出显示给定问题的匹配图像区域。得到每个块和问题的相关度之后,根据概率采样一些图像块,然后为每个图像块生成图像描述。但是由于采样的不确定性,图片描述模型可能会生成对性能有负面影响的噪声字幕。为了去除有噪声的字幕,我们使用ITE来计算生成的字幕和采样的问题相关图像补丁之间的相似性得分,并过滤匹配得分小于0.5的字幕。总的来说,这个过程产生了与问题相关的、多样化的、干净的合成字幕,在视觉和语言信息之间架起了一座桥梁。

4. Prompt Design

到现在为止,合成了QA对question-answer pairs,图片描述question-relevant captions。

把这些instruction, captions, and QA exemplars拼接concatenate成一个完整的prompt。

instruction:“Please reason the answers of question according to the contexts.”

Contexts:[all captions]

Question:[question]         Answer: [answer]

最后一个要问的问题放到最后,不写答案:

Question: [question].        Answer:

因为LM有输入字数的限制,所以生成的这些答案】描述不能都输进去。所以有一些答案、描述选择策略。为了选择信息量最大的提示,我们首先统计100个生成的字幕中合成答案候选者的频率。然后,我们选择30个频率最高的候选答案,并为每个答案生成一个问题。此外,我们还包括30个频率最低的答案和一个包含每个答案的标题。

三、实验部分

use BLIP to generate captions and perform image-question matching.

To localize the image regions relevant to the question, we generate GradCam from the cross-attention layer of BLIP image-grounded text encoder. Then sample K′ = 20 image patches based on GradCam, and use them to obtain 100 question-relevant captions.

LLMs:opensource OPT model with multiple different sizes.

四、其他

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1278058.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第一类瑞利索末菲标量衍射模型的方孔衍射的空间像计算(附python计算代码)

记第一类瑞利索末菲标量衍射模型的方孔衍射的空间像计算(附python计算代码) RS type 1 衍射空间像计算傅里叶变换采样条件实际计算计算要求傅立叶变换法计算直接卷积方法计算代码傅立叶变换方法直接卷积https://zhuanlan.zhihu.com/p/624292239 Goodman, J. W. (2004). Intro…

RHCE学习笔记(RHEL8) - RH294

Chapter Ⅰ 介绍Ansible ansible ansible是一款开源自动化平台 ansible围绕一种无代理架构构建,在控制节点上安装ansible,且客户端不需要任何特殊的代理软件;ansible使用SSH等标准协议连接受管主机,并在受管主机上运行代码或命令来…

http面试题,三次握手四次挥手

在浏览器中输入网址按下回车经历了一个怎样的过程? 总的来说分为以下几个过程: 1、DNS解析:将域名解析为IP地址; 2、TCP连接:TCP三次握手; 3、发生HTTP请求; 4、服务器处理请求并返回HTTP报文; 5、浏览器解析渲染页面; 6、断开连接…

Linux shell中的函数定义、传参和调用

Linux shell中的函数定义、传参和调用: 函数定义语法: [ function ] functionName [()] { } 示例: #!/bin/bash# get limit if [ $# -eq 1 ] && [ $1 -gt 0 ]; thenlimit$1echo -e "\nINFO: input limit is $limit" e…

文件操作-IO

文件操作-IO 1.认识文件1.什么是文件2.文件路径 2.java中操作文件2.1 File类的用法 3.InputStream和OutputStream的用法 1.认识文件 1.什么是文件 文件是计算机系统中用来存储数据的基本单位。它是一种用于持久性存储数据的命名、有序的数据集合.计算机系统通过文件系统来组织…

使用SpringBoot和ZXing实现二维码生成与解析

一、ZXing简介 ZXing是一个开源的,用Java实现的多种格式的1D/2D条码图像处理库。它包含了用于解析多种格式的1D/2D条形码的工具类,目标是能够对QR编码,Data Matrix, UPC的1D条形码进行解码。在二维码编制上,ZXing巧妙地利用构成计…

CPU 使用率和负载Load

优质博文:IT-BLOG-CN 一、CPU 使用率 CPU使用率是 CPU处理非空闲任务所花费的时间百分比 。例如单核CPU 1s内非空闲态运行时间为0.8s,那么它的CPU使用率就是80%;双核CPU 1s内非空闲态运行时间分别为0.4s和0.6s,那么,…

SQL Server 数据库,使用函数查询统计信息

4.1 在查询中使用函数 在前面章节已经学习了一些简单的增、删、改、查询的T-SOL.语句,但是为了更方便快捷地完 成大量的任务,SOLServer提供了一些内部函数,可以和SOLServer的SELECT语句联合使用,也可 以与UPDATE和INSERT一起使用&…

【C语言:数据在内存中的存储】

文章目录 1.整数在内存中的存储1.1整数在内存中的存储1.2整型提升 2.大小端字节序2.1什么是大小端2.2为什么有大小端之分 3.整数在内存中的存储相关题目题目一题目二题目三题目四题目五题目六题目七 4.浮点数在内存中的存储4.1浮点数存的过程4.2浮点数取得过程 在这之前呢&…

[ 蓝桥杯Web真题 ]-年度明星项目

目录 引入 介绍 准备 目标 效果 规定 思路 知识补充 解答参考 引入 hello,大家好!我注意到了之前发的一篇蓝桥杯Web应用开发的文章是关注度最高的,可能大部分关注我的小伙伴对蓝桥杯Web应用开发比较感兴趣,或者想要参加…

TA-Lib学习研究笔记(八)——Momentum Indicators 中

TA-Lib学习研究笔记(八)——Momentum Indicators 中 Momentum Indicators 动量指标,是最重要的股票分析指标,能够通过数据量化分析价格、成交量,预测股票走势和强度,大部分指标都在股票软件中提供。 11. …

【el-form】表单label添加?及tooltip

<el-form-item><span slot"label"><el-tooltip :content"tooltip提示框内容" placement"top"><i class"el-icon-question"></i></el-tooltip>{{ $t(menu.status) }}</span><el-radio-gr…

string的模拟

> 作者简介&#xff1a;დ旧言~&#xff0c;目前大二&#xff0c;现在学习Java&#xff0c;c&#xff0c;c&#xff0c;Python等 > 座右铭&#xff1a;松树千年终是朽&#xff0c;槿花一日自为荣。 > 目标&#xff1a;能手撕模拟string类 > 毒鸡汤&#xff1a;时间…

动态规划 | 打家劫舍1、2、3

198. 打家劫舍 https://leetcode.cn/problems/house-robber/description/ dp[i] 表示 考虑到下标为 i &#xff08;包括i&#xff09;的房子&#xff0c;可以偷到的最大金额。 dp[i] 有两个状态&#xff0c;分别是 偷 和 不偷。 偷&#xff0c;则需要考虑前 i-2 天的最大金额…

【Element-ui】Checkbox 多选框 与 Input 输入框

文章目录 前言一、Checkbox 多选框1.1 基础用法1.2 禁用状态1.3 多选框组1.4 indeterminate 状态1.5 可选项目数量的限制1.6 按钮样式1.7 带有边框1.8 Checkbox Events1.9 Checkbox Attributes 二、Input 输入框2.1 基础用法2.2 禁用状态2.3 可清空2.4 密码框2.5 带 icon 的输入…

Springboot3+vue3从0到1开发实战项目(二)

前面完成了注册功能这次就来写登录功能&#xff0c; 还是按照这个方式来 明确需求&#xff1a; 登录接口 前置工作 &#xff1a; 想象一下登录界面&#xff08;随便在百度上找一张&#xff09; 看前端的能力咋样了&#xff0c; 现在我们不管后端看要什么参数就好 阅读接口文档…

YOLOv7全网独家首发改进:SENet v2,Squeeze-Excitation模块融合Dense Layer,效果秒杀SENet

💡💡💡本文自研创新改进:SENet v2,针对SENet主要优化点,提出新颖的多分支Dense Layer,并与Squeeze-Excitation网络模块高效融合,融合增强了网络捕获通道模式和全局知识的能力 推荐指数:五星 收录 YOLOv7原创自研 https://blog.csdn.net/m0_63774211/category_12…

计算机基础知识63

Django的条件查询&#xff1a;查询函数 exclude exclude&#xff1a;返回不满足条件的数据 res Author.objects.exclude(pk1) print(res) # <QuerySet [<Author: Author object (2)>, <Author: Author object (3)>]> order_by 1、按照 id 升序排序 res …

flutter开发实战-实现获取视频的缩略图封面video_thumbnail

flutter开发实战-实现获取视频的缩略图封面video_thumbnail 在很多时候&#xff0c;我们查看视频的时候&#xff0c;视频没有播放时候&#xff0c;会显示一张封面&#xff0c;可能封面没有配置图片&#xff0c;这时候就需要通过获取视频的缩略图来显示封面了。这里使用了video…

mybatis源码(五)springboot pagehelper实现查询分页

1、背景 springboot的pagehelper插件能够实现对mybatis查询的分页管理&#xff0c;而且在使用时只需要提前声明即可&#xff0c;不需要修改已有的查询语句。使用如下&#xff1a; 之前对这个功能一直很感兴趣&#xff0c;但是一直没完整看过&#xff0c;今天准备详细梳理下。按…