一、 RAG 工作流程

检索增强生成(RAG)系统代表了大型语言模型(LLM)应用架构的重大演进,它将 LLM 的强大生成能力与外部知识库的实时性、准确性相结合,形成了一个高效、可靠的知识闭环。理解 RAG 系统的完整工作流程,是构建和优化任何 RAG 应用的基础。这个流程并非简单的组件堆砌,而是一个精心设计、环环相扣的信息处理管道,主要由查询解析、文档检索、信息整合与回答生成四个阶段构成。

在这里插入图片描述


许多开发者在 RAG 实践中,往往止步于 向量数据库 + Prompt 的简单组合,却在面对文档切片策略、重排序 Rerank 引入、以及生产环境的部署调优等深水区问题时感到困惑。

为了帮助开发者填补从懂原理到能落地的关键拼图,AI大学堂基于大量的业务实战经验,精心打磨课程,正式推出 RAG工程师认证。这份证书将是你系统化掌握 AI 落地核心能力的绝佳机会,认证现已开启,限时免费,点击🔗认证链接开始学习!


1.1、 查询解析:捕获用户真实意图与查询优化

RAG 流程始于用户输入的自然语言查询,而查询解析(Query Understanding)则是整个流程的起点和基石。用户查询往往是口语化、非结构化的,可能存在歧义、省略或措辞不精确的问题。因此,查询解析的目标是准确理解用户的信息需求意图,并将其转化为系统能够高效处理的、优化的检索信号。

在基础处理层面,系统首先需要进行文本清洗与标准化,去除无关字符、处理拼写错误,并统一格式。在此基础上,更深层次的语义分析开始介入,包括命名实体识别(NER),以识别查询中的关键实体(如人名、产品、日期),以及意图识别,以判断用户是寻求事实、定义、还是操作指南。这些信息对于后续的元数据过滤检索策略选择至关重要。

为了克服用户查询的简短性或模糊性,提高检索的召回率,RAG 系统常采用 LLM 驱动的查询优化技术。例如,在多轮对话场景中,LLM 可以进行查询重写(Query Rewriting),根据对话历史将模糊的指代(如“它”、“那个”)重写为明确、独立的查询。此外,查询扩展(Query Expansion)则通过生成多个语义等价或从不同角度提问的查询变体,来增加命中相关文档的可能性。这些优化后的查询信号,无论是关键词、实体还是新的查询语句,都将作为输入,传递给下一个阶段的检索模块。

1.2、 文档检索:海量知识的精准定位与策略选择

文档检索(Document Retrieval)是 RAG 的核心环节,它负责从大规模知识库中找出与优化后查询最相关的文档片段。检索的质量直接决定了 LLM 生成回答的事实准确性

现代 RAG 系统主要依赖于三种检索策略:稀疏检索、密集检索和混合检索。稀疏检索主要基于关键词匹配,其中最具代表性的是 BM25(Best Match 25)算法。BM25 是一种基于概率的检索模型,它通过计算查询词在文档中的频率和在整个语料库中的稀有度,并引入了文档长度归一化和词频饱和度参数,来衡量文档与查询的相关性。稀疏检索的优势在于其可解释性强计算效率高,并且对训练数据中未出现的领域外词汇具有天然的鲁棒性。然而,它的主要局限在于无法捕捉语义相似性,对同义词或不同表达方式的查询,检索效果往往不佳。

相比之下,密集检索则利用深度学习模型(如 Sentence-BERT)将查询和文档编码成低维、稠密的嵌入向量。这种方法通常采用 Bi-Encoder(双编码器)架构,通过计算向量之间的余弦相似度或内积来衡量相关性。密集检索的优势在于其强大的语义匹配能力,即使查询和文档在字面上不匹配,也能通过语义关系找到相关内容。其挑战在于计算资源消耗较大,需要专门的向量数据库支持高效的近似最近邻(ANN)搜索。

在实际应用中,为了兼顾关键词匹配的精确性和语义匹配的召回率,混合检索(Hybrid Retrieval)成为主流选择。它通常同时执行稀疏检索和密集检索,然后通过 RRF(Reciprocal Rank Fusion)等算法对两种结果进行融合排序,从而实现优势互补,最大化检索的鲁棒性和效果。下表对这三种策略进行了总结:

