乐于分享
好东西不私藏

RAG技术全揭秘:四阶段带你从文档到答案生成

RAG技术全揭秘:四阶段带你从文档到答案生成

大模型很强,能知道牛顿,但是他不知道你是谁,也不知道一些非公开的信息。

带着众人的期待,RAG应运而生。它有效弥补了大模型仅凭记忆作答的短板,缓解了在面对未知问题时容易“编造”内容、产生“幻觉”的困境。

这也是目前包括智能体应用也都在使用的技术。

01

RAG是什么?

一句话定义:

检索增强生成(Retrieval-Augmented Generation,RAG)是一种结合检索和生成技术的模型。它通过引用外部知识库的信息来生成答案或内容,具有较强的可解释性和定制能力,适用于问答系统、文档生成、智能助手等多个自然语言处理任务中。

内容来自百度百科词条

RAG = 检索(Retrieval)+ 增强(Augmented)+ 生成(Generation)

通俗点说:让大模型在回答用户问题之前,先去你的知识库里“查资料”,然后根据查到的“真凭实据”来组织答案,给大模型的提示词示例:

你是一个专业的问答机器人。请仅基于以下提供的上下文片段来回答问题。如果上下文无法回答问题,请回答“无法从现有资料中找到答案”。### 上下文开始 ###{这里放置检索到的文本块}### 上下文结束 ###用户的问题是:{这里放置用户输入}请生成专业、准确、且基于上下文的回答:

02

RAG完整流程

RAG的完整流程可以分成4个阶段:文档准备阶段、索引阶段、检索阶段、生成阶段

1.文档准备阶段

这是RAG的起点,也可看成文档预处理阶段,这也是最容易被忽视却最重要的一步,文档质量直接决定检索效果。

流程拆解:

文档收集 → 格式转换 → 清洗去噪 → 元数据提取

每一步在做什么:

步骤

理解

文档收集

把各个地方的文档文件整理在一起

格式转换

把PDF、Word、Excel、图片统一转成可处理的文本

清洗去噪

去掉页眉页脚、广告、无关标记

元数据提取

给文档打标签:文档属性、作者、部门、日期、版本、权限

2.索引阶段

这一阶段主要是要构建可检索的知识库。

流程拆解:

清洗后的文档 → 文本分割 → 向量化 → 存入向量数据库

往往在实际中需要进行召回率测试:针对一批标准问题,看哪种分割方式能让检索器找到包含答案的正确块。

文本分割的有下面几类常用的方法,同时也要注意RAG实践中往往不是只用一种,而是多种组合:

方法论

解释

固定大小

按固定的字符数或Token数硬性切割,常配合重叠窗口使用(如块大小500,重叠50),防止关键信息被切断

递归分割

按优先级顺序尝试不同的分隔符(如:先按段落\n\n,再按句子\n,最后按空格或字符)进行分割,直到块大小符合要求

父子分割

检索时用小的子块匹配,提交上下文时用大的父块,以期兼顾精确度与上下文丰富度

语义分割

利用嵌入模型计算句子间的语义相似度,将相似度高的连续句子聚合为一个块,在语义转折处切分

文档结构分割

利用文档的固有结构(如Markdown的标题层级#、HTML标签、PDF的章节)作为分割边界

模型智能分割

直接提示大语言模型根据语义完整性来生成分割块,或让Agent动态决定如何分块以完成特定任务

向量化是把把文本片段转换成数学向量的过程,比如,“苹果”这个词,被向量化后,可能会变成一个像这样的数学向量:

“苹果”→ [0.8, 0.1, 0.9, 0.3, …]

常用的向量(Embedding)模型:Qwen3-Embedding、bge-m3

常用的向量数据库:Milvus、Qdrant、Weaviate、Elasticsearch、FAISS、Chroma

3.检索阶段

检索阶段的核心目标是在召回率(Recall) 和精准度(Precision) 之间取得平衡。召回率不足可能导致漏掉正确答案,而精准度不够则可能返回错误答案。

从用户提出问题到获得最相关的知识片段,通常经历以下关键步骤:

每一步在做什么:

步骤

理解

查询处理+检索路由决策

对用户查询进行预处理,并决定采用哪种检索策略:纯向量检索、纯关键词检索还是混合检索

纯向量检索

将用户问题向量化,用同一个Embedding模型转换成向量,在向量数据库中计算与所有文档片段的相似度(如余弦相似度)

纯关键词检索

使用BM25等算法进行关键词匹配检索,适合精确词匹配场景

混合检索

向量检索 + 关键词检索双路并行,结果合并去重,兼顾语义理解与词法匹配

结果融合与重排序(Rerank)

用交叉编码器对初筛结果重新排序,把最相关的往前排

重排序(Rerank)原理图:

来自Dify官网,详见:https://docs.dify.ai

4.生成(Generation)阶段

流程拆解:

(用户问题 + 检索到的片段)→ 组装Prompt → 调用大模型 → 生成答案 → 后处理

每一步在做什么:

步骤

理解

组装Prompt

把问题和检索到的资料按提示词模板组织成提示词

调用大模型

把Prompt发给LLM

生成答案

模型基于资料生成回答

后处理

检查格式、加引用标注、过滤敏感词

最后,了解下目前RAG的应用场景:

场景

举例

企业服务

企业知识管理、员工自助服务、新员工培训

公共/政务

政务咨询与服务、政策解读与推送

金融

智能投研分析、合规风控咨询、智能客服、呼叫中心质检

医疗

临床决策支持、辅助疾病诊断、药物管理与研究

法律

合同审查、法律咨询、案例检索与法规匹配

其他

智能车载助手、教育学习、体育训练分析等

RAG不是什么黑科技,它只是一种设计思想:让大模型在回答前先查资料。

参考:

百度百科:https://baike.baidu.com/item/检索增强生成?fromModule=lemma_search-box

Dify:https://docs.dify.ai

本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » RAG技术全揭秘:四阶段带你从文档到答案生成

评论 抢沙发

8 + 8 =
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
×
订阅图标按钮