The GraphRAG Manifesto: 为生成式 AI 增加知识 - 图数据库与分析 [译]

作者:

Philip Rathle

我们正在进入 RAG 的“蓝色链接”时代

The GraphRAG Manifesto.
The GraphRAG Manifesto.

我们正处在一个关键时刻,要在生成式 AI (GenAI) 领域做出任何显著有用的事情,不能仅仅依赖 自回归的大语言模型 (LLMs) 来做出决策。我知道你在想什么:“RAG 是答案。”或者微调,或者 GPT-5。

是的。像基于向量的 RAG 和微调这样的技术可以有所帮助。而且它们对于某些用例来说已经足够好了。但是还有另一类用例,这些技术都会碰到瓶颈。基于向量的 RAG——与微调一样——增加了许多类型问题正确答案的概率。然而,这两种技术都不能提供正确答案的确定性。它们通常也缺乏上下文、细节以及与你已知事实的联系。此外,这些工具不会给你留下很多关于为什么它们做出特定决策的线索。

早在 2012 年,Google 通过一篇著名的博客文章“Introducing the Knowledge Graph: things, not strings1”推出了他们的第二代搜索引擎。他们发现,如果使用知识图谱来组织所有这些网页中的字符串所代表的事物,除了也进行所有字符串处理外,能力可以实现巨大飞跃。我们今天在 GenAI 中看到了同样的模式展开。许多 GenAI 项目都在碰到一个瓶颈,结果的质量受到使用的解决方案处理字符串而不是事物的事实的限制。

时至今日,前沿的 AI 工程师 和学术研究人员发现了谷歌曾发现的一个重要秘密:突破瓶颈的关键在于知识图谱。也就是说,将关于具体事物的知识融入基于统计的文本技术中。这就像其他类型的 RAG(检索增强生成)一样,只不过除了调用矢量索引外,还要调用知识图谱。换句话说,就是 GraphRAG

这篇文章旨在全面且易懂地介绍 GraphRAG。事实证明,构建数据的知识图谱并在 RAG 中使用它能带来多项强大优势。大量研究表明,它能为你提供更好的答案,解决你使用普通仅矢量 RAG 向大语言模型 (LLM) 提出的大多数(如果不是全部的话)问题。

这项优势本身将大大推动 GraphRAG 的采用。除此之外,在构建应用程序时,由于数据是可视的,开发过程更加轻松。第三个主要优点是,知识图谱不仅便于机器理解和推理,人类也能轻松掌握。因此,使用 GraphRAG 构建应用程序更容易,结果更好,且——这在许多行业中至关重要——具有可解释性和可审计性!我相信 GraphRAG 将取代仅矢量 RAG,成为大多数应用场景的默认 RAG 架构。这篇文章将解释其中的原因。

什么是图?

我们所说的图,是指这样的:

图的示例。
图的示例。

尽管这张图片被广泛用于展示知识图谱,但它的原始来源和作者仍未被确认。已知最早使用是在 Farahnaz Akrami 的这篇 Medium 文章中。如果你是这张图片的创作者,请联系我们以便进行适当的归属。

或者这样的:

权力的游戏图。
权力的游戏图。

由 William Lyon 创作的权力的游戏图可视化

再比如这个:

伦敦地铁图的图。
伦敦地铁图的图。

伦敦地铁图(来源:伦敦交通局)。有趣的是,伦敦交通局最近部署了一个基于图技术的数字孪生系统,以改进事故响应并减少拥堵。

换句话说,不是一个图表

如果你想要深入了解图和知识图谱,我建议你访问Neo4j 的 GraphAcademy或者参加 Andrew Ng 的 Deeplearning.ai 课程关于 RAG 的知识图谱。我们在这里不会详细定义这些概念,假设你已经有基本的图知识。

如果你理解上面的图片,你就能明白如何在 RAG 管道中查询基础知识图谱数据(存储在图数据库中)。这就是 GraphRAG 的核心概念。

两种知识表示方式:向量和图

典型的 RAG 的核心是向量搜索,它接收一段文本,并从候选的材料中返回概念上相似的文本。这一过程非常神奇,对基本搜索非常有用。

每次进行这种操作时,你可能不会想到向量的具体形式或相似性计算的原理。让我们来看一下一个苹果在人类、向量和图的表示方式:

