9种每个AI开发者都必须了解的RAG架构

摘要:本文详细介绍了9种关键的RAG(检索增强生成)架构,旨在帮助开发者构建可靠的生产级AI系统。从基础的标准RAG到进阶的CRAG、Self-RAG、GraphRAG等,文章深入解析了每种架构的工作原理、适用场景及优缺点,为解决幻觉、上下文缺失和复杂推理问题提供了实用的技术指南。

RAG 架构示意图

您的聊天机器人自信地告诉客户您的退货政策为 90 天,但实际上它是 30 天。它后来描述了你的产品甚至没有的功能。

这就是出色的演示和实际生产系统之间的差距。语言模型听起来很确定,即使它们是错误的,而且在生产中很快就会变得昂贵。

这就是严肃的 AI 团队使用 RAG 的原因。不是因为它很流行,而是因为它使模型以真实信息为基础。

大多数人错过的是没有单一的 RAG。 有多种架构,每种架构解决不同的问题。如果选错了,你就会浪费几个月的时间。

本指南详细介绍了在生产中实际工作的 RAG 架构。

让我们从了解 RAG 开始。

1、什么是 RAG 以及它为何如此重要?

什么是 RAG
来源:Hyperight

在我们深入探讨架构之前,让我们先弄清楚我们在说什么。

RAG 通过在生成响应之前参考外部知识库来优化语言模型输出RAG 不是纯粹依赖模型在训练过程中学到的知识,而是从文档、数据库或知识图中提取相关的当前信息。

1.1 实践过程

  • 当用户提出问题时,您的 RAG 系统首先根据该查询从外部来源检索相关信息
  • 然后它将原始问题与检索到的上下文相结合并将所有内容发送到语言模型。
  • 该模型生成基于实际、可验证信息的响应,而不仅仅是其训练数据。

2、RAG 解决的实际问题

RAG 解决的问题

3、标准 RAG:从这里开始

标准 RAG
来源:BentoML

标准 RAG 是生态系统的“Hello World”。 它将检索视为一种简单的一次性查找。它的存在是为了在特定数据中建立模型,而无需微调的开销, 但它假设您的检索引擎是完美的。

它最适合低风险环境,其中速度比绝对事实密度更重要。

3.1 它是如何工作的

  1. 分块: 文档被分成小的、易于理解的文本片段。
  2. 嵌入: 每个片段都被转换为向量并存储在数据库中(如 Pinecone 或 Weaviate)。
  3. 检索: 将用户查询向量化,并使用余弦相似度提取“Top-K”最相似的片段。
  4. 生成: 这些片段作为“上下文”提供给 LLM,以生成接地响应。

3.2 现实示例

一家小型初创公司的内部员工手册机器人。用户问:“我们的宠物政策是什么?”机器人会从人力资源手册中检索特定段落来回答。

3.3 优点

  • 亚秒级延迟。
  • 极低的计算成本。
  • 易于调试和监控。

3.4 缺点

  • 极易受到“噪音”的影响(检索不相关的块)。
  • 没有能力处理复杂的、多部分的问题。
  • 如果检索到的数据错误,则缺乏自我纠正。

4、会话式 RAG:添加内存

会话式 RAG
来源:Humanloop

会话式 RAG 解决了“上下文失明”的问题。 在标准设置中,如果用户询问“它要花多少钱?”之类的后续问题,系统不知道“它”指的是什么。 此架构添加了一个有状态的内存层,可以重新构建聊天的每个回合的上下文。

4.1 它是如何工作的

  1. 上下文加载: 系统存储最后 5-10 轮对话。
  2. 查询重写: LLM 采用历史记录 + 新查询来生成“独立查询”(例如,“企业计划的价格是多少?”)。
  3. 检索: 此扩展查询用于向量搜索。
  4. 生成: 使用新上下文生成答案。

4.2 现实示例

SaaS 公司的客户支持机器人。用户说:“我的 API 密钥遇到问题”,然后接着说:“你能重置它吗?”系统知道“it”指的是 API 密钥。

4.3 优点

  • 提供自然、人性化的聊天体验。
  • 防止用户重复自己的操作。

4.4 缺点

  • 内存漂移: 10 分钟前的不相关上下文可能会污染当前搜索。
  • 由于“查询重写”步骤,Token 成本更高。

5、纠正 RAG (CRAG):自我检查器

纠正 RAG
来源:LanceDB

CRAG 是专为高风险环境设计的架构。它引入了**“决策门”**,在检索到的文档到达生成器之前对其质量进行评估。 如果内部搜索效果不佳,则会触发到实时网络的回退。

