要解决的问题
模型的参数知识不会自动随外部事实更新;未用于训练的私有资料也不能指望模型凭参数准确回答。检索增强生成让模型从外部知识库检索相关内容,再据此作答。资料可以更新并提供出处,但检索错误、资料过时和生成误读仍可能导致错误答案。
核心组件
- 切块(chunking):把文档切成适合检索的片段。
- 检索器:根据问题找出相关片段,可以是基于嵌入向量的稠密检索,也可以是关键词检索,或两者结合。
- 重排(rerank):用更精细的模型对初步检索结果重新排序。
- 查询改写:把用户的问题改写成更适合检索的形式。
- 上下文压缩:只把真正相关的内容放进上下文。
进阶形态:
- GraphRAG:先从文档中抽取实体和关系构建知识图谱,再基于图结构检索和汇总,适合需要全局归纳的问题。
- Agentic RAG:把检索当作智能体可以调用的一个动作,由模型决定何时检索、检索什么、要不要再检索一次。
代表工作
- Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks(2020):提出「检索增强生成」这一名称,把检索器与生成模型结合起来做知识密集型任务。
- GraphRAG(2024):微软提出的基于知识图谱的检索增强方法,针对「对整个语料做全局总结」这类问题。
现状
检索增强生成是知识库问答的一种常见方案。长上下文可以容纳更多原文,检索则帮助筛选相关资料、降低输入成本;两者可以结合。选型应根据语料规模、更新频率、检索召回率、权限控制和回答质量评测决定。
开放问题
- 检索与生成的联合优化。
- 需要多跳推理的问题。
- 引用溯源与可信度评估。
参考资料
相关专题
- 嵌入与检索模型:检索增强生成的底座。
- 长上下文:与检索增强生成互补又竞争的路线。
- 幻觉检测与缓解:检索是缓解幻觉的主要手段之一。
- 工具使用与智能体设计:Agentic RAG 把检索作为智能体的动作。
- 持续预训练:另一种更新模型知识的方式。