全部版块 我的主页
论坛 新商科论坛 四区(原工商管理论坛) 商学院 创新与战略管理
42 0
2025-11-14

检索增强生成(Retrieval Augmented Generation, RAG)是提升大型语言模型(LLM)应用效果的核心技术。根据您的要求,本文将RAG的深度解析分为四个部分:知识索引构建流程、运行时核心流程、向量数据库原理与相似度计算以及RAG效果评估与持续优化。

一、 RAG的基石:知识索引构建流程解析

RAG系统的效能高度依赖于其知识库的质量。索引构建(Indexing)是RAG的基础,它将原始数据转化为可供高效检索的向量形式。以下流程图清晰地展示了这一过程:

流程阶段 关键步骤 对应碎片信息
1. 数据源与接入 文档、网页、表格 -> 数据 -> 提取文本 -> 统一标准 “数据接入与格式的统一”
2. 数据清洗 去除重复内容、过滤噪声符号 “去除重复内容”、“过滤噪声符号”
3. 数据分块 切分、控制长度 “RAG中的分块”、“常见的分块策略”
4. 元数据注解 元数据注解 “元数据标注”
5. 向量化与存储 向量化 (Embedding 嵌入) -> 向量存储 “RAG中的 Embedding 嵌入”、“向量数据库原理”

1. 数据接入与标准化

RAG的第一步是处理多源异构数据,包括PDF、Word、网页、表格等。

  • 提取文本:利用工具(如PyPDF2、BeautifulSoup)从各种格式中提取纯文本内容。
  • 统一标准:对提取的文本进行格式标准化,例如统一编码(UTF-8)、去除乱码、统一大小写,确保数据一致性。

2. 数据清洗与预处理

数据清洗是保证检索质量的关键环节。

  • 去除重复内容:过滤文档中的页眉页脚、重复描述等,避免冗余信息。
  • 过滤噪声符号:去除标点、特殊字符、Markdown格式等噪声,保留核心文本。
  • 敏感信息处理:利用正则或库删除隐私数据(手机号、邮箱),避免泄露。

3. 文本分块(Chunking)

由于大语言模型的上下文窗口限制,长文本必须被拆分成若干个“知识块”。

  • 切分与长度控制:分块策略包括自然结构分块(按标题、段落)、固定大小分块、滑动窗口分块和递归分块等。目标是让每个块包含相对完整的语义单元,并控制长度(如300-500字)以适配LLM的上下文窗口。

4. 元数据注解(Metadata Annotation)

为每个知识块附加元数据,如文档标题、URL、作者、上传时间、章节位置等。

  • 作用:元数据可作为检索时的过滤条件,是实现自查询(Self-Query)等高级检索的基础。

5. 向量化与存储

这是索引构建的最后一步,将处理好的文本转化为数值形式。

  • 向量化(Embedding):使用嵌入模型(如BERT、BGE)将文本内容映射为高维空间中的密集向量。
  • 向量存储:将这些向量存入向量数据库(如Milvus、Faiss),利用高效的索引结构和近似最近邻(ANN)算法,为后续的快速检索做好准备。

二、 RAG的运行时核心流程:从查询到生成

索引构建完成后,RAG系统进入运行时阶段,即检索增强生成(Retrieval Augmented Generation)的循环。以下流程图展示了用户查询到最终答案的完整路径:

流程阶段 关键步骤 对应碎片信息
1. 查询预处理 用户提示词 -> 查询扩展 / 自查询 -> 拆分子问题 “查询扩展”、“自查询”
2. 初步检索 向量检索(语义匹配)/ 关键词检索(精确匹配) “混合检索”
3. 结果优化 结果融合与重排序 -> Rerank使用 “混合检索”、“Rerank”
4. 提示构建 提示压缩 -> 传入大模型 “提示压缩”

1. 查询预处理与增强

在进行检索之前,系统会对用户原始查询进行增强和解析,以提高检索的准确性。

  • 查询扩展(Query Expansion):通过添加同义词、相关术语或隐含意图,让查询更精准、覆盖范围更广,解决词汇匹配问题。
  • 自查询(Self-Query):自动解析用户查询中的隐含条件(如时间、作者等元数据),生成结构化查询语句,解决元数据过滤问题。
  • 拆分子问题:对于复杂查询,将其分解为更小的、可独立检索的子问题。

2. 初步检索(混合检索)

系统并行或顺序执行多种检索方式,以确保检索结果的全面性。

  • 向量检索:基于语义相似度进行匹配,擅长理解文本含义。
  • 关键词检索:基于倒排索引、BM25等算法,擅长精确匹配专有名词。
  • 结果融合与重排序:将向量检索和关键词检索的结果通过权重融合或RRF等模型合并,形成一个初步的候选文档列表。

3. 结果优化(Rerank)

初步检索(粗排)的结果可能包含不相关文档。

  • Rerank(重排序):利用更精确的Rerank模型对初步检索返回的候选文档列表进行再次排序(精排),选出匹配度最高的Top-K文档,极大地提高了最终送入LLM的上下文质量。

4. 提示构建与生成

提示压缩(Prompt Compression):对重排序后的Top-K文档进行简化处理,提取核心信息,滤除无关内容,确保最终的Prompt既完整保留关键信息,又符合大语言模型的上下文窗口限制,同时减少计算资源消耗。

传入大模型:将用户查询和经过优化的上下文(Prompt)输入给大型语言模型,由LLM生成最终答案。

向量数据库原理与相似度计算

RAG系统的性能高度依赖于高效的向量检索。以下流程图展示了向量数据库中相似度计算的核心原理:

向量数据库的核心原理是通过将高维数据转换为多维向量,并基于相似性测量,利用高效的索引结构和近似最近邻(ANN)算法,快速检索与目标最相似的向量结果。

相似度计算方法:

  • 余弦相似度:衡量两个向量的方向一致性,不关注向量长度,常用于文本、推荐系统(重视语义方向)。
  • 欧几里得距离(欧氏距离):计算两个向量在空间中的直线距离,常用于图像、视频检索(关注空间差异)。
  • 曼哈顿距离:计算两个向量在各维度上的差值绝对值之和,适用于网格数据、稀疏数据。

RAG效果评估与持续优化

RAG是一个持续改进的过程,需要从检索质量、生成质量和系统性能三个角度进行评估。

1. 检索质量评估

关注系统从知识库中找到相关信息的能力。

  • 客观指标:包括Precision@k(前k个结果的相关性比例)、MRR(首个相关结果的排名倒数平均值)、NDCG(区分不同相关度的重要性)和Recall@k(覆盖所有相关文档的比例)。
  • 主观评测:通过人工审核检索结果是否满足业务需求。

2. 生成质量评估

关注大语言模型基于检索结果生成答案的质量。

  • CR(上下文相关性):答案是否基于检索内容(忠实度)。
  • AR(回答相关性):回答是否解决用户问题(相关性)。
  • F(真实性):评估生成的答案中是否存在幻觉。
  • 评测方法:可采用大模型评分或人工评分。

3. 系统性能评估

关注非功能性需求,确保系统在生产环境中的可用性。

  • 延迟:响应时间。
  • 吞吐量:单位时间内处理的请求量。
  • 错误率:生成错误答案的比例。

在实际应用中,建议采取分层测试(先测检索,再测生成,最后压测性能)和持续监控(实时跟踪用户满意度、业务指标)的策略,以实现RAG系统的持续优化。

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群