AI 文摘

微软提出的GraphRAG解决了什么问题





作者: 数翼 来源: 数翼

微软研究院今年2月份提出了 GraphRAG,并证实了其在关联和全局性问题上由于传统的RAG。并于今年七月份开源]了用于 GraphRAG 的工具[1]。本文带大家了解 GraphRAG 是什么,解决了哪两类 传统 RAG 表现不好的问题。

背景

LLM 面临的最大挑战(也是最大的机遇)或许是将其强大的能力扩展到解决训练数据之外的问题 , 并使用 LLM 从未见过的数据获得可用的结果。

我们一提到大模型(LLM),总是提到大模型的幻觉,但是没有人思考幻觉背后哲学的原因,甚至很少人能准确描述 什么时候幻觉。前面引用的这句话很好的诠释了为什么大模型那么执着幻觉。

只有当大模型想把自己的能力运用到「解决训练数据之外的问题」的问题时,才会产生幻觉,而幻觉何尝不是大模型努力的表现。

RAG 是一个解决幻觉问题的一个重要方法,他使用外部资料来弥补大模型训练数据不足,或者面临新领域问题 没有训练数据支撑的问题。

今天介绍的就是微软研究院创建的 GraphRAG,如今被认为是增加 LLM 能力的一项重大进步。

检索增强生成 (RAG)检索增强生成 (RAG) 是一种根据用户查询搜索信息并提供结果作为 AI 答案生成参考的技术。这种技术是大多数基于 LLM 的工具的重要组成部分,大多数 RAG 方法都使用向量相似度 作为搜索技术。

GraphRAG 是 RAG 技术的一个改进,使用 LLM 生成的知识图谱 (通常RAG使用文本数据),GraphRAG 在对复杂信息进行文档分析时 显著提高了问答性能。

如何评估 GraphRAG

微软的研究表明,GraphRAG 在私有数据集 执行查找发现时比传统 RAG 的性能有快速的增强。

私有数据集私有数据集定义为 LLM 未经过训练且从未见过的数据,例如企业的专有研究、商业文档或通信。

基准 RAG

作为对比,微软研究时也创建了基线 RAG ,但实际情况是基线 RAG 表现地非常差。例如:

  • • 基线 RAG难以将各个点连接起来 。当回答问题需要通过共享属性遍历不同的信息片段以提供新的综合见解时,就会发生这种情况。

  • • 当被要求全面理解大型数据集合 甚至单个大型文档中的总结语义概念时,基线 RAG 的表现不佳。

其实从 RAG 的原理不难看出上面两点问题传统RAG 无法解决,或者没有好的效果。

RAG的大致过程是:

  • • RAG 首先会切分文档

  • • 然后进行向量匹配,召回 TopN

  • • 填充上下文让 LLM 进行回答

对于多点的串联、或者全文的理解,RAG 从原理上就没有对这类问题有涉及。

基准 RAG 的实现微软使用LangChain问答[2] 作为本次比较的基准 RAG,LangChain问答是目前广泛使用的此类 RAG 工具的著名代表示例。

上述 RAG 的难题,业界都在努力解决,比如我们去年介绍过很多次的 LlamaIndex[3], 就提供了很多高级的 RAG 方法。

微软研究院给出的方法是方案正是:GraphRAG。GraphRAG 通过如下步骤:

  • • 使用 LLM 基于私有数据集创建知识图谱;

  • • 然后,该图谱与图机器学习一起使用,

  • • 在查询时执行即时增强

最终在回答上述两类问题方面表现出了显著的进步。

私有数据集

为了证明 GraphRAG 的有效性, 微软研究院使用了 2023 年 6 月(至2024年2月)以来自俄罗斯和乌克兰新闻来源的数千篇新闻文章(翻译成英文), 用以创建一个私有数据集,并且在该数据集上执行基于 LLM 的检索。

数千篇文章的数据集太大,无法放入 LLM 上下文窗口,因此需要采用 RAG 方法,也正是此次实验的前提。

GraphRAG 连接的能力

问题1

先问一个基础的问题。

提问:

新俄罗斯是什么?

What is Novorossiya?

基线 RAG 的回答:

