本文探索了 Visual RAG 的激动人心的世界,探讨了它的意义以及它如何彻底改变传统的计算机视觉流程。
从了解 RAG 的基础知识到其在视觉任务和监控中的具体应用,我们将研究这项技术如何为更先进、更高效的 AI 系统铺平道路。
什么是检索增强生成(RAG)?
什么是(视觉)提示?
提示是一种通过提供特定指令或查询来引导多模态大语言模型(MLLM)等基础模型执行任务的技术。
在视觉领域,视觉提示利用视觉输入(如图像、线条或点)指导大规模视觉模型执行特定任务,通常包括模型未明确训练的任务。
图 1 显示了如何将可提示模型用作创建更大系统的构件,其中关键见解是模型可以通过视觉提示连接(或串联)在一起: YOLO-World 的输出可用作 SegmentAnything 的可视化提示。
图1
事实证明,提示技术为 RAG 等更高级的技术奠定了基础。
什么是 RAG?
当你提示一个 GenAI 模型(如 GPT-4 或 LLaVA )时,你得到的答案来自一个(零样本)模型 ,该模型受到其信息截止点(或其自身训练数据的数量和质量)的限制。因此,该模型的知识是静态的,超过某个点就不会更新。
检索-增强生成(RAG)使系统能够检索相关上下文,然后将其与原始提示相结合。该增强提示用于查询模型,提供模型无法获得的数据。
了解 RAG 的工作原理
现在,让我们看一下图 2,了解一下典型的 RAG 工作流程:
图2
计算机视觉中如何使用 RAG
传统(文本)RAG 与视觉 RAG
如图 3 所示,视觉 RAG 将检索-增强生成(RAG)概念应用于视觉任务。
传统的 RAG 处理文本输入并检索相关文本信息,而视觉 RAG 则处理图像(有时伴有文本)并检索视觉数据或图像-文本对。
编码过程从文本编码器转向视觉编码器(有时会为此使用 CLIP 等基础模型),知识库(即矢量数据库)成为视觉信息库,而不是文本文档。
图3
最后,Visual RAG 的增强功能将检索到的视觉数据与输入相结合,使其能够生成多种输出,包括文本描述、修改后的图像或多模态内容。
对于需要将视觉理解与外部知识相结合的任务,Visual RAG 尤其强大。例如,它可以通过从知识库中检索这些边缘情况的相关视觉和文本信息,帮助视觉系统识别稀有物体。
视觉 RAG 或微调
图4
在生产中构建视觉系统时,一个常见的问题是如何在 RAG 和微调之间做出选择。如图 4 所示,答案并非二选一,而是取决于许多因素,例如:
根据经验,RAG 是一种理想的起始策略。之后,如果模型的任务变得过于狭窄或具体,微调可能是下一步。
对于某些用例,这两种方法可以结合使用:
多模态 RAG
用于视频理解的多模态视觉 RAG
让我们来探讨一下用于视频理解的多模态视觉 RAG 管道的具体实现(如图 5 所示)。该示例展示了这些技术如何协同工作,从视频数据中提取有意义的见解。
图5
让我们来分析一下系统组件及其相互作用:
1. 知识库: 系统以包含视频和图像的知识库为起点。这是理解视觉内容的基础。
2. 嵌入模型: 嵌入模型,如 CLIP(对比语言-图像预训练),用于将知识库内容和用户查询转换为一个共同的向量空间。这样就可以在不同模式(文本和视觉数据)之间进行比较。
3. 向量数据库: 知识库的嵌入式表示法存储在矢量数据库中,从而实现高效的相似性搜索。
4. 用户查询: 用户输入查询,如 “查找下午 5 点前停放的白色车辆”。
5. 查询处理: 通过嵌入模型将用户的查询转换为与知识库内容相同的向量空间。
6. 检索和排序: 系统根据查询嵌入和存储嵌入之间的相似性,从向量数据库中检索相关信息。然后对结果进行排序,找出最相关的匹配结果。
7. 增强: 对检索到的信息进行及时处理或增强,以完善上下文并为语言视觉模型做好准备。
8. LLaVA 微调版 微调版 LLaVA(大型语言和视觉助手)处理增强信息。LLaVA 是一个多模态模型,能够理解文本和视觉输入。
9. 推理: LLaVA 模型会对处理过的数据进行推理,以生成能够解决用户查询的响应。
10. 响应: 最终输出是视觉响应--在本例中,图像显示一辆白色汽车停在街道上,与用户的查询相匹配。
图 5 所示系统是计算机视觉基础模型如何连接或串联在一起的一个示例。
在 Tenyks,我们相信视觉领域即将发生范式转变,产生计算机视觉管道 2.0,其中一些传统阶段(如标注)将被可提示的基础模型所取代。
结论
虽然系统为视频理解提供了一个令人印象深刻的框架,但实际上,描述的只是一个原型。
对于生产级系统,要想成功部署,应注意以下几点: