Retrieval Augmented Generation (RAG)
探索检索增强生成 (RAG) 如何利用实时数据优化 LLM。学习使用 Ultralytics YOLO26 构建多模态流水线以进行视觉 RAG。
检索增强生成 (RAG) 是一种人工智能领域的高级技术,它通过引用训练数据之外的权威知识库来优化 大语言模型 (LLM) 的输出。传统的生成模型仅依赖于初始训练过程中学习到的静态信息,这可能导致过时的回答或被称为 幻觉 的自信错误。RAG 通过从外部来源(例如公司数据库、最新新闻或技术手册)检索相关且最新的信息,并在生成响应之前将其作为上下文输入给模型,从而填补了这一空白。此过程不仅确保了 AI 的输出在语言上连贯,而且在事实准确性上也有所依据,并植根于特定数据中。
Link to this sectionRAG 系统的工作原理#
RAG 系统的架构通常包含两个主要阶段:检索和生成。这种工作流程允许开发者维护一个 基础模型,而无需进行昂贵的频繁再训练。
-
Retrieval: When a user submits a query, the system first performs a semantic search across a specialized storage system called a vector database. This database contains data that has been converted into numerical representations known as embeddings, allowing the system to find conceptually similar information rather than just matching keywords.
-
生成: 在检索过程中找到的相关文档或数据片段会与用户的原始问题相结合。这个经过增强的提示词随后会被发送到生成模型。模型利用提供的上下文来综合出一个答案,确保响应基于检索到的事实。要深入了解其机制,IBM 提供了关于 RAG 工作流程的全面指南。
Link to this section视觉 RAG:集成计算机视觉#
虽然 RAG 传统上是基于文本的,但 多模态学习 的兴起引入了“视觉 RAG”。在这种场景下,计算机视觉 模型充当了检索机制。它们分析图像或视频流以提取结构化的文本数据(例如对象名称、计数或活动),然后将其输入到 LLM 中以回答关于视觉场景的问题。
例如,开发者可以使用 YOLO26 检测图像中的对象,并将该对象列表传递给文本模型以生成描述性报告。
from ultralytics import YOLO
# Load the YOLO26 model for state-of-the-art detection
model = YOLO("yolo26n.pt")
# Perform inference to 'retrieve' visual facts from an image
results = model("https://ultralytics.com/images/bus.jpg")
# Extract class names to build a text context for an LLM
detected_classes = [model.names[int(c)] for c in results[0].boxes.cls]
context_string = f"The scene contains: {', '.join(detected_classes)}."
print(context_string)
# Output example: "The scene contains: bus, person, person, person."Link to this section实际应用#
RAG 通过使 AI 代理 能够安全地访问专有或实时数据,正在改变各个行业。
- 企业知识库: 公司使用 RAG 构建内部聊天机器人,回答员工关于人力资源政策或技术文档的问题。通过将 LLM 连接到实时文档存储库,系统避免了提供过时的政策信息。有关企业实施的更多信息,请参阅 Google Cloud 关于 Vertex AI 中 RAG 的概述。
- 临床决策支持: 在 医疗保健领域的 AI 中,RAG 系统可以检索患者病史和最新的医学研究论文来辅助医生进行诊断,确保建议考虑到最新的临床研究。
- 智能零售助手: 使用 零售领域 AI 的应用程序利用 RAG 来检查实时库存数据库。如果顾客问聊天机器人:“你们有 10 码的这款跑步鞋吗?”,模型会在回答前检索实时库存水平,防止因缺货而带来的挫败感。
Link to this sectionRAG 与微调 (Fine-Tuning) 的对比#
将 RAG 与 微调 区分开来至关重要,因为它们解决的是不同的问题。
- RAG (检索增强生成): 最适合访问动态、频繁变化的数据(例如股价、新闻)或公共训练集中不存在的私有数据。它侧重于在运行时提供 新信息。
- 微调: 最适合调整模型的行为、风格或术语。它涉及在特定数据集上更新 模型权重。虽然微调有助于模型学习特定的语言模式(如医学术语),但它无法获取实时事实。请参阅 OpenAI 关于微调与 RAG 对比的指南 以获取决策框架。
Link to this section相关概念#
- LangChain: 一个流行的开源框架,专门设计用于通过链接检索器和 LLM 来简化 RAG 应用程序的创建。
- 知识图谱: 一种结构化的数据表示方式,可用作检索源,比简单的向量相似度提供更丰富的上下文关系。
- 提示工程: 指导模型的输入构建艺术。RAG 本质上是一种自动化的提示工程形式,其中的“提示”是通过编程方式用检索到的数据进行增强的。
- Ultralytics 平台: 虽然 RAG 处理文本生成方面的工作,但此类平台对于管理将视觉数据输入多模态 RAG 流水线的视觉模型的 数据预处理 和训练至关重要。






