RAG 实战指南:核心原理、工作流程与常见挑战解析
检索增强生成(RAG)技术通过整合外部知识源改进大语言模型应用。阐述 RAG 的必要性,包括解决幻觉、知识滞后及数据安全问题。介绍 RAG 索引与检索两阶段流程,分析 Naive RAG 在信息提取、分块、检索召回及生成质量等方面存在的八大问题与十二个痛点。同时探讨高级优化策略如混合检索、重排序、HyDE 及查询转换,为构建生产级 RAG 系统提供理论参考与技术路径。

检索增强生成(RAG)技术通过整合外部知识源改进大语言模型应用。阐述 RAG 的必要性,包括解决幻觉、知识滞后及数据安全问题。介绍 RAG 索引与检索两阶段流程,分析 Naive RAG 在信息提取、分块、检索召回及生成质量等方面存在的八大问题与十二个痛点。同时探讨高级优化策略如混合检索、重排序、HyDE 及查询转换,为构建生产级 RAG 系统提供理论参考与技术路径。

2023 年以来,检索增强生成(Retrieval Augmented Generation, RAG)已成为基于大语言模型的人工智能系统中应用最为广泛的架构之一。随着大模型能力的边界不断拓展,对 RAG 应用的性能、检索效率及准确性的研究成为核心技术问题。
本文首先介绍什么是 RAG、为什么需要 RAG,深入剖析 Naive RAG 的工作流程及其存在的挑战,并补充针对常见痛点的优化方案,为构建生产级 RAG 系统提供理论参考。
在大模型的快速发展过程中,大家发现仅仅依靠预训练的大语言模型(LLMs)会有诸多制约。以下四点尤为突出:
因此,检索增强生成(RAG)技术应运而生。它通过整合外部知识源,提高 LLMs 生成答案的准确性和可信度,特别适用于知识密集型任务,并允许持续的知识更新和特定领域信息的整合。
用户常问,为什么使用 RAG 而不是微调(Fine-tuning)?
检索增强生成(RAG)是通过整合来自外部知识源的额外信息来改进大语言模型应用能力的一种技术。这种技术能够帮助 LLMs 产生更精确和更能感知上下文的回复,同时减轻幻觉现象。
简短的公式帮你理解 RAG:RAG = 检索 + LLMs
RAG 分为两个主要阶段:索引(Indexing)和检索(Retrieval)。有的地方理解为离线处理和在线处理。
索引阶段是将文本、图片、音视频等格式的内容进行解析、分割、向量化处理,并最终将向量化后的内容存储到向量数据库。
注:事实上也并非一定向量化,某些场景可以仅使用精确/关键词搜索,具体视场景而定,但一般情况下向量检索是主流。
此阶段的关键步骤包括:
检索阶段主要是将用户提问向量化,然后将向量化的提问去向量数据库中进行相似度查询并返回语义相近的信息,最后将该信息作为上下文发送给大模型。
此阶段涉及:
Naive RAG 的典型工作流程包含三个核心环节:索引、检索、生成。
索引是 RAG 应用环节的第一步也是关键一步,其处理的质量将直接决定 RAG 应用的性能。
检索方式有多种,关键字检索、语义相似检索以及混合检索方式。在实际应用场景中,根据不同的场景选择不同的检索方式,并不一定非要是语义相似度检索。
这个环节相对标准,是大模型正常处理过程。
从整个工作流程上看,实现逻辑比较简单,但在 RAG 圈有句名言'一天搭建 RAG,一年上不了线'。这也从另一个角度说明想达到生产级别还是相当困难的。
Naive RAG 在索引、检索和内容生成这三个核心步骤中都存在诸多问题。只有知道了问题才能解决问题。
| 痛点序号 | 痛点内容 | 解决方案 |
|---|---|---|
| 痛点 1 | 内容缺失 | 清洗数据 && 精心设计提示词 |
| 痛点 2 | 关键文档被遗漏 | HyDE(假设性文档嵌入)和重排序(Rerank) |
| 痛点 3 | 文档整合长度限制 - 超 LLM 窗口大小 | 调整检索策略 & 嵌入模型调优 |
| 痛点 4 | 提取困难 | 数据清洗,提示词压缩,长内容优先排序 |
| 痛点 5 | 格式错误 | 改进提示词,格式化输出,Pydantic Program |
| 痛点 6 | 缺乏具体细节 | 先进的检索策略(从小到大的聚合检索/基于句子窗口/递归式检索) |
| 痛点 7 | 回答不全面 | 查询转换(路由/查询改写/细分问题/ReAct 提示) |
| 痛点 8 | 数据摄取的可扩展性 | 并行处理,提升处理速度 |
| 痛点 9 | 结构化数据问答 | 链式思维表格包/混合自洽查询引擎包 |
| 痛点 10 | 从复杂 PDF 提取数据 | 嵌入式表格检索技术 |
| 痛点 11 | 备用模型策略 | Neutrino 路由器 / OpenRouter |
| 痛点 12 | LLM 安全 | 输入过滤与输出审核机制 |
其中部分痛点源自相关技术论文。对于上述痛点,以下是具体的技术深化方案:
RAG 技术虽然架构相对简单,但要达到生产级的高可用性和高准确性,需要在数据清洗、分块策略、检索算法、重排序机制以及生成控制等多个环节进行精细调优。开发者应充分理解 Naive RAG 的局限性,结合业务场景选择合适的优化策略,如混合检索、查询重写、重排序等,以构建真正可靠的企业级智能问答系统。后续文章将对每一个痛点或存在问题进行详细分析,给出相应的技术解决方案与代码示例。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online