检索策略 技术原理 核心优势 核心局限性
稀疏检索 基于关键词匹配(BM25),高维稀疏向量。 可解释性强,计算效率高,对领域外词汇鲁棒。 无法捕捉语义相似性,对查询措辞敏感。
密集检索 基于深度学习模型(Bi-Encoder),低维稠密向量。 强大的语义匹配能力,复杂查询效果好。 计算资源消耗大,可解释性差。
混合检索 结合稀疏和密集检索,通过 RRF 融合。 兼顾关键词和语义匹配,召回率和鲁棒性最高。 实现复杂度高,需要维护两套索引。

1.3、 信息整合与回答生成:增强推理与内容创作

检索模块返回的文档片段进入信息整合阶段,随后与原始查询一起输入给 LLM 进行最终的回答生成。这一阶段是 RAG 价值的最终体现。

上下文构建与精炼是信息整合的核心任务。由于 LLM 的上下文窗口是有限的,检索到的信息必须经过精炼和组织,以确保提供给 LLM 的上下文是高质量、紧凑且相关的。这包括对检索结果进行初步的去重摘要关键信息提取。最终,系统将用户查询和经过筛选、排序的文档片段组合成一个结构化的输入序列,并以明确的提示词(Prompt)格式输入给 LLM。

在 RAG 系统中,LLM 的角色发生了本质性的转变。它不再是独立地从其内部参数化知识中生成回答,而是作为一个强大的推理引擎文本生成器,其生成过程被外部知识所“增强”和“约束”。LLM 的核心作用在于:信息综合,能够从分散在不同文档片段中的信息中进行逻辑推理;事实核查,确保生成的内容与检索到的事实信息一致,从而显著降低“幻觉”的风险;以及自然语言生成,将综合后的信息以流畅、专业的语言形式表达出来。最终生成的答案必须同时满足准确性(Accuracy)和流畅性(Fluency)两个标准,并能够提供引用来源,以增强系统的可信度和可追溯性。

二、 核心组件深度解析

RAG 系统的性能上限取决于其核心组件的技术选型和优化程度。从数据摄取到向量存储,每一个环节都蕴含着复杂的技术挑战和优化空间。

2.1、 数据预处理与文本分块

在这里插入图片描述

数据预处理是 RAG 系统的“地基”,其任务是将原始、异构的数据转化为统一、干净、适合检索和嵌入模型处理的格式。在实际部署中,RAG 系统需要处理各种复杂的数据源,例如包含复杂布局、表格和图片的 PDF 文档,需要使用 Layout-Aware Parsers 来提取文本并保留结构信息;以及包含大量冗余标签的 HTML 网页,需要进行内容提取以只保留文章正文。对于 结构化数据(如 SQL 数据库),则需要将其转化为自然语言描述,以便进行向量化。

在预处理流程中,文本分块(Chunking)无疑是最具艺术性和挑战性的环节。目标是创建大小适中、语义完整的“块”(Chunks),以最大化检索的相关性和 LLM 的处理效率。一个好的文本块应该包含足够的信息来回答一个问题,但又不能过长,以避免稀释关键信息。

在分块策略的选择上,需要进行精妙的权衡。固定大小分块虽然实现简单,但容易在语义边界处截断,破坏上下文。因此,业界更倾向于采用语义分块策略,例如基于段落、章节或标题进行分割。其中,递归字符文本分割器(RecursiveCharacterTextSplitter)是目前最流行的实践,它尝试使用一系列分隔符(如换行符、句号、空格)递归地分割文本,以优先保持语义完整性。下表总结了主要的文本分块策略:

分块策略 描述 核心优势 核心挑战
固定大小分块 按固定字符数或 Token 数分割,设置重叠量。 实现简单,大小可控。 容易在语义边界处截断,破坏上下文。
语义分块 基于段落、章节、标题等语义边界进行分割。 保留语义完整性,每个块是独立的逻辑单元。 实现复杂,依赖于文本的格式规范性。
父文档检索 存储小块用于检索,返回包含该小块的更大“父文档”作为上下文。 检索精确(小块),上下文丰富(大块)。 索引和检索逻辑更复杂。

在实践中,块大小chunk_size)的选择需要根据所使用的嵌入模型和 LLM 的上下文窗口大小进行权衡,而重叠量chunk_overlap)的设置则用于确保语义连续性,防止关键信息被分割到相邻块的边界。

在这里插入图片描述

2.2、 嵌入技术:语义空间的量化与模型选择

嵌入技术(Embedding)是 RAG 系统中实现语义匹配的基石。它将人类可读的文本转化为低维、稠密的数值向量,从而在向量空间中量化文本的语义信息。在这个向量空间中,语义相似的文本片段会被映射到彼此靠近的位置。
在这里插入图片描述

