本文探讨了在生成式 AI (GenAI) 中引入知识图谱 (Knowledge Graph) 的重要性,提出了 GraphRAG 的概念。作者认为,仅依靠自回归大型语言模型 (LLM) 或基于向量的检索增强生成 (RAG) 技术并不能提供足够准确和上下文丰富的答案。通过结合知识图谱,GraphRAG 可以提供更高质量、更具解释性和可审计的答案,从而成为未来 RAG 架构的主流。

  1. RAG 技术的局限性

    • 向量检索和微调技术虽能提高某些问题的正确答案概率,但无法提供确定性答案,且缺乏上下文和解释性。
  2. 知识图谱的引入

    • 知识图谱可以组织和连接数据,使得 AI 系统不仅处理字符串,还能理解和推理事物之间的关系。
    • GraphRAG 结合了向量索引和知识图谱查询,提供更高质量的答案。
  3. GraphRAG 的优势

    • 更高的准确性和完整性:例如,Data.world 的研究表明,GraphRAG 在回答业务问题时的准确性提高了三倍。
    • 开发和维护更容易:知识图谱的可视化和可解释性使得开发和调试过程更加直观。
    • 更好的可解释性和审计能力:知识图谱使得 AI 系统的决策过程更透明,便于审计和追踪。
  4. GraphRAG 的应用模式

    • 典型的 GraphRAG 模式包括初步的向量或关键词搜索、图谱遍历以获取相关节点信息,以及使用图谱排名算法进行重新排序。
  5. 知识图谱的创建和使用

    • 创建知识图谱类似于将文档分块并加载到向量数据库中。随着工具的进步,创建知识图谱变得越来越简单。
    • 一旦数据进入知识图谱,就可以不断扩展和改进数据质量,从而提升应用结果的价值。
  6. 治理和安全性

    • 知识图谱增强了 AI 系统的安全性和隐私保护,可以根据用户角色限制数据访问权限。
  7. 实际应用案例

    • 例如,LinkedIn 使用 GraphRAG 改进了客户服务应用,减少了客户服务团队的平均每次问题解决时间。
    • Writer 的 RAG 基准测试报告显示,GraphRAG 的得分显著高于竞争对手。
  8. 工具和资源

    • Neo4j 提供了一系列工具,如 LLM Knowledge Graph Builder,帮助用户创建和使用知识图谱。

总结而言,GraphRAG 通过结合知识图谱和向量检索,提供了更高质量、更具解释性和更易开发的 AI 解决方案,代表了 RAG 技术的未来发展方向。

The GraphRAG Manifesto: 向生成式 AI 添加知识

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

The GraphRAG Manifesto.

我们正处在实现重要生成式 AI (GenAI) 应用的边缘,你不能依赖你不能依靠仅仅自回归大语言模型做出决策。我知道你在想什么:“RAG 是答案。”或者是微调,或者是 GPT-5。

是的,基于向量的 RAG 和微调技术可以有所帮助,它们对于某些使用场景已经足够好。但是还有一些使用场景,这些技术会遇到瓶颈。基于向量的 RAG 和微调一样,能增加许多问题获得正确答案的概率。然而,这些技术都不能保证答案的正确性。很多时候,它们也缺乏上下文、细节和与已知事实的联系。此外,这些工具不会告诉你为什么它们做出了某个特定决策。

早在 2012 年,谷歌通过一篇标志性的博客文章介绍了他们的第二代搜索引擎,标题为“Introducing the Knowledge Graph: things, not strings1。” 他们发现,如果使用知识图谱来组织这些网页中的字符串所表示的事物,再加上字符串处理,能力会有一个巨大的飞跃。今天我们在生成式 AI (GenAI) 中也看到同样的模式。许多 GenAI 项目遇到了瓶颈,结果质量受限于这些解决方案处理字符串而不是事物

到了今天,AI 工程师和前沿学术研究人员正在发现与谷歌相同的事情:突破瓶颈的关键是知识图谱。换句话说,把关于事物的知识引入到基于统计的文本技术中。这就像任何其他类型的 RAG 一样,只是除了向量索引之外,还调用了知识图谱。或者换句话说,就是GraphRAG

本文旨在全面且易读地介绍 GraphRAG。事实证明,构建一个数据的知识图谱并在 RAG 中使用它可以带来几个强大的优势。有大量研究证明,这种方法可以为几乎所有你提出的问题提供更好的答案,而不仅仅是使用普通向量 RAG 的大语言模型 (LLM)。

