当前位置: 首页 > web >正文

改进社区检测和检索策略大幅提升GraphRAG性能新框架-ArchRAG

给定一个问题Q,基于图的RAG的关键思想是从图中检索相关信息(例如,节点、子图或文本信息),将其与Q一起作为提示,然后输入到LLM中。如下图:
基于KG的RAG工作流

因此,现有工作的工作流主要包括两个阶段:

(1) 离线索引:从给定语料库D构建知识图谱G(V,E),其中每个顶点代表一个实体,每条边表示两个实体之间的关系,并基于知识图谱构建索引。

(2) 在线检索:使用索引从知识图谱中检索相关信息(例如节点、子图或文本信息),并将检索到的信息提供给大型语言模型以提高响应的准确性。

基于KG的RAG代表性的工作有GraphRAG等,如下表总结:

基于KG的RAG代表性的工作

传统的GraphRAG影响性能的主要因素归结如下表:

问题描述
社区质量低使用Leiden算法检测社区,仅依赖图结构,忽略节点和边的语义信息,导致社区包含不同主题,摘要质量差,影响性能。
兼容性有限全局搜索和局部搜索策略仅在单一粒度上检索图元素,无法同时处理抽象和具体问题,限制现实世界场景适用性。
生成成本高在抽象问题上表现良好,但分析大量社区耗时且资源密集。例如,在Multihop-RAG数据集检测到2,984个社区,回答100个问题需约$650和1.06亿个token。
实体识别不准确HippoRAG等方法在实体识别方面存在问题,5.0%的HotpotQA问题未能检测到实体,15.8%的实体识别质量较低,导致不相关检索结果。
检索过程不准确基于图的RAG方法在搜索中常返回不相关内容,例如GraphRAG局部搜索时检索结果不准确,导致性能下降。

因此,ArchRAG改进的方向主要可以集中在通过改进社区检测和检索策略来解决这些问题。下面来看看,仅供参考。

ArchRAG方法

同样的,ArchRAG分为两个阶段:**离线索引(重点)**和在线检索。如下图:

ArchRAG框架

离线索引阶段
  • KG构建:与GraphRAG一样,使用LLM从文本语料库中提取实体和关系,形成子图并合并成一个完整的知识图谱(KG)。

  • 层次化聚类:采用基于LLM的层次化聚类方法,检测出高质量的属性社区。这些社区不仅是节点密集连接的集合,还共享相似的语义主题。算法过程如下(重点看下该算法过程):

    基于LLM的层次化聚类方法算法流程

  • C-HNSW索引构建:构建一个层次化的索引结构,用于高效检索不同层次的ACs和实体。

    C-HNSW索引构建算法

    C-HNSW索引构建算法流程

在线检索阶段
  • 层次化搜索:在C-HNSW索引上进行高效的层次化搜索,检索出与查询相关的ACs和实体。

    层次化搜索算法过程

  • 自适应过滤生成:利用LLM的内在推理能力来提取和分析相关信息,从检索到的信息中提取最相关的部分,生成最终的答案。

实验性能

ArchRAG在特定QA任务上的表现优于现有的图基RAG方法,特别是在准确性方面提高了10%。

ArchRAG在令牌使用上比GraphRAG节省了高达250倍,显著提高了查询效率。

通过结合KNN或CODICIL与加权Leiden算法,提高了社区检测的质量。

回答示例:

参考文献:paper:ArchRAG: Attributed Community-based Hierarchical
Retrieval-Augmented Generation [Technical Report],https://arxiv.org/pdf/2502.09891v2

code:https://github.com/sam234990/ArchRAG

http://www.xdnf.cn/news/12076.html

相关文章:

  • 策略公开了:年化494%,夏普比率5.86,最大回撤7% | 大模型查询akshare,附代码
  • 从 CLIP 和 Qwen2.5-VL 入门多模态技术
  • 2025Mybatis最新教程(三)
  • fmod产生的误差应该如何解决?
  • 日志项目——日志系统框架设计
  • 卡特兰数简单介绍
  • C++初阶 | 模板
  • C#中的依赖注入Dependency Injection, DI
  • AI 如何改变软件文档生产方式?
  • 图解浏览器多进程渲染:从DNS到GPU合成的完整旅程
  • JavaScript学习笔记(五)
  • 数据预处理的几种形式(转载)
  • 如何从零开始建设一个网站?
  • 卫星在轨姿态控制技术详解:从自旋稳定到高精度闭环控制
  • Redis中的setIfAbsent方法和execute
  • #开发环境篇:postMan可以正常调通,但是浏览器里面一直报403
  • python打卡day44@浙大疏锦行
  • GAN训练困境与模型分类:损失值异常与生成判别模型差异解析
  • WES7系统深度定制全流程详解(从界面剥离到工业部署)
  • RoPE 详解:旋转位置编码的原理与实践《一》
  • 回归分析-非线性回归及岭回归.docx
  • 基于51单片机的汽车雨刮器模拟proteus仿真
  • 【Linux】Linux 环境变量
  • 408考研逐题详解:2009年第31题
  • 组合式过电压保护器安装指南
  • 第N1周:one-hot编码案例
  • 使用cursor 编辑器开发 Vue项目,配置ESlint自动修复脚本,解决代码不规范引起的报错无法运行项目问题
  • rockyLinux常用共享的服务和配置
  • JAVASE:面向对象
  • 第4章(旧)Day1 - Python小白上路