一个苹果:人类视角 vs. 向量视角 vs. 知识图谱视角。
一个苹果:人类视角 vs. 向量视角 vs. 知识图谱视角。

人类对苹果的表示是复杂且多维的,难以完全在纸上表达。让我们发挥一点想象力,认为这张美丽诱人的图片代表了苹果在感知和概念上的完整形象。

苹果的向量表示是一个数字数组,是统计学的产物。向量的神奇之处在于它们能够以编码形式捕捉对应文本的本质。然而,在 RAG 的语境中,向量只有在你需要比较一组词语与另一组词语的相似性时才有用。进行这种比较的过程非常简单,只需运行相似性计算(即向量数学)并获得匹配结果。但如果你想理解向量内部的内容,了解它周围的环境,或者理解这些内容在更大背景中的意义,向量作为一种表示方式就显得不足。

相比之下,知识图谱是一种声明性的表示方式,或者用 AI 的术语来说,是符号化的表示方式。这样,人类和机器都可以理解和推理知识图谱。这是一个重大突破,我们会在后面进一步讨论。此外,你还可以查询、可视化、注释、修正和扩展知识图谱。知识图谱代表了你的世界模型,即你所研究领域的那部分世界。

GraphRAG “vs.” RAG

这不是一个竞争的问题🙂 向量查询和图查询在 RAG 中各有其独特的价值。正如 LlamaIndex 创始人 Jerry Liu 所说,GraphRAG 实际上是包含了向量查询的一部分。这与单纯基于文本中词语嵌入相似性的“仅向量 RAG”不同。从本质上说,GraphRAG 还是 RAG,只不过它的检索路径中加入了知识图谱。如下图所示,GraphRAG 的核心模式非常简单明了。它的架构基本上与 RAG 类似,只是加入了一个知识图谱。

GraphRAG 模式

GraphRAG 的一种常见模式。
GraphRAG 的一种常见模式。

在这里,您可以看到一个图查询被触发。这个查询可以选择性地包含向量相似性组件。您可以选择将图和向量分别存储在两个独立的数据库中,也可以使用像 Neo4j 这样同时支持向量搜索的图数据库。

使用 GraphRAG 的一种常见模式如下:

  1. 进行向量或关键字搜索以找到初始节点集。
  2. 遍历图谱以获取相关节点的信息。
  3. 可选地,使用基于图的排序算法(如 PageRank)对文档进行重新排序。

不同的使用案例会有不同的模式,就像当前 AI 领域的其他方面一样,GraphRAG 是一个充满机遇的领域,每周都有新发现。我们将在未来的博客文章中介绍当下最常见的 GraphRAG 模式。

GraphRAG 生命周期

使用 GraphRAG 的生成式 AI 应用程序与其他 RAG 应用程序的模式相同,只是在开始时多了一个“创建图”的步骤:

GraphRAG 生命周期。
GraphRAG 生命周期。

创建图类似于将文档分块后加载到向量数据库中。工具的进步使得创建图变得非常简单。这里有三个好消息:

  1. 图具有高度的迭代性——你可以从“最低可行图”开始,逐步扩展。
  2. 一旦你的数据进入知识图,演进变得非常容易。你可以添加更多种类的数据,从而受益于数据的网络效应。同时,你还可以提高数据质量,提升应用程序的结果价值。
  3. 这部分技术栈在快速改进,这意味着随着工具的不断升级,创建图将变得越来越容易。

在之前的流程图中加入创建图的步骤,你会得到如下的管道:

将图的创建步骤添加到流程中。
将图的创建步骤添加到流程中。

稍后我会详细介绍 图的创建。现在,我们先来讨论一下 GraphRAG 的好处。

为什么选择 GraphRAG?

与仅使用向量的 RAG 相比,GraphRAG 主要有三个方面的优势:

  1. 更高的准确性和更完整的答案(运行时/生产 受益)
  2. 创建知识图后,构建和维护 RAG 应用程序更加容易(开发时间 受益)
  3. 提供更好的可解释性、可追溯性和访问控制(治理 受益)

让我们详细探讨这些优势:

#1: 更高的准确性和更有用的答案

