AI 文摘

《GraphRAG:当知识图谱遇上生成式AI,开启智能新纪元》





作者: 匠心格物 来源: 匠心格物

LLM 很强大,但也存在一些明显缺点,比如幻觉问题、可解释性差、抓不住问题重点、隐私和安全问题等。检索增强式生成(RAG)可大幅提升 LLM 的生成质量和结果有用性。

本月初,微软发布最强 RAG 知识库开源方案 GraphRAG,项目上线即爆火,现在星标量已经达到 10.5 k。

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

  • 官方文档:https://microsoft.github.io/graphrag/

GraphRAG 使用 LLM 生成知识图谱,在对复杂信息进行文档分析时可显著提高问答性能,尤其是在处理私有数据时。

GraphRAG 和传统 RAG 对比结果

现如今,RAG 是一种使用真实世界信息改进 LLM 输出的技术,是大多数基于 LLM 的工具的重要组成部分,一般而言,RAG 使用向量相似性作为搜索,称之为 Baseline RAG(基准RAG)。但 Baseline RAG 在某些情况下表现并不完美。例如:

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

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

微软提出的 GraphRAG 利用 LLM 根据输入的文本库创建一个知识图谱。这个图谱结合社区摘要和图机器学习的输出,在查询时增强提示。GraphRAG 在回答上述两类问题时显示出显著的改进,展现了在处理私有数据集上超越以往方法的性能。

我们正在逐渐认识到这一点:要使用生成式 AI 做一些真正有意义的事情,你就不能只依靠自回归 LLM 来帮你做决定。

我知道你在想什么:「用 RAG 呀。」或者微调,又或者等待 GPT-5。

是的。基于向量的检索增强式生成(RAG)和微调等技术能帮到你。而且它们也确实能足够好地解决某些用例。但有一类用例却会让所有这些技术折戟沉沙。

针对很多问题,基于向量的 RAG(以及微调)的解决方法本质上就是增大正确答案的概率。但是这两种技术都无法提供正确答案的确定程度。它们通常缺乏背景信息,难以与你已经知道的东西建立联系。此外,这些工具也不会提供线索让你了解特定决策的原因。

2012 年,那时候谷歌推出了自己的第二代搜索引擎,并发布了一篇标志性的博客文章《Introducing the Knowledge Graph: things, not strings》。他们发现,如果在执行各种字符串处理之外再使用知识图谱来组织所有网页中用字符串表示的事物,那么有可能为搜索带来飞跃式的提升。

现在,生成式 AI 领域也出现了类似的模式。很多生成式 AI 项目都遇到了瓶颈,其生成结果的质量受限于这一事实:解决方案处理的是字符串,而非事物。

前沿的 AI 工程师和学术研究者们重新发现了谷歌曾经的发现:打破这道瓶颈的秘诀就是知识图谱。换句话说,就是将有关事物的知识引入到基于统计的文本技术中。其工作方式就类似于其它 RAG,只不过除了向量索引外还要调用知识图谱。也就是:GraphRAG!(GraphRAG = 知识图谱 + RAG)

本文的目标是全面且易懂地介绍 GraphRAG。研究表明,如果将你的数据构建成知识图谱并通过 RAG 来使用它,就能为你带来多种强劲优势。有大量研究证明,相比于仅使用普通向量的 RAG,GraphRAG 能更好地回答你向 LLM 提出的大部分乃至全部问题。

单这一项优势,就足以极大地推动人们采用 GraphRAG 了。

但还不止于此;由于在构建应用时数据是可见的,因此其开发起来也更简单。

GraphRAG 的第三个优势是人类和机器都能很好地理解图谱并基于其执行推理。因此,使用 GraphRAG 构建应用会更简单轻松,并得到更好的结果,同时还更便于解释和审计(这对很多行业来说至关重要)。

我相信 GraphRAG 将取代仅向量 RAG,成为大多数用例的默认 RAG 架构。本文将解释原因。

GraphRAG 与 RAG

这两者并不是竞争关系。根本上讲,GraphRAG 就是一种 RAG,只是其检索路径包含知识图谱。下面你会看到,GraphRAG 的核心模式非常简单。其架构与使用向量的 RAG 一样,但其中包含知识图谱层。

