NSDT工具推荐Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器 - REVIT导出3D模型插件 - 3D模型语义搜索引擎 - AI模型在线查看 - Three.js虚拟轴心开发包 - 3D模型在线减面 - STL模型在线切割 - 3D道路快速建模

本文探索了 Visual RAG 的激动人心的世界,探索了它的意义以及它如何彻底改变传统的计算机视觉流程。

从了解 RAG 的基础知识到它在视觉任务和监控中的具体应用,我们将研究这项技术如何为更先进、更高效的 AI 系统铺平道路。

1、什么是检索增强生成 (RAG)?

为了更好地理解检索增强生成 (RAG) [1],首先定义“提示”很有用。

RAG 将提示的原理与信息检索相结合。[2]

提示是一种通过提供特定指令或查询来指导基础模型(例如多模态大型语言模型 (MLLM))执行任务的技术。

在视觉领域,视觉提示 [3] 使用视觉输入(例如图像、线条或点)来指示大规模视觉模型执行特定任务,通常包括模型未明确训练的任务。

图 1 展示了如何将可提示模型用作构建更大系统的构建块,其中 🔑 关键见解是可以通过视觉提示将模型连接(或链接在一起):YOLO-World 输出可用作 SegmentAnything 的视觉提示。

图 1. YOLO-World 输出(即边界框)用作 SegmentAnything 的输入(即视觉提示)

因此,提示为构建 RAG 等更高级技术提供了基础。

1.1 什么是 RAG?

当你提示 GenAI 模型(例如 GPT-4 或 LLaVA [5])时,获得的答案来自(零样本)模型 [4],该模型受其信息截止值(或其自身的训练数据,数量和质量)的限制。因此,模型的知识是静态的,并且不会在某个点之后更新。

检索增强生成 (RAG) 使系统能够检索相关上下文,然后将其与原始提示相结合。此增强提示用于查询模型,提供原本无法获得的数据。

1.2 了解 RAG 的工作原理

现在,让我们看一下图 2,以分解典型的 RAG 工作流程:

  • 检索:当给出查询或提示时,系统首先从知识库或外部数据源检索相关信息。
  • 增强:然后使用检索到的信息来增强或增强模型的输入。
  • 生成:最后,模型根据原始查询和检索到的信息生成响应。
图 2. RAG 的三个构建块:检索、增强和生成

2、RAG 在计算机视觉中的应用

如图 3 所示,视觉RAG 将检索增强生成 (RAG) 的概念应用于视觉任务。

传统 RAG 处理文本输入并检索相关文本信息,而可视化 RAG 处理图像(有时还附带文本),并检索视觉数据或图像-文本对。

编码过程从文本编码器转移到视觉编码器(有时为此目的使用基础模型,如 CLIP [6]),知识库(即矢量数据库)成为视觉信息而不是文本文档的存储库。

图 3. 比较用于语言的 RAG 与用于视觉模型的 RAG

最后,Visual RAG 的增强功能将检索到的视觉数据与输入相结合,使其能够生成各种输出,包括文本描述、修改后的图像或多模态内容。

Visual RAG 对于需要将视觉理解与外部知识相结合的任务特别强大💪。例如,它可以通过从其知识库中检索这些边缘情况的相关视觉和文本信息来帮助视觉系统识别稀有物体。

图 4. 何时使用 RAG 而不是微调

在生产中构建视觉系统时,一个常见问题是决定使用 RAG 还是微调 [7]。如图 4 所示,答案不是二元的,而是取决于许多因素,例如:

  • 预算:微调涉及重新训练模型,这更昂贵。
  • 推理:RAG 在推理过程中需要更多计算。
  • 时间:由于权重已更新,微调在开始时需要更多时间投入,但从长远来看可能不需要那么多时间。

💡 根据经验,RAG 是一种理想的入门策略。之后,如果模型的任务变得太窄或太具体,微调可能是下一步。

那么,为什么不两者兼而有之呢? 🤔

对于某些用例,可以将这两种方法结合起来:

  • 具有核心任务的不断发展的领域:例如,在医学成像领域,有标准的诊断程序(通过微调处理),但也有快速发展的研究和新的案例研究(由 Visual RAG 解决)。
  • 电子商务和产品识别:微调模型可以识别产品类别,而 Visual RAG 可以从动态库存中检索最新的产品信息或类似物品。
  • 内容审核系统:微调可以处理常见的违规类型,而 Visual RAG 可以适应新兴趋势或与上下文相关的违规行为。

3、多模态 RAG

让我们探索用于视频理解的多模态 Visual RAG 管道的具体实现(如图 5 所示)。此示例演示了这些技术如何协同工作以从视频数据中提取有意义的见解。

图 5. Visual RAG 应用于视频理解系统

让我们分解一下系统组件及其交互:

  • 知识库:系统从包含视频和图像的知识库开始。这是理解视觉内容的基础。
  • 嵌入模型:嵌入模型(例如 CLIP(对比语言-图像预训练))用于将知识库内容和用户查询转换为公共向量空间。这允许比较不同的模态(文本和视觉数据)。
  • 向量数据库:知识库的嵌入表示存储在向量数据库中,从而实现高效的相似性搜索。
  • 用户查询:用户输入查询,例如“查找下午 5 点之前停放的白色车辆”。
  • 查询处理:用户的查询通过嵌入模型,将其转换为与知识库内容相同的向量空间。
  • 检索和排序:系统根据查询嵌入和存储嵌入之间的相似性从向量数据库中检索相关信息。然后对结果进行排序,以找到最相关的匹配项。
  • 增强:检索到的信息经过快速处理或增强,以完善上下文并为语言视觉模型做好准备。
  • LLaVA 微调:LLaVA(大型语言和视觉助手)的微调版本处理增强信息。LLaVA 是一种能够理解文本和视觉输入的多模态模型。
  • 推理:LLaVA 模型对处理后的数据进行推理,以生成解决用户查询的响应。
  • 响应:最终输出是视觉响应 — 在本例中,是一张显示停在街道上的白色汽车的图像,与用户的查询相匹配。

图 5 所示的系统是如何连接或链接计算机视觉中的基础模型的一个例子。


原文链接:RAG for Vision: Building Multimodal Computer Vision Systems

BimAnt翻译整理,转载请标明出处