811 字
约 2 分钟
11
S20-B01 · RAG 是什么、为什么需要、完整流程

适用读者:想给模型接自己文档的人。本系列第一篇。
前置:S19-B02(提示词)、S13-B01(倒排索引)。
覆盖旧文:1059(79) 587(142) 1060(152) 580(81) 738(274) 723(318) 740(173) = 1,219 点。
覆盖扩展:E-S20-001(RAG 五步)、E-S20-002(为什么不塞满提示词)。
下一篇:S20-B02 · 分块与 Embedding。


1. 一句话结论

RAG(检索增强生成)= 先"查资料",再把查到的片段放进提示词让模型作答。它解决的不是"模型不够聪明",而是"模型不知道你的私有/最新数据"。


2. 五步流程(E-S20-001)

① 加载(Load)      文档 → 纯文本(PDF/HTML/Markdown)
② 分块(Chunk)     切成可检索的小段(B02)
③ 索引(Index)     向量化 + 存储(向量库/倒排)
④ 检索(Retrieve)  问题 → topK 片段(B03)
⑤ 生成(Generate)  片段 + 问题 → 提示词 → 答案(B04)
步骤 最常见的失败
加载 PDF 表格/图片丢失(A-737)
分块 关键句被切断(B02 实测)
索引 维度/模型换了没重建
检索 召回不到(语义漂移,B04)
生成 模型不按片段回答(幻觉)

判据:"答案错了,先问"片段对不对",而不是先换模型"——80% 的 RAG 问题在检索侧。


3. 为什么不直接把文档塞进提示词(E-S20-002)

问题 说明
上下文窗口有限 几十份文档就塞满
成本 输入 token 按量计费(S19-B02)
注意力稀释 塞得越多,模型越容易漏关键信息
更新 文档改了要重塞

判据:"你的知识库能放进窗口吗?" 能且不常变 → 直接塞;不能 → RAG。


4. RAG 与"模型知识"的分工

类型 适合
模型预训练知识 通用常识、语言能力
RAG 检索 私有文档、实时数据、可追溯到出处
微调 风格/格式/特定任务(J04)

"为什么 RAG 更适合":可更新、可追溯、不用重训——改一篇文档只需重建它的索引。


5. 五个误区

误区 真相
"RAG 能消除幻觉" 不能(B04 详讲)
"换个更强的模型就行" 多数问题在检索
"向量库越大越好" 噪声也会被召回
"分块随便切也行" 切断关键句直接导致答错
"RAG 就是向量检索" 还有 BM25/混合/重排

6. 自检

  1. RAG 五步各做什么?
  2. 为什么不能把文档全塞进提示词?
  3. RAG / 微调 / 提示 的分工?
  4. 为什么说"多数问题在检索侧"?
  5. 文档更新后要重建什么?

7. 下一篇

S20-B02 · 分块与 Embedding

流程讲完,下一篇进最容易被忽略的一步:分块——附"关键句被切断"的实测。


本篇属于系列《S20 · AI 应用与工程》。旧文来源:A-1059/587/1060/580/738/723/740;扩展点 E-S20-001/002。

S20-B01 · RAG 是什么、为什么需要、完整流程
https://www.clxhxhhr.top/posts/5464/
作者
clxstart
发布于
2024-12-31
许可协议
CC BY-NC-SA 4.0
评论
0 条
还没有评论,先写一条吧。