嵌入模型的质量直接决定了密集检索的上限。选择模型时,需要综合考虑其在 MTEB(Massive Text Embedding Benchmark)等基准测试上的性能领域适应性计算资源需求以及成本。例如,Sentence-BERT (SBERT) 系列模型因其在句子相似度任务上的出色表现和高计算效率而广受欢迎。对于需要处理中文或特定领域知识的 RAG 系统,则需要考虑使用在相关数据上进行过微调的 BGE(BAAI General Embedding)或 GTE(General Text Embeddings)等高性能模型。

一旦文本被转换为嵌入向量,相关性通常通过计算向量之间的余弦相似度来衡量。余弦相似度衡量的是两个向量方向的一致性,它能够有效地忽略文本长度的影响,专注于语义方向的匹配。在向量空间中,查询向量与文档片段向量越接近(余弦相似度越接近 1),则语义越相似,从而实现高效的语义检索。

2.3、 向量存储与索引:高效搜索与调优

一旦文本被嵌入,就需要向量数据库(Vector Database)来高效存储、管理和查询这些高维向量。向量数据库(如 Pinecone, Milvus, Qdrant, Chroma)的核心价值在于支持高效的近似最近邻(Approximate Nearest Neighbor, ANN)搜索。

由于精确最近邻搜索(ENN)在高维空间中计算成本极高,向量数据库普遍采用 ANN 算法,通过牺牲少量精度来换取查询速度的显著提升。其中,HNSW(Hierarchical Navigable Small World)和 IVF(Inverted File Index)是目前最主流的两种索引结构。
在这里插入图片描述

HNSW 是一种基于图的 ANN 算法,它构建了一个多层图结构,通过图遍历进行搜索。其优势在于召回率高搜索速度快,但内存占用相对较高。在实践中,通过调整 e f S e a r c h efSearch efSearch 参数可以灵活地在召回率查询延迟之间进行权衡:较大的 e f S e a r c h efSearch efSearch 值会提高召回率,但会增加延迟。

IVF 则是一种基于聚类的 ANN 算法,它首先将向量空间划分为多个单元,搜索时只在最近的几个单元内部进行精确搜索。IVF 的优势在于内存效率高,适用于超大规模数据集。下表总结了这两种主流 ANN 索引算法的特点:

ANN 索引算法 原理概述 核心优势 性能权衡
HNSW 基于图的算法,构建多层图结构进行搜索。 召回率高,搜索速度快,支持动态更新。 内存占用高;通过 e f S e a r c h efSearch efSearch 权衡召回率与延迟。
IVF 基于聚类的算法,搜索时只检查最近的单元。 内存效率高,适用于超大规模数据集。 召回率可能略低;通过 n p r o b e n_{probe} nprobe 权衡召回率与延迟。

向量数据库还必须支持元数据过滤,允许用户在检索时根据文档的元数据(如日期、作者、主题)进行限制或筛选,从而实现更精确的混合搜索(Hybrid Search)。选择合适的向量数据库和索引策略,并进行精细的参数调优,是确保 RAG 系统在生产环境中稳定、高效运行的关键。

三、 高级优化策略

为了将 RAG 系统的性能推向极致,必须在检索的前端和后端引入高级优化策略,对查询和检索结果进行精益求精的处理。

3.1、 预检索优化:主动增强查询信号

预检索优化旨在在实际检索发生之前,通过对查询进行智能处理,生成更强大的检索信号,以解决原始查询的局限性。
在这里插入图片描述

其中最具创新性的技术之一是假设性文档嵌入(HyDE)。HyDE 解决了词汇不匹配(Lexical Gap)的问题。其原理是:首先利用 LLM 根据原始查询生成一个假设性文档,这个文档是 LLM 认为最能回答原始查询的理想文档。然后,对这个假设性文档进行嵌入,并使用其嵌入向量进行检索。由于假设性文档通常比原始查询包含更丰富的语义信息和更接近文档的词汇,因此其嵌入向量能够更好地捕捉查询的意图,显著提高检索的准确性。然而,这种方法会增加额外的 LLM 调用,从而增加系统的延迟运行成本

此外,对于需要多步推理才能回答的复杂问题,系统需要引入 LLM Agent 来协调和规划检索步骤,实现多跳检索(Multi-Hop Retrieval)。Agent 会将一个复杂问题分解为多个子问题,并依次进行检索,将前一步的检索结果作为后一步查询的上下文,从而实现复杂的知识推理。

3.2、 检索后处理:精炼与重排序的二次筛选

检索后处理发生在文档检索之后、LLM 生成之前,是提升准确率(Precision)的关键环节。尽管检索器已经返回了 Top-K 结果,但这些结果可能仍然包含一些相关性较低或冗余的文档。
在这里插入图片描述

