微软开源项目GraphRAG——基于知识图谱的RAG简介

前言

在大型语言模型(LLM)的前沿研究中,一个核心挑战与机遇并存的领域是扩展它们的能力,以解决超出其训练数据范畴的问题。这不仅要求模型在面对全新数据时仍能保持卓越表现,还意味着开辟了全新的数据分析可能性,如在各种数据集中识别主题和语义概念,同时保留上下文和实体关系。在此背景下,微软研究院自豪地推出了GraphRAG——一项旨在显著提升LLM能力的重大突破。

开源项目地址 :https://github.com/microsoft/graphrag

RAG:检索增强生成技术的进化

传统的检索增强生成(RAG)方法通过基于用户查询搜索信息,并将结果作为AI生成答案的参考,已成为大多数LLM工具不可或缺的一部分。多数RAG方案依赖于向量相似性来进行搜索。然而,当涉及复杂信息的文档分析时,GraphRAG利用由LLM构建的知识图谱,显著提高了问答性能,展现了在处理未见数据集时的强大优势。

GraphRAG:连接点线,构建全面理解

GraphRAG的创新之处在于它能够“连点成线”,即在回答问题时,它能跨越分散的信息片段,通过共享属性将它们串联起来,提供合成的新见解。此外,GraphRAG在被要求整体理解并总结大型数据集合或单一长篇文档的语义概念时,表现尤为出色。这些能力超越了传统RAG方法的局限,后者在处理此类任务时往往力不从心。

案例研究:GraphRAG在VIINA数据集上的应用

为了验证GraphRAG的有效性,我们将其应用于Violent Incident Information from News Articles(VIINA)数据集上,这是一个包含复杂信息、多角度观点和不完整细节的真实世界测试案例。我们使用了数千篇来自俄罗斯和乌克兰新闻来源的文章,创建了一个庞大的私有数据集,其规模远超LLM的情境窗口限制,因此需要采用RAG方法。

在对比实验中,针对“Novorossiya是什么?”这一探究性问题,GraphRAG的表现明显优于基线RAG系统。GraphRAG不仅准确地捕捉到了数据集的核心主题,还提供了支持细节和原始材料的追溯,展现出对数据集整体情况的深刻洞察。

将 RAG 应用于私有数据集

为了证明 GraphRAG 的有效性,我们首先使用新闻文章中的暴力事件信息 (VIINA)数据集进行调查(在新标签页中打开)。之所以选择这个数据集,是因为它的复杂性以及存在不同意见和部分信息。这是一个混乱的真实世界测试案例,而且时间还不长,因此没有被纳入 LLM 基础模型的训练中。

在本研究中,我们使用了 2023 年 6 月来自俄罗斯和乌克兰新闻来源的数千篇新闻文章(翻译成英文),以创建一个私有数据集,我们将在该数据集上执行基于 LLM 的检索。该数据集太大,无法放入 LLM 上下文窗口,因此需要采用 RAG 方法。

我们从一个探索性查询开始,该查询针对基线 RAG 系统和我们的新方法 GraphRAG 提出:

疑问:“新俄罗斯是什么?”

传统RAGGraphRAG
在提供的上下文中没有提到“新俄罗斯”一词。但是,为了提供一些信息,新俄罗斯是一个历史术语,指的是乌克兰南部的一个地区,该地区于 18 世纪被俄罗斯帝国征服。近年来,俄罗斯支持的乌克兰东部分离主义者重新使用这个词来指代他们声称拥有的领土,但它并未被国际机构正式承认为一个独立实体新俄罗斯,又称新俄罗斯,是一个具有历史和当代意义的术语。从历史上看,它指的是俄罗斯帝国南部的一个地区,现在是乌克兰的一部分。在当代背景下,亲俄分裂分子用它来指代乌克兰的某些地区 [数据:实体 (6494, 912, 6493)]。
新俄罗斯一词曾用于乌克兰的政治运动,尤其是俄罗斯民族主义者。这场运动与破坏乌克兰稳定和建立所谓的“新俄罗斯”的努力有关 [数据:实体 (912);关系 (15211, 15206)]。该术语还被用来表示乌克兰的一个分离主义国家,即新俄罗斯联邦共和国 (FRN) [数据:实体 (7690)]。

在这些结果中,我们可以看到两个系统都表现良好 - 突出显示了基线 RAG 表现良好的一类查询。让我们尝试一个需要连接点的查询:

疑问:“新俄罗斯做了什么?”