这本身将成为 GraphRAG 采用的一个重要推动力。除此之外,由于构建应用程序时数据是可见的,开发也变得更容易。第三个主要优势是图谱不仅可以被机器理解和推理,还可以被人类理解和推理。因此,使用 GraphRAG 构建更容易,结果更好,而且——这在许多行业中是至关重要的——是可解释和可审计的!我相信 GraphRAG 将取代仅有向量的 RAG,并成为大多数使用场景的默认 RAG 架构。本文将解释原因。

等一下,图谱?

我们说的图谱,指的是这样的东西:

Example of a graph.

虽然这张图片被广泛用于示例知识图谱,但原始来源和作者仍然不明。最早的已知使用似乎是这篇 Medium 文章,作者是 Farahnaz Akrami。如果你是这张图片的创作者,请联系我们,以便我们提供适当的署名。

或者这个:

A Game of Thrones graph.

William Lyon 的《权力的游戏》图谱

或者这个:

A graph of the London underground map.

伦敦地铁图 (Credit: Transport for London.) 趣闻,Transport for London 最近部署了一个基于图谱的数字孪生系统,以改善事件响应并减少拥堵。

换句话说,不是一个图表

如果你想深入了解图谱和知识图谱,我推荐你去看看Neo4j 的 GraphAcademy 或 Andrew Ng 的 Deeplearning.ai 课程 关于 RAG 的知识图谱。我们在这里不会停留在定义上,并将继续前进,假设你对图谱有基本的工作知识。

如果你理解上面的图片,你就能看到如何在你的 RAG 流水线中查询底层知识图谱数据 (存储在图数据库中)。这就是 GraphRAG 的核心。

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

典型 RAG 的核心 - 向量搜索 - 接受一段文本,并从候选的书面材料中返回概念上相似的文本。这是令人愉快的自动魔法,非常适合基本搜索。

你可能不会每次都想到这是什么样的向量,或者相似性计算在做什么。让我们看看一个苹果在人类术语、向量术语和图谱术语中的样子:

An apple: human view vs. vector view vs. knowledge graph view.

人类的表示是复杂且多维的,不是我们能在纸上完全捕捉到的。让我们授予一些诗意的许可,假设这张美丽诱人的图片代表了苹果的所有感知和概念荣耀。

苹果的向量表示2是一个数字数组——统计领域的构造。向量的魔力在于它们各自捕捉到对应文本的本质,并以编码形式表现出来。然而,在 RAG 上下文中,它们只有在需要识别一把文字与另一把文字的相似度时才有价值。做到这一点就像运行相似性计算 (即向量数学) 并获得匹配一样简单。然而,如果你想了解向量内部的内容,理解其周围的内容,掌握你的文本中所代表的事物,或者了解这些事物如何融入更大的上下文中,那么向量作为表示形式就无法做到这一点。

相比之下,知识图谱是声明性的——或者在 AI 术语中,是符号的——世界的表示。因此,人类和机器都可以理解和推理知识图谱。这是一个大事,我们稍后会再讨论。此外,你可以查询、可视化、注释、修复和扩展知识图谱。知识图谱代表了你的世界模型3——代表你正在处理的领域的部分世界。

GraphRAG “vs.” RAG

这不是竞争 🙂 向量和图谱查询在 RAG 中各自增加价值。LlamaIndex 创始人 Jerry Liu 指出,将 GraphRAG 视为包含向量是有帮助的。这不同于“仅有向量的 RAG”,后者严格基于文本中的词语嵌入的相似性。

基本上,GraphRAG 是 RAG,其中检索路径包括一个知识图谱。如下所示,核心 GraphRAG 模式很简单。它与具有向量的 RAG 架构基本相同4,但在图中加入了一个知识图谱。

GraphRAG 模式

A common pattern of GraphRAG.

在这里,你可以看到一个图谱查询被触发。它可以选择性地包括一个向量相似性组件。你可以选择将图谱和向量分别存储在两个不同的数据库中,或者使用支持向量搜索的图数据库如 Neo4j。

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

  1. 做一个向量或关键字搜索,找到一组初始节点。
  2. 遍历图谱,带回关于相关节点的信息。
  3. 可选地,使用基于图谱的排名算法 (如 PageRank) 重新排序文档。

模式因使用案例而异,就像今天 AI 中的其他一切一样,GraphRAG 证明是一个丰富的空间,每周都有新的发现。我们将来会专门写一篇博客文章,讨论今天看到的最常见的 GraphRAG 模式。

GraphRAG 生命周期

使用 GraphRAG 的 GenAI 应用程序遵循与任何 RAG 应用程序相同的模式,只是在开始时增加了“创建图谱”步骤:

The GraphRAG lifecycle.

