RAG 与检索增强:让模型有外部记忆
直觉版:开卷考试比闭卷考试更准
Section titled “直觉版:开卷考试比闭卷考试更准”LLM 的知识来自预训练数据,有截止日期,也可能记错。RAG(Retrieval-Augmented Generation)的思路是:在回答前先查资料,把检索到的相关文档放进 prompt,让模型基于这些资料生成答案。这就像开卷考试:模型不是全靠记忆,而是可以引用外部信息。
RAG 的核心优势是:知识可更新(换数据库就行)、答案可溯源(知道来自哪篇文档)、幻觉更少(有依据而非编造)。
工程版:分块、嵌入、排序与生成的全链路
Section titled “工程版:分块、嵌入、排序与生成的全链路”一个完整的 RAG 系统包含多个环节,每个环节都有工程取舍:
- 文档处理:长文档需要分块(chunking)。块太大可能超出上下文窗口;块太小可能丢失上下文语义。常见策略包括固定长度、按段落、按语义边界或递归分块。
- 嵌入与索引:用 embedding 模型把文本变成向量,存入向量数据库(如 FAISS、Milvus、Pinecone)。要评估召回率:Top-k 检索是否包含了真正相关的文档?
- 查询优化:用户原始 query 可能表达不清。HyDE(假设文档嵌入)让模型先生成假答案,再用假答案去检索;查询重写、扩展和路由也是常用手段。
- 重排序(Reranking):先用轻量模型召回大量候选,再用更强的交叉编码器精确排序,平衡速度与精度。
- 生成与引用:把检索结果拼进 prompt 时要注意顺序、冗余和冲突。要求模型给出引用来源,方便用户核验。
评估 RAG 不能只看生成质量,还要测检索召回、答案忠实度(faithfulness)和端到端延迟。一个常见的失败模式是”检索到了但模型没用到”,说明生成环节与检索环节没有对齐。
研究版:RAG 的边界与新方向
Section titled “研究版:RAG 的边界与新方向”研究上,RAG 与长上下文模型的关系是热门话题:如果模型能直接读整本书,是否还需要检索?当前共识是,检索在精确性、可更新性和计算效率上仍有优势,但两者正在融合——模型可以自主决定何时检索、检索什么。
前沿方向包括:自适应检索(只在不确定时查资料)、多跳推理(跨文档追踪线索)、结构化 RAG(结合知识图谱、数据库 SQL 等)、以及端到端可微检索(让模型自己学习怎么查)。
本文引用论文
- Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks
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 推理时招式,也是预训练范式的另一种可能。