也看图结构增强的GraphRAG方案:NodeRAG实现思路解读

一、GraphRAG的优化方案NodeRAG

关于GraphRAG,已有很多的工作,例如,如NaiveRAG和HyDE;基于图的RAG方法,如GraphRAG和LightRAG,可以再温习下。

朴素RAG,这种方法通常是作为所有现有RAG系统的标准基线。它首先将输入文档分割成几个文本块,并利用文本嵌入将它们编码进向量空间。然后基于查询表示的相似性检索相关文本块。

Hyde作为传统RAG系统的改进方法,首先生成“假设性”的文本以捕捉查询的本质。然后使用生成的文本来从大型语料库中检索相关文档,在嵌入空间中使用向量相似性。该方法在前端修改输入查询,而不改变文本块或其嵌入。

GraphRAG首先将输入文本分割成块,并提取其中的实体和关系,形成图结构。然后将这个图划分为多个不同级别的社区。在查询时,GraphRAG识别出问题中的相关实体,并通过参考这些相应的社区摘要来合成答案。与传统的RAG方法相比,GraphRAG提供了对整个文档更结构化、更高层次的理解。

LightRAG是一种基于GraphRAG的改进方法,旨在通过双层检索在最小化计算开销的同时增强检索信息的全面性。这导致检索效率更高,并且与GraphRAG相比,在效果和速度之间实现了更好的平衡。

例如,进一步的,这些方法虽然在一定程度上提高了检索和问答性能,但在图结构设计方面仍存在不足,如下图所示:

img

NaïveRAG检索的是碎片化的文本片段,这会导致信息重复;HippoRAG引入了知识图谱,但缺乏对高级别的总结;GraphRAG检索的是社区总结,但仍然可能产生粗粒度的信息;LightRAG结合了一跳邻居,但检索出的节点存在冗余。这些方法导致检索方法中的不一致性(分离局部和全局检索),并导致粗粒度检索,即不加区分地检索一个实体包括所有相关内容

所以,最近的工作,NodeRAG《NodeRAG:Structuring Graph-based RAG with Heterogeneous Nodes》(https://arxiv.org/pdf/2504.11544,https://github.com/Terry-Xu-666/NodeRAG, https://terry-xu-666.github.io/NodeRAG_web/)利用多种节点类型,包括高级元素、语义单元和关系,从而能够实现更精确、层次化的检索,同时减少无关信息

先看最终的效果对比:

img

那么,其是如何实现的呢?看下实现细节。

img

1、技术细节

1)异构图Heterograph的定义

引入多种节点类型来实现细粒度和功能化的信息表示。异构图包括以下七种节点类型:实体(N)、关系(R)、语义单元(S)、属性(A)、高层元素(H)、高层概览(O)和文本(T)。

img

这种设计捕捉原始语料库中的详细信息,还能扩展信息范围,包含关键节点的属性和高层次的发现。

每个节点类型都有特定的功能和角色,例如实体和关系节点用于连接语义单元,属性节点用于表示实体的特征,高层元素节点用于总结社区的核心信息等。这种异构图结构使得NodeRAG能够实现更细粒度的检索和理解,从而提高整体性能

2)图分解Graph Decomposition

使用大模型(LLM)将源语料库中的文本块分解为三个主要节点类型,语义单元(S)、实体(N)和关系(R),这些节点通过连接边(e)相互连接,形成初始的异构图。其中,语义单元(S) 充当局部摘要,以释义形式代表一个独立的事件单元,它作为图增强的核心节点,并提高搜索质量。

img

这里构造的prompt如下:

img

具体构造的实例如下:

img

3)图增强

通过两种主要方法增强异构图(基于节点重要性的增强和基于社区检测的聚合),这两种方法分别捕捉了局部和全局的结构特征,增强图的语义信息和结构完整性。

img

基于节点重要性的增强通过LLM处理关键实体及其关联的语义单元和关系,生成属性摘要。具体方法是使用K-core分解和介数中心性来识别重要节点,然后利用LLM对这些节点进行处理,生成属性节点并添加到图中

基于社区检测的聚合使用Leiden算法对图进行社区检测,将图划分为多个紧密相连的社区。然后在每个社区内使用LLM提取高层元素,建立这些元素与社区内其他节点的语义连接

4)丰富图Graph Enrichment

在图增强的基础上,进一步插入原始文本块和嵌入向量,并使用HNSW算法增强图的语义边,生成的增强异构图。

img

具体的,将原始文本块以语义单元的形式插入到图中,并与相关的语义单元建立连接对图中的某些节点进行嵌入处理,特别是那些包含丰富信息的节点(如文本、属性、语义单元、高层次元素),以便于高效的向量相似性搜索;引入HNSW算法生成的语义密集边,以增强图中节点之间的语义相似性连接

5)图搜索

应用双搜索机制来识别异构图内的入口点。随后,采用浅层个性化PageRank(PPR)算法来提取交叉节点。然后过滤入口点节点和交叉节点的组合,以产生最终的检索结果。

img

首先,针对query进行分解,对应的prompt如下:

img

其次,双搜索结合了标题节点的精确匹配和丰富信息节点的向量相似性搜索,以在异构图G中识别入口点。给定一个查询,大模型(LLM)提取实体Nq并将查询嵌入到向量(q)中,如果一个节点通过逐字字符串匹配与提取的实体之一相匹配,精确匹配函数M(v∗,v)就会返回真值。此外,如果一个节点基于HNSW算法在相似度排名中位于与q最相似的top-k个节点之中,相似度排名函数R(q,v,k)也会返回真值。

最后,浅层个性化PageRank(PPR)通过模拟从一个入口点集开始的偏置随机游走,在异构图G中识别相关节点。 在这里使用浅层PPR,限制迭代次数t以确保相关性保持在入口点的邻域内。这种提前停止策略防止过度扩散到图的遥远或不相关部分,而是专注于入口点附近的多跳节点。

对应的prompt如下:

img

二、NodeRAG如何具体部署,实际占用情况?

那么,具体部署怎么做呢?可以看看

参数的配置:https://terry-xu-666.github.io/NodeRAG_web/docs/configuration/:

img

索引的建立:https://terry-xu-666.github.io/NodeRAG_web/docs/indexing/build/,显示出了具体的执行步骤:

img

建成之后索引结构,本地保存:https://terry-xu-666.github.io/NodeRAG_web/docs/noderagstructures/

img

例如,对于不同的数据,建库和查询时间和占用情况如下:

最后看下占用:

img

索引这么看,其实很费token,很占时间跟空间,这其实还是GraphRAG一直存在的ROI问题。

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值