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

改进社区检测和检索策略大幅提升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.lqws.cn/news/117829.html

相关文章:

  • GICv3电源管理
  • 解决 Java 项目中 “zip END header not found“ 错误
  • Doris查询Hive数据:实现高效跨数据源分析的实践指南
  • ASP.NET Core 中间件深度解析:构建灵活高效的请求处理管道
  • zookeeper 学习
  • 高效使用AI大模型:测试工程师提示词编写框架
  • 软珊瑚成分 CI-A:靶向口腔癌细胞的 “氧化利剑” 与 ERK 密码
  • Kafka 单机部署启动教程(适用于 Spark + Hadoop 环境)
  • Kafka 消息队列
  • 学习笔记085——Spring Data JPA笔记
  • 阿里云ACP云计算备考笔记 (3)——云服务器ECS
  • 5分钟了解JVM运行时数据区域
  • 电脑网络重置,找不到原先自家的WIFI,手机还能正常连接并上网
  • Elasticsearch从安装到实战、kibana安装以及自定义IK分词器/集成整合SpringBoot详细的教程(二)
  • 自动化生产线,IT部署一站式解决方案-Infortrend KS私有云安全,一机多用
  • 国芯思辰ADE芯片成功替代ADS1296R,除颤仪核心部件实现自主可控
  • 【使用JAVA调用deepseek】实现自能回复
  • 嵌入式链表操作原理详解
  • 使用 systemctl 实现程序自启动与自动重启
  • Attention Is All You Need:抛弃循环神经网络的时代来了!
  • [AI Claude] 软件测试1
  • 【深度学习优化算法】02:凸性
  • 使用 SseEmitter 实现 Spring Boot 后端的流式传输和前端的数据接收
  • 《最近公共祖先》题集
  • DeepSeek本地部署及WebUI可视化教程
  • AI智能体,为美业后端供应链注入“智慧因子”(4/6)
  • 华为云Flexus+DeepSeek征文|Flexus云服务器单机部署+CCE容器高可用部署快速搭建生产级的生成式AI应用
  • vue项目中beforeDestroy或destroyed使用this.$notify.closeAll()失效
  • 华为云Flexus+DeepSeek征文|华为云Flexus服务器dify平台通过自然语言转sql并执行实现电商数据分析
  • 洛谷 单源最短路径 Dijkstra算法+优先队列