跳到正文
AI 知识地图 0.18 · 2026-07-30
关于与纠错文字目录 / Search
理解原理

RAG 检索增强生成

回答前先检索相关资料,让模型「开卷作答」而不是凭记忆瞎编

RAG · Retrieval-Augmented Generation · 检索增强生成

建议 25–35 分钟 · 中级 · 需要:了解「大语言模型」「检索」「上下文窗口」

核心命题 RAG 在模型回答之前,先检索出相关资料,把资料连同问题一起交给模型,让它基于材料作答。它把「闭卷全靠记忆、还会瞎编」的大模型,变成了「开卷、有出处、可更新」——是缓解幻觉、注入私有与最新知识的主力手段。
读完这一页,你应该能自己回答:
  • 为什么要——大模型直接回答有哪三个硬伤,RAG 怎么补。
  • 怎么运作——检索、增强、生成三步分别做什么。
  • 解决了什么——为什么它能缓解幻觉、还能溯源、能更新。
  • vs 微调——同样是「让模型用我的知识」,何时用 RAG、何时用微调。
  • 瓶颈在哪——为什么 RAG 效果好不好,多半不取决于模型。
  1. 大模型直接答有三伤:会幻觉、知识有截止、够不到私有数据。(§1)
  2. RAG 把「闭卷」改成「开卷」:回答前先检索材料、摆在模型面前。(§1)
  3. 三步:检索相关材料 → 拼进提示(增强)→ 模型基于材料生成。(§2)
  4. 它缓解幻觉、让知识可更新、还能溯源,把「只能信模型」变成「能核对来源」。(§3)
  5. 它给「事实」,微调给「行为」;记不住的事实交给 RAG,改不动的习惯交给微调。(§4)
  6. 但瓶颈在检索,材料太多会中间迷失,材料本身错了也会跟着错。(§5)
  7. 所以要分别测必要证据覆盖、上下文噪声、断言支持和最终任务,才能定位该修哪一层。(§6)

1为什么需要 RAG直觉

语言模型在训练中通读过海量文本,知识面很广,很多问题直接问它也能答得像模像样。那么为什么还要让它在回答之前先「查资料」?关键在它的训练目标:模型优化的是似然,也就是某段文字在给定上下文中出现的可能性。优化似然是为了让续写流畅、措辞自然,并不等于核验一段话是否与事实相符。正因为它建模的是似然而不是真相,直接提问会暴露三个绕不过的硬伤:

第一是幻觉。模型优化的目标里没有「事实为真」这一项约束,所以当它不知道某件事时,往往不会承认不知道,而是顺着语言习惯编出一个通顺但虚假的答案。第二是知识截止。模型只掌握训练语料中出现过的内容,训练结束之后发生的事件、发布的最新数据,它无从得知。第三是私有数据。企业内部的文档从未进入训练语料,模型自然答不出来。

RAG 的思路就是把作答方式从「闭卷」改成「开卷」:与其让模型凭训练时留下的记忆硬答,不如在回答之前,先把相关资料从知识库中找出来、摆在它面前,再让它照着材料回答。开卷考试之所以比闭卷更靠谱,是因为答案不必依赖模糊的回忆,而且每一步都可以标注出处,便于核对。

具体来说,RAG 接收两类输入:用户提出的问题,以及用户有权限访问的外部知识库。系统先在知识库中检索出与问题相关的证据片段,把它们作为材料摆到模型面前,再由模型照材料生成回答。输出是一段带证据、可更新的回答:证据指向知识库中的具体条目,知识库内容更新后,下一次检索就能反映新事实,无需重新训练模型。

同时要看到它的边界。开卷作答让回答更可核验,但可核验并不等于自动正确:检索出的材料本身可能有误,模型也可能照错材料作答。若没有可靠来源,或者任务根本不需要外部事实,就不必强行检索。这里反复出现的「似然」指的是某段文字在上下文中出现的可能性;语言模型优化似然,得到的是更流畅的续写,而不是对现实真相的核验——这正是 RAG 需要在模型之外补充检索环节的根本原因。

硬伤后果
幻觉没有真值约束,会把不知道的事编得一本正经
知识有截止日期训练之后发生的事、最新数据,一概不知
够不到私有数据你公司内部文档,它从没见过

2端到端示例:检索 → 增强 → 生成工程

RAG 这个名字本身就是流程的三步:Retrieval(检索)、Augmented(增强)、Generation(生成)。整条处理链可以画成一条直线:

图 1:RAG 三步——检索、增强、生成