在提供的上下文中没有提到“新俄罗斯”一词。但是,为了提供一些信息,新俄罗斯是一个历史术语, 指的是乌克兰南部的一个地区,该地区于 18 世纪被俄罗斯帝国征服。近年来,俄罗斯支持的乌克兰东部分离主义者重新使用这个词来指代他们声称拥有的领土, 但它并未被国际机构正式承认为一个独立实体。

Graph RAG 的回答:

新俄罗斯(Novorossiya),又称新俄罗斯(New Russia), 是一个具有历史和当代意义的术语。从历史上看,它指的是俄罗斯帝国南部的一个地区, 现在是乌克兰的一部分。在当代背景下, 亲俄分裂分子用它来指代乌克兰的某些地区 [数据:实体 (6494, 912, 6493)]。

新俄罗斯一词曾用于乌克兰的政治运动,尤其是俄罗斯民族主义者。这场运动与破坏乌克兰稳定和建立所谓的“新俄罗斯”的努力有关 [数据:实体 (912);关系 (15211, 15206)]。该术语还被用来表示乌克兰的一个分离主义国家,即新俄罗斯联邦共和国 (FRN) [数据:实体 (7690)]。

上面的结果中,我们可以看到两个系统都表现良好。

问题2

下面尝试一个需要连接点的查询:

提问:

新俄罗斯做了什么?

What has Novorossiya done?

基线 RAG 的回答:

文中没有提供新俄罗斯所做之事的具体信息。

GraphRAG 的回答:

乌克兰的一个政治运动组织新俄罗斯参与了一系列破坏活动, 特别是针对乌克兰的各种实体 [实体 (6494, 912)]。该运动与破坏乌克兰多个实体财产的计划有关,包括罗森、敖德萨罐头厂、敖德萨地区广播电视传输中心和乌克兰国家电视公司 [关系 (15207, 15208, 15209, 15210)]。除此之外,新俄罗斯还与破坏罗森、敖德萨音乐学院工厂、敖德萨地区广播电视传输中心和乌克兰国家电信公司的财产的计划有关 [关系 (8329, 8330, 8331, 8332)]。此外,新俄罗斯还涉嫌炸毁乌克兰最大国有银行 PrivatBank 的自动取款机 [关系 (8335, 8335)]。

乌克兰总检察长办公室报告了新俄罗斯的成立,表明政府对该运动活动的认识和潜在担忧 [关系 (8264, 8264)]。新俄罗斯的破坏性活动对目标实体产生了重大影响,并可能加剧了该地区持续的紧张局势和冲突。总之,新俄罗斯参与了一系列针对乌克兰各实体的破坏性活动。这些活动对目标实体产生了重大影响,并可能加剧了该地区持续的紧张局势和冲突。乌克兰政府通过总检察长办公室承认了新俄罗斯的存在和活动,表明对该运动的行为感到一定程度的担忧。

基准 RAG 无法回答这个问题。原因是插入上下文窗口的源文档没有任何文本片段讨论新俄罗斯。

基线 RAG 检索上下文窗口

相比之下,GraphRAG 方法在查询 Novorossiya 中发现了一个实体。这使得 LLM 能够在图中立足,并通过指向原始支持文本的链接得出包含出处的更优答案。

例如,下图显示了 LLM 用于 LLM 生成的声明『Novorossiya 涉嫌炸毁 ATM 机的计划』的确切内容。我们看到了原始源文档(经过英文翻译)中的片段, LLM 使用该片段通过图中两个实体之间存在的关系来支持特定银行是 Novorossiya 的目标这一断言。

GraphRAG 出处

通过使用 LLM 生成的知识图谱,GraphRAG 极大地改进了 RAG 的检索 部分, 用更高相关性的内容填充上下文窗口,从而得到更好的答案并捕获证据来源。

GraphRAG 对整个数据集推理

接下来我们看 GraphRAG 对整个数据集推理能力。

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

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

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

问题1

提问:

数据中的前 5 个主题是什么?

基准 RAG 的回答

    1. 改善城市生活质量和城市发展。
    1. 弗拉基米尔·普京与阿联酋总统穆罕默德·本·扎耶德·阿勒纳哈扬会晤。
    1. 俄罗斯各地区投资环境全国评级。
    1. 俄罗斯经济状况和国内品牌增长。
    1. 讨论生命的意义以及科学在理解生命中的作用。