GraphRAG 模式

  • GraphRAG 的一种常用模式*

可以看到,上图中触发了一次图谱查询。其可以选择是否包含向量相似度组件。

下面给出了一种使用 GraphRAG 的常用模式:

  1. 执行一次向量搜索或关键词搜索,找到一组初始节点;

  2. 遍历图谱,带回相关节点的信息;

3.(可选)使用 PageRank 等基于图谱的排名算法对文档进行重新排名

用例不同,使用模式也会不一样。和当今 AI 领域的各个研究方向一样,GraphRAG 也是一个研究丰富的领域,每周都有新发现涌现。

GraphRAG 的生命周期

使用 GraphRAG 的生成式 AI 也遵循其它任意 RAG 应用的模式,一开始有一个「创建图谱」步骤:

  • GraphRAG 的生命周期*

创建图谱类似于对文档进行分块并将其加载到向量数据库中。工具的发展进步已经让图谱创建变得相当简单。这里有三个好消息:

  1. 图谱有很好的迭代性 —— 你可以从一个「最小可行图谱」开始,然后基于其进行延展。

  2. 一旦将数据加入到了知识图谱中,就能很轻松地演进它。你可以添加更多类型的数据,从而获得并利用数据网络效应。你还可以提高数据的质量,以提升应用的价值。

  3. 该领域发展迅速,这就意味着随着工具愈发复杂精妙,图谱创建只会越来越容易轻松。

在之前的图片中加入图谱创建步骤,可以得到如下所示的工作流程:

添加图谱创建步骤

下面来看看 GraphRAG 能带来什么好处。

为什么要使用 GraphRAG?

相较于仅向量 RAG,GraphRAG 的优势主要分为三大类:

  1. 准确度更高且答案更完整(运行时间 / 生产优势)

  2. 一旦创建好知识图谱,那么构建和维护 RAG 应用都会更容易(开发时间优势)

  3. 可解释性、可追溯性和访问控制方面都更好(治理优势)

下面深入介绍这些优势。

  1. 准确度更高且答案更有用

GraphRAG 的第一个优势(也是最直接可见的优势)是其响应质量更高。不管是学术界还是产业界,我们都能看到很多证据支持这一观察。

比如这个来自数据目录公司 Data.world 的示例。2023 年底,他们发布了一份研究报告,表明在 43 个业务问题上,GraphRAG 可将 LLM 响应的准确度平均提升 3 倍。这项基准评测研究给出了知识图谱能大幅提升响应准确度的证据。

  • 知识图谱将 LLM 响应的准确度提升了 54.2 个百分点,也就是大约提升了 3 倍*

微软也给出了一系列证据,包括 2024 年 2 月的一篇研究博客《GraphRAG: Unlocking LLM discovery on narrative private data》以及相关的研究论文《From Local to Global: A Graph RAG Approach to Query-Focused Summarization》和软件:https://github.com/microsoft/graphrag(即上文开篇提到的 GraphRAG)。

其中,他们观察到使用向量的基线 RAG 存在以下两个问题:

  • 基线 RAG 难以将点连接起来。为了综合不同的信息来获得新见解,需要通过共享属性遍历不同的信息片段,这时候,基线 RAG 就难以将不同的信息片段连接起来。

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

微软发现:「通过使用 LLM 生成的知识图谱,GraphRAG 可以大幅提升 RAG 的「检索」部分,为上下文窗口填入相关性更高的内容,从而得到更好的答案并获取证据来源。」他们还发现,相比于其它替代方法,GraphRAG 所需的 token 数量可以少 26% 到 97%,因此其不仅能给出更好的答案,而且成本更低,扩展性也更好。

进一步深入准确度方面,我们知道答案正确固然重要,但答案也要有用才行。人们发现,GraphRAG 不仅能让答案更准确,而且还能让答案更丰富、更完整、更有用。

