← 返回算法与AI总览 算法与AI · 知识点深化 · RAG 检索增强生成:从文档切分到生成全链路
知识点深化 · RAG

RAG 检索增强生成:从文档切分到生成全链路

大模型没看过你公司的内部文档,硬问就会瞎编。RAG 就是让它开卷考试:先从资料库里把相关段落检索出来,再让大模型照着资料答题。这一页讲透切分、嵌入、检索、重排、生成五步流水线,让你的问答系统有依据、可溯源、少幻觉。

① 小白第一课怎么学(4 步走,约 65 分钟)

大模型没看过你公司内部文档,硬问就会瞎编。RAG 就是"开卷考试":

1建立直觉(10 分钟)
读②③:RAG=先把资料翻出来,再让模型照着资料答题。
2记全链路(15 分钟)
读④:文档切分→嵌入→检索→重排→生成,五步流水线。
3跟例题(20 分钟)
精读⑤,看一个客服问题怎么走完整条链路。
4刷题纠错(20 分钟)
做⑦⑩,错题回⑥看高频坑。
本课小目标学完你要能:① 说清 RAG 五步各干什么;② 解释为什么要切分和重排;③ 区分向量检索和关键词检索。

② 一图看懂:RAG 全链路

RAG 检索增强 文档切分 Chunk 长文档切段 嵌入 Embedding 段落变向量 向量检索 找最相近的段 重排 Rerank 精排前几名 生成 LLM 照资料写答案 应用:知识库问答 客服/制度/文档 易错:切分不当/没重排 检索不到正确段落
读法:从左到右是一条流水线——把文档切了、变成向量、检索相近段落、重排、交给大模型照着生成。

③ 本质直觉:让模型"开卷考试"而不是"闭卷默写"

大模型的知识停在训练截止日,更不知道你公司的内部资料。直接问它"我们公司年假几天",它只能凭印象瞎编——这就是幻觉。

RAG 的思路:不重新训练模型,而是先从你的资料库里把相关段落检索出来,连同问题一起塞进 Prompt,让模型"看着资料答题"。

为什么要切分(Chunk)?文档动辄几万字,塞不进上下文,也稀释重点。把它切成一段段(比如每 300~500 字一块),检索时只取最相关的几块,精准又省钱。

为什么要嵌入(Embedding)?关键词匹配认同义词差("退款"匹配不到"退货")。把每段话变成语义向量,意思相近的向量也相近,检索按"语义"找。

用户问题 检索相关段落 资料段A:年假 10 天起… 资料段B:满 1 年再加 1 天… LLM 照资料生成答案
为什么重排(Rerank)很关键向量检索是"粗排",快但不一定把最相关的排第一。重排模型(Cross-Encoder)把"问题+候选段落"成对精算,把真正相关的顶到前面,答案质量明显上升。

④ 完整体系:五步流水线与关键参数

离线建库 vs 在线问答

阶段动作产物
离线 1 切分按语义/固定长度切段,加重叠Chunk 列表
离线 2 嵌入入库Embedding 模型把 Chunk 转向量,存入向量库可检索索引
在线 3 检索问题转向量,Top-K 相近 ChunkK 个候选
在线 4 重排Rerank 模型精排,取 Top-NN 个最相关段
在线 5 生成问题+资料段拼进 Prompt,LLM 作答带引用的答案

关键参数

经验值 Chunk 大小 ≈ 300~500 字  |  重叠 overlap ≈ 50~100 字
检索 Top-K ≈ 5~20  |  重排后 Top-N ≈ 3~5 段喂给 LLM
对比关键词检索 BM25向量语义检索
匹配依据词面相同/频率语义相近
同义词认不出能识别
短板字面匹配死板可能召回语义近但不精确的
混合检索(Hybrid)是趋势实际系统常把 BM25 和向量检索结果融合,再重排,兼顾"字面精确"和"语义泛化"。

⑤ 用法场景与典型例题

例1(为什么切分)一本 2 万字的员工手册,为什么不整篇塞给模型?
上下文有限+稀释重点。
① 整篇 2 万字可能超上下文窗口,且大部分与问题无关。
② 切成 400 字一段后,只检索与"年假"相关的 2~3 段。
③ 精准、省钱、不超限。答案:切分是为了精准检索和控制上下文。
例2(同义词检索)用户问"怎么退货",文档里写的是"退款流程",向量检索为什么能找到?
语义向量相近。
① 关键词检索只会字面匹配"退货",匹配不到"退款"。
② 嵌入模型把两句话都映射到语义空间,"退货"和"退款流程"向量夹角小。
答案:向量检索按语义找,同义词也能召回。
例3(重排作用)向量检索返回 10 段,为什么不直接全给模型?
粗排有噪声,且占上下文。
① 10 段里有相关也有凑数的,全喂会引入噪声、占 context。
② 重排模型精算相关性,只留最相关 3~5 段。
答案:重排提升精度、减少噪声和 token。
让答案可溯源生成时让模型标注引用了哪段,客服/合规场景能回查原文,这是 RAG 相对"纯聊天"的重要优势。

⑥ 高频错误诊断(4 条)

