请完整讲一遍 RAG 系统从拿到原始文档到生成最终答案的全流程:一共分几步?每一步分别在做什么、起什么作用?

RAG基础

答案要点 全流程五大步:文档解析 → 分块 → 向量化 → 检索 → 生成 前三步是离线建库:把原始文档加工成可检索的知识库,提前做好 后两步是在线问答:用户提问时实时执行,检索资料再生成答案 分块是最容易被忽视却影响最大的一步:块太大噪声多,块太小语义被切断 排查 RAG 效果差的问题,就按这条链路逐步定位是哪一环丢了分 核心概念 RAG 流程是指把原始文档加工成可检索的知识库,并在用户提问时检索相关内容、交给大模型生成答案的完整链路,通常分为解析、分块、向量化、检索、生成五步。前三步离线完成,后两步在线执行。 五步详解 文档解析:把 PDF、Word、网页等各种格式的原始文档,转换成干净的纯文本。作用是“去壳取肉”——去掉页眉页脚、乱码、排版噪声,只留下有用内容。解析得脏,后面全部遭殃。 分块(Chunking):把长文本切成一段段大小合适的“知识块”。因为检索是按块进行的,块的边界决定了模型将来“看到”的资料长什么样。常按段落、标题层级切,并让相邻块有少量重叠,避免语义被拦腰切断。 向量化(Embedding):用嵌入模型把每个文本块变成一串数字(向量)。它的神奇之处在于:意思相近的文本,向量在空间中的位置也相近。所有向量存入向量数据库,相当于给知识库建好了“按语义查找”的索引。 检索:用户提问时,把问题也用同一个模型向量化,然后在向量数据库里找出与问题最相似的 Top-K 个知识块。这一步决定了模型“开卷考试”时翻到的是不是正确的那几页书。 生成:把用户问题和检索到的知识块,按提示词模板拼在一起交给大模型,要求它“根据给定资料回答”,输出的答案就是用户最终看到的结果。 一句口诀帮助记忆:解析洗数据,分块定粒度,向量建索引,检索找资料,生成出答案。前三步做得好不好,直接决定后两步的上限。 入门之后,可以往检索优化方向深入:重排(Rerank)、混合检索(关键词 + 向量)、查询改写,以及不同分块策略的对比实验。

口语版讲法(约2分钟)

  • 一句话总起:五步链路,解析、分块、向量化、检索、生成
  • 前三步离线建库,像提前整理好一柜子资料卡片
  • 后两步在线问答:拿问题找卡片,看着卡片写答案
  • 分块是新手最容易翻车的一步
  • 埋钉子:效果差就沿链路逐环排查,检索优化空间最大

RAG 的完整链路我会用一句话总起:从文档到答案一共五步——解析、分块、向量化、检索、生成。前三步是离线建库,后两步是在线问答。 先说离线的三步,可以想象成提前整理一柜子资料卡片。第一步文档解析,就是把 PDF、Word、网页这些五花八门的格式统一转成干净的纯文本,去掉页眉页脚和乱码。这一步看着不起眼,但解析得脏,后面全部遭殃。第二步分块,就是把长文档切成一段一段大小合适的知识块,好比把一本书拆成一张张卡片。为什么要切?因为后面检索是按块来的,块太大,一张卡片上废话太多;块太小,一句话被拦腰切断,意思就不完整了。一般按段落或标题来切,相邻块之间还留一点重叠。第三步向量化,用Embedding模型把每个块变成一串数字,也就是向量。它的关键性质是:意思越接近的文本,向量位置越靠近。这些向量存进向量数据库,相当于给整柜卡片建好了按语义查找的索引。 再说在线的两步。用户提问时,第四步检索:把问题也变成向量,去库里找出最相似的前几个知识块,相当于从柜子里抽出最相关的几张卡片。第五步生成:把问题和这几张卡片拼成提示词交给大模型,要求它只根据给定资料回答,最后输出答案,通常还附上来源。 [钉子] 这条链路的价值还在于排查问题:线上 RAG 答错了,我就沿着五步倒着查——是生成没看懂资料,还是检索没找对块,还是分块把内容切碎了。实践里优化空间最大的通常是检索这一环,比如加重排、上混合检索,这块我也可以展开讲。

关键一句:五步链路——解析、分块、向量化、检索、生成;前三步离线建库,后两步在线问答。

面试官可能的追问

  1. 【场景切入】给你 500 份公司产品手册 PDF,要做一个问答机器人。从拿到这堆 PDF 到用户能问出答案,你会按什么顺序做?哪一步你会花最多时间?
  2. 【追问边界】如果上线后用户反馈“答案经常驴唇不对马嘴”,你怎么判断问题出在五步中的哪一步?每一步分别用什么办法验证它没出错?

同模块相关题目