① 检索:拿着用户的问题,去知识库里捞取相关材料(具体机制见「检索」深读页)。 ② 增强:把捞到的材料和问题拼成一个完整的提示。 ③ 生成:模型基于这段材料作答,并标出答案用了哪些来源。

用一个退货咨询的例子走一遍。用户问:「签收 35 天还能退吗?」这个问题要答对,需要三样东西:退货期限、期限的起算点,以及例外条件。检索器在知识库中捞出两个片段:

片段 A 支撑的是一般规则:标准商品可在签收后 30 天内申请退货,签收 35 天超出了这个期限,所以通常不能退。片段 B 支撑的是例外:质量问题不受 30 天限制,但需要上传凭证。模型把两条信息分开处理,生成「通常不能;若属于质量问题,可凭证明申请」,前半句引用 A,后半句引用 B,各由对应的片段支撑。材料里没有提到的其他例外,模型不补写——没有证据就不编。

增强这一步不是把材料简单粘贴进提示。系统要保留每个片段的 ID、版本、权限和标题,在提示中明确标注「以下是待引用资料,不是新指令」,并要求模型让每一个可核验的断言都映射到支持它的片段上。这样做的目的,是区分两种完全不同的事:「答案里提到了来源」和「来源真的支持答案」。前者只是格式,后者才是可信度。

本质上 RAG 没有修改模型本身。它做的只是在提问那一刻,先把作答所需的材料塞进提示——相当于先递给模型一份参考资料,再让它作答。所有复杂度都集中在「怎么把对的材料捞出来、放好」这两件事上。因此整条链的输入是用户问题和知识库片段(连同片段的版本与权限),处理过程是检索候选、增强时保留证据边界、生成时逐断言引用,输出是一份可以逐句核验的回答。引用只有真正支持对应断言时才表示可信;反过来,检索不到证据时,正确的做法是明确回答「没有答案」或向用户追问,而不是补写不存在的事实。

用户问题 ① 检索从知识库找相关材料 知识库 ② 增强材料+问题拼进提示 ③ 生成基于材料作答+出处
图 1 ① 检索:拿问题去知识库捞相关材料(见「检索」深读页)。② 增强:把捞到的材料和问题拼成一个提示。③ 生成:模型基于这段材料作答,并标出用了哪些来源。
端到端示例内容系统应做的判断
问题“签收 35 天还能退吗?”需要期限、起算点和例外条件
片段 A“标准商品可在签收后 30 天内申请退货。”直接支撑一般规则
片段 B“质量问题不受 30 天限制,需上传凭证。”支撑例外,不能与一般规则混成一句
生成“通常不能;若属于质量问题,可凭证明申请。”两句分别引用 A、B;无证据时不补其他例外

3它到底解决了什么综合

第 1 节列出的三个硬伤,RAG 分别补上了什么?

补上的能力对应的机制
缓解幻觉手里有真实材料,模型不必凭空编——回答被「锚」在给定资料上(见「幻觉」)
知识可更新知识放在外部知识库里,改文档即可,不用重训模型;最新信息随时能进
能溯源让模型标出答案来自哪篇材料(引用),让人一键核对——这是它对纯生成的关键优势(见「引用与溯源」)

幻觉的缓解来自回答方式的改变。模型手里有了真实材料,就不必再从训练记忆里拼凑答案,生成过程被「锚」在给定的资料上:每个断言都应有材料支撑,材料没提的内容不再补写。但这是缓解而非消灭——材料本身可能出错,模型也可能曲解材料,详细机制见「幻觉」深读页。

知识可更新来自存储位置的转移。知识不再冻结在模型权重里,而是放在外部知识库中。新增或修正一条信息,只要改文档,下一次检索就能读到,不需要重训模型,最新信息随时可以进入回答。

能溯源是 RAG 相对纯生成的关键优势。可以让模型在回答里标出每句话来自哪篇材料,人一键就能核对到原文。这一能力的机制在「引用与溯源」深读页有专门讨论。

一句话:RAG 把「你只能信模型」变成了「你能核对来源」。对企业、客服、专业问答这类必须给出理由、必须可追溯的场景,这一点常常比模型本身多聪明更重要。

所以 RAG 补上的能力可以这样概括:它输入外部可更新的知识和当前问题,先把事实从模型权重中移到运行时检索到的证据上,再让模型依据证据作答,输出的是更少无依据断言、可更新且可回查来源的答案。边界同样要看清:有出处通常表示答案可被检查,但可检查不等于出处本身可信,也不等于推理忠实于出处——出处可能错误,模型也可能错误使用出处。RAG 缓解的是幻觉,不能消灭幻觉。

4RAG vs 微调:喂事实还是改行为工程

