论文阅读——Img2LLM(cvpr2023)

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.mzph.cn/news/191483.shtml

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

相关文章

进程的创建:fork()

引入 创建进程的方式我们已经学习了一个!在我们运行指令(或者运行我们自己写的可执行程序)的时候不就是创建了一个进程嘛?那个创建进程的方式称为指令级别的创建子进程! 那如果我们想要在代码中创建进程该怎么办呢? fork() for…

【算法通关村】链表基础经典问题解析

【算法通关村】链表基础&经典问题解析 一.什么是链表 链表是一种通过指针将多个节点串联在一起的线性结构,每一个节点(结点)都由两部分组成,一个是数据域(用来存储数据),一个是指针域&…

第一百八十六回 DropdownMenu组件

文章目录 1. 概念介绍2. 使用方法2.1 DropdownMenu2.1 DropdownMenuEntry 3. 示例代码4. 内容总结 我们在上一章回中介绍了"如何禁止页面跟随手机自动旋转"相关的内容,本章回中将介 绍DropdownMenu组件.闲话休提,让我们一起Talk Flutter吧。 …

python+pytest接口自动化(6)-请求参数格式的确定

我们在做接口测试之前,先需要根据接口文档或抓包接口数据,搞清楚被测接口的详细内容,其中就包含请求参数的编码格式,从而使用对应的参数格式发送请求。例如某个接口规定的请求主体的编码方式为 application/json,那么在…

Redis面试题:redis做为缓存,数据的持久化是怎么做的?两种持久化方式有什么区别呢?这两种方式,哪种恢复的比较快呢?

目录 面试官:redis做为缓存,数据的持久化是怎么做的? 面试官:这两种持久化方式有什么区别呢? 面试官:这两种方式,哪种恢复的比较快呢? 面试官:redis做为缓存&#xff…

基于YOLOv8深度学习的钢材表面缺陷检测系统【python源码+Pyqt5界面+数据集+训练代码】目标检测、深度学习实战

《博主简介》 小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 《------往期经典推…

JVM虚拟机:JVM参数之标配参数

本文重点 本文我们将学习JVM中的标配参数 标配参数 从jdk刚开始就有的参数,比如: -version -help -showversion

Vivado版本控制

Vivado版本控制 如果您有幸进入FPGA领域,那么会遇到版本控制问题,本文讲解的是如何用git进行Vivado进行版本控制。 搭建Git环境 一 首先需要一个git环境,并选择一个托管平台(github,gitlab,gitee) Git下载地址&…

JavaSE自定义验证码图片生成器

设计项目的时候打算在原有的功能上补充验证码功能,在实现了邮箱验证码之后想着顺便把一个简单的图片验证码生成器也实现一下,用作分享。 注意,实际开发中验证码往往采用各种组件,通过导入依赖来在后端开发时使用相关功能&#xf…

9.ROS的TF坐标变换(三):坐标系关系查看与一个案例

1 查看目前的坐标系变化 我们先安装功能包: sudo apt install ros-melodic-tf2-tools安装成功! 我们先启动上次的发布坐标变换的节点: liuhongweiliuhongwei-Legion-Y9000P-IRX8H:~/Desktop/final/my_catkin$ source devel/setup.bash liuho…

亚马逊云科技re:Invent大会,助力安全构建规模化生成式AI应用

2023亚马逊云科技re:Invent全球大会进入第三天,亚马逊云科技数据和人工智能副总裁Swami Sivasubramanian博士在周三的主题演讲中,为大家带来了关于亚马逊云科技生成式AI的最新能力、面向生成式AI时代的数据战略以及借助生成式AI应用提高生产效率的精彩分…

MMseqs2蛋白质序列快速高效比对工具

先看仓库:soedinglab/MMseqs2: MMseqs2: ultra fast and sensitive search and clustering suite (github.com) 无论哪个工具软件,无论你是否熟悉,都推荐你看一下作者原文,这样后面的步骤以及怎么使用头脑里会更清晰。 Fast an…

C语言-预处理与库

预处理、动态库、静态库 1. 声明与定义分离 一个源文件对应一个头文件 注意&#xff1a; 头文件名以 .h 作为后缀头文件名要与对应的原文件名 一致 例&#xff1a; 源文件&#xff1a;01_code.c #include <stdio.h> int num01 10; int num02 20; void add(int a, in…

国标GBT 27930关键点梳理

1、充电总流程 整个充电过程包括六个阶段:物理连接完成、低压辅助上电、充电握手阶段、充电参数配置阶段、充电阶段和充电结束阶段。 在各个阶段,充电机和 BMS 如果在规定的时间内没有收到对方报文或没有收到正确报文,即判定为超时(超时指在规定时间内没有收到对方的完整数据包…

PyLMKit(4):基于本地知识库的检索增强生成RAG

基于本地知识库的检索增强生成RAG 0.项目信息 日期&#xff1a; 2023-12-2作者&#xff1a;小知课题: RAG&#xff08;Retrieval-Augmented Generation&#xff0c;检索增强生成&#xff09;是一种利用知识库检索的方法&#xff0c;提供与用户查询相关的内容&#xff0c;从而…

750mA Linear Charger with Power Path Management

一、General Description YHM2711 is a highly integrated, single-cell Li-ion battery charger with system power path management for space-limited portable applications. The full charger function features Trickle-charge, constant current fast charge and const…

Leetcode144. 二叉树的前序遍历-C语言

文章目录 题目介绍题目分析解题思路1.创建一个数组来储存二叉树节点的值2.根据二叉树的大小来开辟数组的大小3.边前序遍历边向创建的数组中存入二叉树节点的值 完整代码 题目介绍 题目分析 题目要求我们输出二叉树按前序遍历排列的每个节点的值。 解题思路 1.创建一个数组来…

TCA9548A I2C 多路复用器 Arduino 使用相同地址 I2C 设备

在本教程中&#xff0c;我们将学习如何将 TCA9548A I2C 多路复用器与 Arduino 结合使用。我们将讨论如何通过整合硬件解决方案来使用多个具有相同地址的 Arduino 的 I2C 设备。通过使用 TCA9548A I2C 多路复用器&#xff0c;我们将能够增加 Arduino 的 I2C 地址范围&#xff0c…

大模型的开源闭源

文章目录 开源&闭源开源和闭源的优劣势比较开源和闭源对大模型技术发展的影响开源与闭源的商业模式比较国内的大模型开源和闭源的现状和趋势 开源和闭源&#xff0c;两种截然不同的开发模式&#xff0c;对于大模型的发展有着重要影响。 开源让技术共享&#xff0c;吸引了众…

【LVS实战】04 LVS+Keepalived实现负载均衡高可用

一、介绍 Keepalived 是一个用于 Linux 平台的高可用性软件。它实现了虚拟路由器冗余协议 (VRRP) 和健康检查功能&#xff0c;可以用于确保在多台服务器之间提供服务的高可用性。Keepalived 可以检测服务器的故障&#xff0c;并在主服务器宕机时&#xff0c;自动将备份服务器提…