GraphRAG 的首个(也是最直接可见的)好处是更高质量的回答。除了我们客户提供的越来越多的实例外,越来越多的学术研究也支持这一点。一个例子是数据目录公司 Data.world。2023 年底,他们发布了一项研究,显示GraphRAG 平均提高了大语言模型(LLM)回答准确性 3 倍,涵盖了 43 个业务问题。基准测试发现,使用知识图谱支持的回答准确性显著提高。

知识图谱使 LLM 回答的准确性提高了 54.2%,平均提高了 3 倍。
知识图谱使 LLM 回答的准确性提高了 54.2%,平均提高了 3 倍。

最近,更为人所知的是微软自 2024 年 2 月开始的一系列帖子,其中包括一篇研究博客文章GraphRAG: Unlocking LLM discovery on narrative private data,以及相关的研究论文软件发布。在这些文章中,他们观察到基础的 RAG(即使用向量)有以下两个问题:

  • 基础 RAG 难以连接信息点。这种情况发生在回答问题时,需要通过共享属性遍历不同的信息片段以提供新的综合见解。
  • 基础 RAG 在被要求全面理解大量数据集合或单个大型文档中的总结语义概念时表现不佳。

微软发现,“通过使用 LLM 生成的知识图谱,GraphRAG 极大地改进了 RAG 的‘检索’部分,将更高相关性的内容填充到上下文窗口中,提供更好的答案并捕获证据来源。 他们还发现GraphRAG 比其他方法需要少 26% 到 97% 的 tokens,这不仅使其在提供答案方面更好,而且更便宜、更具可扩展性7

深入探讨准确性的话题,不仅仅是答案是否_正确_很重要,答案的_有用性_也同样关键。通过 GraphRAG 技术,研究人员发现答案不仅更准确,而且更丰富、更完整、更有用。LinkedIn 最近的一篇论文 描述了 GraphRAG 对其客户服务应用的影响,提供了一个很好的例子。GraphRAG 不仅提高了回答客户服务问题的准确性和丰富性,还提高了答案的有用性,使他们的客户服务团队每个问题的中位解决时间减少了 28.6% 8

另一个类似的例子来自 由 Neo4j 及其合作伙伴 GCP、AWS 和 Microsoft 举办的一个 GenAI 研讨会。下面的示例查询,针对一组 SEC 文件,展示了在使用向量 + GraphRAG 与仅使用向量 RAG 时,所能得到的不同类型的答案:

仅向量方法与向量 + 图方法。
仅向量方法与向量 + 图方法。

请注意,描述可能受锂短缺影响的公司的 特征 与列出可能受影响的 具体公司 之间的区别。如果您是一位投资者,希望在市场变化时重新平衡您的投资组合,或者公司希望在自然灾害面前调整其供应链,那么获取具体公司的名单而不仅仅是特征,可能会带来巨大的改变。在这里,两种答案都是准确的,但显然第二种更有用。

第 23 集 的 Jesus Barrasa 的 Going Meta 提供了另一个使用法律文件案例的好例子,从词汇图开始。

那些观察 X-sphere 并活跃在 LinkedIn 上的人,会定期看到不仅来自实验室的新例子,还有来自实际应用的新例子。Lettria 的 Charles Borderie 提供了一个 例子,展示了仅向量 RAG 与 GraphRAG 的对比,以及一个基于大语言模型 (LLM) 的文本到图的管道,该管道将 10,000 篇金融文章导入知识图谱。

Retriever-only approach vs. graph retriever approach.
Retriever-only approach vs. graph retriever approach.

可以看到,与普通 RAG 相比,GraphRAG 的回答质量有了显著提升,而且所用的 token 数量减少了三分之一。

最后一个显著的例子来自 Writer。他们最近 发布了一份基于 RobustQA 框架的 RAG 基准报告,将他们的 GraphRAG 方法9与最佳的竞争对手工具进行了比较。GraphRAG 的得分为 86%,显著高于竞争对手的得分(33% 到 76%),且延迟相当或更低。

Evaluation of RAG approaches accuracy and response time.
Evaluation of RAG approaches accuracy and response time.

每周我都会与各行各业的客户会面,他们在各种生成式 AI 应用中都获得了类似的积极效果。知识图谱使得生成式 AI 的结果更准确、更有用,扫清了发展的障碍。

#2: 改善数据理解,加速迭代