传统RAGGraphRAG
文中没有提供新俄罗斯所做之事的具体信息。乌克兰的一个政治运动组织新俄罗斯参与了一系列破坏活动,特别是针对乌克兰的各种实体 [实体 (6494, 912)]。该运动与破坏乌克兰多个实体财产的计划有关,包括罗森、敖德萨罐头厂、敖德萨地区广播电视传输中心和乌克兰国家电视公司 [关系 (15207, 15208, 15209, 15210)]。除此之外,新俄罗斯还与破坏罗森、敖德萨音乐学院工厂、敖德萨地区广播电视传输中心和乌克兰国家电信公司的财产的计划有关 [关系 (8329, 8330, 8331, 8332)]。此外,新俄罗斯还涉嫌炸毁乌克兰最大国有银行 PrivatBank 的自动取款机 [关系 (8335, 8335)]。
乌克兰总检察长办公室报告了新俄罗斯的成立,表明政府对该运动活动的认识和潜在担忧 [关系 (8264, 8264)]。新俄罗斯的破坏性活动对目标实体产生了重大影响,并可能加剧了该地区持续的紧张局势和冲突。 总之,新俄罗斯参与了一系列针对乌克兰各实体的破坏性活动。这些活动对目标实体产生了重大影响,并可能加剧了该地区持续的紧张局势和冲突。乌克兰政府通过总检察长办公室承认了新俄罗斯的存在和活动,表明对该运动的行为感到一定程度的担忧。

传统RAG 无法回答这个问题。查看插入上下文窗口的源文档(图 1),没有任何文本片段讨论新俄罗斯,导致此问题。

图1
相比之下,GraphRAG 方法在查询 Novorossiya 中发现了一个实体。这使得 LLM 能够在图中立足,并通过指向原始支持文本的链接得出包含出处的更优答案。例如,下图 2 显示了 LLM 用于 LLM 生成的声明“Novorossiya 涉嫌炸毁 ATM 机的计划”的确切内容。我们看到了原始源文档(经过英文翻译)中的片段,LLM 使用该片段通过图中两个实体之间存在的关系来支持特定银行是 Novorossiya 的目标这一断言。
在这里插入图片描述
通过使用 LLM 生成的知识图谱,GraphRAG 极大地改进了 RAG 的“检索”部分,用更高相关性的内容填充上下文窗口,从而得到更好的答案并捕获证据来源。

能够信任和验证 LLM 生成的结果始终很重要。我们关心的是结果是否正确、连贯,并准确代表源材料中的内容。GraphRAG 在生成每个响应时提供出处或来源基础信息。它表明答案是基于数据集的。随时提供每个断言的引用来源还使人类用户能够快速准确地直接对照原始源材料审核 LLM 的输出。

然而,这并不是使用 GraphRAG 所能实现的全部。

整个数据集推理

传统 RAG 很难处理需要汇总整个数据集的信息才能得出答案的查询。诸如“数据中的前 5 个主题是什么?”之类的查询表现不佳,因为 传统 RAG 依赖于对数据集内语义相似的文本内容进行向量搜索。查询中没有任何内容可以将其引导至正确的信息。

但是,使用 GraphRAG,我们可以回答这些问题,因为 LLM 生成的知识图谱的结构告诉我们整个数据集的结构(以及主题)。这允许将私有数据集组织成预先汇总的有意义的语义集群。在响应用户查询时,LLM 使用这些集群来总结这些主题。

我们通过向这两个系统提出以下问题来说明整个数据集的推理能力:

查询:“数据中的前 5 个主题是什么? ”

传统RAGGraphRAG
1. 改善城市生活质量和城市发展。
2 . 弗拉基米尔·普京与阿联酋总统穆罕默德·本·扎耶德·阿勒纳哈扬会晤。
3 . 俄罗斯各地区投资环境全国评级。
4 . 俄罗斯经济状况和国内品牌增长。
5 . 讨论生命的意义以及科学在理解生命中的作用。
数据呈现出广泛的主题,但最常见的五个主题可以确定如下:
1.冲突与军事活动:很大一部分数据围绕乌克兰持续的冲突,许多报告详细介绍了各种实体的军事活动、占领和袭击。这一主题包括乌克兰军队、俄罗斯军队和其他各种军事单位和实体的行动 [数据:报告(513、241、151、493、343、+更多)]。
2.政治和政府实体:许多报告关注政治人物和政府实体,强调他们在当前形势下的角色、关系和行动。这包括克里姆林宫、乌克兰总统、美国国务院和各地区政府等实体 [数据:报告(98、493、265、129、196、+更多)]。
3.基础设施和环境问题:多份报告强调了潜在的环境影响和基础设施威胁。这些包括因工业活动造成的潜在环境破坏、洪水危机以及军事冲突对基础设施造成的威胁 [数据:报告(308、154、201、348、216、+更多)]。
4.社区分析和威胁评估:有几份报告对特定社区进行了详细的分析,通常以特定的地点或实体为中心。这些分析通常讨论社区内的关键实体、它们的关系以及任何相关威胁。许多报告还包括对与他们讨论的实体或情况相关的潜在威胁的评估 [数据:报告(323、596、518、583、179、+更多)]。
5.健康、人道主义关切和紧急情况:一些报告重点关注健康和人道主义问题,例如 Shereshevsky-Turner 综合征社区和敖德萨地区肠道疾病的潜在风险。数据还涵盖紧急情况,包括自然灾害、事故和袭击 [数据:报告(204、149、372、154、532 等)]。
这些主题全面概述了当前局势,突出了当前问题的复杂性和相互关联性。