领英近期的论文《Retrieval-Augmented Generation with Knowledge Graphs for Customer Service Question Answering》就是一个出色的范例,其中描述了 GraphRAG 对其客户服务应用的影响。GraphRAG 提升了其客户服务答案的正确性和丰富度,也因此让答案更加有用,还让其客户服务团队解决每个问题的时间中位数降低了 28.6%。

我们也时不时会看到来自学术界和产业界的新示例。比如 Lettria 的 Charles Borderie 就给出了一个「仅向量」与「向量 + GraphRAG」方法的对比示例;其中 GraphRAG 依托于一个基于 LLM 的文本到图谱工作流程,将 10,000 篇金融文章整理成了一个知识图谱:

仅检索器方法与图检索器方法的对比

可以看到,相比于使用普通 RAG,使用 GraphRAG 不仅能提升答案的质量,并且其答案的 token 数量也少了三分之一。

再举一个来自 Writer 的例子。他们最近发布了一份基于 RobustQA 框架的 RAG基准评测报告,其中对比了他们的基于 GraphRAG 的方法与其它同类工具。GraphRAG 得到的分数是 86%,明显优于其它方法(在 33% 到 76% 之间),同时还有相近或更好的延迟性能。

RAG 方法的准确度和响应时间评估结果

GraphRAG 正在给多种多样的生成式 AI 应用带去助益。知识图谱打开了让生成式 AI 的结果更准确和更有用的道路。

  1. 数据理解得到提升,迭代速度更快

不管是概念上还是视觉上,知识图谱都很直观。探索知识图谱往往能带来新的见解。

很多知识图谱用户都分享了这样的意外收获:一旦投入心力完成了自己的知识图谱,那么它就能以一种意想不到的方式帮助他们构建和调试自己的生成式 AI 应用。部分原因是如果能以图谱的形式看待数据,那便能看到这些应用底层的数据呈现出了一副生动的数据图景。

图谱能让你追溯答案,找到数据,并一路追溯其因果链。

我们来看看上面有关锂短缺的例子。如果你可视化其向量,那么你会得到类似下图的结果,只不过行列数量都更多。

向量可视化

而如果将数据转换成图谱,则你能以一种向量表示做不到的方式来理解它。

以下是 LlamaIndex 最近的网络研讨会上的一个例子,展示了他们使用「MENTIONS(提及)」关系提取向量化词块(词汇图谱)和 LLM 提取实体(领域图谱)的图谱并将两者联系起来的能力:

提取词汇图谱和领域图谱

(也有很多使用 Langchain、Haystack 和 SpringAI 等工具的例子。)

你可以看到此图中数据的丰富结构,也能想象其所能带来的新的开发和调试可能性。其中,各个数据都有各自的值,而结构本身也存储和传达了额外的含义,你可将其用于提升应用的智能水平。

  1. 治理:可解释性、安全及更多

生成式 AI 决策的影响越大,你就越需要说服在决策出错时需要最终负责的人。这通常涉及到审计每个决策。这就需要可靠且重复的优良决策记录。但这还不够。在采纳或放弃一个决策时,你还需要解释其背后的原因。

LLM 本身没法很好地做到这一点。是的,你可以参考用于得到该决策的文档。但这些文档并不能解释这个决策本身 —— 更别说 LLM 还会编造参考来源。知识图谱则完全在另一个层面上,能让生成式 AI 的推理逻辑更加明晰,也更容易解释输入。

看一个例子:Lettria 的 Charles 将从 10,000 篇金融文章提取出的实体载入到了一个知识图谱中,并搭配一个 LLM 来执行 GraphRAG。我们看到这确实能提供更好的答案。我们来看看这些数据:

将从 10,000 篇金融文章提取出的实体载入知识图谱

首先,将数据看作图谱。另外,我们也可以导览和查询这些数据,还能随时修正和更新它们。其治理优势在于:查看和审计这些数据的「世界模型」变得简单了很多。相较于使用同一数据的向量版本,使用图谱让最终负责人更可能理解决策背后的原因。

在确保质量方面,如果能将数据放在知识图谱中,则就能更轻松地找到其中的错误和意外并且追溯它们的源头。你还能在图谱中获取来源和置信度信息,然后将其用于计算以及解释。而使用同样数据的仅向量版本根本就无法做到这一点,正如我们之前讨论的那样,一般人(甚至不一般的人)都很难理解向量化的数据。