在部署 CRAG 式评估器的团队报告的内部基准中,与简单的基准相比,幻觉已被证明有所下降。

5.1 它是如何工作的

  1. 检索: 从内部向量存储中获取文档。
  2. 评估: 轻量级“评分器”模型为每个文档块分配分数(正确、模糊、不正确)。
  3. 触发门:
    • 正确: 继续前往生成器。
    • 不正确: 丢弃数据并触发外部 API(例如 Google 搜索或 Tavily)。
  4. 综合: 使用经过验证的内部或新的外部数据生成答案。

5.2 现实示例

财务顾问机器人。当被问及 2024 年数据库中没有的特定股票价格时,CRAG 意识到数据丢失,并从财经新闻 API 中提取实时价格。

5.3 优点

  • 显着减少幻觉。
  • 弥合内部数据与真实世界事实之间的差距。

5.4 缺点

  • 延迟显着增加(增加 2-4 秒)。
  • 管理外部 API 成本和速率限制。

6、自适应 RAG:将工作量与复杂性相匹配

自适应 RAG
来源:Analytics Vidhya

自适应 RAG 是**“效率冠军”。**它认识到并非每个查询都需要重型武器。 它使用路由器来确定用户意图的复杂性,并选择最便宜、最快的路径来获得答案。

6.1 它是如何工作的

  1. 复杂性分析: 一个小型分类器模型路由查询。
  2. 路径 A(无检索): 用于问候语或 LLM 已经知道的常识。
  3. 路径 B(标准 RAG): 用于简单的事实查找。
  4. 路径 C(多步代理): 对于需要搜索多个来源的复杂分析问题。

6.2 现实示例

大学助理。如果学生说“你好”,它会直接回复。如果他们问“图书馆什么时候开放?”,它会进行简单的搜索。如果他们问“比较过去 5 年 CS 项目的学费”,就会引发复杂的分析。

6.3 优点

  • 通过跳过不必要的检索,节省大量成本。
  • 简单查询的最佳延迟。

6.4 缺点

  • 错误分类风险:如果它认为一个困难的问题很简单,它将无法搜索。
  • 需要高度可靠的路由模型。

7、Self-RAG:自我批评的人工智能

Self-RAG
来源:LangChain

Self-RAG 是一种复杂的架构,模型经过训练可以批判自己的推理。 它不只是检索;它生成“反思 Token”,用作对其自身输出的实时审核。

7.1 它是如何工作的

  1. 检索: 由模型本身触发的标准搜索。
  2. 使用标记生成: 该模型会生成文本以及特殊标记,例如“[IsRel]”(这相关吗?)、“[IsSup]”(此声明是否受支持?)和“[IsUse]”(这有帮助吗?)。
  3. 自我纠正: 如果模型输出“[NoSup]”标记,它会暂停、重新检索并重写句子。

7.2 现实示例

法律研究工具。该模型编写了有关法院案件的主张,意识到检索到的文档实际上并不支持该主张,并自动搜索不同的先例。

7.3 优点

  • 最高水平的事实“基础”。
  • 推理过程内置透明度。

7.4 缺点

  • 需要专门的、经过微调的模型(例如 Self-RAG Llama)。
  • 极高的计算开销。

8、Fusion RAG:多个角度,更好的结果

Fusion RAG
来源:Bhavishya Pandit

Fusion RAG 解决了 “歧义问题”。 大多数用户不擅长搜索。 Fusion RAG 接受单个查询并从多个角度查看它,以确保高召回率。

8.1 它是如何工作的

  1. 查询扩展: 生成用户问题的 3-5 个变体。
  2. 并行检索: 搜索向量数据库中的所有变体。
  3. 倒数排名融合(RRF):使用数学公式对结果重新排名。
  4. 最终排名: 在多次搜索中出现较高的文档将被提升到顶部。

8.2 现实示例

一位医学研究人员正在寻找“失眠疗法”。 Fusion RAG 还会搜索“睡眠障碍药物”、“非药物失眠疗法”和“CBT-I 方案”,以确保不会遗漏任何相关研究。

8.3 优点

  • 出色的召回率(找到单个查询会错过的文档)。
  • 对较差的用户措辞具有鲁棒性。

8.4 缺点

  • 搜索成本成倍增加 (3-5x)。
  • 由于重新排名计算而导致更高的延迟。

9、HyDE:生成答案,然后查找类似文档

HyDE
来源:ML Pills

HyDE 是一种反直觉但出色的模式。它认识到“问题”和“答案”在语义上是不同的。 它首先生成一个“假”答案,在它们之间架起一座桥梁。

