PathRAG:通过图剪枝的方法优化Graph-based RAG的性能方法浅析

火山方舟向量数据库大模型

PathRAG 也是一种新型 Graph-based RAG 方法,通过检索索引图中的关键关系路径,减少噪声并优化 LLM 提示。其核心创新在于基于流的剪枝算法和路径为基础的提示策略,特别适用于捕捉复杂数据集中的关系。(其实可以看做 相比GraphRAG假如剪枝算法和路径提示策略,减少噪声并提升性能

picture.image

三种Graph-based RAG对比总结(PathRAG、GraphRAG、LightRAG):

PathRAG :通过从索引图中检索关键的关系路径来减少冗余信息。PathRAG使用基于流的剪枝算法来识别和提取最相关的路径,从而减少噪声并提高生成答案的质量。(专注于关系路径的检索,通过流式剪枝算法识别最可靠的关系路径,并将这些路径转换为文本形式用于提示生成模型。这种方法能够更好地捕捉节点之间的关系。)

GraphRAG :通常通过社区检测算法对图进行分割,并从子社区中逐步聚合信息。这种方法可能会包含大量冗余信息,因为其使用了所有相关社区的信息。(主要依赖于社区检测和信息聚合,可能无法有效利用复杂的关系路径。)

LightRAG :采用双阶段检索框架,从局部和全局级别检索相关信息。虽然这种方法提高了检索效率,但仍然可能包含不必要的信息。(虽然也使用图结构,但其检索过程更侧重于快速检索,可能没有深入探索关系路径的潜力。)

下面再来看看PathRAG的方法,供参考。

PathRAG方法

picture.image

包含三个主要阶段。1)节点检索阶段:根据查询中的关键词,从索引图中检索相关节点;2)路径检索阶段:我们设计了一种基于流程的剪枝算法,提取每对检索节点之间的关键关系路径,然后检索可靠性得分最高的路径;3)答案生成阶段:检索到的路径按照可靠性得分升序排列放入提示中,最后输入到大型语言模型中进行答案生成。

PathRAG 的方法论分为三个阶段,具体如下:

  1. 节点检索
  • 从用户查询

中使用 LLM 提取关键词,记为

  • 通过密集向量匹配(使用余弦相似度)检索相关节点,将节点和关键词编码为嵌入

  • 检索

个相关节点,

可选值包括 {10, 20, 30, 40, 50, 60},结果子集为

,其中

是索引图的节点集。

  1. 路径检索
  • 使用基于流的剪枝算法,从

中的节点对

提取关键关系路径,考虑距离感知。

  • 资源传播公式为:

其中

是衰减率,可选值包括 {0.6, 0.7, 0.8, 0.9, 1.0};

分别是指向和来自

的邻居节点集。

  • 引入早期停止策略,当

时停止,实验中

  • 路径可靠性计算为:

其中

是路径

中的边数,

分别是路径中的节点和边集。

  • 按可靠性

排序,保留前

个路径,

可选值包括 {5, 10, 15, 20, 25}。

  • 算法复杂度为

,其中

,索引图节点数

,计算效率较高。

  1. 答案生成
  • 将选定路径转化为文本形式,路径文本通过连接节点和边块生成:
  • 按可靠性升序排列路径,提示为:

picture.image

这种排序策略解决了“中间丢失”问题,确保 LLM 关注最相关信息(LLM使用 “GPT-4o-mini” 作为所有 LLM 组件,索引图与 GraphRAG相同。)。

实验结果

picture.image

参考文献:PathRAG: Pruning Graph-based Retrieval Augmented Generation with Relational Paths,https://arXiv.org/abs/2502.14902)

code:https://github.com/BUPT-GAMMA/PathRAG

关于作者:余俊晖,主要研究方向为自然语言处理、大语言模型、文档智能。曾获CCF、Kaggle、ICPR、CCL、CAIL等国内外近二十项AI算法竞赛/评测冠亚季军。发表SCI、顶会等文章多篇,专利数项。

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
火山引擎大规模机器学习平台架构设计与应用实践
围绕数据加速、模型分布式训练框架建设、大规模异构集群调度、模型开发过程标准化等AI工程化实践,全面分享如何以开发者的极致体验为核心,进行机器学习平台的设计与实现。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论