知识图谱还可以显著增强安全性和隐私性。

在构建原型设计时,安全性和隐私性通常不是很重要,但如果要将其打造成产品,那这就至关重要了。在银行或医疗等受监管的行业,任何员工的数据访问权限都取决于其工作岗位。

不管是 LLM 还是向量数据库,都没有很好的方法来限制数据的访问范围。知识图谱却能提供很好的解决方案,通过权限控制来规范参与者可访问数据库的范围,不让他们看到不允许他们看的数据。下面是一个可在知识图谱中实现细粒度权限控制的简单安全策略:

可在知识图谱中实现的一种简单安全策略

创建知识图谱

构建知识图谱需要什么?第一步是了解两种与生成式 AI 应用最相关的图谱。

领域图谱(domain graph)表示的是与当前应用相关的世界模型。这里有一个简单示例:

领域图谱

词汇图谱(lexical graph)则是文档结构的图谱。最基本的词汇图谱由词块构成的节点组成:

词汇图谱

人们往往会对其进行扩展,以包含词块、文档对象(比如表格)、章节、段落、页码、文档名称或编号、文集、来源等之间的关系。你还可以将领域图谱和词汇图谱组合到一起,如下所示:

将领域层和词汇层组合起来

词汇图谱的创建很简单,主要就是简单的解析和分块。至于领域图谱,则根据数据来源(来自结构化数据源还是非结构化数据源或者两种来源都有)的不同,有不同的创建路径。幸运的是,从非结构化数据源创建知识图谱的工具正在飞速发展。

举个例子,新的 Neo4j Knowledge Graph Builder 可以使用 PDF 文档、网页、YouTube 视频、维基百科文章来自动创建知识图谱。整个过程非常简单,点几下按钮即可,然后你就能可视化和查询你输入的文本的领域和词汇图谱。这个工具很强大,也很有趣,能极大降低创建知识图谱的门槛。

至于结构化数据(比如你的公司存储的有关客户、产品、地理位置等的结构化数据),则能直接映射成知识图谱。举个例子,对于最常见的存储在关系数据库中的结构化数据,可以使用一些标准工具基于经过验证的可靠规则将关系映射成图谱。

使用知识图谱

有了知识图谱后,就可以做 GraphRAG 了,为此有很多框架可选,比如 LlamaIndex Property Graph Index、Langchain 整合的 Neo4j 以及 Haystack 整合的版本。这个领域发展很快,但现在编程方法正在变得非常简单。

在图谱创建方面也是如此,现在已经出现了 Neo4j Importer(可通过图形化界面将表格数据导入和映射为图谱)和前面提到的 Neo4j Knowledge Graph Builder 等工具。下图总结了构建知识图谱的步骤。

自动构建用于生成式 AI 的知识图谱

使用知识图谱还能将人类语言的问题映射成图谱数据库查询。Neo4j 发布了一款开源工具 NeoConverse,可帮助使用自然语言来查询知识图谱:https://neo4j.com/labs/genai-ecosystem/neoconverse/

虽然开始使用图谱时确实需要花一番功夫来学习,但好消息是随着工具的发展,这会越来越简单。

GraphRAG 在处理私有数据时有哪些具体的应用场景?

GraphRAG 在处理私有数据时的应用场景非常广泛,以下是一些具体的实例:

1.企业内部知识管理 :企业可以利用 GraphRAG 从内部文档、报告、通信记录等私有数据中提取知识,构建知识图谱,帮助员工快速找到所需信息,提高工作效率。

2.客户服务与支持 :通过分析客户互动记录、产品手册和常见问题解答等私有数据,GraphRAG 能够提供更加精准的客户服务,例如自动回答客户咨询或提供个性化的解决方案。

3.研究与开发 :研究机构或企业的研发部门可以使用 GraphRAG 来整理和分析专利、研究论文、实验数据等,以发现新的研究方向或优化现有研究。