9.1 它是如何工作的

  1. 假设: LLM 为查询写了一个(假设)答案。
  2. 嵌入: 假答案被向量化。
  3. 检索: 使用该向量查找看起来像假答案的真实文档。
  4. 生成: 使用真实的文档来编写最终的响应。

9.2 现实示例

用户提出了一个模糊的问题,例如“加利福尼亚州有关数字隐私的一项法律”。 HyDE 编写了一份虚假的 CCPA 摘要,用它来查找实际 CCPA 法律文本,并提供答案。

9.3 优点

  • 极大地改进了概念性或模糊查询的检索。
  • 不需要复杂的“代理”逻辑。

9.4 缺点

  • 偏见风险:如果“假答案”根本上是错误的,搜索就会被误导。
  • 简单的事实查找效率低下(例如,“什么是 2+2?”)。

10、Agentic RAG:编排专家

Agentic RAG
来源:Bhavishya Pandit

它不是盲目地获取文档,而是引入了一个自主代理,可以在生成答案之前计划、推理并决定如何和在哪里检索信息。

它将信息检索视为研究,而不是查找。

10.1 它是如何工作的

  1. 分析: 代理首先解释用户查询并确定它是否简单、多步骤、模糊或需要实时数据。
  2. 计划: 它将查询分解为子任务并决定策略。例如,它应该首先进行向量搜索吗?网络搜索?调用 API?问一个后续问题?
  3. 行动: 代理通过调用向量数据库、网络搜索、内部 API 或计算器等工具来执行这些步骤。
  4. 迭代: 根据中间结果,代理可以优化查询、获取更多数据或验证源。
  5. 生成: 一旦收集到足够的证据,LLM 就会做出有根据的、上下文相关的最终答复。

10.2 现实示例

有用户问:“根据印度法规,金融科技应用程序使用 LLM 进行贷款审批是否安全?”

Agentic RAG 可能:

  1. 检测这是一个监管+政策+风险的问题。
  2. 通过网络工具搜索 RBI 指南。
  3. 检索内部合规文件。
  4. 交叉检查最近的监管更新。
  5. 综合一个带有引文和警告的结构化答案。

传统的 RAG 可能只会检索语义相似的文档并回答一次。

10.3 优点

  • 处理复杂、多部分和不明确的查询。
  • 通过验证和迭代减少幻觉。
  • 可以访问实时和外部数据源。
  • 更能适应不断变化的环境和要求。

10.4 缺点

  • 多步执行导致更高的延迟。
  • 比简单的 RAG 运行成本更高。
  • 需要仔细的工具和代理编排。
  • 对于简单的事实查询来说太过分了。

11、GraphRAG:关系推理机

GraphRAG
来源:Rabiloo

虽然所有以前的架构都基于语义相似性检索文档,但 GraphRAG 检索实体以及它们之间的显式关系

它不是问“哪些文本看起来相似”,而是问“有什么联系,如何联系?”

11.1 它是如何工作的

  1. 图构建: 知识被建模为一个图,其中节点是实体(人、组织、概念、事件),边是关系(影响、依赖、资助、监管)。
  2. 查询解析: 分析用户查询以识别关键实体和关系类型,而不仅仅是关键字。
  3. 图遍历: 系统遍历该图以查找跨多个跃点连接实体的有意义的路径。
  4. 可选的混合检索: 向量搜索通常与图形一起使用,以在非结构化文本中提供实体。
  5. 生成: LLM 将发现的关系路径转换为结构化的、可解释的答案。

11.2 现实示例

询问:“美联储的利率决定如何影响科技初创企业的估值?”

GraphRAG 遍历:

  • 美联储→利率决定→加息
  • 利率上升→影响→风险投资资本的可用性
  • 风险投资可用性降低 → 影响 → 早期估值
  • 科技初创公司 → 资金_by → 风险投资

答案来自关系链,而不是文档相似性。

为什么不同:

  • 向量 RAG: “哪些文档与我的查询相似?”
  • GraphRAG: “哪些实体很重要,它们如何相互影响?”

这使得 GraphRAG 对于因果、多跳和确定性推理来说更加强大。

将 GraphRAG 与结构化分类法相结合的系统在确定性搜索任务中实现了接近 99% 的准确性。

11.3 优点

  • 擅长因果推理。
  • 由于明确的关系,输出具有高度可解释性。
  • 在结构化和规则繁重的领域表现出色。
  • 减少语义相似性引起的误报。

11.4 缺点

  • 构建和维护知识图的前期成本较高

参考文献

9 RAG Architectures Every AI Developer Must Know

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