论文:From Images to Textual Prompts: Zero-shot Visual Question Answering with Frozen Large Language Models
论文链接:2212.10846.pdf (arxiv.org)
论文简介
本文主要介绍了一种名为Img2LLM的方法,它是一个即插即用式模块,可以将大型语言模型应用于零样本视觉问答任务,而无需进行端到端的训练。
该方法使用示例问题-答案对来描述图像内容,作为大型语言模型的提示,以此使大型语言模型能够执行视觉问答任务,从而弥合了大型语言模型和视觉问答任务之间的任务隔离和模态隔离。
本文提出的Img2LLM方法具有与端到端训练方法相当甚至更好的性能,具有灵活的接口,可以与各种大型语言模型配合使用,同时还可以降低成本,使大型语言模型更加通用。
背景
由于LLM在NLP各个领域zero-shot能力的出色,其也被逐渐应用于zero-shot的VQA任务中。尽管如此,将LLM应用于VQA任务存在两个难点:
- the modality disconnect between vision and language(视觉和语言的模态隔离)
- the task disconnect between language modeling and question answering(问答和语言建模的任务隔离)
模态隔离,一般通过自然语言作为图片的中间描述来解决;
任务隔离,一般通过提供一些上下文QA的prompt来解决
常见的解决方案是微调一个视觉编码器去对齐两种模态,此方法不仅成本高,并且微调会导致编码器和LLM产生很强的依赖,使得无法在其他LLM中做迁移(除非重新微调)
其他方法:
1.converts images into captions, and provides exemplar QA pairs from training data as prompt to the LLM
2.直接进行多模态预训练,通过增加一个网络模块来对齐不同模态的数据,考虑到训练成本问题,一些方法只考虑微调某个部分(如只微调视觉编码器)
不足:1.成本高 2.模态对齐的部分可能会使得LLM出现灾难性遗忘的问题
3.引入自然语言的VQA,通过将自然语言作为图像的中间表示,并将语言描述传给冻结的LLM,有时可以加入其他训练数据作为上下文(类似于Plug-and-Play VQA)
论文贡献
1.相比于建立一个端到端的VQA系统,本文提出了一种基于冻结现成LLM的模块化zero-shot的VQA系统,不仅部署简单且容易迁移至其他LLM
2.通过一个vision-language model(如BLIP)和question-generation model去为每个(图片,问题)生成Q-A对,并将Q-A对作为prompt提供给LLM。通过QA对解决了模态脱离问题,将其作为prompt给LLM解决了任务脱离问题
3.效果比实施端到端的zero-shot的VQA模型更好,甚至好于许多基于few-shot的方法
模型方法
主要包括:QA生成、特定captions(与问题有关)生成、答案生成
答案提取
1.首先会使用一个现成的模块去生成与问题有关的图片的captions
2.从这些captions中提取关键词作为潜在的可能的问题答案
问题生成
根据生成的答案集合,为答案使用现有的问题生成网络生成特定的问题
- 基于模板的问题生成
- 基于神经网络生成 利用QA数据集去训练一个网络来生成问题(文中使用微调的T5-large model)
有了上述的(Q,A)对,将这些都作为LLM的上下文,以解决任务隔离的问题
问题相关caption
除了将QA提供给LLM之外,还需要将与问题有关的图像区域的captions提供给LLM,QA中并不能完全包含问题所问的信息
- 首先确定与问题有关的图像区域,具体是使用BLIP中ITE(Text Encoder)的sim(v,q)函数以及CardCAM去定位与问题有关的图片区域(此方法和play and plug VQA中方法一致)
- 利用top-k方法采样相关的patches
- 为每个patches生成对应的captions,并对生成的captions进行一定的过滤(为了得到更好的captions)
prompt设计
有了生成的QA对、与问题有关的captions、问题等输入,设计一个高效的prompt是非常重要的
prompt
"Contexts: [all captions]"
"Question: [question1]+Answer: [answer1]"
"Question: [question2]+Answer: [answer2]"
"Question: [question] Answer: "
实验
首先通过与其他零样本和少样本 VQA 方法进行比较来验证 Img2LLM 的功效。然后,对重要的设计选择(例如提示模式和标题选择策略)进行消融研究,以了解它们的效果。最后展示了一些定性示例,并包括对观察到的失败案例的讨论
数据集
VQAv2、OK-VQA和A-OKVQA三个数据集
一些细节
用BLIP来执行图文匹配并生成20个patches,并进一步获得与之有关的100个问题相关的captions
To localize the image regions relevant to the question, we generate GradCam from the cross-attention layer of BLIP image-grounded text encoder. We then sample K′ = 20 image patches based on GradCam, and use them to obtain 100 question-relevant captions.
在LLM方面,尝试了各种OPT模型
结果
- 在zero-shot设置下的基于LLM的方法中,成为了最新的STOA
2. 表明了更大规模的LLM比小的LLM处理VQA效果更好
- 相比于其他需要训练的端到端的VQA方法效果同样出色
- 问题生成模块的作用
- prompt设计
- 一些成功与失败的案例