4.个性化医疗 :医疗机构可以利用 GraphRAG 处理病历、医学文献和临床试验数据等私有信息,为患者提供个性化的治疗方案和建议。

5.合规性检查与风险管理 :企业可以应用 GraphRAG 对内部操作流程、合同协议等进行分析,确保业务活动符合法律法规要求,并识别潜在风险。

6.供应链优化 :通过分析供应商信息、物流数据、库存记录等私有数据,GraphRAG 可以帮助企业优化供应链管理,提高响应速度和成本效率。

7.个性化学习平台 :教育机构可以利用 GraphRAG 从教材、课程内容、学生反馈等数据中提取知识,为学生提供定制化的学习资源和辅导。

8.市场分析与竞争情报 :企业可以应用 GraphRAG 分析市场趋势、消费者行为、竞争对手信息等私有数据,以制定更有效的市场策略。

9.内部审计与监控 :利用 GraphRAG 对企业内部的财务记录、交易数据等进行深入分析,帮助发现异常模式,加强内部控制。

10.产品推荐系统 :电商平台可以利用 GraphRAG 分析用户行为、产品属性、评价信息等,提供更加个性化的商品推荐。

GraphRAG 的强大之处在于其能够理解和推理私有数据中的复杂信息,提供比传统检索增强式生成(RAG)方法更加深入和全面的分析结果。

GraphRAG 在处理私有数据时如何确保数据的安全性和隐私保护?

GraphRAG 在处理私有数据时,确保数据安全性和隐私保护是至关重要的,以下是一些关键措施:

1.数据访问控制 :实施严格的访问控制策略,确保只有授权用户才能访问敏感数据。这可以通过用户身份验证和授权机制来实现。

2.数据加密 :在数据存储和传输过程中使用强加密算法,以防止未授权访问和数据泄露。

3.数据匿名化和去标识化 :在构建知识图谱之前,对敏感信息进行匿名化或去标识化处理,以减少隐私泄露的风险。

4.数据最小化 :仅收集和处理完成特定任务所必需的数据,减少数据泄露的可能性。

5.数据隔离 :将私有数据与公共数据分开存储和管理,避免潜在的数据交叉风险。

6.审计和监控 :定期对数据访问和使用情况进行审计和监控,以便及时发现和响应潜在的安全问题。

7.合规性检查 :确保数据处理流程符合相关的数据保护法规和标准,如GDPR或其他地区的隐私法律。

8.数据生命周期管理 :明确数据的存储期限,一旦数据不再需要,应安全地删除或归档,避免长期存储带来的风险。

9.隐私影响评估 :在部署 GraphRAG 之前,进行隐私影响评估,以识别和减轻数据处理可能带来的隐私风险。

10.安全意识培训 :对使用 GraphRAG 的人员进行数据安全和隐私保护的培训,提高他们的安全意识。

11.技术防护措施 :使用防火墙、入侵检测系统和其他网络安全工具来保护数据不受恶意攻击。

12.细粒度权限控制 :在知识图谱中实现细粒度的权限控制,确保用户只能访问他们需要执行任务的数据。

通过上述措施,GraphRAG 可以在增强LLMs能力的同时,确保私有数据的安全性和隐私得到妥善保护。

总结:GraphRAG 是 RAG 的必定未来

LLM 固有的基于词的计算和语言技能加上基于向量的 RAG 能带来非常好的结果。为了稳定地得到好结果,就必须超越字符串层面,构建词模型之上的世界模型。同样地,谷歌发现为了掌握搜索能力,他们就必须超越单纯的文本分析,绘制出字符串所代表的事物之间的关系。我们开始看到 AI 世界也正在出现同样的模式。这个模式就是 GraphRAG。

技术的发展曲线呈现出 S 型:一项技术达到顶峰后,另一项技术便会推动进步并超越前者。随着生成式 AI 的发展,相关应用的要求也会提升 —— 从高质量答案到可解释性再到对数据访问权限的细粒度控制以及隐私和安全,知识图谱的价值也会随之愈发凸显。

生成式 AI 的进化

你的下一个生成式 AI 应用很可能就会用上知识图谱。

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

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