知识图谱在概念上和视觉上都非常直观。通过探索知识图谱,常常会发现新的信息。许多用户意外发现,一旦投入时间创建知识图谱,它能够以意想不到的方式帮助他们构建和调试生成式 AI 应用。这部分是因为,将数据以图谱形式展示,能够生动地反映应用程序底层的数据情况。图谱还提供了回溯答案到数据,并在因果链上追溯这些数据的线索。

我们来看看上述锂暴露问题的例子。如果你可视化这些向量,会得到类似这样的图示,只是实际情况会有更多的行和列:

向量可视化。
向量可视化。

当你将数据作为图谱处理时,你可以以向量表示无法实现的方式理解它。

以下是 LlamaIndex 最近的一个网络研讨会10中的一个例子,展示了他们提取向量化块的图谱(词汇图谱)和 LLM 提取的实体(域图谱),并将两者通过“提及”关系连接在一起的能力:

提取词汇图谱和域图谱。
提取词汇图谱和域图谱。

(你可以在 LangchainHaystackSpringAI更多 中找到类似的例子。)

看着这个图,你可能会开始意识到,拥有一个结构丰富的数据存储位置,能够打开一系列新的开发和调试可能性。每个数据片段都保留了它们的价值,而结构本身则存储并传达了额外的信息,这些信息可以用来为应用程序添加更多智能。

这不仅仅是可视化效果。这也是数据结构化所带来的信息传达和存储的效果。以下是一位知名金融科技公司开发者在将知识图谱引入他们的 RAG 工作流程一周后的反应:

开发者对 GraphRAG 的反应。
开发者对 GraphRAG 的反应。

该开发人员的反应非常符合测试驱动开发的假设,即验证而不是信任答案是否正确。就我个人而言,我会感到非常不安,如果将我 100% 的自主权交给 SkyNet 来做完全不透明的决策!更具体地说,即使是不担忧 AI 的非悲观主义者也能理解,当看到一个数据块或文档与“Apple, Inc.”相关时,真的不应该被映射到“Apple Corps”。因为_数据_最终是生成式 AI 决策的驱动因素,因此拥有能够评估和确保正确性的工具是极其重要的。

#3: 治理:可解释性、安全性等

生成式 AI 决策的影响越大11,你就越需要能够让最终承担责任的人 信任 这个决策。这通常需要能够审计每个决策,并且有一个良好且可重复的决策记录。但这还不够。当有人质疑某个决策时,你还需要能够向他们解释其背后的推理。

大型语言模型 (LLMs) 本身并不提供一种好的方法来实现这一点。虽然你可以找到用于决策的文档引用,但这些引用并不能解释决策本身——更不用说大型语言模型有时会编造这些引用!知识图谱则在完全不同的层次上运行,使生成式 AI 管道内的推理逻辑更加清晰,输入数据也更容易解释。

让我们继续前面提到的一个例子,Lettria 的 Charles 使用从 10,000 篇金融文章中提取的实体加载一个知识图谱,并将其与大型语言模型结合用于 GraphRAG。我们看到这如何提供更好的答案。让我们看看数据:

从 10,000 篇金融文章中提取的实体加载知识图谱。
从 10,000 篇金融文章中提取的实体加载知识图谱。

将数据以图的形式展示是第一步。这些数据还可以导航和查询,随着时间推移可以进行更正和更新。治理的优势在于,更容易查看和审计数据的“世界模型”。使用图表使得最终负责决策的人更容易理解这些决策,相比直接提供相同数据的向量版本。在质量保证方面,将数据放在知识图谱中更容易发现数据中的错误和意外,并追溯到其来源。你还可以在图表中记录数据的出处和置信度信息,不仅用于计算,还用于解释。相比之下,只看相同数据的向量版本是无法做到这些的,正如我们之前讨论的那样,对于一般人——甚至是聪明的人来说,这些数据是相当难以理解的。

知识图谱还可以显著增强安全性和隐私性。虽然在构建原型时这点往往容易被忽视,但它是投入生产的关键步骤。如果你的行业是银行或医疗保健等受监管的业务,那么每个员工对信息的访问权限通常取决于其角色。大语言模型 (LLM) 和向量数据库都无法有效地根据角色限制信息范围。而在知识图谱中,可以通过权限设置来轻松管理这一点,使得任何用户访问数据的能力都由数据库控制,并排除他们无权查看的结果。下面是一个在知识图谱中实现的细粒度访问控制的简单安全策略示例:

