深圳Yolo 视觉
深圳
立即加入
词汇表

多模态RAG

探索多模态RAG技术处理文本、图像和视频。Ultralytics 如何增强AI检索管道,实现更精准、更具上下文感知能力的响应。

多模态检索增强生成(Multimodal RAG)是一种先进的人工智能(AI)框架,它扩展了传统RAG系统,能够处理并推理多种数据类型,如文本、图像、视频和音频。标准检索增强生成(RAG)通过检索相关文本文档来提高大型语言模型(LLM)的准确性,而多模态RAG通过检索相关文本文档、图像、视频和音频等多模态数据,使模型能够"看"和"听",从而增强其处理能力。 通过检索相关文本文档来提升大型语言模型(LLM)的准确性,而多模态RAG则通过从混合媒体知识库中检索上下文,使模型能够"看见"和"听见"。这种方法使模型的生成基于具体的视觉或听觉证据,显著减少了LLM中的幻觉现象,并实现了在私有数据集上进行复杂任务(如视觉问答)的能力。通过利用多模态学习,这些系统能够综合用户查询(如文本)和检索到的资源(如图像)中的信息,从而在处理复杂任务时提供更准确的答案。 任务(如基于私有数据集的视觉问答)。通过多模态学习,这些系统能 综合用户查询(如文本)与检索资源(如图表或监控画面)的信息, 生成全面且具备上下文感知能力的响应。

多模态RAG的工作原理

多模态RAG系统的架构通常遵循标准的"检索-生成"流程, 但针对非文本数据进行了适配。该过程高度依赖 向量数据库和共享语义空间。

  1. 索引处理:来自各类来源的数据——PDF、视频、幻灯片集——均经过处理。 特征提取模型将这些不同模态的数据转化为高维数值向量,即所谓的嵌入向量例如OpenAI的CLIP模型能对图像与文本嵌入向量进行对齐,使得狗的照片与"狗"这个词在数学上具有相近性。
  2. 检索:当用户提出问题(例如“显示该电路板的缺陷”)时,系统会在向量数据库中执行语义搜索,以查找最符合查询意图的相关图像或视频片段。
  3. 生成阶段:检索到的视觉上下文被输入到视觉语言模型(VLM)中。该模型同时处理用户的文本提示和检索到的图像特征,从而生成最终答案,实现与数据的有效"对话"。

实际应用

多模态RAG正通过使人工智能代理能够通过视觉数据与物理世界交互,从而改变各行各业。

  • 工业维护与制造: 在制造业中,技术人员可通过故障机器部件的照片向系统发起查询。多模态RAG系统将检索出类似的历史维护记录、技术图纸及视频教程以指导维修流程。这既能缩短设备停机时间,又能实现专家知识的普及化。
  • 零售与电商探索: 零售领域的人工智能应用允许顾客上传心仪服饰的图片。系统将从现有库存中检索视觉相似的商品,并生成搭配建议或产品对比,从而打造高度个性化的购物体验。

区分相关术语

要理解多模态RAG的具体定位,区分其与相关概念很有帮助:

  • 多模态RAG与多模态模型多模态模型(如GPT-4o或Gemini)生成响应内容多模态RAG架构则为该模型注入其未经过训练的外部私有数据(图像、文档)。模型是引擎,RAG则是供能管道。
  • 多模态RAG与微调的对比: 微调通过永久更新模型权重来学习新任务或新风格。 RAG在推理时提供临时知识。对于动态数据(如每日库存), 因频繁重新训练不切实际,RAG更受青睐。

利用Ultralytics实施

开发者可使用 Ultralytics YOLO。通过检测和分类图像中的对象, YOLO 结构化元数据,既可用于文本检索的索引,也可用于裁剪相关图像区域 以支持视觉语言模型(VLM)。Ultralytics 简化了这些 专用视觉模型的训练流程,使其能识别特定领域中至关重要的定制对象。

以下示例演示了如何使用YOLO26从图像中提取视觉上下文(检测到的物体),这些信息随后可作为RAG工作流的一部分传递给大型语言模型。

from ultralytics import YOLO

# Load the YOLO26 model (smaller, faster, and more accurate)
model = YOLO("yolo26n.pt")

# Run inference on an image to 'retrieve' visual content
results = model("https://ultralytics.com/images/bus.jpg")

# Extract detected class names to form a text context
detected_objects = results[0].boxes.cls.tolist()
object_names = [model.names[int(cls)] for cls in detected_objects]

print(f"Retrieved Context: Image contains {', '.join(object_names)}")
# Output: Retrieved Context: Image contains bus, person, person, person

更多阅读和资源

  • LangChain 文档 构建检索管道的全面指南,包含多模态支持。
  • LlamaIndex 多模态指南 针对大型语言模型(LLMs)的复杂数据类型索引与检索的详细文档。
  • Google Vertex AI Search 企业级向量搜索能力,助力构建可扩展的RAG应用。
  • Ultralytics 探索计算机视觉如何在各行各业中与更广泛的人工智能系统集成。

加入Ultralytics 社区

加入人工智能的未来。与全球创新者联系、协作和共同成长

立即加入