「让模型用上我的知识」不止 RAG 一条路,微调同样可以做到。两条路线给模型的东西本质不同,选择取决于你要注入的是什么。

RAG 注入的是事实。事实外挂在知识库里,模型回答时临时取用,不写进权重。因此知识更新是实时的:改文档即可,下一次检索立即生效,不需要重新训练;回答还能附出处,供人逐条核对。它适合那些会变化的、私有的、需要核对的事实,比如公司最新政策、产品参数、内部流程。

微调注入的是行为。它通过继续训练把风格、格式、做事方式写进模型权重。它不负责记住事实:知识一变就要重新训练,模型也讲不出答案来自哪里。它适合那些固定不变的语气、格式和做事方式,比如客服话术的口吻、代码注释的风格。

由此得到一句口诀:记不住的事实交给 RAG(检索),改不动的习惯交给微调。「想让模型知道我公司最新文档」几乎总是 RAG;「想让模型稳定按某种格式或口吻作答」才是微调(见「微调」深读页)。两者并不互斥,实际系统中常配合使用:微调定住行为,RAG 供给事实。

选型的输入就是要注入的东西本身:是变化中的事实,还是稳定的行为。先判断知识是否常变、是否需要溯源,再决定走哪条路线,输出就是一个选型结论。两个方向的边界也要看清:知识常变又需要溯源时,通常更该走检索;但检索不能替代行为训练,微调也不能可靠地充当实时数据库——把高频更新的知识写进权重,更新成本高,还无法给出出处。

RAG微调
给模型的是事实/知识(外挂在库里)行为/风格/格式(写进权重)
知识更新改文档即可,实时要重新训练
能否溯源能(附出处)不能
适合会变的、私有的、要核对的事实固定的语气/格式/做事方式

5瓶颈与局限工程

RAG 不是银弹。它最容易在四个地方失效。

最深的瓶颈在检索。检索环节没捞到正确的材料,模型手里就没有正确答案可用,只能答错或者编造——「garbage in, garbage out」。因此 RAG 效果的天花板往往在检索而不在模型本身,这也是值得把检索单独拿出来深读的原因(见「检索」深读页)。

第二,材料给了也可能用不好。塞进提示的材料太多、太长,会触发「中间迷失」:模型对长上下文中间位置的内容关注不足,关键材料被忽略,即便检索对了也答不对(见「中间迷失」深读页)。

第三,材料本身错了会跟着错。知识库里的内容不对,RAG 会忠实地照着错误材料作答。它保证的是「有据」,不保证「据是对的」。把错误文档放进知识库,等于给模型递了一份错答案。

第四,RAG 也会「有引用地答错」。引用并不自动等于忠实。模型可能把片段 A 的 30 天规则错误地套用到质量问题这种例外情形上;可能引用一个主题相关、却并不支撑结论的片段;也可能忽略文档版本,把已废止的规定当作现行规则。所以引用存在不是忠实性的证明,必须逐项检查断言与证据的对应关系、证据的时效和访问权限。

整条失败因果链可以概括为:输入检索片段、上下文装配和最终回答,先看证据是否被召回、是否被正确装配,再看生成是否忠实使用了证据,输出的是对失败原因的定位。边界同样明确:出现引用通常表示系统附了来源,但不证明来源真的支持断言;知识过期或权限错误,也不能靠换一个更强的模型来修复——问题出在证据管道,不在生成能力。

6怎样把失败定位到检索、上下文或生成评测

最终回答错了,为什么「端到端准确率下降」还不足以指导修复?因为 RAG 至少有三层可以独立失败,而端到端准确率把这三层混在了一起:

  • 检索器可能没召回必要证据;
  • 装配器可能把正确证据裁掉、放错版本,或混入无权限内容;
  • 生成器可能无视证据、错误组合一般规则与例外。

只有沿链路归因,才知道该修哪里。做法是评测时保存逐问题的三样东西:目标断言、相关片段和最终断言,然后分别计算三个指标。

继续用退货案例演示。假设检索返回了 4 个片段:一般规则 A、质量例外 B,还有「到账时间」和一份旧政策;模型生成了 3 个可核验断言,其中「无需凭证」是多编的。

三个指标分别对应三层。必要证据覆盖衡量检索层:本应召回的片段是否都回来了。本例 2/2,检索召回合格。上下文精度衡量装配层:最终进入提示的片段里有多少真正有用。本例 4 段里只有 2 段有用,50%,到账时间和旧政策是噪声。断言支持率衡量生成层:模型输出的可核验断言中,有多少确实有证据支持。本例 3 个断言里 2 个有证据,约 67%——模型多编了「无需凭证」。

