检索增强生成(RAG)
**检索增强生成(Retrieval-Augmented Generation, RAG)**是一种把外部知识库 接入 LLM 的范式。模型不直接靠参数记忆回答问题,而是先从知识库 "检索"相关片段,再"生成"答案。
为什么需要 RAG
- 知识新鲜度:模型权重冻结后无法获取新知识,RAG 可以动态补充。
- 可追溯性:可以引用具体来源,减少幻觉。
- 领域定制:不需要重训模型就能用企业私域数据。
核心流程
- 离线索引:把文档切块 → embedding → 存入向量库。
- 在线检索:用户问题 → embedding → 在向量库中找 top-k 相关片段。
- 生成:把检索结果作为上下文喂给 LLM,让它基于这些片段回答。
进阶话题
- 混合检索:向量检索 + BM25 关键词检索融合。
- 重排序(Rerank):用更强的 cross-encoder 对初筛结果精排。
- 查询改写:让 LLM 把用户问题改写成更利于检索的形式。
- 多跳检索:一个问题需要检索多个互相引用的片段。