创建图谱类似于将文档分块并加载到向量数据库中。工具的进步使图谱创建变得非常简单。好消息是三方面的:

  1. 图谱是高度迭代的——你可以从“最小可行图谱”开始,然后再扩展。
  2. 一旦你的数据在知识图谱中,它变得非常容易演化。你可以添加更多种类的数据,享受数据网络效应的好处。你还可以提高数据质量,以提高应用程序结果的价值。
  3. 这部分堆栈正在迅速改进,这意味着随着工具变得更加复杂,图谱创建只会变得更容易。

将图谱创建步骤添加到前面的图中,给你一个这样的流水线:

Adding the graph creation step to the process.

我将在稍后深入探讨图谱创建。现在,让我们把它放在一边,谈谈 GraphRAG 的好处。

为什么选择 GraphRAG?

与仅有向量的 RAG 相比,我们看到 GraphRAG 的好处分为三个主要方面:

  1. 更高的准确性和更完整的答案 (运行时 / 生产 的好处)
  2. 一旦你创建了你的知识图谱,那么构建5和随后维护你的 RAG 应用程序就更容易了 (开发时间 的好处)
  3. 更好的可解释性、可追溯性6和访问控制 (治理 的好处)

让我们深入探讨这些:

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

我们看到的第一个(也是最直接的)好处是更高质量的响应。除了我们从客户那里看到的越来越多的例子外,越来越多的学术研究也支持这一点。一个这样的例子是数据目录公司 Data.world。2023 年底,他们发布了一项研究,显示 GraphRAG 平均提高了 LLM 响应的准确性 3 倍,涵盖了 43 个业务问题。基准测试发现,当有知识图谱支持时,响应准确性显著提高。

A knowledge graph improved accuracy of LLM responses by 54.2%, an average of 3x.

更近且可能更知名的是微软自 2024 年 2 月开始的一系列帖子,首先是研究博客文章 GraphRAG: Unlocking LLM discovery on narrative private data,以及相关的研究论文,和软件发布。在这里,他们观察到基线 RAG (即带向量的 RAG) 存在以下两个问题:

  • 基线 RAG 难以连接点。回答问题时需要通过共享属性穿越不同的信息片段,以提供新的综合见解。
  • 基线 RAG 在被要求全面理解大量数据集合或单个大文件的总结语义概念时表现不佳。

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

深入探讨准确性话题时,不仅仅是答案正确与否重要;答案的有用性也很重要。人们发现,GraphRAG 的答案不仅更准确,而且更丰富、更完整和更有用。LinkedIn 最近发布的论文 描述了 GraphRAG 对其客户服务应用的影响 提供了一个很好的例子。GraphRAG 提高了回答客户服务问题的正确性和丰富性(因此也提高了有用性),将客户服务团队的每个问题的中位数解决时间减少了 28.6%8

另一个类似的例子来自 一个由 Neo4j 以及我们的合作伙伴 GCP、AWS 和微软教授的 GenAI 研讨会。下面的示例查询,针对一组 SEC 备案文件,提供了使用向量 + GraphRAG 与仅使用向量 RAG 时所获得答案类型的一个良好说明:

Vector-only approach vs. vector + graph approach.

注意描述受锂短缺影响可能较大的公司的特征与列出具体公司之间的区别。如果你是一位希望在市场变化或公司希望在自然灾害面前调整供应链的投资者,获得后者而不仅仅是前者可能会改变局面。在这里,两个答案都是正确的。显然,第二个更有用。

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

那些关注 X-sphere 并活跃在 LinkedIn 上的人会定期发现不仅来自实验室而且来自实际应用的新例子。这里,Charles Borderie 在 Lettria 给出了一个例子,对比了仅向量 RAG 和 GraphRAG,在一个基于 LLM 的文本到图谱管道中,摄取了 10,000 篇金融文章到一个知识图谱中:

Retriever-only approach vs. graph retriever approach.

正如你所看到的,GraphRAG 相对于仅向量 RAG,不仅答案的质量显著提高,而且答案所需的 token 也减少了三分之一。

我将包括的最后一个显著例子来自Writer。他们最近宣布了一份基于 RobustQA 框架的RAG 基准测试报告,将其基于 GraphRAG 的方法9与竞争对手的最佳工具进行了比较。GraphRAG 的得分为 86%,相较于竞争对手的得分范围为 33% 到 76%,具有相同或更好的延迟。

Evaluation of RAG approaches accuracy and response time.

每周我都会与来自各行各业的客户会面,他们在各种生成式 AI 应用中都经历了类似的积极效果。知识图谱为生成式 AI 的发展扫清了道路,使得结果更加准确和有用。

2: 提高数据理解,更快迭代