An example of a simple security policy implemented in a knowledge graph.
An example of a simple security policy implemented in a knowledge graph.

知识图谱的创建

人们经常问我如何构建知识图谱。要回答这个问题,首先需要了解与生成式 AI 应用最相关的两种图谱:

  1. 领域图 是与您的应用程序相关的世界模型的图形表示。这里有一个简单的例子:

领域图。
领域图。

  1. 词汇图12 是文档结构的图。最基本的词汇图每个文本块都有一个节点:

词汇图。
词汇图。

人们通常会扩展它,以包括文本块和文档对象(例如表格)、章节、部分、页码、文档名称/ID、集合、来源等之间的关系。您还可以将领域图和词汇图结合起来,如下所示:

结合领域层和词汇层。
结合领域层和词汇层。

创建词汇图很简单,主要是简单的解析和分块策略13问题。至于领域图,有几种不同的路径,具体取决于您引入的数据是来自结构化源、非结构化文本,还是两者兼有。幸运的是,从非结构化数据源创建知识图谱的工具正在迅速改进。例如,新的 Neo4j 知识图谱生成器 可以处理 PDF 文档、网页、YouTube 剪辑或维基百科文章,并自动从中创建知识图谱。只需点击几下按钮,您就可以可视化(当然也可以查询)输入文本的领域图和词汇图。这既强大又有趣,大大降低了创建知识图谱的门槛。

关于客户、产品、地理位置等的数据可能以结构化形式存在于您的企业中,可以直接从其存储位置获取。对于最常见的情况,即数据存在于关系数据库中,您可以使用标准工具14,遵循行之有效的关系到图谱映射规则。

使用知识图谱

一旦您拥有了知识图谱,就有越来越多的框架可以用于进行 GraphRAG,例如 LlamaIndex Property Graph IndexLangchain 的 Neo4j 集成 以及 Haystack 等。这一领域发展迅速,现在编程方法变得越来越简便。

在图谱构建方面也是如此,像 Neo4j Importer 这样的工具,提供了一个图形化的用户界面,可以将表格数据映射并导入到图谱中,以及上文提到的 Neo4j 新推出的 v1 版本 LLM Knowledge Graph Builder。下图总结了构建知识图谱的步骤。

为生成式 AI 自动构建知识图谱。
为生成式 AI 自动构建知识图谱。

使用知识图谱的另一个常见操作是将人类语言的问题映射到图数据库查询中。Neo4j 新推出的开源工具 NeoConverse,旨在帮助实现对图谱的自然语言查询。这是朝着这一目标迈出的重要一步15

尽管开始使用图谱需要一些工作和学习,但好消息是,随着工具的改进,这变得越来越容易了。

结论:GraphRAG 是 RAG 的下一步自然进化

大语言模型 (LLM) 和基于向量的 RAG 所具有的词汇计算和语言技能可以提供_不错的_结果。但要获得_卓越的_结果,我们需要超越字符串,捕捉_世界模型_,而不仅仅是_词语模型_。就像谷歌发现要掌握搜索技术,不仅需要进行文本分析,还需要绘制出字符串背后的事物,我们也开始在 AI 领域看到同样的模式出现。这种模式就是 GraphRAG。

技术进步遵循 S 曲线规律:当一项技术达到顶峰时,另一项技术会推动进步,并超越前者。随着生成式 AI (GenAI) 的发展,在答案质量至关重要的应用中;或在需要解释性的内部、外部或监管相关方的需求中;或在需要对数据访问进行隐私和安全控制的应用中,你的下一代生成式 AI 应用很可能会使用知识图谱。

生成式 AI 的进化。
生成式 AI 的进化。

GraphRAG,亲自体验一下吧!

如果你想深入了解 GraphRAG,建议你试试 Neo4j LLM Knowledge Graph Builder。这个简单的网页应用可以让你从 PDF、网页和 YouTube 视频等非结构化文本中,仅需几次点击,就能创建知识图谱。这个工具是你体验 GraphRAG 强大功能的理想选择。

通过 LLM Knowledge Graph Builder,你可以:

  • 连接到免费的 Neo4j 云端实例,并从你喜欢的文本来源构建图谱。
  • 通过互动可视化来探索你新创建的知识图谱。
  • 与数据互动,测试 GraphRAG 的效果。
  • 将知识图谱整合到应用中,发现新的洞见。