错误 1:切分把一句话拦腰截断按固定字数硬切,把"年假=10天"切成两半,检索到半截意思就残了。要用带重叠、按段落/标题切。
错误 2:检索到了但没喂进 Prompt检索完忘了把资料拼进上下文,模型还是闭卷瞎答。资料必须和问题一起给。
错误 3:只要向量检索不要重排粗排噪声大,最相关的没排前面。生产链路建议加重排。
错误 4:文档更新了不重建索引向量库存的是旧嵌入。资料一改,必须重新嵌入入库,否则答的是旧制度。

⑦ 考点真题演练(4 题)

考点分布

考法出题形式应对
RAG 解决什么问为什么要用 RAG让模型基于私有资料、减少幻觉
切分/嵌入问为何切块、向量化精准检索、语义召回
重排问 Rerank 作用精排候选,提精度

真题基础1. RAG(检索增强生成)主要解决大模型的什么问题?

真题中档2. 把长文档切成 Chunk 并加重叠(overlap)的主要目的是?

真题中档3. 用户问"退货",文档写的是"退款流程",靠什么能召回?

真题拔高4. 关于 Rerank(重排),正确的是?

⑧ 必背知识点卡

本质:RAG=开卷考试,先检索资料再让模型照着答 减少幻觉
五步:切分→嵌入→检索→重排→生成 一条流水线
切分:300~500 字,带 50~100 字重叠 别切断语义
嵌入:段落变语义向量,意思近则向量近 认同义词
检索:Top-K 粗排,再 Rerank 取 Top-N 粗+精
向量 vs 关键词:语义 vs 字面,生产常混合 Hybrid
铁律:资料更新必须重建索引;答案标注引用 可溯源

⑨ 应用输出:搭一个公司制度问答机器人

实战场景:员工问"年假能休几天"
① 离线:把《员工手册》按标题切成 400 字 Chunk,用 Embedding 模型转向量存入 Milvus。
② 在线:问题"年假几天"转向量,向量库检索 Top-10 候选段落。
③ 重排:Rerank 模型精排,留下"年假标准"那 2 段。
④ 生成:Prompt="根据下面资料回答,资料没有就说不知道:"+资料+问题。LLM 答"入职满 1 年享 10 天年假…"。
⑤ 溯源:答案后附引用段落出处,HR 可回查。
口述全链路"先把文档切了向量化建库;用户提问时转向量粗排、重排精排,把相关段落连同问题给大模型,让它照着答并标引用;资料变了就重建索引。"

⑩ 分层练习 16 题(基础 6 + 中档 5 + 拔高 5)

▍基础 6 题

基础1RAG 中文叫什么?
检索增强生成。
基础2RAG 让模型做闭卷还是开卷?
开卷,先给资料再答题。
基础3把长文档切成小段叫什么?
切分 Chunking。
基础4段落变成向量用什么模型?
Embedding 嵌入模型。
基础5对检索候选做精排的步骤叫?
重排 Rerank。
基础6RAG 主要缓解大模型什么毛病?
幻觉/编造和知识过时。

▍中档 5 题

中档7为什么切分要带 overlap 重叠?
避免在边界把一句话/一个完整意思切断,让跨段语义仍能被完整检索到。
中档8向量检索比关键词检索强在哪?
能理解语义、识别同义词,不依赖字面相同。
中档9检索到的段落如何进入生成?
作为上下文拼进 Prompt,与问题一起交给 LLM。
中档10为什么生产里常做 Hybrid 混合检索?
BM25 字面精确 + 向量语义泛化,互补后召回更全。
中档11Top-K 一般取多少?重排后喂几段?
检索 Top-K 约 5~20,重排后喂 3~5 段。

▍拔高 5 题

拔高12RAG 和微调在"注入知识"上有何不同?
RAG 不改模型、外挂知识、易更新;微调改权重、适合改风格/能力,知识仍会过时。
拔高13检索回来的段落不相关,可能原因?
切分不当、嵌入模型与领域不匹配、Top-K 太大引入噪声、缺重排。
拔高14为什么要让答案标注引用来源?
可溯源、可纠错、满足合规;用户能回查原文,不信模型一面之词。
拔高15文档更新后为什么要重建索引?
向量库存的是旧文档的嵌入,不重建就检索不到新内容。
拔高16用户问题和文档表述差异很大导致检索不到,怎么改进?
可做 Query 改写/扩展、加 HyDE 假设性答案、或混合关键词检索。

⑪ 记忆口诀 + 7 天复习计划

三句口诀 ① RAG 是开卷:先检索资料,再照资料答题。
② 五步流水线:切分、嵌入、检索、重排、生成。
③ 语义向量认同义词,资料变了要重建索引。
天任务自检
第 1 天读②③④,画五步流水线图说清每步产物
第 2 天背知识点卡 + 基础 1-6基础全对
第 3 天做中档 7-11懂切分/重排原因
第 4 天做拔高 12-16区分 RAG 与微调
第 5 天做⑦真题 4 题限时每题 2 分钟
第 6-7 天合上书口述五步和三句口诀不看资料全说对

← 返回算法与AI总览