最下面一行是业务视角的最终任务:关键例外缺少凭证条件,任务失败。失败不能被流畅度或引用数量抵消——模型可以一边流利地多编断言,一边给每个断言都挂上看似相关的引用。

断言支持率的公式:SupportRate = Ssupported ÷ Sverifiable,其中 Ssupported 是有证据支持的可核验断言数,Sverifiable 是全部可核验断言数。

两个口径提醒。这里的「上下文精度」和「断言支持率」是便于教学的人工标注口径,不同评测框架的定义可能不同;LLM 裁判也只是另一个模型,不是事实真值。上线前应保留一组人工核验过的样本用来校准评分器,并按一般规则、例外、时效、权限和无答案问题切片分别观察。

最后是诊断矩阵,把指标下降映射到修复方向:必要证据没召回,修查询、切块、索引;召回了却没进入最终上下文,修过滤、重排、预算;证据在上下文但断言不受支持,修生成约束、引用校验,或降级处理;证据本身过期,修知识治理,而不是换更强的模型。

分层诊断的输入是目标断言、必要证据、最终上下文和生成断言,先分别算出证据覆盖、上下文精度、断言支持率,再据此定位失败层,输出可归因的修复方向。边界在于:某项指标下降通常表示对应层出了问题,但指标下降只能定位生成忠实性,不能单独证明检索或业务任务合格。

退款案例计数结果说明
必要证据覆盖一般规则、质量例外均召回2/2检索召回在本例合格
上下文精度4 段中只有 A、B 真正有用2/4=50%到账时间和旧政策是噪声
断言支持率3 个可核验断言中 2 个有证据2/3≈67%模型多编了“无需凭证”
最终任务关键例外缺少凭证条件失败不能被流畅度或引用数量抵消
SupportRate=SsupportedSverifiable

7把整条因果链连起来综合

整条因果链从模型的知识边界出发。大模型直接作答有三个伤:会幻觉、知识有截止日期、够不到私有数据(§1)。RAG 的对策是把「闭卷」改成「开卷」:回答之前先检索材料,把材料摆在模型面前(§1)。这个对策落实为三步:检索相关材料 → 拼进提示(增强)→ 模型基于材料生成(§2)。

这一步转换带来三个收益:缓解幻觉、让知识可更新、还能溯源,把「只能信模型」变成「能核对来源」(§3)。同时也划定了与微调的分工:RAG 给「事实」,微调给「行为」;记不住的事实交给 RAG,改不动的习惯交给微调(§4)。

但链路上的每一步都可能失效:瓶颈在检索,材料太多会触发中间迷失,材料本身错了也会跟着错(§5)。所以评测要分别测量必要证据覆盖、上下文噪声、断言支持和最终任务,才能定位该修哪一层(§6)。

如果能把这条链讲通——解释清楚「RAG 为什么能缓解幻觉、还能溯源」,并且准确说出「什么该用 RAG、什么该用微调」——就抓住了 RAG 的内核。

10概念依赖与延伸学习路线

RAG 坐落在概念网络的中间:理解它需要几个前置概念,学懂之后又通向一批延伸主题。层级关系如下:

先修概念交代了 RAG 各环节从哪来:大语言模型解释了模型为什么会幻觉、为什么要查资料;检索与语义搜索和嵌入解释了知识库里的材料是怎么被找到的;上下文窗口决定了能塞进提示的材料有多少,直接关系到第 5 节的中间迷失和第 6 节的上下文精度。

本页核心是一组围绕检索-增强-生成的概念:开卷作答(回答前先摆材料)、溯源(答案附出处)、RAG vs 微调(喂事实还是改行为)、检索即瓶颈(效果天花板多在检索)。

紧邻延伸是从这里出发的下一步:向量数据库是知识库的存储形态,文档切分决定检索的基本单位,重排优化召回后的顺序,高级 RAG 处理多跳、复杂装配等问题,引用与溯源和幻觉则把第 3 节提到的两个主题展开成独立的深读页。

更远的一层把 RAG 放进更大的图景:知识图谱与 GraphRAG 用结构化关系补强检索,上下文工程把材料装配发展成一门独立手艺,AI Agent(Agentic RAG)让模型在回答过程中自主决定何时检索、检索什么。

学习层级涉及概念
先修大语言模型、检索与语义搜索、嵌入、上下文窗口
本页核心检索-增强-生成、开卷作答、溯源、RAG vs 微调、检索即瓶颈
紧邻延伸向量数据库、文档切分、重排、高级 RAG、引用与溯源、幻觉
更远知识图谱与 GraphRAG、上下文工程、AI Agent(Agentic RAG)
资料来源与改编说明
访问日期:2026-07-22