要解决的问题

模型的参数知识不会自动随外部事实更新;未用于训练的私有资料也不能指望模型凭参数准确回答。检索增强生成让模型从外部知识库检索相关内容,再据此作答。资料可以更新并提供出处,但检索错误、资料过时和生成误读仍可能导致错误答案。

核心组件

  • 切块(chunking):把文档切成适合检索的片段。
  • 检索器:根据问题找出相关片段,可以是基于嵌入向量的稠密检索,也可以是关键词检索,或两者结合。
  • 重排(rerank):用更精细的模型对初步检索结果重新排序。
  • 查询改写:把用户的问题改写成更适合检索的形式。
  • 上下文压缩:只把真正相关的内容放进上下文。

进阶形态:

  • GraphRAG:先从文档中抽取实体和关系构建知识图谱,再基于图结构检索和汇总,适合需要全局归纳的问题。
  • Agentic RAG:把检索当作智能体可以调用的一个动作,由模型决定何时检索、检索什么、要不要再检索一次。

代表工作

  • Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks(2020):提出「检索增强生成」这一名称,把检索器与生成模型结合起来做知识密集型任务。
  • GraphRAG(2024):微软提出的基于知识图谱的检索增强方法,针对「对整个语料做全局总结」这类问题。

现状

检索增强生成是知识库问答的一种常见方案。长上下文可以容纳更多原文,检索则帮助筛选相关资料、降低输入成本;两者可以结合。选型应根据语料规模、更新频率、检索召回率、权限控制和回答质量评测决定。

开放问题

  • 检索与生成的联合优化。
  • 需要多跳推理的问题。
  • 引用溯源与可信度评估。

参考资料

相关专题