Skip to main content
QUICK REVIEW

[论文解读] Visual Programming: Compositional visual reasoning without training

Tanmay Gupta, Aniruddha Kembhavi|arXiv (Cornell University)|Nov 18, 2022
Multimodal Machine Learning Applications被引用 7
一句话总结

VisProg 引入了一种神经符号框架,能够从自然语言指令生成可执行、可解释的类似 Python 的程序,以解决复杂视觉任务,且无需特定任务的训练。通过利用 GPT-3 的上下文学习,并将现成的视觉与语言模型组合成模块化程序,VisProg 在多种任务(如视觉问答、知识标注和图像编辑)上实现了强大的零样本性能,同时生成全面的视觉推理过程以提升可解释性与错误诊断能力。

ABSTRACT

We present VISPROG, a neuro-symbolic approach to solving complex and compositional visual tasks given natural language instructions. VISPROG avoids the need for any task-specific training. Instead, it uses the in-context learning ability of large language models to generate python-like modular programs, which are then executed to get both the solution and a comprehensive and interpretable rationale. Each line of the generated program may invoke one of several off-the-shelf computer vision models, image processing routines, or python functions to produce intermediate outputs that may be consumed by subsequent parts of the program. We demonstrate the flexibility of VISPROG on 4 diverse tasks - compositional visual question answering, zero-shot reasoning on image pairs, factual knowledge object tagging, and language-guided image editing. We believe neuro-symbolic approaches like VISPROG are an exciting avenue to easily and effectively expand the scope of AI systems to serve the long tail of complex tasks that people may wish to perform.

研究动机与目标

  • 解决在缺乏足够训练数据的情况下,将 AI 系统部署于复杂、组合式视觉任务时面临的长尾挑战。
  • 通过将自然语言指令分解为可执行、模块化的程序,实现在视觉任务上的零样本推理。
  • 通过中间程序执行生成的视觉推理过程,提升视觉 AI 的可解释性与用户控制力。
  • 证明无需任何特定任务的微调,仅依赖上下文学习和预训练模型的模块化组合即可实现高性能。
  • 通过基于视觉推理过程的视觉引导指令微调,实现用户驱动的性能提升。

提出的方法

  • 利用 GPT-3 的上下文学习,从自然语言指令和少量示范样例中生成模块化、可执行的程序。
  • 生成程序的每一行调用一个专用模块——如目标检测器、CLIP 用于零样本分类,或 OpenCV 函数——逐步处理中间输出。
  • 利用 ViLT-vqa、OWL-ViT 和 Stable Diffusion 等预训练模型作为无需微调的即插即用模块。
  • 在输入图像上执行程序,生成预测结果,同时记录中间输出作为视觉推理过程以增强可解释性。
  • 通过简单的代码集成支持模块的可扩展性,允许新增模块的灵活添加。
  • 利用视觉推理过程诊断错误,并指导指令微调以提升性能。

实验结果

研究问题

  • RQ1神经符号系统能否在无需任何特定任务微调的情况下,生成准确且可解释的复杂视觉任务程序?
  • RQ2大型语言模型的上下文学习在组合程序以协调多种预训练模型进行视觉推理方面有多高效?
  • RQ3视觉推理过程在多大程度上能通过指令微调提升用户理解与性能?
  • RQ4此类系统的主要失败模式是什么?如何诊断并缓解这些失败?
  • RQ5该系统能否在图像编辑、基于知识的标注和图像对推理等任务上实现零样本泛化?

主要发现

  • VisProg 在知识标注任务上实现了 63.7% 的 F1 分数,无需任何微调即可正确定位并命名对象。
  • 在 GQA 基准测试中,VisProg 展现了强大的零样本性能,错误分析显示 16% 的样本受程序生成错误影响。
  • 基于视觉推理过程的指令微调显著提升了知识标注和图像编辑任务的性能,通过优化查询和模块输入实现。
  • 将 ViLT-vqa 模型替换为性能更优的 VQA 模型,可使 NLVR 性能提升高达 24%,凸显模块质量的关键影响。
  • 该系统仅使用单图 VQA 模型和 LLM 进行推理,便在 NLVRv2 上展现出强大的零样本性能,优于随机基线和投票基线。
  • 视觉推理过程通过揭示模块执行中的失败(如定位错误或知识检索失败),实现错误诊断,并指导针对性的指令优化。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。