GPT-4+GraphRAG:知识图谱如何让RAG系统更智能?

使用GPT-4o mini融合GraphRAG技术进行实战应用 RAG(Retrieval-Augmented Generation)是GraphRAG的前身,它通过以下步骤工作:建立知识库:将文档转化为可检索的数据结构。文档分块和向量化:将文本切分并转换为向量表示。语义检索:基于用户查询找到相关信息。增强生成:结合检索到的信息生成回答。然而,传统RAG也存在局限性,难以获得对数据集的全局洞察,这正是GraphRAG要解决的核心问题。 阅读详情

我经常在网上看到关于GraphRAG的帖子,但直到大约一个月前,我才决定尝试一下。在花了一些时间进行实验后,我可以说它的表现令人印象深刻,但如果你使用的是OpenAI API,成本也相当高。在文档中运行他们提供的示例书籍测试花费了我大约7美元,所以虽然它的性能和组织能力非常出色,但它并不算经济实惠。

如果你是RAG系统的新手,我建议先阅读一些入门文章:

1、Anthropic 的新 RAG 方法(https://pub.towardsai.net/anthropics-new-rag-approach-e0c24a68893b)

2、RAG 从头开始(https://pub.towardsai.net/rag-from-scratch-66c5eff02482)

无论如何,这里是传统RAG系统的工作原理概述:

图片

对于已经熟悉RAG的人来说,你可能遇到过和我一样的头疼问题:

  • • 文本块之间的上下文容易丢失
  • • 随着文档集合的增长,性能急剧下降
  • • 集成外部知识就像蒙着眼睛解魔方一样困难(比喻意指操作复杂且缺乏清晰方向)

GraphRAG的工作原理

图片

GraphRAG是传统RAG的增强版本,主要分为两个阶段:

索引阶段

  • • 从源文档开始,将其拆分为更小的子文档(与传统RAG类似)
  • • 执行两个并行的提取过程:
  1. \1. 实体提取:识别出诸如人物、地点、公司等实体
  2. \2. 关系提取:发现跨不同文本块的实体之间的联系
  • • 创建一个知识图谱,其中节点代表实体,边代表它们之间的关系
  • • 通过识别紧密相关的实体来建立社区
  • • 在不同的社区层级生成分层摘要(共三级)
  • • 使用归约-映射方法,通过逐步合并文本块生成整体摘要

查询阶段

  • • 接收用户的查询
  • • 根据所需的细节选择适当的社区层级
  • • 在社区层级(而不是传统RAG的文本块层级)上执行检索
  • • 检查社区摘要以生成局部响应
  • • 将多个相关社区的局部响应组合成最终的综合答案

GraphRAG的核心创新在于它将信息结构化为图形格式,并利用社区检测来生成更具上下文意识的响应。然而,传统RAG系统仍然有其用武之地,特别是在考虑运行GraphRAG的计算成本时。

设置GraphRAG

⚠️ 提醒:这个实验运行在GPT-4 API上,成本较高。我的一次测试成本约为7美元(基于GPT-4模型)。

如果你更喜欢在本地LLM上使用ollama进行测试,请查看这个视频:

接下来让我们一步步完成设置过程:

环境设置

首先,创建一个虚拟环境:

conda create -n GraphRAG
conda activate GraphRAG

安装GraphRAG包:

pip install graphrag

目录结构

GraphRAG需要特定的目录结构以实现最佳运行效果:
- 创建一个工作目录
- 在其中创建_ragtest/input_文件夹结构
- 将源文档放入input文件夹中

在本文中,我们将使用提供的书籍作为示例。通过以下命令下载到input文件夹中:

curl https://www.gutenberg.org/cache/epub/24022/pg24022.txt > ./ragtest/input/book.txt

配置

使用以下命令初始化工作区:

python -m graphrag.index --init --root ./target

此操作会创建必要的配置文件,包括settings.yml,你需要在其中:
- 设置你的OpenAI API密钥
- 配置模型设置(默认使用GPT-4进行处理和OpenAI嵌入)
- 根据需要调整文本块大小(默认:300个token)和重叠部分(默认:100个token)

构建知识图谱

运行索引过程:

python -m graphrag.index --init --root ./target

查询你的图谱

GraphRAG提供了两种主要的查询方式:

全局查询

python -m graphrag.query --root ./target --method global "what are the top themes in this story"

适用于关于主题和整体内容理解的广泛问题。

局部查询

python -m graphrag.query --root ./target --method local "what are the top themes in this story"

适用于关于文档内实体或关系的具体问题。

成本因素:值得吗?

让我们谈谈数字。在我用示例书籍进行测试时,GraphRAG调用了:

  • • ~570次GPT-4 API请求
  • • 大约25次嵌入请求
  • • 处理了超过100万个token

总成本:每本书大约7美元。

​

如何学习大模型

现在社会上大模型越来越普及了,已经有很多人都想往这里面扎,但是却找不到适合的方法去学习。

作为一名资深码农,初入大模型时也吃了很多亏,踩了无数坑。现在我想把我的经验和知识分享给你们,帮助你们学习AI大模型,能够解决你们学习中的困难。

下面这些都是我当初辛苦整理和花钱购买的资料,现在我已将重要的AI大模型资料包括市面上AI大模型各大白皮书、AGI大模型系统学习路线、AI大模型视频教程、实战学习,等录播视频免费分享出来,需要的小伙伴可以扫取。

一、AGI大模型系统学习路线

很多人学习大模型的时候没有方向,东学一点西学一点,像只无头苍蝇乱撞,我下面分享的这个学习路线希望能够帮助到你们学习AI大模型。

在这里插入图片描述

二、AI大模型视频教程

在这里插入图片描述

三、AI大模型各大学习书籍

在这里插入图片描述

四、AI大模型各大场景实战案例

在这里插入图片描述

五、结束语

学习AI大模型是当前科技发展的趋势,它不仅能够为我们提供更多的机会和挑战,还能够让我们更好地理解和应用人工智能技术。通过学习AI大模型,我们可以深入了解深度学习、神经网络等核心概念,并将其应用于自然语言处理、计算机视觉、语音识别等领域。同时,掌握AI大模型还能够为我们的职业发展增添竞争力,成为未来技术领域的领导者。

再者,学习AI大模型也能为我们自己创造更多的价值,提供更多的岗位以及副业创收,让自己的生活更上一层楼。

因此,学习AI大模型是一项有前景且值得投入的时间和精力的重要选择。

GPT4Graph: 大型语言模型能够理解图结构化数据吗? 经验评估与基准测试 像 ChatGPT 这样的大型语言模型 (LLM) 已经成为通用人工智能 (AGI) 不可或缺的一部分,在各种自然语言处理任务中表现出色。图数据无处不在,是 AGI 的重要组成部分。大型语言模型的训练语料库通常包含一些算法组件,这使得它们能够在某些图数据相关问题上取得一定效果。然而,关于它们在更广泛的图结构化数据上的性能研究仍然很少。在本文中,我们进行了一项实证研究,以评估 LLM 在理解图数据方面的能力,采用了一系列结构和语义相关的任务,评估了 LLM 在图理解方面的能力。通过我们的研究,我们发 阅读详情

相关推荐

GraphRAG:基于PolarDB+通义千问+LangChain的知识图谱

在语义相似性中,例如,数据被表示为由AI嵌入模型生成的数值向量,这些向量试图捕捉其含义。数据分为两部分,一部分为图数据(data/import目录),包含了人员(Executive), 产业(Industry), 股票(Stock), 概念(Concept)等点以及人员-股票, 股票-概念,股票-产业之间的关联关系,这部分数据以图的方式存储到PolarDB中。在 GraphRAG 中,知识图谱作为事实信息的结构化资源库,LLM将自然语言转换为知识图谱的查询信息,从图谱中检索相关知识,并生成针对问题的回答。

2401_87991300的博客 1096

【论文阅读】GPT4Graph: Can Large Language Models Understand Graph Structured Data?

本文通过实验评估LLM在理解图结构数据的能力——在各种各样的结构和语义相关的任务上评估LLM在图结构数据理解的能力。目标是建立一个全面的比较,以显示LLM在理解图结构数据的能力。

飞跃大海的猪 3899

Neo4j CTO:RAG的下半场GraphRAG!

的文章。他们发现,如果使用知识图谱来组织所有这些网页中字符串所代表的事物,并进行所有的字符串处理,那么能力就有可能实现巨大的飞跃。我们今天在。

lqfarmer的博客 1310

GraphRAG + GPT-4o mini 低成本构建 AI 图谱知识库

GraphRAG+GPT-4omini低成本构建AI图谱知识库。更好的效果,更低的价格,听起来是不是像梦呓?

qkh1234567的博客 989

利用docx4j与docx4j-ImportXHTML高效实现HTML到Word的自动化转换

本文详细介绍了如何利用docx4j与docx4j-ImportXHTML库,在Java环境中高效实现HTML到Word文档的自动化转换。内容涵盖从环境搭建、核心依赖配置,到集成Spring Boot REST API的完整实战流程,并深入解析了处理图片、CSS样式、字体设置以及使用模板保证样式统一等高级技巧与常见问题解决方案,帮助开发者构建稳定的文档自动化生成流水线。

cnn8visionary的博客 366

【FPGA】AD9694调试注意事项

基于FPGA的AD9694设计及其注意事项,包括同步的设计注意事项

weixin_41246509的博客 2903

极客说|Get 知识图谱与大语言模型融合新技能 《GraphRAG 实践应用白皮书》重磅发布!

作者:胡强辉 -微软 AI 全球黑带高级技术专家「极客说」 是一档专注 AI 时代开发者分享的专栏,我们邀请来自微软以及技术社区专家,带来最前沿的技术干货与实践经验。在这里,您将看到深度教程、最佳实践和创新解决方案。关注「极客说」,与行业顶尖专家一起探索科技的无限可能!在全球数字化浪潮的推动下,大语言模型凭借其卓越的自然语言处理能力,引领着自然语言理解与生成的新纪元。但与此同时,数据随之呈爆炸式增长,也为企业带来了空前的机遇与挑战。

微软技术栈 1059

Error: dependent ‘..\..\..\..\Qt\5.15.2\msvc2019\include\QtWidgets\QMainWindow‘ does not exist.

核心问题:修改 Build 目录为源码子目录后,MSVC 编译报错,本质是变量设置异常,导致 qmake 生成多余回溯路径;临时解决:在 .pro 文件添加;最优解决:将上述配置写入 Qt 的 msvc 对应 qmake.conf 全局文件,一劳永逸;禁止 qmake 计算路径时向上回溯,避免生成异常路径。

mumufan05的专栏 878

100个AI领域的常见概念| KG、RAG、KAG、GraphRAG...这些有什么区别?

这个系列的灵感来源于我偶然间看到的“歪门邪道”——大意是如何伪装成一个陌生领域的专家?可以先了解这个领域常见的100个概念,并厘清其中的关系、上下位概念、区别和联系,然后在合适的场合灵活运用,就能骗到和你一样不懂的人了()虽然是一句玩笑,不过后来又想到,传统的人文社科考试似乎真的是考名词解释和名词解释Plus…

m0_48891301的博客 2490

【时间序列预测算法】——Holt-Winters算法介绍及代码实现

背景 一阶二阶三阶指数平滑方法拟合效果均较好,通过结合数据自然属性,数据自身、趋势变化、季节性,提出了这三个角度的衡量量,可以说,理解起来更自然、更亲切。 公式 一阶: sts_tst​是t时刻对xtx_txt​的估计值,这里只有一个参数α,是数据本身的平滑属性的体现。 二阶: 引入了时间趋势变量btb_tbt​,优化了一下一阶的公式。同时还可以预测t+m时刻的值: 三阶: 又引入了季节性周期描述变量ctc_tct​,优化了一下二阶的公式。同时还可以预测t+m时刻的值: NOTE:ct

BlackValley的博客 1万+

【Java完整版 面试必备】Leetcode Top100题目和答案-滑动窗口篇

【Java完整版 面试必备】Leetcode Top100题目和答案-滑动窗口篇

weixin_43298211的博客 2246

GraphRAG 技术详解:如何将知识图谱集成到 RAG 系统中?

当我们说“大模型健忘”,其实说的是它的“知识储存能力有限”,尤其是面对企业内部专业文档、复杂背景知识时,一问三不知的现象比比皆是。

WhiteHat_Zhou的博客 1390

链接文件及功能安全:S32K3如何将FLASH驱动放到RAM里面、RAM如何实现软件复位数据不丢失操作。

在通过RTD的SDK也好MCAL也好,始终存在一个问题,生成的代码除了看门狗模块,默认都是放在flash里面,按照正常逻辑来看没啥大的问题,思考一个问题:Flash放在0x100的位置,但是此时我们要操作0x100怎么办?那肯定不允许啊,但是将flash的驱动放在RAM里面就可以避免这个问题的产生。Flash的特性:PF0能操作PF1,当然PF1也能操作PF0的,以此类推,只要不操作自身,想怎么玩都可以。这也是一个物理特性吧。

梦想技术家 2310

GNN-RAG: 更精准的GraphRAG

知识图谱问答系统(Knowledge Graph Question Answering)指的是利用 知识图谱(KG)来回答自然语言问题的系统。在 KGQA 系统中,用户输入的问题会被解析为相关的实体和关系,然后系统通过遍历知识图谱中的节点和边来找到准确的答案。因为知识图谱是以结构化的方式存储信息,能够很好地捕捉实体之间的关联,因此这种方法可以提高答案的准确性和相关性。在KGQA场景中,回答的准确性高度依赖于检索KG事实的精准度。如何从复杂的图谱上执行精确的检索成为了核心挑战。

m0_59164520的博客 2185

后仿真中《SDF反标必懂连载篇》之 <INTERCONNECT/IOPATH> 到底反标电路路径是哪里

对于SDF INTERCONNECT ENTRY 描述,我们在之前的文章有详解。读万卷书,行万里路。实践很重要。今天,搞一下SDF INTERCONNECT / IOPATH 延迟数据信息,究竟反标的是哪一路径延时?究竟在电路上一段段如何表现出延迟现象的呢?

那么菜的博客 2134

大模型微调部署实战及类GPT工具的高效使用

本文主要介绍了专栏《大模型微调部署实战及类GPT工具的高效使用》的核心内容,希望对使用大语言模型的同学们有所帮助。 文章目录 1. 前言 2. 专栏亮点 3. 你的收获 4. 详细目录

herosunly的博客 22万+

RAG 进阶地图:Self-RAG、CRAG、GraphRAG、Agentic RAG 到底有何不同?

回到最初的问题:Self-RAG、CRAG、GraphRAG、Agentic RAG 到底有什么区别?一句话概括——它们不是竞争关系,而是分别补上了朴素 RAG 的一块短板:Self-RAG 管"要不要检索",CRAG 管"检索不好怎么兜底",GraphRAG 管"局部检索搞不定的全局理解",Agentic RAG 管"复杂问题的一次检索不够用"。理解了每个范式背后的痛点,就不会再被这些名词绕晕了。

一个coder的博客 4709

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

一文搞懂GraphRAG(RAG + 知识图谱)

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;示例:若另一文本提到“胰岛素的副作用包括低血糖”,则将其与现有关系融合,形成更完整的图谱。

m0_63171455的博客 4354

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

【GraphRAG】基于知识图谱的RAG:高效好用,但成本不菲!

官网:https://microsoft.github.io/graphrag微软开源的一项结合了知识图谱的检索增强生成技术。简单来说,它可以显著提升AI知识库的性能,让AI能根据你提供的文档,更准确地回答你提出的复杂问题。

2401_84494441的博客 1478

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

GraphRAG:知识图谱+大模型

结合知识图谱检索和向量检索,利用二者的优势提高搜索结果的准确性和相关性。

Python_cocola的博客 3620
上一篇: 大语言模型(LLM),究竟能不能替代程序员?
下一篇: Agent 从想法到实现之六顶思考帽
冻感糕人~
博客等级 码龄3年 8926粉丝 2384原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值