Vision Search Assistant:结合视觉语言模型和网络搜索的开源视觉理解框架

363 阅读4分钟

❤️ 如果你也关注大模型与 AI 的发展现状,且对大模型应用开发非常感兴趣,我会快速跟你分享最新的感兴趣的 AI 应用和热点信息,也会不定期分享自己的想法和开源实例,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦


🚀 快速阅读

  1. Vision Search Assistant (VSA) 是结合视觉语言模型 (VLMs) 和网络代理搜索的框架。
  2. VSA 主要功能包括视觉内容表述、网络知识搜索、协作生成等,可应用于图像识别、新闻分析等领域。
  3. VSA 通过“Chain of Search”算法实现迭代搜索过程,提高搜索的准确性和丰富度。

正文(附运行示例)

Vision Search Assistant 是什么

Vision Search Assistant.png

Vision Search Assistant(VSA)是一种结合视觉语言模型(VLMs)和网络代理的框架,旨在提升模型对未知视觉内容的理解能力。通过互联网检索,VSA 能够使 VLMs 处理和回答有关未见图像的问题,在开放集和封闭集问答测试中表现出色,显著优于其他模型。

Vision Search Assistant 的主要功能

  • 视觉内容表述:识别图像中的关键对象、生成描述,考虑对象之间的相关性,这一过程称为相关表述(Correlated Formulation)。
  • 网络知识搜索:基于一个名为“Chain of Search”的迭代算法,生成多个子问题,用网络代理搜索相关信息,获取与用户问题和图像内容相关的网络知识。
  • 协作生成:结合原始图像、用户的问题、相关表述及通过网络搜索获得的知识,用 VLM 生成最终的答案。
  • 多模态搜索引擎:将任意 VLM 转变为能理解和响应视觉内容的多模态自动搜索引擎。
  • 实时信息访问:用网络代理的实时信息访问能力,让 VLM 获取最新的网络数据,提高回答的准确性。
  • 开放世界检索增强生成:基于互联网检索,扩展 VLMs 处理新视觉内容的能力,让其能够处理和回答有关未见过的图像或新概念的问题。

Vision Search Assistant 的技术原理

  • 视觉内容识别与描述:用 VLM 对输入图像进行分析,识别出图像中的关键对象,生成描述对象的文本。
  • 相关性分析:生成单个对象的描述,分析对象之间的相关性,生成一个综合考虑这些关系的文本表示,即相关表述。
  • 子问题生成:基于用户的问题和相关表述,VSA 用大型语言模型(LLM)生成一系列子问题,子问题引导搜索过程,找到更具体的信息。
  • 网络搜索与知识整合:基于网络代理执行子问题搜索,分析搜索引擎返回的网页,提取、总结相关信息,形成网络知识。
  • 迭代搜索过程:用“Chain of Search”算法,基于迭代过程逐步细化搜索,获得更丰富、更准确的网络知识。

如何运行 Vision Search Assistant

1. 安装环境

  1. 克隆此仓库并进入 VSA 文件夹。
git clone https://github.com/cnzzx/VSA.git
cd VSA
  1. 创建 conda 环境。
conda create -n vsa python=3.10
conda activate vsa
  1. 安装 LLaVA。
cd models/LLaVA
pip install -e .
  1. 安装其他依赖项。
pip install -r requirements.txt

2. 运行本地演示

本地演示基于 Gradio,可以通过以下命令启动:

python app.py
运行推理

在“Run”界面中,你可以上传一张图片到“Input Image”面板,并在“Input Text Prompt”面板中输入你的问题,然后点击提交并等待模型推理。还可以在“Ground Classes”面板中自定义检测对象类别,每个类别之间用逗号和空格分隔,如“handbag, backpack, suitcase”。

尝试示例

在“Samples”界面中,你可以选择一个示例并点击“Select This Sample”,示例输入会自动填充到“Run”界面中。

3. 命令行推理

你也可以在终端中与 Vision Search Assistant 进行对话,运行以下命令:

python cli.py \
    --vlm-model "liuhaotian/llava-v1.6-vicuna-7b" \
    --ground-model "IDEA-Research/grounding-dino-base" \
    --search-model "internlm/internlm2_5-7b-chat" \
    --vlm-load-4bit

然后,选择一张图片并输入你的问题。

资源

  1. 项目官网:cnzzx.github.io/VSA/
  2. GitHub 仓库:github.com/cnzzx/VSA
  3. arXiv 技术论文:arxiv.org/pdf/2410.21…

❤️ 如果你也关注大模型与 AI 的发展现状,且对大模型应用开发非常感兴趣,我会快速跟你分享最新的感兴趣的 AI 应用和热点信息,也会不定期分享自己的想法和开源实例,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