Retrieval-Augmented Generation (RAG) 是一种前沿的自然语言处理(NLP)技术,通过结合信息检索和生成模型,显著提升了文本生成任务的准确性和多样性。RAG 的核心思想在于,在生成文本之前,先从大规模文档库中检索出与输入查询最相关的内容,并将这些检索到的信息作为上下文,传递给生成模型。这样,生成模型不仅仅依赖于训练数据,还可以动态获取最新的外部知识,从而让智能体生成更加符合语境的响应。
参考这篇综述,我们可以将现在大多数的RAG流程概括为三个部分:
- 文档的索引构建:从原始的大规模文档库中的Documents构建出便于检索召回的形式,一般是将文本拆分为小段的chunks后通过embedding转为向量索引的形式存储在向量数据库中。
- 相关知识的检索:用户在提供Query后,根据Query的内容从第一步中的文档索引里找出相关的一批文档。这个过程会涉及到对原始Query的改写(使得Query能召回更相关的内容)、文档的重排序(从大量召回内容里选取更加相关的一小部分)等步骤,但所有步骤的目的都是为了筛选出和原始Query最相关的文档内容。
- 最终结果的生成:这一步需要将步骤2中召回的文档送入大模型,结合提示词和原始Query的内容,生成最后的回答。
对比上述的通用RAG流程,agentUniverse将RAG拆分为了两部分: