微信扫码
添加专属顾问
我要投稿
RAG技术如何让大语言模型突破记忆限制?从基础检索到智能代理的进化之路。 核心内容: 1. RAG技术原理与Embedding向量检索机制 2. 朴素RAG到进阶RAG的检索质量优化路径 3. 专业领域中的分块策略与语义保护方案
LLM 具备强大的分析能力、推理能力、生成能力,但它仍然无法记得上个月的今天发生了什么,哪怕你曾经在上个月告诉过它。
究其原因,是因为 LLM 基于静态语料库训练,你的个人经历并不在其中。它只具备短期记忆,这种记忆依靠一次对话的上下文维持(历史信息会被携带到下一次对话,且信息量有限)。
当然,现在的诸多协议已经能够为 LLM 提供很多"外挂",比如 MCP 协议、A2A 协议,它们在不断扩展 LLM 的认知边界,让 LLM 能够跳出其固有的知识范围。但是,RAG 仍然是一个重要方向,为 LLM 提供长期记忆、让它能够将神经元触达到你的个人数据。
一、RAG 是什么
RAG(Retrieval-Augmented Generation)通过检索问题的关联信息来增强 LLM 生成效果。
高效、准确的检索依赖于 Embedding 技术,它将一定长度(每种 Embedding 模型对文本长度有要求)的文本转换为固定长度的向量,实现文本的语义表示。通过训练,语义相似的文本在向量空间中会彼此接近,从而支持语义搜索。
二、RAG 范式的演进
RAG 的演进过程,主要是围绕着用户意图识别、关联信息质量治理两个主题展开。尽可能在有限的上下文窗口中,让 LLM 生成更准确、更符合用户意图的答案。
2.1 朴素 RAG
早期的 RAG,实现非常简单,就是将用户的问题,通过 Embedding 模型转换为向量,然后通过向量检索,找到与用户问题最相似的文本,将问题和关联文本一起返回给 LLM,让 LLM 生成回答。
在向量数据库内,已经将现有的知识通过切割分块、向量化并存储。
但这种方式存在明显问题:当用户表达意图模糊或者知识库的向量化做的不好时,基于语义相似度的检索可能返回不相关的内容。这种情况尤其可能发生在比较专业的领域。
2.2 进阶 RAG
进阶版本的 RAG,在朴素 RAG 的基础上,增加了预检索、检索、后检索三个阶段,但是在各个阶段,又所有增强。
2.2.1 检索质量增强
在 Indexing 阶段,内容的质量和分块策略都是检索质量的关键因素。
就内容质量而言,我们可以对数据进行清洗和标准化,去除和内容主题不相关的部分,统一术语和表达方式。
对于分块策略,由于 Embedding 模型对输入长度有限制,必须将长文档切分为多个块进行向量化(即使长度符合要求,也需要进行适当分块,我们无法将一个问题的所有线索一次性投递给模型),然而,不当的分块策略可能导致重要概念被切断,降低检索准确性。
常见的分块策略包括:
递归字符分块:本质上是一种贪心算法。基于文档结构的层次化分割
- 按优先级使用分隔符(段落、换行、空格等)进行分割
- 当块大小超限时,降级使用下一级分隔符
- 适用于结构清晰的文档(如技术文档、学术论文)
滑动窗口分块:基于重叠保护的分割
- 设定固定块大小和滑动步长,确保相邻块有内容重叠
- 在检索准确性和存储效率间取得平衡
- 适用于内容连续性要求高的场景(如小说、对话记录)
语义分块:基于语义相似度阈值的动态分割
- 计算句子间的语义相似度,当相似度低于阈值时开始新块
- 计算开销较大,但能保持语义完整性
- 适用于语义边界模糊的内容(如自由文本、混合主题文档)
2.2.2 查询优化
在 Pre Retrieval 阶段,主要考虑在检索前对查询进行优化,以充分理解用户意图。
优化的策略通常包括:
- 元数据扩充:可以通过增加元数据,来提升检索的准确性。比如,可以增加文本的来源、作者、发布时间、类型等元数据,从而提升检索的准确性。
- 查询重写:让查询更加具体、明确,或者把复杂查询拆分成若干简单查询。意图的识别更加具有明确性和准确性。
- 查询扩展:在原查询基础上添加相关词汇或同义词,扩大检索范围。如将 'Python 教程' 扩展为包含编程学习、代码实践等相关语义的查询向量。
- 查询路由:根据查询内容的语义、类型、复杂度等特征,自动选择最优的检索策略、数据源或处理模型。
- 自查询:使用 LLM 识别查询中的关键实体和关系(例如,位置、日期、人员),并将此信息用作元数据过滤器,以缩小向量数据库中的搜索空间。
2.2.3 检索策略优化
Retrieval 阶段,专注于通过混合搜索、高级检索算法、嵌入模型优化等技术来提升向量搜索的准确性和效率,确保能够精准定位最相关的文档内容。
混合搜索:结合向量搜索和关键词搜索,关键词搜索确保检索文档中存在关键词汇,向量搜索捕获语义相似性,通过权重参数(比如关键词检索权重为 0.3,向量检索权重为 0.7)平衡每种方法的贡献。解决单一检索方式的局限性,在保证语义理解的同时确保重要术语不被遗漏。
高级检索算法:采用迭代检索、递归检索、自适应检索等技术,突破简单 Top-K 检索的限制。迭代检索通过多轮检索逐步深入;递归检索将前一步输出作为下一步输入;自适应检索根据查询复杂度动态调整策略,适用于复杂推理和多步查询场景。
嵌入模型优化:通过优化嵌入模型,提升向量搜索的准确性和效率。
元数据过滤:利用数据库的过滤和搜索功能,结合文档属性(时间、作者、类型、标签等)进行预过滤和精确匹配。在语义检索基础上增加结构化约束,提高检索精度并减少计算开销。
2.2.4 精炼上下文
Post Retrieval 阶段,专注于通过重排序、上下文压缩、Prompt 优化等技术来精炼检索到的内容,确保只有最相关的信息被传递给 LLM。
重排序:通过算法甚至模型,对结果的相关性进行进一步计算,进一步排除相关性不高的结果(噪音)。
上下文压缩:去除冗余信息,保留关键内容,控制总长度。
Prompt 优化:将最相关的信息,编辑成 LLM 容易理解的格式,添加必要的指令和结构。
2.3 模块化 RAG
RAG 系统可以被解构为多个独立且可组合的功能模块,每个模块专注于检索增强生成流程中的特定任务。这实际上是一种架构设计理念,所有功能都并不 “新鲜”,但重组、模块化之后具有以下优势:
灵活性:可以根据具体应用场景和需求,动态组合或替换不同的功能模块
可维护性:各模块之间职责明确,便于独立优化和升级
可扩展性:新的功能模块可以轻松集成到现有系统中
可复用性:通用模块可以在不同的 RAG 应用中重复使用
通过合理的模块化设计,我们可以构建出更加健壮和高效的 RAG 系统,更好地服务于不同的业务场景。
2.3 Graph RAG
Graph RAG 通过引入知识图谱增强检索能力,相比传统的向量检索方法具有显著优势:
结构化知识表示:将领域知识编码为实体和关系的图结构,保留了知识之间的逻辑关联
多跳推理能力:可以通过图的遍历发现间接相关的知识,支持更复杂的推理任务
语义关联扩展:基于图的连接性,可以智能扩展查询范围,发掘潜在相关的知识点
上下文感知检索:利用图结构中的关系信息,提供更符合领域上下文的检索结果
这种基于知识图谱的检索方式特别适用于:
- 专业领域问答(如医疗、法律、金融等)
- 需要深度推理的复杂查询
- 知识之间存在丰富关联关系的场景
2.4 Agentic RAG
Agentic RAG 通过引入智能代理(Agent)来模拟人类在信息检索过程中的认知决策模式。这种方法将 RAG 从静态的检索-生成流程提升为具备动态决策能力的智能系统。
自适应检索策略
- 根据查询内容和上下文动态调整检索方法
- 智能选择最适合的信息源和检索范围
- 自动优化检索参数和阈值
多轮交互决策
- 支持渐进式信息收集和精炼
- 在检索过程中进行实时反馈和调整
- 通过多轮对话深化对用户需求的理解
智能结果合成
- 自动评估和筛选检索结果的相关性
- 智能组合和重组来自不同来源的信息
- 生成更符合用户意图的综合答案
这种基于 Agent 的增强方式使 RAG 系统能够更好地处理复杂查询场景,提供更精准和个性化的响应。在更复杂的应用场景中,它可以是一个 MCP+RAG 甚至 A2A+RAG 型的应用。
三、总结
通过 RAG,我们可以将 LLM 的认知边界扩展到自己的知识库。意图识别和精准检索策略的不断升级,提供更有针对性和个性化的回答。
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2025-05-30
2025-05-08
2025-04-23
2025-06-06
2025-06-05
2025-05-19
2025-05-10
2025-04-28
2025-06-05
2025-05-20
2025-07-09
2025-07-04
2025-07-01
2025-07-01
2025-07-01
2025-07-01
2025-06-30
2025-06-29