第 11 章:检索增强生成(RAG)架构
RAG 架构让大语言模型突破知识边界,检索与生成的结合是智能应用的关键驱动力。
RAG 的必要性:突破 LLM 知识静态与上下文限制
在实际应用中,大语言模型(LLM, Large Language Model) 虽然能力强大,但仍面临两大核心挑战:
- 有限的上下文窗口(Finite context):模型无法一次性处理全部语料。
- 静态的知识(Static knowledge):训练数据在特定时间点后不再更新。
为解决上述问题,检索增强生成(RAG, Retrieval-Augmented Generation) 架构应运而生。RAG 的核心思想是:在模型推理时动态检索外部知识,将相关上下文注入生成过程,从而显著提升答案的事实性与时效性。
知识库的构建与检索流程
在 RAG 系统中,知识库的设计与检索流程直接影响最终效果。以下内容介绍知识库的基本构建方式及典型检索流程。
知识库(Knowledge base)是用于检索的文档或结构化数据的存储库。实际应用中,通常会根据业务需求自定义知识库。以 LangChain 为例,可以通过文档加载器(document loaders)和向量存储(vector stores),从自有数据构建专属知识库。
一个标准的检索流程通常包含以下模块:
- 加载器(Loaders):负责加载原始文档。
- 分割器(Splitters):将文档切分为更小的块,便于后续处理。
- 嵌入(Embeddings):将文本转换为向量,便于相似度检索。
- 向量存储(Vector Stores):存储和检索文本向量。
- 检索器(Retrievers):根据查询获取相关文档。
每个模块均为可插拔组件,开发者可根据实际需求灵活替换,无需重写整体逻辑。
三种主流 RAG 架构模式
根据系统需求,RAG 架构可分为三种主流实现方式。下表对比了各自特点:
这是三种 RAG 架构的对比表,便于快速理解不同模式的适用场景与技术特性。
| 架构类型 | 描述 | 控制 | 灵活性 | 延迟 | 典型用例 |
|---|---|---|---|---|---|
| 两步 RAG | 检索始终在生成之前发生,流程简单且可预测。 | 高 | 低 | 快 | FAQ 问答、文档机器人 |
| 智能体式 RAG | 由 LLM 驱动的智能体动态决定何时及如何检索,推理过程更灵活。 | 低 | 高 | 可变 | 多工具研究助手 |
| 混合 RAG | 结合两步与智能体式特点,引入验证与细化环节,兼顾灵活与可控。 | 中 | 中 | 可变 | 领域问答、质量验证 |
下文将分别介绍三种架构的核心机制与典型应用场景。
两步 RAG:检索始终在生成之前
两步 RAG 架构的最大特点是检索步骤固定在生成之前执行。此模式结构清晰,易于实现,适合大多数检索型问答场景。
- 流程特点:检索与生成严格分离,易于调试与优化。
- 典型应用:FAQ 问答、文档机器人等,用户问题先检索相关文档,再由 LLM 生成答案。
智能体式 RAG:智能体动态决策检索时机
智能体式 RAG 架构融合了 RAG 与智能体推理(Agentic reasoning)的优势。其核心在于由 LLM 驱动的智能体根据推理过程动态决定何时、如何检索信息。
- 工作机制:智能体可在多轮推理中灵活调用检索工具,而非固定在回答前检索文档。
- 应用示例:如研究助手,智能体先加载包含文档 URL 的文本文件,随后根据用户问题动态使用
fetch_documentation工具检索和处理内容。
混合 RAG:引入验证与迭代细化环节
混合 RAG 架构结合了两步与智能体式 RAG 的优点,并在流程中引入多层验证与细化步骤,提升系统的灵活性与可控性。
- 核心机制:包括查询增强、检索验证、答案验证等环节,支持多轮迭代优化。
- 典型组件:
- 查询增强(Query enhancement):对输入问题进行重写、生成变体或补充上下文,以提升检索质量。
- 检索验证(Retrieval validation):评估检索结果的相关性与充分性,必要时细化查询并重新检索。
- 答案验证(Answer validation):检查生成答案的准确性、完整性及与源内容的对齐,必要时重新生成或修改答案。
- 适用场景:适用于问题模糊、需质量控制或多来源细化的复杂问答流程。
总结
RAG 架构通过将检索与生成深度融合,有效突破了大语言模型的知识边界与上下文限制。三种主流实现模式——两步 RAG、智能体式 RAG、混合 RAG——各具优势,开发者可根据实际业务需求灵活选型。未来,随着知识库构建与智能体推理技术的不断发展,RAG 架构将在智能应用领域发挥更大价值。