跳转到内容

RAG 与检索增强:让模型有外部记忆

直觉版:开卷考试比闭卷考试更准

Section titled “直觉版:开卷考试比闭卷考试更准”

LLM 的知识来自预训练数据,有截止日期,也可能记错。RAG(Retrieval-Augmented Generation)的思路是:在回答前先查资料,把检索到的相关文档放进 prompt,让模型基于这些资料生成答案。这就像开卷考试:模型不是全靠记忆,而是可以引用外部信息。

RAG 的核心优势是:知识可更新(换数据库就行)、答案可溯源(知道来自哪篇文档)、幻觉更少(有依据而非编造)。

工程版:分块、嵌入、排序与生成的全链路

Section titled “工程版:分块、嵌入、排序与生成的全链路”

一个完整的 RAG 系统包含多个环节,每个环节都有工程取舍:

  1. 文档处理:长文档需要分块(chunking)。块太大可能超出上下文窗口;块太小可能丢失上下文语义。常见策略包括固定长度、按段落、按语义边界或递归分块。
  2. 嵌入与索引:用 embedding 模型把文本变成向量,存入向量数据库(如 FAISS、Milvus、Pinecone)。要评估召回率:Top-k 检索是否包含了真正相关的文档?
  3. 查询优化:用户原始 query 可能表达不清。HyDE(假设文档嵌入)让模型先生成假答案,再用假答案去检索;查询重写、扩展和路由也是常用手段。
  4. 重排序(Reranking):先用轻量模型召回大量候选,再用更强的交叉编码器精确排序,平衡速度与精度。
  5. 生成与引用:把检索结果拼进 prompt 时要注意顺序、冗余和冲突。要求模型给出引用来源,方便用户核验。

评估 RAG 不能只看生成质量,还要测检索召回、答案忠实度(faithfulness)和端到端延迟。一个常见的失败模式是”检索到了但模型没用到”,说明生成环节与检索环节没有对齐。

研究上,RAG 与长上下文模型的关系是热门话题:如果模型能直接读整本书,是否还需要检索?当前共识是,检索在精确性、可更新性和计算效率上仍有优势,但两者正在融合——模型可以自主决定何时检索、检索什么。

前沿方向包括:自适应检索(只在不确定时查资料)、多跳推理(跨文档追踪线索)、结构化 RAG(结合知识图谱、数据库 SQL 等)、以及端到端可微检索(让模型自己学习怎么查)。

本文引用论文

  • Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks — Patrick Lewis et al. (2020)

    RAG(检索增强生成)将预训练语言模型与信息检索系统结合:对于每个查询,先从知识库 检索相关文档,再将文档拼接进上下文后生成答案。这解决了语言模型知识过期和 幻觉问题的一大途径,是今天企业 AI 应用的核心架构之一。

  • karpukhin2020-dpr

    双塔 BERT + in-batch negatives 训出第一个工业级稠密检索器,几乎一夜淘汰 BM25。今天向量检索(FAISS、pgvector)的工程范式从这里定型。

  • gao2022-hyde

    让 LLM 先"假装"生成一个回答,再用它的 embedding 检索真文档。零监督、强泛化,是 RAG 时代最常被复用的检索增强 trick 之一。

  • borgeaud2022-retro

    DeepMind 在预训练阶段就引入 chunked retrieval,让 7B 模型匹敌 175B GPT-3。证明检索不只是 RAG 推理时招式,也是预训练范式的另一种可能。