跳到正文
08 AI 工程、安全与伦理入门本域第 4 篇

检索增强生成

与其把知识硬塞进参数,不如让它留在外面、需要时再查——像开卷考试而非闭卷考试

定义

检索增强生成(RAG)在模型生成答案之前,先从一个外部知识库中检索出与问题相关的片段,再把这些片段作为上下文一并交给模型。它把“记忆”从模型参数转移到可随时更新、可追溯来源的外部存储,从而缓解知识过时、幻觉以及无法引用出处的问题。

直观理解

闭卷考试要求你把所有知识背进脑子,考完就再也没法更新;开卷考试允许你带书,遇到不确定的地方翻一翻再作答。RAG 就是给模型配一本书和一个图书管理员:模型的推理能力负责“答题”,检索系统负责“翻书”,而书可以每天换成最新版本。

图 1

RAG 流水线:从提问到带引用的回答,检索、重排与生成各司其职,任何一环失效都会拖垮最终答案

图 2

在 BEIR 级多数据集检索基准上的平均表现(示意量级):混合检索结合重排序后,明显优于任何单一检索器

  • Recall@100
  • nDCG@10

工作原理

  1. 01

    分块与嵌入:把文档变成可检索的单元

    先把长文档切成大小合适的片段(chunk),再用嵌入模型把每块编码成向量存入向量库。块太大引入噪声、稀释关键信息,块太小又会切断语义,分块策略往往是 RAG 效果的第一道分水岭。

  2. 02

    检索:向量与关键词各补其短

    稠密向量检索擅长语义相近但字面不同的匹配,BM25 等稀疏检索擅长精确的关键词、编号与专有名词。混合检索把两路结果融合,通常比任何单一检索器都更稳。

  3. 03

    重排序:把真正相关的顶到最前

    初检为了快,往往用较粗糙的相似度。重排序用一个更慢但更准的交叉编码器(cross-encoder)逐一给“问题-片段”打分,只在少数候选上运行,在有限成本下大幅提升前几名(Recall@k)的质量。

  4. 04

    拼装与生成:让答案带上出处

    把重排后的片段连同问题一起塞进提示词,并要求模型只依据所给材料作答、标注引用。这一约束把模型的角色从“凭记忆回答”变成“依据材料归纳”,同时让答案的每条断言都能被回溯核查。

图 3

微调与 RAG 的定位差异:前者把知识写进参数、改变模型行为,后者把知识放在外部、改变模型看到的内容

应用场景

  • 企业知识库问答:在内部文档、工单与手册上提供可追溯的回答
  • 客服与文档助手:把最新的产品说明放进回答,而无需重训模型
  • 需要引用来源的场景:法律、医疗、金融等要求出处的领域
  • 频繁更新的知识:新闻、政策、库存等无法靠重训跟上的内容

常见误区

  • RAG 不能修复模型的推理缺陷。它提供的是事实材料,不是逻辑能力;材料齐全而推理错误,答案照样会错。
  • 检索不到时模型仍可能自信作答。若不对“无相关材料”的情形做专门处理,模型会退回到凭参数记忆编造,且同样言之凿凿。
  • 更多上下文不等于更好。塞入过多无关片段会稀释注意力、抬高成本,还可能把噪声一起喂进答案;检索质量比数量更重要。

关键术语

分块
把长文档切成可检索的片段
嵌入模型
把文本编码成向量的模型
向量数据库
为高维向量提供近邻检索的存储
重排序
用更精确的模型对候选片段重新打分

延伸阅读