知识图谱在概念上和视觉上都很直观。能够探索它们往往会揭示新的见解。许多用户报告说,一旦他们投资创建了自己的知识图谱,他们发现这帮助他们以意想不到的方式构建和调试生成式 AI 应用。这部分是因为看到自己的数据作为图谱绘制出一个生动的数据图景。图谱还为你提供了追踪答案到数据并追溯这些数据的因果链条的挂钩。

让我们来看一个使用锂暴露问题的例子。如果你可视化向量,你会得到类似这样的结果,只不过有更多的行和列:

Vector visualization.

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

这是LlamaIndex 最近的一次网络研讨会10的一个例子,展示了他们如何提取向量化文本块的图谱(词汇图)和 LLM 提取实体的图谱(领域图),并使用“提及”关系将两者连接起来:

Extracting the lexical graph and the domain graph.

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

看着这张图,你可能会开始看到将数据存储在一个丰富结构中的广泛开发和调试可能性。单个数据片段保留了它们的价值,结构本身存储并传递了额外的意义,你可以用它来为你的应用程序添加更多的智能。

这不仅仅是可视化。还有将数据结构化的效果,使其传递和存储意义。这里是一位知名金融科技公司的开发者在将知识图谱引入他们的 RAG 工作流程一周后的反应:

Developer reaction to GraphRAG.

这个开发者的反应与测试驱动开发的假设非常吻合,即验证——而不是信任——答案的正确性。就我个人而言,我对将我的全部自主权交给一个完全不透明的系统做决策感到不安!更具体地说,即使是 AI 非末日论者也能理解在“Apple, Inc.”和“Apple Corps”之间错误映射时,看到相关数据并进行纠正的价值。因为数据最终是驱动生成式 AI 决策的因素,拥有评估和保证正确性的工具几乎是至关重要的。

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

生成式 AI 决策的影响越大,你越需要能够说服最终将对错误决策负责的人信任这个决策。这通常包括能够审核每个决策。还需要有良好且可重复的良好决策记录。但这还不够。你还需要能够在决策被质疑时向那个人解释底层的推理。

大语言模型(LLM)本身并没有提供一个好的方法来实现这一点。是的,你可以获得用于做决策的文档参考,但这些并不能解释决策本身——更不用说 LLM 已知会编造这些参考了!知识图谱在一个完全不同的层次上运行,使得生成式 AI 管道中的推理逻辑更加清晰,输入数据更加可解释。

让我们继续上面的一个例子,其中 Lettria 的 Charles 将从 10,000 篇金融文章中提取的实体加载到知识图谱中,并使用它与 LLM 进行 GraphRAG。我们看到这提供了更好的答案。让我们看看数据:

Loading up a knowledge graph with extracted entities from 10,000 financial articles.

将数据以图的形式呈现是第一步。这些数据也是可导航和可查询的,可以随着时间的推移进行修正和更新。治理优势在于可以更容易地查看和审核数据的“世界模型”。使用图谱使得最终负责决策的负责人更有可能理解决策的依据,相较于向他们提供相同数据的向量版本。在质量保证方面,将数据存储在知识图谱中使得更容易发现数据中的错误和惊喜(不论是令人愉快的还是其他的),并追溯到其来源。你还可以在图谱中捕获出处和置信度信息,并在计算和解释中使用这些信息。当你看向量版的同一数据时,这是不可能实现的,如前所述,对于大多数人来说,这些数据是难以理解的。

知识图谱还可以显著增强安全性和隐私性。在构建原型时,这一点可能不太重要,但在走向生产时,这是关键的一环。如果你在一个受监管的行业,如银行或医疗,任何给定员工对信息的访问权限可能取决于该人的角色。大语言模型(LLM)或向量数据库都没有一个好的方法来限制信息的范围以匹配角色。你可以在知识图谱中轻松处理这些权限,在数据库中管理任何给定用户对数据的访问能力,并排除他们不允许查看的结果。以下是一个可以在知识图谱中实现的简单安全策略的示意图:

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

知识图谱创建

人们常常问我,构建知识图谱需要什么。了解与生成式 AI 应用最相关的两种图谱是理解答案的第一步:

  1. 领域图谱是应用相关的世界模型的图谱表示。以下是一个简单的例子:

    The domain graph.

  2. 词汇图谱12是文档结构的图谱。最基本的词汇图谱有一个代表每个文本块的节点:

    The lexical graph.

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

Combining domain layer and lexical layer.