重排序(Re-ranking)是检索后处理中最常用的技术。它旨在对检索器返回的初步结果进行二次筛选和排序。重排序通常使用交叉编码器(Cross-Encoder)模型。与 Bi-Encoder 独立编码查询和文档不同,交叉编码器将查询和文档拼接在一起,然后将拼接后的文本输入到模型中。这种方式能够捕捉查询和文档之间细粒度的交互信息,从而在判断相关性方面比 Bi-Encoder 更准确,能够显著提高最终答案的质量。由于交叉编码器的计算成本较高,它通常只用于对 Bi-Encoder 返回的少量(如 Top-50)结果进行二次排序,选出最相关的 Top-N(如 Top-5)作为 LLM 的上下文。

除了重排序,系统还需要解决检索结果的冗余性多样性问题。最大边际相关性(MMR)是一种常用的算法,它在选择下一个文档时,不仅考虑文档与查询的相关性,还考虑其与已选文档的多样性。MMR 的目标是选择一个既相关又与已选文档不重复的文档集合,从而确保提供给 LLM 的上下文既全面又精炼。

3.3、 模块协同与评估体系

RAG 系统的卓越性能源于其各模块的紧密协同和持续的迭代优化。在复杂的 RAG 架构中,LLM 不仅是生成器,还可以作为 Agent 协调不同模块的调用,例如根据检索结果的质量,决定是否需要进行二次检索或调用外部工具。

一个成熟的 RAG 系统必须包含持续的反馈循环(Feedback Loop)。反馈可以来自用户(显式满意度评分或隐式后续查询行为)和系统内部(模型评估)。

RAG 系统的评估是一个多维度的挑战,需要同时评估检索质量和生成质量。检索质量通常通过 召回率(Recall)、MRR(Mean Reciprocal Rank)等指标来衡量;而生成质量则需要评估答案的忠实度(Faithfulness,即答案与上下文的一致性)、相关性(Relevance)和流畅性(Fluency)。下表总结了 RAG 系统的主要评估维度:

评估维度 核心关注点 关键指标/框架 优化方向
检索质量 找到所有相关文档的能力和排序准确性。 召回率、MRR、NDCG 嵌入模型、分块策略、索引参数。
生成质量 答案与上下文的一致性、与查询的相关性。 忠实度、相关性、流畅性(RAGAS) Prompt 工程、LLM 参数、上下文精炼。
端到端性能 系统在生产环境中的效率和经济性。 延迟(Latency)、吞吐量(QPS)、成本 ANN 算法、硬件资源、缓存策略。

RAGAS(Retrieval-Augmented Generation Assessment)等评估框架的出现,利用 LLM 自身的能力来评估 RAG 系统的忠实度和上下文相关性,为 RAG 系统的迭代优化提供了量化工具。通过这种持续的评估和优化,RAG 系统能够不断学习和适应新的数据和用户需求,从而提供越来越智能和可靠的服务。

四、 总结

RAG 技术通过将 LLM 的强大生成能力与外部知识库的实时性、准确性相结合,为构建可靠、可信赖的 AI 应用提供了强大的技术框架。它代表了 LLM 从“知识黑箱”走向“知识透明”的关键一步。

RAG 的未来将聚焦于 多模态 RAG(处理文本、图像、视频)、多跳推理LLM Agent 协同,以应对更复杂的现实世界挑战。

本文深入解析了 RAG 的工作流程与核心组件,但从原理到工程化落地,仍有许多实战细节需要掌握,例如如何高效部署 RAGFlow、如何使用 RAGAS 进行量化评估,以及如何针对特定行业进行优化。

为了帮助您系统化地掌握这些进阶能力,AI大学堂基于大量的业务实战经验,精心打磨了 RAG工程师认证 课程。这份认证覆盖了从基础概念、核心组件、高级优化到工程化实战的全链路知识体系,旨在助您打破理论与落地的壁垒,将知识真正内化为职场竞争力。

限时免费认证现已开启,立即点击下方链接,开启您的 RAG 进阶学习之旅:

🔗 认证链接:
https://www.aidaxue.com/course/1151?video_id=5093&ch=CSDNRAG2

在这里插入图片描述

Logo

为武汉地区的开发者提供学习、交流和合作的平台。社区聚集了众多技术爱好者和专业人士,涵盖了多个领域,包括人工智能、大数据、云计算、区块链等。社区定期举办技术分享、培训和活动,为开发者提供更多的学习和交流机会。

更多推荐