检索增强生成
回答前先从外部知识库检索相关片段、再连同问题一起交给模型,以降低幻觉并接入私有知识。
又称:RAG · Retrieval-Augmented Generation · 检索增强
RAG 的思路很直白:别让模型靠记忆答,先把资料查出来放到它眼前。
基本流程
- 切分:把文档切成几百字的片段(chunk)。
- 向量化:每段用 embedding 模型转成一个向量,存进向量库。
- 检索:用户提问也转成向量,找最相近的若干片段;实践中通常再叠加关键词(BM25)做混合检索。
- 重排:用 cross-encoder 之类的模型对候选片段精排,取前几条。
- 生成:把片段和问题一起塞进 prompt,要求模型「仅依据给定材料回答并标注来源」。
效果好坏的关键
大多数 RAG 系统的失败不在生成端,而在检索端:
- 切分切断了语义(表格、代码、跨段落推理最容易坏);
- 只做向量检索,专有名词和编号匹配不到;
- 召回太多无关片段,模型被噪声带偏。
所以调优顺序应该是:切分策略 → 混合检索 → 重排 → 最后才是改 prompt。
什么时候不适合 RAG
- 需要跨文档做聚合统计(「一共有多少个客户投诉」);
- 知识更新极快且要求强一致;
- 需要精确计算——那应该给工具而不是给文档。
RAG 治的是「不知道」和「记错了」,治不了「不会算」和「不会做」。
进阶 #工程#检索#落地
最后更新:2026/11/4