GraphRAG 的回答:

数据呈现出广泛的主题,但最常见的五个主题可以确定如下:

  1. 1.冲突与军事活动 :很大一部分数据围绕乌克兰持续的冲突,许多报告详细介绍了各种实体的军事活动、占领和袭击。这一主题包括乌克兰军队、俄罗斯军队和其他各种军事单位和实体的行动 [数据:报告(513、241、151、493、343、+更多)]。

  2. 2.政治和政府实体 :许多报告关注政治人物和政府实体,强调他们在当前形势下的角色、关系和行动。这包括克里姆林宫、乌克兰总统、美国国务院和各地区政府等实体 [数据:报告(98、493、265、129、196、+更多)]。

  3. 3.基础设施和环境问题 :多份报告强调了潜在的环境影响和基础设施威胁。这些包括因工业活动造成的潜在环境破坏、洪水危机以及军事冲突对基础设施造成的威胁 [数据:报告(308、154、201、348、216、+更多)]。

  4. 4.社区分析和威胁评估 :有几份报告对特定社区进行了详细的分析,通常以特定的地点或实体为中心。这些分析通常讨论社区内的关键实体、它们的关系以及任何相关威胁。许多报告还包括对与他们讨论的实体或情况相关的潜在威胁的评估 [数据:报告(323、596、518、583、179、+更多)]。

  5. 5.健康、人道主义关切和紧急情况 :一些报告重点关注健康和人道主义问题,例如 Shereshevsky-Turner 综合征社区和敖德萨地区肠道疾病的潜在风险。数据还涵盖紧急情况,包括自然灾害、事故和袭击 [数据:报告(204、149、372、154、532 等)]。

这些主题全面概述了当前局势,突出了当前问题的复杂性和相互关联性。

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

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

GraphRAG 基本流程

GraphRAG 中的『Graph』是由 LLM 自动生成的,GraphRAG 的实现也严重依赖这个 LLM 生成的知识图谱。

GraphRAG 的基本流程:

  • • LLM 处理整个私有数据集,创建对源数据内所有实体和关系的引用,然后使用这些引用创建 LLM 生成的知识图。

  • • 然后,该图用于创建自下而上的聚类,将数据按层次结构组织成语义聚类(下图中用颜色表示)。这种划分允许预先汇总语义概念和主题,这有助于全面理解数据集。

  • • 在查询时,这两种结构都用于为回答问题时的 LLM 上下文窗口提供材料。

使用 GPT-4 Turbo 从私有数据集构建的 LLM 生成的知识图谱

上面显示了该图的一个可视化示例。每个圆圈代表一个实体(例如,一个人、一个地点或一个组织),实体大小表示该实体具有的关系数量,颜色表示相似实体的分组。颜色分区是一种建立在图形结构之上的自下而上的聚类方法,它使我们能够回答不同抽象层次的问题。

局限性

前面提了 GraphRAG 的优点,现在看看他的局限性。

首先:构建图索引的难度 。GraphRAG 依赖于精心构建的索引 示例。对于一般应用(例如围绕人物、地点、组织、事物等的内容),我们提供示例索引提示。对于独特的数据集,有效的索引可能取决于对特定领域概念的正确识别。

其次,索引是一种相对昂贵的操作 (也就是说非常耗费Token);缓解索引的最佳实践是在目标域中创建一个小型测试数据集,以确保在进行大型索引操作之前索引器的性能。

结语

至此,我们已经了解了 GraphRAG 为什么而生,解决了传统 RAG 的什么问题, 以及在哪些问题领域有着先进性。

一些资源:

  • • GraphRAG论文[4] * • GraphRAG 文档[5]

  • • GraphRAG 代码库[6] #### 引用链接

[1] GraphRAG 的工具: https://github.com/microsoft/graphrag
[2] LangChain问答: https://python.langchain.com/v0.1/docs/use_cases/question_answering/
[3] LlamaIndex: https://www.llamaindex.ai/
[4] GraphRAG论文: https://arxiv.org/pdf/2404.16130
[5] GraphRAG 文档: https://microsoft.github.io/graphrag/
[6] GraphRAG 代码库: https://github.com/microsoft/graphrag

更多AI工具,参考Github-AiBard123国内AiBard123

可关注我们的公众号:每天AI新工具