一句话定义
检索增强生成(Retrieval-Augmented Generation,RAG)在回答前先从外部知识库检索相关片段并注入提示,让模型「开卷考试」——以低成本方式获得时效性、私有性与可溯源三重收益。
为什么重要
参数化知识有截止日期、不可更新、无法溯源;RAG 把「知识存储」从模型权重搬到外部可维护的库,是对抗幻觉(kp-022)与突破窗口限制(kp-023)的第一工程手段,也是企业落地的默认架构。本库讲机制与设计权衡,工程细节见 RAG 专题站。
前置知识
核心概念
- 索引阶段:文档 → 分块(Chunking)→ 向量化(Embedding,见 kp-004)→ 存入向量库。
- 查询阶段:用户问题向量化 → 相似度检索 Top-k 片段 → 注入提示 → 模型生成带引用的回答。
- 混合检索:向量(语义)+ 关键词(BM25 类,精确匹配)互补。
- 重排(Rerank):用更强的交叉编码器对候选精排,提升命中率。
- 引用与溯源:回答附出处,可人工核验。
- 评估维度:检索命中率与生成忠实性分开评估。
原理与机制
RAG 生效的机制根源是 kp-023 的结论:窗口内信息即条件信息。它把「模型不知道的事」转换为「窗口里放好的事」。成败在三处:分块策略决定信息完整性(太大稀释相关度、太小丢上下文);检索质量决定「喂对料」(语义漂移、多跳问题易失手);注入格式与指令决定模型是否忠实于材料而非臆造。与微调的分工:微调改「行为与风格」,RAG 改「知识供给」——知识频繁更新时 RAG 几乎总是首选。
公式或模型
检索打分与注入(概览形式):
score(d, q) = cos(E(d), E(q))
prompt = 指令 + Topk 检索片段 + 用户问题 → 模型生成(要求引用片段编号)
prompt = 指令 + Topk 检索片段 + 用户问题 → 模型生成(要求引用片段编号)
图示
文档库 ─▶ 分块 ─▶ Embedding ─▶ 向量库
▲ 相似度检索 Top-k
用户问题 ─▶ Embedding ─────────────┘
↓
提示 = 指令 + [片段1][片段2][片段3] + 问题 → 模型 → 带引用的回答
直观类比
像「闭卷考生升级为开卷」:不再依赖背诵(参数记忆不可靠),考试时现场翻资料柜(检索),答题必须注明引自哪页(溯源)。资料柜分类混乱(分块差)或找不到书(检索差),开卷也会不及格——所以功夫一半在柜子,一半在翻找。
实例或案例
Lewis 等(2020)将参数化记忆与非参数化检索结合,确立 RAG 范式;企业知识问答、客服助手、代码库问答是三大落地场景。常见失败模式与对策:检索不到(改混合检索 + 重排)、检索到但不忠实(强化「仅依据材料作答」指令 + 忠实性评估)、片段间冲突(加入时间/来源权重)。RAG 与长窗口的关系并非替代——窗口再长也解决不了「外部知识可维护与可溯源」的诉求。
常见误区
- 「RAG 等于接个向量库」:分块、检索、重排、注入格式、忠实性评估环环相扣,向量库只是存储件。
- 「有了 RAG 不需要微调」:二者作用层不同——RAG 供给知识,微调塑造行为,常组合使用。
- 「检索到了模型就一定用对」:模型可能无视材料,需要指令约束与忠实性评估(kp-022 的忠实性幻觉)。
与其他知识点的关系
- kp-023 是 RAG 存在的机制前提;kp-004 的嵌入是检索的数学载体;kp-022 的缓解策略以 RAG 为核心手段;系统级 RAG 工程(分块策略、混合检索、评估体系)见 RAG 专题站。
自测题
- RAG 相对「把知识微调进模型」的三大优势?答案要点:可实时更新、私有数据不出库可控、回答可溯源核验。
- 检索质量差的两个典型原因与对策?答案要点:分块不当(优化粒度/重叠)、纯向量检索语义漂移(加关键词混合检索与重排)。
- 为什么「窗口变长」不能让 RAG 消失?答案要点:长窗口不解决知识更新、成本与可溯源问题;检索负责「选对料」,窗口只负责「装得下」。
延伸阅读
- Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks(Lewis 等,2020):RAG 原论文