← 返回列表
RAG 是什么?用「开卷考试」理解检索增强生成
不开脑洞背全书,只带小抄进考场:用日常比喻把 RAG 的流程、用处和局限说清楚。
先把三个字母拆开
RAG = Retrieval(检索)+ Augmented(增强)+ Generation(生成)。
可以理解为:在让大模型「写作文」之前,先从你自己的资料库里翻出相关片段,一起塞给模型当参考,再让它基于这些材料组织答案。
用一个比喻:开卷考试 vs 闭卷考试
- 纯大模型(闭卷):脑子里只有训练时见过的东西,容易「记不清」「记串了」,还可能为了把话说圆而编造(幻觉)。
- RAG(开卷):允许模型在答题前翻指定教材——也就是你的文档、知识库、说明书。答什么题,先找哪几页最相关,再照着写。
所以 RAG 的核心不是把模型变大,而是把「可靠的外部知识」接到生成环节前面。
流程上发生了什么(四步,可按顺序记)
1. 准备资料(离线,可反复做)
把你的长文档切成小块(chunk),每一块变成一篇「小纸条」。
同时用嵌入模型把每块文字变成向量(一串数字),表示「语义在哪块空间里」。这些都存进向量数据库或索引里。
通俗说:给每段话办一张「语义身份证」,相似的段落在数学上离得近。
2. 用户提问(在线)
用户问一句话,用同一个嵌入模型把问题也变成向量。
3. 检索(Retrieval)
在向量库里做相似度搜索:哪些问题向量和哪些文档块向量最像,就取出** Top-K 条**最相关的片段。
这一步决定:考场上能翻开的那几页到底是哪几页。
4. 增强生成(Augmented Generation)
把「用户问题 + 检索到的片段」一起写进 Prompt,让大模型只依据或优先依据这些片段来回答。
模型仍然负责:组织语言、归纳、分点、翻译风格;
事实依据尽量来自你刚检索到的内容,而不是凭空发挥。
你常会听到的几个词,一句人话版
| 概念 | 人话 |
|---|---|
| Embedding / 向量 | 把话压成一串数,意思相近的话,数也长得像。 |
| 向量库 | 存「文档块 ↔ 向量」的地方,方便按相似度快速搜。 |
| Chunk / 分块 | 太长一次塞不下、也不容易对准问题,切成段更好检索。 |
| Top-K | 搜最相近的 K 段,K 太大噪声多,太小可能漏信息。 |
| 重排序(Rerank) | 向量检索先捞一批候选,再用更精细的模型排一遍序,提高命中率。 |
为什么业界爱用 RAG
- 知识新、可更新:换文档、加政策,主要是更新索引,不必整模重训。
- 可追溯:答案能注明来自哪一段原文,方便核对与合规。
- 领域可控:企业内部资料、客服话术、产品手册,不一定要「塞进模型权重里」。
- 成本相对友好:常比「用超大上下文硬塞全书」更省显存与费用。
局限也要心里有数
- 检索错了,后面全错:问法偏、分块切不好、索引残缺,都会「翻错书」。
- 不是万能事实机:提示工程没约束好,模型仍可能在片段之外脑补。
- 复杂推理链:多跳推理、要强逻辑串联时,往往还要配合工具调用、Agent、专用推理结构,单 RAG 不一定够。
- 延迟与工程:嵌入、检索、重排、拼装 Prompt,每一步都是线上系统的一部分。
小结
RAG = 先在自己的知识库里「翻最相关的几页」,再让大模型「按材料答题」。
它解决的是:把模型生成能力,和可更新、可归属的外部知识绑在一起,从而降低胡编、提高时效与可控性。
搞清「检索质量」和「Prompt 约束」这两头,你就抓住了 RAG 的灵魂。