微软开源项目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领域的持续创新,也为全球数据科学家和企业开辟了新的可能,让他们能够更有效地挖掘和利用内部数据的价值。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【C++】C++ 汽车租赁管理系统(源码+论文)【500+行代码】【独一无二】

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化【获取源码商业合作】 👉荣__誉👈:阿里云博客专家博主、5…

CAN总线实战项目:使用STM32和PCAN-View实现数据采集与监控系统(附完整代码)

摘要: 本文深入浅出地介绍CAN(Controller Area Network,控制器局域网络)总线协议,涵盖其基础概念、报文帧格式、仲裁机制、错误处理等关键知识。同时,文章结合STM32平台,从硬件设计、软件开发到实战案例&am…

【益起童行】为“来自星星的孩子”点亮希望之光

在未来的日子里, 我期望每一个孩子都能得到优质的干预治疗,让他们在未来能够过上正常、快乐的生活。 我也期望每一个家庭都能战胜困境,迎来美好。 作为社会的一份子,我愿意为这繁华人世贡献出自己微不足道但却真挚的力量&#xff…

24暑假计划

暑假计划: 1.从明天起开始将C语言的部分补充完整,这部分的预计在7月24日前完成 2.由于之前的文章内容冗余,接下来进行C语言数据结构的重新编写和后面内容的补充预计8月10号前完成 3.后续开始C的初级学习

新加坡很火的slots游戏代投Facebook广告新流量趋势

新加坡很火的slots游戏代投Facebook广告新流量趋势 在新加坡这片充满活力的土地上,Slots游戏以其独特的魅力和吸引力,迅速成为了许多玩家的心头好。而Facebook,作为全球最大的社交媒体平台之一,为Slots游戏的推广提供了得天独厚的…

element-plus 按需导入问题 404等问题

场景 新开一个项目,需要用element-plus这个ui库,使用按需引入。 这是我项目的一些版本号 "element-plus": "^2.7.6","vue": "^3.2.13","vue-router": "^4.0.3",过程(看解决方法…

【MySQL】常见的MySQL日志都有什么用?

MySQL日志的内容非常重要,面试中经常会被问到。同时,掌握日志相关的知识也有利于我们理解MySQL 底层原理,必要时帮助我们排查解决问题。 MySQL中常见的日志类型主要有下面几类(针对的是InnoDB 存储引擎): 错误日志(error log):对 MySQL 的启…

利用Python与uiautomator2实现【手机群控】

利用Python与uiautomator2实现多设备自动化测试 引言 在移动应用测试中,自动化测试是一种提高测试效率和覆盖率的有效手段。本文将介绍如何使用Python语言结合uiautomator2库来实现对多个设备的并行自动化测试。 老规矩先放实现的效果 环境准备 Python环境安装u…

评价妙笔生词智能写歌词软件:助力与局限并存

在音乐创作的领域,科技的发展催生了各种创新工具,妙笔生词智能写歌词软件便是其中引人注目的一项。对于这款软件,我们需要以客观和全面的视角来进行评估,因为它既带来了显著的助力,同时也存在不可忽视的局限。 妙笔生…

Iridient Developer:解锁Mac RAW图像处理的极致潜力,打造专业级色彩与细节

Iridient Developer for Mac是一款专为Mac用户设计的RAW图像调整软件,它以其卓越的性能和丰富的功能,赢得了众多摄影师的青睐。以下是对这款软件的详细介绍: 一、强大的RAW图像处理能力 Iridient Developer专为处理RAW图像而设计&#xff0…

JAVA毕业设计146—基于Java+Springboot+vue+uniapp的景区旅游购票小程序(源代码+数据库+9000字论文)

毕设所有选题: https://blog.csdn.net/2303_76227485/article/details/131104075 基于JavaSpringbootvueuniapp的景区旅游购票小程序(源代码数据库9000字论文)146 一、系统介绍 本项目前后端分离,分为用户、管理员两种角色 1、用户: 注册…

PHP充电桩小程序系统源码

绿色出行新伴侣!充电桩小程序,让充电不再烦恼✨ 🔋 开篇:告别电量焦虑,充电桩小程序来救场! 在这个电动车日益普及的时代,电量不足成了不少车主的“心头大患”。但别担心,充电桩小…

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

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

MongoDB教程(二):mongoDB引用shell

💝💝💝首先,欢迎各位来到我的博客,很高兴能够在这里和您见面!希望您在这里不仅可以有所收获,同时也能感受到一份轻松欢乐的氛围,祝你生活愉快! 文章目录 引言一、MongoD…

为企业提升销售工作效率的工作手机管理系统

在竞争日益激烈的市场环境中,企业的销售团队如同前线战士,其作战效率直接关乎企业的生存与发展。然而,传统销售管理模式下的信息孤岛、沟通不畅、数据混乱等问题,正悄然成为制约销售效率提升的瓶颈。今天,我们为您揭秘…

VR头显如何低延迟播放8K的RTSP|RTMP流

技术背景 我们在做Unity平台RTSP、RTMP播放器的时候,有公司提出来这样的技术需求,希望在头显播放全景的8K RTSP|RTMP直播流,8K的数据,对头显和播放器,都提出了新的要求,我们从几个方面,探讨下V…

mongo数据库迁移

前言 mongo数据库迁移的方式目前常见的有两种: 1,mongodump与mongorestore 2,mongoimport与mongoexport 二者主要区别有: 1、mongoexport 可以导出json和csv格式, mongodump导出的是bson可读性不如前者 2,…

智慧金融-数据可视化

智慧金融-数据可视化 导入所需的库 import numpy as np import numpy_financial as npf import matplotlib.pyplot as plt from pylab import mpl mpl.rcParams[font.sans-serif][FangSong] mpl.rcParams[axes.unicode_minus]False单图曲线图 r 0.05 # 贷款的年利率 n 30…

LeetCode LCR024.反转链表 经典题目 C写法

LeetCode LCR024.反转链表 经典题目C写法 第一种思路🧐: ​ 使用三个指针,n1,n2,n3,n1为空,n2为头结点,n3为头结点的next。开始反转后,n1赋值给n2的next,n2赋值给n1,n3赋…

深入理解FFmpeg--libavformat接口使用(一)

libavformat(lavf)是一个用于处理各种媒体容器格式的库。它的主要两个目的是去复用(即将媒体文件拆分为组件流)和复用的反向过程(以指定的容器格式写入提供的数据)。它还有一个I/O模块,支持多种…