019视觉问答 (VQA, Visual Question Answering)
视觉问答 (VQA, Visual Question Answering)¶
视觉问答(Visual Question Answering,简称 VQA)是一项基于图像回答开放式问题的任务。支持此任务的模型的输入通常是图像和问题的组合,输出是以自然语言表达的回答。
VQA 的一些值得注意的用例包括:
- 为视障人士提供无障碍应用。
- 教育:对讲座或教科书中呈现的视觉材料提出问题。VQA 还可用于互动博物馆展览或历史遗址。
- 客户服务和电子商务:VQA 可以通过让用户询问有关产品的问题来提升用户体验。
- 图像检索:VQA 模型可用于检索具有特定特征的图像。例如,用户可以问“有狗吗?”以从一组图像中找到所有包含狗的图像。
在本指南中,你将学习如何:
- 在
Graphcore/vqa数据集上微调分类 VQA 模型,特别是 ViLT。 - 使用微调后的 ViLT 进行推理。
- 使用生成模型(如 BLIP-2)运行零样本 VQA 推理。
微调 ViLT¶
ViLT 模型将文本嵌入到视觉 Transformer(ViT)中,使其能够具有视觉和语言预训练(VLP)的最小设计。该模型可用于多个下游任务。对于 VQA 任务,在顶部放置一个分类器头(在 [CLS] 令牌的最终隐藏状态之上的线性层)并随机初始化。因此,视觉问答被视为一个分类问题。
一些较新的模型,如 BLIP、BLIP-2 和 InstructBLIP,将 VQA 视为一个生成任务。在本指南后面,我们将说明如何使用它们进行零样本 VQA 推理。
在开始之前,请确保你已安装所有必要的库。