RAG技术的五种分类——不同种类RAG之间的区别与联系

62 阅读4分钟

RAG技术的五种分类——不同种类RAG之间的区别与联系

 RAG的架构虽然有所不同,但其原理都是相同的,都是通过检索来增强模型的生成能力,只不过在不同的环节做了不同的优化。【AI大模型教程】

从事RAG技术的工作也有一两年时间了,但在此之间都是这学一点那学一点,感觉自己好像什么都会,但从来没有对整个RAG系统进行过梳理。

所以,今天就从RAG的迭代过程开始梳理一下RAG的架构升级过程,了解不同种类RAG的区别和联系,以及适用场景。

RAG的几种类型

从技术的本质来说,RAG就是检索增强生成,重要的就是检索和生成;但技术毕竟在不断的发展和迭代,因此RAG的架构也经过多次迭代。

以下是RAG迭代过程中的几种架构类型:

  • Naive RAG:基础RAG

  • Advanced RAG:高级RAG

  • Modular RAG:模块化RAG

  • Graph RAG:图RAG
  • Agentic RAG :智能体RAG

这几种RAG虽然从架构和实现上有所区别,但其本质上还是一样的;所以我们需要学习不同RAG架构之间的区别,但也要通过表象看到RAG的本质。

Naive Rag

其实想了解RAG的技术原理,基础RAG是最好的选择,因为其是RAG最初的版本;但受限于当时的技术和理论,因此基础RAG现在已经很少使用了,可能也就在刚开始学习的时候了解一下。

基础RAG的流程就是,通过相似度检索的方式召回相关数据,然后丢给模型进行增强生成;但这里有个问题就是,基础RAG的召回策略和生成过程都很简单,在真实的业务场景中测试效果都不怎么好。

Advanced Rag

高级RAG是在Naive Rag的基础之上做了功能升级;比如说刚开始学习RAG的时候,就知道把问题直接向量化,然后丢给向量库进行相似度检索;但在实际场景中发现召回率不足,也不准确。

因此,高级RAG就是在Naive Rag的基础之上做了优化;比如说召回优化,增加问题改写,知识库优化,提升文档的拆分质量,以及生成优化,把召回的文档进行重排序,格式化等操作。

Modular Rag

模块化Rag其实就更好理解了,在基于RAG的智能问答场景中,我们发现文档不但来源复杂,而且格式也很复杂;而且在不同的业务场景中需要使用不同的文档处理流程和召回策略。

比如说有些场景的主要文档格式是word/pdf,而有些场景的文档格式是excel/csv,还有是一些数据库和API。

这时,为了降低系统的开发和维护成本,就需要对不同的功能进行模块化开发,这样在不同的场景中选择不同的模块即可,而不用每次都重新开发。

Graph Rag

图Rag和上面的几种RAG架构的唯一区别就是其存储介质的不同,Graph Rag使用的是基于知识图谱的方式来组织和存储数据;这种方式在某些业务场景中具有更好的效果,比如说查询家庭成员关系,组织架构等。

由于图结构天生适合处理这种复杂的数据关系,因此Graph Rag在这种场景中具备天然的优势。

Agentic Rag

智能体RAG又被称为主动式RAG,上面几种RAG不论怎么设计,其都是基于根据用户问题进行数据召回,然后根据召回结果进行增强生成,这个流程是固定的。

但Agentic Rag是基于智能体实现的架构模式,其主要就是利用大模型独立思考和规划的能力,可以根据用户的问题自行判断是否需要进行数据召回。如果遇到一些简单的问题或者模型能够自己解决的问题,那么就可以避免召回的过程,以提升用户体验和响应速度。

因此,以上几种RAG架构,并没有跳出RAG的基本理论范畴,只不过在不同的环节上对RAG进行了优化,最终的目的都是为了提升模型的生成效果,解决用户问题。

但虽然RAG有多种不同的技术架构,但这些架构之间并不是非此即彼的关系,不同的架构之间可以互相协调,以此增强RAG的效果。

想学习RAG技术,这里提供了一份RAG实操代码案例,感兴趣的可以点击查看: 【AI大模型教程】