微软即将推出超强RAG: LazyGraphRAG 效果更好,且成本能降低近1000倍! 原创 精华

发布于 2024-12-2 15:34
浏览
0收藏

1、什么是LazyGraphRAG

GraphRAG[1]旨在通过利用非结构化文本中的隐式关系来扩展AI系统可以在私有数据集上回答的问题类别,相对于传统矢量RAG(或“语义搜索”)的一个关键优势是它能够回答解决整个数据集的全局查询,例如“数据中的主要主题是什么?",或者“X最重要的含义是什么"。相反,向量RAG擅长于本地查询,其中答案类似于查询并且可以在特定文本区域内找到,如通常针对“who”、“what”、“when”和“where”问题的情况。

最近微软提出了一种完全不同的支持图形的RAG方法,该方法不需要对源数据进行事先汇总,从而避免了对某些用户和用例可能过高的前期索引成本。我们称这种方法为“LazyGraphRAG”。

LazyGraphRAG的一个关键优势是其在成本和质量方面的固有可扩展性。在一系列相互竞争的方法中(标准矢量RAG,RAPTOR[2]和GraphRAG本地[3],全局[4]和DRIFT[5]搜索机制),LazyGraphRAG在成本质量范围内表现出强大的性能,如下所示:

  • LazyGraphRAG的数据索引成本与矢量RAG相同,是完整GraphRAG成本的0.1%。
  • 对于与向量RAG相当的查询成本,LazyGraphRAG在本地查询上优于所有竞争方法,包括长上下文向量RAG和GraphRAGDRIFT[6]搜索(我们最近引入的RAG方法表现出优于向量RAG)以及GraphRAG本地搜索。
  • 同样的LazyGraphRAG配置也显示出与GraphRAG Global Search相似的全局查询答案质量,但查询成本低700倍以上。
  • 对于GraphRAG全局搜索的4%的查询成本,LazyGraphRAG在本地和全局查询类型上都显着优于所有竞争方法,包括C2级别的GraphRAG全局搜索(大多数应用程序推荐的社区层次结构的第三级)。

LazyGraphRAG即将加入开源GraphRAG库[7],为本地和全局查询提供统一的查询接口,其轻量级数据索引的成本与标准矢量RAG相当。

2、融合vector RAG和Graph RAG的优势

LazyGraphRAG旨在融合vector RAG和Graph RAG的优势,同时克服各自的局限性:

  • vector RAG是一种最佳优先搜索的形式,它使用与查询的相似性来选择最佳匹配的源文本块。但是,它没有考虑全局查询的数据集的广度。
  • GraphRAG全局搜索是广度优先搜索的一种形式,它使用源文本实体的社区结构,以确保在考虑数据集的全部广度的情况下回答查询。然而,它没有意识到本地查询要考虑的最佳社区。

LazyGraphRAG以迭代深化的方式结合了最佳优先和广度优先搜索。与全GraphRAG的全局搜索机制相比,这种方法在延迟LLM使用和显着提高答案生成效率方面是“懒惰”的。

3、技术特点

微软已经开源了名为GraphRAG的项目,在数据索引部分,其主要借助大型模型对实体及其联系进行抽取和描绘,并为每个实体与关系产生摘要。

此过程中涉及图形统计学来精进实体图并抽出分级的社区构造。但这种方式的投入巨大,由于依赖众多的语言模型处理,GraphRAG的数据索引费用极为昂贵。

然而,LazyGraphRAG与前者有所不同,它无需预先进行任何概括或生成嵌入,在数据索引阶段,它利用自然语言处理的名词短语抽取技术来识别观念及其共现关系,在此基础上运用图形统计学方法优化观念图并抽取分层社区结构。这使得LazyGraphRAG的索引成本极低,只有GraphRAG的0.1%,也就是说,降低了1000倍的成本。

在查询处理方面,GraphRAG采用广度优先搜索以确保在响应查询时考虑到了全部数据集的广度。然而,LazyGraphRAG则融合了最优先搜索与广度优先搜索的动态性,采取了逐步深化的策略。首先对文本片段进行相似度排名,然后动态选择相关的社区以逐渐精炼查询结果。