查看基线 RAG 的结果,我们发现列出的主题与两国之间的战争没有太大关系。正如预期的那样,向量搜索检索到不相关的文本,这些文本被插入到 LLM 的上下文窗口中。所包含的结果很可能与“主题”一词有关,导致对数据集中发生的事情的评估不太有用。

通过观察 GraphRAG 的结果,我们可以清楚地看到,结果与整个数据集的情况更加一致。答案提供了在数据集中观察到的五个主要主题以及支持细节。参考报告由 LLM 为 GraphRAG 中的每个语义集群预先生成,进而提供对原始源材料的出处。

结论:GraphRAG——开启LLM的智慧新篇章

GraphRAG通过结合LLM生成的知识图谱与图机器学习,实现了查询时的提示增强,从而在处理上述两类问题时展现出超越其他方法的智能水平。这一创新不仅推动了LLM在未见数据上的表现边界,也为未来的研究和应用开辟了广阔前景。随着GraphRAG的应用,LLMs将在更广泛的领域展现其真正的潜力,为数据探索和分析带来前所未有的效率和深度。

通过GraphRAG,我们见证了LLMs如何克服挑战,实现对复杂和私有数据的深入理解和利用。这项技术不仅体现了微软研究院在LLM领域的持续创新,也为全球数据科学家和企业开辟了新的可能,让他们能够更有效地挖掘和利用内部数据的价值。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/43822.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Hadoop-15-Hive 元数据管理与存储 Metadata 内嵌模式 本地模式 远程模式 集群规划配置 启动服务 3节点云服务器实测

章节内容 上一节我们完成了: Hive中数据导出:HDFSHQL操作上传内容至Hive、增删改查等操作 背景介绍 这里是三台公网云服务器,每台 2C4G,搭建一个Hadoop的学习环境,供我学习。 之前已经在 VM 虚拟机上搭建过一次&am…

简单的基追踪一维信号降噪方法(MATLAB 2018)

基追踪法是基于冗余过完备字典下的一种信号稀疏表示方法。该方法具有可提高信号的稀疏性、实现阈值降噪和提高时频分辨率等优点。基追踪法采用表示系数的范数作为信号来度量稀疏性,通过最小化l型范数将信号稀疏表示问题定义为一类有约束的极值问题,进而转…

SpringSecurity中文文档(Servlet Authorize HttpServletRequests)

Authorize HttpServletRequests SpringSecurity 允许您在请求级别对授权进行建模。例如,对于 Spring Security,可以说/admin 下的所有页面都需要一个权限,而其他所有页面只需要身份验证。 默认情况下,SpringSecurity 要求对每个…

Umi.js 项目中使用 Web Worker