创建词汇图谱很容易,主要是简单的解析和分块策略13。对于领域图谱,根据你带入的数据是否来自结构化来源、非结构化文本或两者都有,有几种不同的路径。幸运的是,从非结构化数据源创建知识图谱的工具正在迅速改进。例如,新的Neo4j Knowledge Graph Builder可以从 PDF 文档、网页、YouTube 剪辑或 Wikipedia 文章中自动创建知识图谱。它就像点击几个按钮一样简单,让你可以可视化(当然也可以查询)输入文本的领域和词汇图谱。这非常强大且有趣,大大降低了创建知识图谱的门槛。

客户、产品、地理位置等数据可能在你的企业中以结构化形式存在,可以直接从其所在位置获取。最常见的情况是它在关系数据库中,你可以使用标准工具14,按照成熟的关系到图映射规则进行操作。

使用知识图谱

一旦你有了知识图谱,就有越来越多的框架可以用于 GraphRAG,包括LlamaIndex Property Graph IndexLangchain 的 Neo4j 集成,以及Haystack 的其他框架。这个领域进展迅速,但我们已经达到了程序化方法变得简单明了的阶段。

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

Automatically build a knowledge graph for GenAI.

你还会使用知识图谱进行人类语言问题与图数据库查询的映射。Neo4j 的一个新开源工具 NeoConverse,旨在帮助用自然语言查询图谱。这是普及这一领域的重要一步15

虽然图谱的使用确实需要一些工作和学习,但好消息是,随着工具的改进,这变得越来越简单。

结论:GraphRAG 是 RAG 的下一个自然步骤

大语言模型和基于向量的 RAG 提供了良好的结果。要获得始终优秀的结果,需要超越字符串,捕捉世界模型,而不仅仅是词汇模型。就像 Google 发现要掌握搜索,必须超越单纯的文本分析,绘制出字符串背后的事物一样,我们在 AI 世界中也看到同样的模式。这种模式就是 GraphRAG。

进展通常以 S 曲线的形式发生:当一种技术达到顶峰时,另一种技术会推动进步并超越前者。随着生成式 AI 的发展,对于那些回答质量至关重要的用例;需要内部、外部或监管方对可解释性有要求的用例;或需要对数据的访问进行细粒度控制以保证隐私和安全的用例,那么你的下一个生成式 AI 应用很可能会使用知识图谱。

The evolution of GenAI.

你可以亲身体验 GraphRAG!

如果你准备好迈出 GraphRAG 的下一步,我邀请你试试 Neo4j LLM Knowledge Graph Builder。这个简单的 web 应用可以让你从非结构化文本源(如 PDF、网页和 YouTube 视频)中仅需几次点击就创建一个知识图谱。这是体验 GraphRAG 强大功能的完美 playground。

使用 LLM Knowledge Graph Builder,你可以:

  • 连接到你的免费云端 Neo4j 实例,并从你最喜欢的文本源构建一个图谱。
  • 使用互动可视化工具探索你新创建的知识图谱。
  • 与数据聊天并测试 GraphRAG。
  • 将你的知识图谱集成到应用程序中,解锁新的见解。

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

致谢

很多人对这篇文章做出了贡献。我想感谢所有分享你们的学习、写作和代码的人——许多例子在此引用——并鼓励你们继续这样做。通过作为一个社区分享,我们都在学习。

我还想感谢许多看到 GraphRAG 重要性并慷慨地提供时间审阅和评论文章的人。在许多情况下,这是由他们世界中的例子所提供的。

尽管说了这些,我想特别感谢所有的人,包括(按姓氏字母顺序排列):

附录:进一步阅读

关于这个话题已经有很多文章,每天都有新的见解和例子出现。虽然我不可能提供全面的列表,但以下是一些特别好的文章,如果你有兴趣了解更多,可以看看:

  • Deloitte 的论文,题为“使用知识增强的生成式 AI 进行负责任的企业决策”,副标题为“为什么企业级生成式 AI 必须结合知识图谱?”
  • Jesus Barrasa 的Going Meta系列。这是一个包含 27 个视频的系列,每个视频都涵盖 GraphRAG 的不同方面或例子。
  • 任何Leann Chen 的学习视频,包括“你需要更好的知识图谱来改进 RAG”“使用 Neo4j 知识图谱构建高级 RAG 聊天机器人”
  • LlamaIndex 的六部分速成课程,“属性图简介”
  • GraphStuff.fm 播客,主持人是Jennifer ReifAndreas KolleggerAlison CossetteJason Koo
  • 最后,如果你需要向老板证明 GraphRAG 的合理性,并想抛出一些额外的重量,不妨看看Gartner 的 2024 年生成式 AI 影响雷达,它将知识图谱置于生成式 AI 技术的中心,认为这是当下最相关的技术之一!