系列导读:本文是"检索与 RAG"系列的第三篇(收尾篇)——前两篇分别认识了 RAG、深挖了检索环节的坑,本篇回归本质,用一句话看穿 RAG 的骨架。本系列阅读顺序:

  1. 《RAG检索增强生成——让大模型学会翻书作答》(认识 RAG)
  2. 《权重大却不相关——BM25检索失效场景与两阶段救赎》(深挖检索环节)
  3. 本文《RAG原理就一句话——检索、拼接、加工》(回归本质,收尾)

一、RAG 被讲复杂了

打开任何一篇 RAG 教程,你会看到:向量数据库、embedding、切分策略、重排、混合检索、RRF 融合、引用溯源、评估指标……名词堆成一座山。

但如果你剥掉所有包装,RAG 的原理真的只有一句话:

用传统软件工程的办法,把用户输入对应的知识搜索出来,拼到大模型的提示词里,让大模型帮你二次加工一下。

就这么简单。私域文件知识库问答是这样,联网搜索是这样,企业内部文档检索也是这样——框架完全同构

这篇不教你搭系统,只帮你把 RAG 看穿:它到底是什么、每一环在干什么、为什么教程写得天花乱坠。

二、拆开看:三个环节,一个都不新

RAG 的全流程可以拆成三个环节:

1
2
3
4
5
6
7
8
9
10
11
12
13
用户输入


① 检索:从资料里找出最相关的 N 段


② 拼接:把 N 段资料 + 用户问题,拼成提示词


③ 加工:LLM 基于这些资料,整理出最终答案


输出给用户

2.1 环节一:检索——全部是"老本行"

这一步干的事,信息检索(IR)领域干了几十年:

  • 私域知识库:先把资料切片存进向量库,用户输入后做向量匹配,取最像的 N 段
  • 联网搜索:把用户输入丢给谷歌/百度,取前 N 条网页内容
  • 经典 OA:TF 切词 → 倒排索引 → BM25 算权重,取权重最高的 N 篇文章

切片、索引、倒排、权重、top-N——没有一个概念是新的。搜索引擎、数据库索引,早就这么干了。

2.2 环节二:拼接——没有技术含量,但有工程讲究

把检索结果和用户问题拼成一个提示词。这一步本身零技术含量,但工程上有讲究:

  • 检索结果放前面还是问题放前面,影响生成效果
  • 每段资料要不要标注来源("根据文档3"),影响引用质量
  • 拼接长度受上下文窗口限制,塞太多反而干扰

2.3 环节三:加工——唯一的新东西

把检索结果喂给大模型,让它基于这些资料组织答案——这才是 RAG 真正的"增量"。

检索是老的,拼接是普通的,只有"让 LLM 用检索到的资料二次加工"是新的。RAG 的全部创新,就在这一下。

三、三种检索器,殊途同归

把三种典型 RAG 场景摆在一起,你会发现它们只是"换了个找资料的方式",流水线一模一样:

场景 检索器 取什么 后续
私域知识库问答 向量库(embedding 匹配) 最像的 N 段 拼进提示词 → LLM 整理
联网搜索问答 搜索引擎(Google/Baidu) 前 N 条网页 拼进提示词 → LLM 整理
经典文档检索 倒排 + BM25 权重最高 N 篇 拼进提示词 → LLM 整理

共同点:都是"检索出 top-N → 拼进提示词 → LLM 加工"。区别只在"用什么办法找资料"。

这解释了为什么 RAG 的概念这么好理解,也解释了为什么它这么难做得好——框架简单,但每个环节的工程细节都能单独写一本书

四、一句话 vs 一本书:教程为什么天花乱坠

既然原理一句话,教程为什么写那么厚?因为框架之外,全是工程。

4.1 一个必须纠正的误区:词法 vs 语义

你说"这和 TF 切词、倒排、BM25 是一个逻辑"——框架上对,但机制上要分两层:

  • BM25 / 倒排索引词法匹配。搜"购车"匹配不上写"买车"的文档——字面不同就是不同
  • 向量检索语义匹配。"购车"和"买车"的 embedding 距离很近——意思相近就能匹配上

RAG 之所以流行,核心原因之一就是语义检索补上了词法检索的盲区。这也是现代 RAG 几乎都用混合检索(BM25 + 向量 + RRF 融合)的原因——只靠词法一层,就会踩"权重大但不相关"的坑。

4.2 工程细节清单:一句话之外的 99%

环节 教程会展开讲什么
切片 切多大(512/1024 token)、按什么切(段落/章节)、要不要重叠窗口
embedding 用哪个模型、多少维、领域要不要微调
向量库 Milvus / Qdrant / FAISS,HNSW 参数怎么调
检索 纯向量还是混合检索、top-N 取几、要不要重排
拼接 提示词结构、来源标注、长度控制
加工 幻觉怎么压、引用怎么给、多轮对话怎么保持
评估 召回率、相关性、忠实度、答案质量怎么量化

框架 30 秒讲完,剩下 99% 的内容都在讲"怎么把检索做得准、把拼接做得稳、把加工做得不幻觉"。 这就是教程厚的原因——不是原理复杂,是工程浩瀚。

五、总结:看懂 RAG,从祛魅开始

最后把整篇文章压成三句话:

  1. RAG = 检索 + 拼接 + 加工,其中检索和拼接都是传统软件工程的老本行,只有"让 LLM 加工"是新的
  2. 三种典型场景(私域知识库、联网搜索、BM25 文档检索)框架完全同构,区别只在"用什么检索器找资料"
  3. 教程天花乱坠是因为工程浩瀚,不是因为原理复杂——先看穿骨架,再看工程细节,才不会迷路

工程师视角的一句话总结:RAG 不是魔法,是"传统检索 + 大模型润色"的组合拳。能一句话说清它的人,不是懂教程的人,是看懂教程的人。