要开始,请 创建一个免费的 AuraDB 实例构建你的知识图谱。你可以在这里了解更多关于 Neo4j LLM Knowledge Graph Builder 的信息并获得导览 这里

致谢

许多人为这篇文章做出了贡献。我衷心感谢所有分享你们的学习成果、文章和代码的人——本文引用了许多这样的例子——并鼓励大家继续分享。正是这种社区的共享精神,使我们共同进步。

我还要感谢那些认识到 GraphRAG 重要性并慷慨地抽出时间审阅和评论这篇文章的人。他们的反馈常常基于他们自己的实践经验。

在此,我特别感谢一些你可能不会想到的“图世界”之外的人。我们共同见证了 GraphRAG 作为重要趋势的兴起,以及两个领域的融合。

最后,向所有人表达我最深切的感谢,包括(按姓氏字母顺序):

补充阅读

关于这个话题已经有很多文章,每天都有新的见解和实例出现。虽然我无法提供一个全面的列表,但如果你有兴趣了解更多,这里有一些特别优秀的文章可以参考:

1 阅读 这篇博客文章,看看 Google 在网络搜索方面的旅程如何成为了当前 GenAI 发展的绝佳类比。

2 注意:这些特定的数字可能并不真正代表苹果。这说明了向量和图之间的一个关键区别。

3 正如在“知识图谱创建”部分稍后讨论的那样,另一种不同于“领域图”的知识图谱正在出现并证明是有用的。这就是“词汇图”,它不是世界模型,而是向量块及其彼此之间以及与周围文档结构(表格/ 图形/ 页面/ 文档/ 集合/ 作者等)的关系图。

4 当然,这在现实中往往不是一个单一步骤,而是一个有自己步骤和逻辑的智能管道的一部分。这顺便说一下 也是一个图。随着这些变得越来越复杂,人们可能会看到将这些工作流和规则捕捉到图数据库中,而不是代码中。但我们还没有到那一步,这是一个不同的话题。

5 一旦你已经有了一个知识图谱,这个过程就会启动。这不是自动完成的,但你可能会对最新进展使其变得多么容易访问感到惊讶。因为这是一个如此基础的话题,我们在这一节之后专门讨论了构建知识图谱的科学与艺术。

6 知识图谱还可以帮助其他形式的可追溯性,例如捕捉数据在系统之间的流动(系统的系统/ 来源/ 数据谱系图)。它们还可以提供其他 AI 的好处,例如 跟踪已解析的实体。由于这里的重点是 GraphRAG,我们将把所有这些放在一边。

7 如果你想深入了解这一点并实际编写一些工作代码,我强烈推荐我的同事 Tomaz Bratanic 的帖子:用 Neo4j 和 LangChain 实现‘从本地到全球’GraphRAG:构建图。这将微软的工作更进一步,将其整合到 Neo4j + Langchain 管道中。

8 论文本身更详细地比较了 GraphRAG 和仅矢量 RAG 方法,发现 GraphRAG 在 MRR 上提高了 77.6%,在 BLEU 上提高了 0.32,相比基准。

9 这是由 Neo4j 提供支持的,正好符合需求。

10 这是一个很好的网络研讨会,展示了他们在 2024 年 5 月左右推出的新属性图索引,其中包括将文本转换为图的内置方法。

11 我们都知道“影响”是什么意思,但具体来说:这包括任何错误答案可能对健康和人类安全、社会公平、声誉或高额资金产生影响的决策。显然,这也包括任何可能受政府监管或有合规影响的决策。

12 请注意,这里“词汇”的词义不仅指单个词,还更广泛地指“关于词或语言词汇的”,如下面的词典定义所示。这涵盖了属于一个词汇体系及其关系的所有内容。

13 有几个库可以做到这一点,它们的顺序不分先后:Docs2KGDiffbotGLiNERspaCyNuMindNetOwl®,以及(在实体解析方面特别强大)Senzing

14 敬请期待 2024 年下半年发布的新版本工具,它将支持与您选择的关系数据库的直接连接。

15 NeoConverse 和 LLM GraphBUilder 都是 Neo4j 构建的 GraphRAG 生态系统工具 中不断扩展的一部分。