此种方式使得LazyGraphRAG能够同时支持局部与全局查询,而且在考虑整个数据集的广度的同时,也能有效地找到最匹配的文本部分。

4、验证结果

为了衡量LazyGraphRAG的性能表现,微软设置了三个不同的预算档次,以观察其在各种环境下的运行状态。

在最低预算等级下,进行100次相关性测试,并利用低成本大模型时,LazyGraphRAG显现出了显著的优势。无论是在局部查询还是全局查询中,其表现都超过了其他所有的方法。

在局部查询场景中,LazyGraphRAG的性能明显超越了C1、C2、C3_Dynamic、LS、DRIFT、SS_8K、SS_64K和RAPTOR等方法。虽然在全局查找方面,GraphRAG的全球搜索有时会显现出更好的表现,但从成本效益角度考虑,LazyGraphRAG依旧占据上风。

当预算等级提高至500次,并使用更高级别的大模型时,LazyGraphRAG的优势进一步放大。其成本仅为C2级别的4%,但性能却远超过所有其他条件,包括C2级别的GraphRAG全球搜索。

这说明LazyGraphRAG不仅在成本方面表现优秀,查询质量也同样出色,不论是在局部查询或全局查询中,都能给出更高质量的答案。

最终,在1500次的高预算环境下,LazyGraphRAG的优势继续扩大。无论是在局部查询还是全局查询中,其表现都继续上升,特别是在全球查询中,其胜出频率明显超过其他方法。

即使在高预算环境下,LazyGraphRAG依然保持着其成本效益和查询质量的双重优势。

微软即将推出超强RAG: LazyGraphRAG 效果更好,且成本能降低近1000倍!-AI.x社区

Figure 1. Clustered bar charts showing win rates of LazyGraphRAG with relevance test budgets of (100, 500, 1,500) over competing conditions for each combination of (local, global) queries and (comprehensiveness, diversity, empowerment) metrics.

5、展望未来

LazyGraphRAG证明了,一个灵活的查询机制能够显著优于在本地-全局查询范围内的多种专用查询机制,且无需预先进行大型语言模型数据总结的成本。其非常快速且几乎免费的索引使LazyGraphRAG成为一次性查询、探索性分析和流数据使用案例的理想选择,而其随着相关性测试预算增加而平滑提高答案质量的能力,使其成为一般性基准测试RAG方法(例如,“RAG方法X以Y预算打败LazyGraphRAG以完成任务Z”)的有价值工具。

那么这是否意味着全面使用LazyGraphRAG呢?microsoft认为答案是否定的,原因有三:

  1. 对于实体、关系和社区摘要的GraphRAG数据索引,除了回答问题外,还有其他用途(例如,阅读和分享报告)。
  2. 将实体、关系和社区摘要的GraphRAG数据索引与类似LazyGraphRAG的搜索机制相结合,可能会比单独使用LazyGraphRAG获得更好的结果。
  3. 设计新型的GraphRAG数据索引以支持类似LazyGraphRAG的搜索机制(例如,通过预先声明和主题提取)可能会获得最佳可能的结果。

Microsoft将在接下来的时期探索这些方向,所有的进步(包括LazyGraphRAG本身)都会通过GraphRAG GitHub仓库发布,让我们敬请期待!

参考资料

[1]GraphRAG: ​​https://aka.ms/graphrag​

[2]RAPTOR: ​​https://github.com/profintegra/raptor-rag​

[3]本地: ​​https://microsoft.github.io/graphrag/query/local_search/​

[4]全局: ​​https://microsoft.github.io/graphrag/query/global_search/​

[5]DRIFT: ​​https://microsoft.github.io/graphrag/query/drift_search/​

[6]DRIFT: ​​https://www.microsoft.com/en-us/research/blog/introducing-drift-search-combining-global-and-local-search-methods-to-improve-quality-and-efficiency/​

[7]GraphRAG库: ​​​https://github.com/microsoft/graphrag​


本文转载自公众号AI 博物院 作者:longyunfeigu

原文链接:​​https://mp.weixin.qq.com/s/MWfDS92ITfspLij_LZCKDQ​


©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
收藏
回复
举报
回复
相关推荐