Rabiul Awal,Le Zhang和Aishwarya Agrawal

我们探讨了无需微调的提示技术,该技术应用于视觉模型,特别是最先进的BLIP2,KOSMOS2,OpenFlamino和多模式指令调节的Llava。我们主要关注以下提示方法:
现有的视觉语言模型(VLMS)已经显示出良好的零射击VQA性能。我们的促进技术(尤其是在几个射门的VQA中字幕)导致基准的大幅增长。但是,尽管据称指导调节的模型表现出强大的推理能力,但我们的测试发现这些推理能力,尤其是思想链,在不同的基准中缺乏。我们希望我们的工作能够激发未来的研究。
我们支持以下VQA格式:
| 格式 | 描述 | 例子 |
|---|---|---|
| 标准VQA | 标准VQA任务格式。 | 问题:“现场人民的主要活动是什么?” 答:“跳舞” |
| 字幕VQA | 从模型生成的标题,然后是标准VQA格式开始。 | 背景:一群穿着传统服装的人在篝火旁跳舞。 问题:“现场人民的主要活动是什么?” 答:“跳舞” |
| 经过思考的VQA链 | 实现经过思考的格式。 | 问题:“现场人民的主要活动是什么?让我们逐步思考。” 答:“首先,考虑到篝火,这通常表示聚会或节日。接下来,看到传统服装的人意味着文化事件。合并这些观察,主要活动是在篝火旁跳舞。” |
我们有一个可以与不同VQA格式一起使用的提示模板列表。请检查prompts/templates/{dataset_name} 。

下载并将文件解压缩到VQA数据集的dataset/文件夹中。对于Winoground ,请使用拥抱面部datasets集库。
| OK-VQA | AOK-VQA | GQA | Winoground | VQAV2 | |
|---|---|---|---|---|---|
| 来源 | 艾伦 | 艾伦 | 斯坦福大学 | 拥抱脸 | VQA |
要运行标准VQA,请使用以下命令:
python3 main.py --dataset_name okvqa
--model_name blip2_t5_flant5xxl
--vqa_format standard_vqa
--prompt_name prefix_your_task_knowledge_qa_short_answer
要运行字幕VQA,请使用以下命令:
python3 main.py --dataset_name okvqa
--model_name blip2_t5_flant5xxl
--vqa_format caption_vqa
--prompt_name prefix_your_task_knowledge_qa_short_answer,prefix_promptcap
要运行经过思考的VQA,请使用以下命令:
python3 main.py --dataset_name okvqa
--model_name blip2_t5_flant5xxl
--vqa_format cot_vqa
--prompt_name prefix_think_step_by_step_rationale
请准备extplar数据集dataset_zoo/nearest_neighbor.py并运行以下命令:
python3 main.py
--dataset_name okvqa
--model_name blip2_t5_flant5xxl
--vqa_format standard_vqa
--prompt_name prefix_your_task_knowledge_qa_short_answer
--vicuna_ans_parser --few_shot
考虑到开放式答案生成的上下文中VQA准确度指标的限制,我们在evals/vicuna_llm_evals.py中提供实用脚本。使用Vicuna LLM,这些脚本过程生成了与参考响应保持一致的答案,并随后根据常规的VQA指标对其进行评估。
python3 main.py
--dataset_name okvqa
--model_name blip2_t5_flant5xxl
--vqa_format standard_vqa
--prompt_name prefix_your_task_knowledge_qa_short_answer
--vicuna_ans_parser
我们报告基线和最佳设置结果。请检查论文以获取更多结果。
| Blip2 Flan-T5 | blip2选择 | KOSMOS2 | OpenFlamingo | llava | |
|---|---|---|---|---|---|
| 基线 | 50.13 | 42.7 | 40.33 | 18.29 | 44.84 |
| 最好的 | 50.55 | 46.29 | 43.09 | 42.48 | 46.86 |
| Blip2 Flan-T5 | blip2选择 | KOSMOS2 | OpenFlamingo | llava | |
|---|---|---|---|---|---|
| 基线 | 51.20 | 45.57 | 40.85 | 17.27 | 52.69 |
| 最好的 | 54.98 | 49.39 | 43.60 | 44.13 | 52.32 |
| Blip2 Flan-T5 | blip2选择 | KOSMOS2 | OpenFlamingo | llava | |
|---|---|---|---|---|---|
| 基线 | 44.46 | 38.46 | 37.33 | 26.37 | 38.40 |
| 最好的 | 47.01 | 41.99 | 40.13 | 41.00 | 42.65 |
| Blip2 Flan-T5 | blip2选择 | KOSMOS2 | OpenFlamingo | llava | |
|---|---|---|---|---|---|
| 基线 | 66.66 | 54.53 | 53.52 | 35.41 | 56.2 |
| 最好的 | 71.37 | 62.81 | 57.33 | 58.0 | 65.32 |
请给rabiul.awal [at] mila [dot] quebec发送电子邮件至魁北克。您还可以打开问题或拉出请求,以添加更多提示技术或新的多模式视觉语言模型。
如果您发现此代码有用,请引用我们的论文:
@article{awal2023investigating,
title={Investigating Prompting Techniques for Zero-and Few-Shot Visual Question Answering},
author={Awal, Rabiul and Zhang, Le and Agrawal, Aishwarya},
journal={arXiv preprint arXiv:2306.09996},
year={2023}
}
该代码库建立在变压器,Lavis,Llava和FastChat存储库的顶部。我们感谢作者的出色工作。