第 1 章 · RAG 生产链路:切分、检索、重排

📖 RAG 与 Agent·考点精讲约 2113 字🎯 配套练习:AI落地·RAG 链路

考点梳理

2.1 RAG 5 步链路(“链路原理”)

① 切分(文档 → chunks)
   ↓
② Embedding(chunks → 向量)
   ↓
③ 检索(用户问题 → 向量 → 召回 top-k chunks)
   ↓
④ 重排(Reranker 精排 → top-n)
   ↓
⑤ 生成(chunks 塞进提示词 → 答案 + 引用)

记忆锚:“切分→嵌入→检索→重排→生成”(“5 步”,“离线建库 + 在线问答两段”)。

2.2 切分(“RAG 一半质量”)

切分 3 原则(“必背”):

原则内容反例
语义完整按段落/标题/问答对切(别切断句子)固定 500 字硬切(“句子被腰斩”)
长度适中256~512 token(Embedding 模型上限内)1 句一块(“丢上下文”)/ 1 章一块(“超上下文”)
留重叠相邻块重叠 10~20%零重叠(“边界信息丢”)

进阶(“L2/L3”):

  • 结构化文档(Markdown/HTML):按标题层级切(“标题进 chunk 做元数据”);
  • 表格/代码:整块保留(“切碎 = 废”);
  • 层级 RAG:先粗(章)后细(段)(“小标题定位 + 细块回答”)。

记忆锚:“语义完整、长度适中、留点重叠;表格代码整块留”。

2.3 检索(“2 路混合”)

路原理强项弱项
向量检索语义相似度(Embedding 距离)同义词/语义相近(“咋退款” ≈ “如何退款”)专有名词/编号(“型号 XJ-2024”)
BM25(关键词)词频/逆文档频率精确词/编号/人名不懂同义

混合检索(“生产标配”):

两路各召回 top-k(如各 50)→ 合并 → 去重 → 重排
(权重:向量 0.7 + BM25 0.3,按业务调)

记忆锚:“语义靠向量,名词靠 BM25,两路混合才是生产”。

2.4 重排(“最后一道关”)

为什么需要:向量召回是"粗排"(快但不精)——Reranker(交叉编码器)把"问题 + chunk"一起编码打分,精度高但慢,所以只对 top-k(50)精排到 top-n(3~5)。

参数作用调法
top-k(召回)召回多少30~100(大一点,宁多勿漏)
top-n(精排后)给模型多少3~8(塞太多 = 超上下文 + 噪声)
阈值分数低于多少丢弃答不出时宁可不塞(“低分 chunk 是幻觉源”)

记忆锚:“召回宁多勿漏,精排宁缺毋滥,低分果断丢”。

2.5 生成与引用(“可信层”)

  • 提示词约束:“只根据给定资料回答;资料不足就明说,不要编”;
  • 引用来源:答案标注 chunk 来源(“第几篇第几段”)——“用户能查证 = 可信”;
  • 兜底:“检索为空/低分 → 明说没找到 + 给人工入口”(“别硬答”)。

🧠 记忆工具箱

口诀速记

  • 链路:“切分嵌入检索重排生成”(“5 步”);
  • 切分:“语义完整长度适中留重叠,表格代码整块留”;
  • 检索:“语义靠向量,名词靠 BM25,混合才是生产”;
  • 重排:“召回宁多勿漏,精排宁缺毋滥,低分果断丢”;
  • 生成:“只按资料答,答不出明说,引用要标清”。

场景锚点

  • RAG 想象"“开卷考试”":你不是闭卷的考生(不能瞎编),你是"开卷但材料有限"的考生(“翻书答题”)——“切分 = 把书撕成小抄(撕坏了 = 废);检索 = 按关键词翻到相关页(只翻目录不够,还得翻正文);重排 = 把最相关的 3 页放桌上(别把整本摊开);生成 = 只按这 3 页答题(页上没有的明说’书上没有’,别编)"——“RAG 的质量 = 小抄撕得好不好 + 翻得准不准”。

⚠️ 易错提醒

  • 切分"固定长度硬切” = RAG 头号杀手:“句子被腰斩 = 语义断裂 = 召回不准”——“按语义/结构切 + 留重叠”;
  • 只向量检索 = 生产不合格:“型号/编号/人名查不到”(“专有名词靠 BM25”)——“混合检索是标配”;
  • top-n 塞太多 = 自找幻觉:“塞 20 个 chunk = 噪声淹没信号 + 超上下文”(“3~8 个够”);
  • 低分 chunk 不丢 = 幻觉源:“检索不到却硬塞 = 模型基于错误资料编”——“设阈值,低分丢弃 + 明说没找到”。