1.配置 Umi.js 在 Umi.js 中,需要通过配置来扩展 Webpack 的功能。在项目根目录下修改 config/config.ts 文件: export default defineConfig({chainWebpack(config) {config.module.rule(worker).test(/\.worker\.ts$/).use(worker-loader).loader(wo…

C语言之指针的奥秘(二)

一、数组名的理解 int arr[10]{1,2,3,4,5,6,7,8,9,10}; int *p&arr[0]; 这里使用 &arr[0] 的⽅式拿到了数组第⼀个元素的地址,但是其实数组名本来就是地址,而且是数组首元素的地址。如下: 我们发现数组名和数组⾸元素的地址打印出…

重要文件放u盘还是硬盘?硬盘和u盘哪个适合长期存储

在数字时代,我们每天都会处理大量的文件。其中,不乏一些对我们而言至关重要的文件,如家庭照片、工作文档、财务记录等。面对这些重要文件的存储问题,我们通常会面临:“重要文件放U盘还是硬盘”、“硬盘和U盘哪个适合长…

Vue2打包部署后动态修改后端接口地址的解决方法

文章目录 前言一、背景二、解决方法1.在public文件夹下创建config文件夹,并创建config.js文件2.编写config.js内容3.在index.html中加载config.js4.在封装axios工具类的js中修改配置 总结 前言 本篇文章将介绍使用Vue2开发前后端分离项目时,前端打包部署…

系统架构师考点--系统安全

大家好。今天我来总结一下系统安全相关的考点,这类考点每年都会考到,一般是在上午场客观题,占2-4分。 一、信息安全基础知识 信息安全包括5个基本要素:机密性、完整性、可用性、可控性与可审查性 (1)机密性:确保信息…

Navicat导入sql文件

文章目录 Navicat导入SQL文件,使用默认导入,不做任何修改报错尝试一修改运行时的选择 尝试二修改my.ini的配置文件 Navicat导入SQL文件,使用默认导入,不做任何修改报错 尝试一 修改运行时的选择 取消勾选 ‘每个运行中运行多重查…

3,区块链加密(react+区块链实战)

3,区块链加密(react区块链实战) 3.1 哈希3.2 pow-pos-dpos3.3非对称加密(1)对称加密AES(2)非对称加密RSA 3.4 拜占庭将军3.5 P2P网络3.6 区块链 3.1 哈希 密码学,区块链的技术名词 …

【Git的基本操作】版本回退 | 撤销修改的三种情况 | 删除文件

目录 5.版本回退 5.1选项hard&后悔药 5.2后悔药&commit id 5.3版本回退的原理 6.撤销修改 6.1情况一 6.2情况二 6.3情况三 ​7.删除文件 Git重要能力之一马,版本回退功能。Git是版本控制系统,能够管理文件历史版本。本篇以ReadMe文件为…

神器!3个免费PPT成品网站推荐+3款AIPPT工具盘点!

熬夜加班做PPT却没有头绪?别再自己憋着想了!现在凡事主打一个“抄作业”,想做ppt却没想法,可以去到ppt成品网站搜集PPT模板,或是使用时下流行的AI生成PPT工具,只需输入PPT主题,即可快速生成一份…

全网最详细的CRC讲解即计算

CRC 循环冗余码(Cyclic Redundancy Code, CRC)是一种用于校验通信链路上数字传输准确性的计算方法(通过某种数学运算来建立数据位和校验位(CRC)的约定关系的)。它是利用除法以及余数的原理来作错误侦测。 发送方: 使用…

客户关系管理怎么做?这4个工具一定要会用!

在商海浮沉中,每一位企业家和销售经理都深知,客户是企业生存与发展的基石。但如何有效管理这些宝贵的资源,让每一次互动都成为加深关系、促进成交的契机,却是一门艺术加科学的结合体。今天,咱们就来聊聊客户关系管理&a…

3SRB5016-ASEMI逆变箱专用3SRB5016

编辑:ll 3SRB5016-ASEMI逆变箱专用3SRB5016 型号:3SRB5016 品牌:ASEMI 封装:SGBJ-5 批号:2024 现货:50000 最大重复峰值反向电压:1600V 最大正向平均整流电流(Vdss):50A 功…

Kodcloud可道云安装与一键发布上线实现远程访问详细教程

文章目录 1.前言2. Kodcloud网站搭建2.1. Kodcloud下载和安装2.2 Kodcloud网页测试 3. cpolar内网穿透的安装和注册4. 本地网页发布4.1 Cpolar云端设置4.2 Cpolar本地设置 5. 公网访问测试6.结语 1.前言 本文主要为大家介绍一款国人自研的在线Web文件管理器可道云,…

唐刘:当 SaaS 爱上 TiDB(一)- 行业挑战与 TiDB 的应对之道

导读 在 TiDB 8.1 发布后,TiDB 展现了强大的支持 SaaS 业务的能力,成为 SaaS 业务数据库的优先选择之一。 本文为“当 SaaS 爱上 TiDB”系列文章的第一篇,系列文章将从技术原理和真实用户体验两个角度深入探讨 TiDB 在 SaaS 业务中的表现&a…

太速科技-3U VPX飞腾处理器刀片计算机

3U VPX飞腾处理器刀片计算机 一 、产品概述 该产品是一款基于国产飞腾FT2000 4核或腾锐D2000 8核的高性能3U VPX刀片式计算机。产品提供了4个x4 PCIe 3.0总线接口,同时可配置为1个x16或2个x8 PCIe3.0接口,因此具有很强的扩展性,极大…

agents 分类

一、分类 自动agent、半自动agent、领域、自定义sop和支持人为干预的agent。 先泼个冷水,目前这些agent项目都是实验品,发展还没有做知识库问答相关开源项目那么成熟, 二、全自动agent autoGPT、loopGPT、babyAGI 全自动agent就是人类不可…

实例演示Kafka-Stream消息流式处理流程及原理

以下结合案例&#xff1a;统计消息中单词出现次数&#xff0c;来测试并说明kafka消息流式处理的执行流程 Maven依赖 <dependencies><dependency><groupId>org.apache.kafka</groupId><artifactId>kafka-streams</artifactId><exclusio…