微信扫码
与创始人交个朋友
我要投稿
我们即将意识到,要想用生成式AI做任何有意义的事情, 你不能仅仅依赖[1] 自回归语言模型[0] 来做决策。我知道你在想什么:"RAG就是答案。"或者是微调,或者是GPT-5。
没错。像基于向量的RAG和微调这样的技术可以有所帮助。对某些用例来说,它们已经足够好了。但还有另一类用例,所有这些技术都会遇到瓶颈。基于向量的RAG - 就像微调一样 - 可以提高许多类型问题的正确答案概率。然而,这两种技术都无法保证答案的正确性。它们往往也缺乏上下文、细节,以及与你所知道的事实的联系。此外,这些工具也不会给你留下太多线索来解释它们为什么做出特定的决定。
早在2012年,Google发布了一篇具有标志性意义的博文,题为" 引入知识图谱:事物,而非字符串[2]1",介绍了他们的第二代搜索引擎。他们发现,如果你使用知识图谱来组织所有这些网页中字符串所代表的事物,同时也进行所有的字符串处理,就有可能实现巨大的能力飞跃。我们今天在生成式AI中看到了同样的模式。许多生成式AI项目正在遇到瓶颈,结果质量受限于所使用的解决方案只处理字符串,而不是事物。
快进到今天, AI工程师[3] 和学术研究人员正在发现与Google当年相同的事情:突破这个瓶颈的秘诀是知识图谱。换句话说,将关于事物的知识引入基于统计的文本技术中。这就像任何其他类型的RAG一样工作,只是除了向量索引之外还调用了知识图谱。或者换句话说,就是GraphRAG!
这篇文章旨在全面而易读地介绍GraphRAG。事实证明,构建数据的知识图谱并在RAG中使用它可以给你带来几个强大的优势。有大量研究证明,对于使用普通仅向量RAG向LLM提出的大多数(如果不是全部)问题,它都能给出更好的答案。
仅这一点就将成为推动GraphRAG广泛采用的巨大动力。除此之外,由于数据在构建应用程序时是可见的,你还可以获得更轻松的开发体验。第三个主要优势是图可以被人类和机器轻松理解和推理。因此,使用GraphRAG构建更容易,可以获得更好的结果,而且 - 这在许多行业中是致命的 - 是可解释和可审计的!我相信GraphRAG将取代仅向量的RAG,成为大多数用例的默认RAG架构。这篇文章解释了原因。
让我们明确一点,当我们说图时,我们指的是这样的东西:
虽然这张图片被广泛用来举例说明知识图谱,但原始来源和作者仍未确定。已知最早使用似乎是Farahnaz Akrami的 这篇Medium文章[4] 。如果你是这张图片的创作者,请与我们联系,以便我们提供适当的署名。
或者这个:
William Lyon的 权力的游戏可视化[5] 。
或者这个:
伦敦地铁地图(来源:伦敦交通局)。有趣的是,伦敦交通局最近部署了一个 基于图的数字孪生[6] 来改善事故响应并减少拥堵。
换句话说,不是 图表[7] 。
如果你想 深入了解[8] 图和知识图谱,我建议你转到 Neo4j的GraphAcademy[9] 或Andrew Ng的Deeplearning.ai课程 用于RAG的知识图谱[10] 。我们在这里不会过多地讨论定义,而是假设你对图有基本的工作知识继续前进。
如果你理解上面的图片,你就可以看到如何在RAG管道中查询底层的知识图谱数据(存储在图数据库中)。这就是GraphRAG的内容。
典型RAG的核心 - 向量搜索 - 接收一段文本,并从候选文本体中返回概念上相似的文本。这种自动魔法般的效果非常令人愉悦,对基本搜索非常有用。
每次进行这种操作时,你可能不会想到向量是什么样子,或者相似度计算在做什么。让我们从人类、向量和图的角度来看一个苹果:
人类的表示是复杂的、多维的,我们无法在纸上完全捕捉。让我们给予一些诗意的许可,想象这幅诱人的美丽图片代表了一个苹果的所有 感知[11] 和概念上的荣耀。
苹果的向量表示2是一个数字数组 - 统计领域的构造。向量的神奇之处在于,它们每个都以编码形式捕捉了相应文本的本质。然而,在RAG上下文中,它们只有在需要识别一组词与另一组词的相似程度时才有价值。做到这一点就像运行相似度计算(即向量数学)并获得匹配一样简单。然而,如果你想理解向量内部的内容,了解它周围的内容,掌握文本中表示的事物,或者理解这些如何适应更大的上下文,那么向量作为一种表示就无法做到这一点。
相比之下,知识图谱是世界的声明性 - 或者用AI术语来说,符号化 - 表示。因此,人类和机器都可以理解和推理知识图谱。这是一个大问题,我们稍后会再次讨论。此外,你可以查询、可视化、注释、修复和扩展知识图谱。知识图谱代表了你的世界模型3 - 代表你正在处理的领域的那部分世界。
这不是一场竞争? 向量和图查询在RAG中各自增加价值。 正如LlamaIndex创始人Jerry Liu指出的[12] ,将GraphRAG视为包含向量是有帮助的。这与"仅向量RAG"不同,后者严格基于文本中单词的嵌入相似性。
从根本上说,GraphRAG就是RAG,其中检索路径包括知识图谱。如下所示,GraphRAG的核心模式很简单。它基本上与基于向量的RAG4架构相同,但在图中加入了知识图谱层。
在这里,你可以看到触发了图查询。它可以选择包含向量相似性组件。你可以选择将图和向量分别存储在两个不同的数据库中,或者使用像Neo4j这样也支持向量搜索的图数据库。
使用GraphRAG的一种常见模式如下:
模式因用例而异,就像今天AI中的其他一切一样,GraphRAG正在证明是一个丰富的空间,每周都有新的发现出现。我们将在未来的博文中专门介绍我们今天看到的最常见的GraphRAG模式。
使用GraphRAG的生成式AI应用程序遵循与任何RAG应用程序相同的模式,只是在开始时添加了一个"创建图"步骤:
创建图类似于将文档分块并将其加载到向量数据库中。工具的进步使得图的创建变得非常容易。好消息有三个方面:
将图创建步骤添加到之前的图片中,你会得到一个如下所示的管道:
我将在 稍后深入讨论图的创建[13] 。现在,让我们暂时把它放在一边,谈谈GraphRAG的好处。
我们看到GraphRAG相对于仅向量RAG的好处主要分为三个方面:
让我们深入探讨这些:
我们在GraphRAG中看到的第一个(也是最直接的)好处是更高质量的响应。除了我们从客户那里看到越来越多的例子外,越来越多的学术研究也支持这一点。其中一个例子是数据目录公司Data.world。在2023年底,他们发布了一项研究,显示 GraphRAG平均将LLM响应的准确性提高了3倍[14] ,涉及43个商业问题。该基准发现,当有知识图谱支持时,响应的准确性显著提高。
最近可能更为人所知的是微软从2024年2月开始发布的一系列文章,从一篇题为 GraphRAG:解锁叙事私有数据上的LLM发现[15] 的研究博客开始,还有相关的 研究论文[16] 和 软件发布[17] 。在这里,他们观察到基线RAG(即使用向量)有以下两个问题:
微软发现*"通过使用LLM生成的知识图谱,GraphRAG极大地改进了RAG的'检索'部分,用更高相关性的内容填充上下文窗口,从而产生更好的答案并捕获证据来源。"*他们还 发现[15] GraphRAG比其他方法需要少26%到97%的token,这使得它不仅能提供更好的答案,而且更便宜、更具可扩展性7。
深入探讨准确性这个话题,重要的不仅是答案是否正确,还有答案有多有用。人们在GraphRAG中发现,答案不仅更准确,而且更丰富、更完整、更有用。LinkedIn最近的一篇 论文描述了GraphRAG对其客户服务应用的影响[18] ,提供了一个很好的例子。GraphRAG改善了回答客户服务问题的正确性和丰富性(因此也更有用),使他们的客户服务团队的每个问题的中位数解决时间减少了28.6%8。
一个类似的例子来自Neo4j与我们在GCP、AWS和Microsoft的合作伙伴一起教授的 GenAI研讨会[19] 。下面的示例查询针对一系列SEC文件,很好地说明了使用向量+GraphRAG与仅使用向量RAG时可能得到的答案类型的区别:
注意描述可能受锂短缺影响的公司的特征,与列出可能受影响的具体公司之间的区别。如果你是一个投资者,想要在市场变化时重新平衡你的投资组合,或者是一家公司,想要在面对自然灾害时重新平衡供应链,能够获得后者而不仅仅是前者可能会带来巨大改变。在这里,两个答案都是准确的。第二个显然更有用。
Jesus Barrasa的Going Meta 第23集[20] 使用法律文件用例提供了另一个很好的例子,从词法图开始。
那些关注X领域并活跃在LinkedIn上的人会定期看到不仅来自实验室而且来自实际应用的新例子。这里,Lettria的Charles Borderie给出了 一个例子[21] ,对比了仅向量RAG和GraphRAG,针对一个基于LLM的文本到图转换管道,该管道将10,000篇金融文章摄入知识图谱:
如你所见,与普通RAG相比,GraphRAG不仅显著提高了答案质量,而且答案所需的token减少了三分之一。
我要包括的最后一个值得注意的例子来自 Writer[22] 。他们最近 宣布[23] 了一份基于RobustQA框架的 RAG基准测试报告[24] ,比较了他们基于GraphRAG的方法9与竞争对手的最佳工具。GraphRAG的得分为86%,这比竞争对手33%到76%的得分范围有显著提高,而延迟相当或更好。
每周我都会与许多行业的客户会面,他们在各种GenAI应用中都经历了类似的积极效果。知识图谱通过使结果更准确、更有用,正在为GenAI扫清障碍。
知识图谱在概念上和视觉上都很直观。能够探索它们往往会揭示新的见解。许多用户报告的一个意外的附带好处是,一旦他们投资创建了知识图谱,他们发现它以意想不到的方式帮助他们构建和调试GenAI应用。这部分是因为将数据视为图形描绘了应用程序底层数据的生动画面。图还为将答案追溯到数据,并将该数据追溯到因果链提供了钩子。
让我们看一个使用上面锂暴露问题的例子。如果你可视化向量,你会得到类似这样的东西,只是有更多的行和列:
当你将数据作为图形处理时,你可以以向量表示无法实现的方式理解它。
这里是 LlamaIndex最近的一个网络研讨会[25]10的一个例子,展示了他们提取向量化块图(词法图)和LLM提取的实体(领域图)并用"MENTIONS"关系将两者联系起来的能力:
(你可以在 Langchain[26] 、 Haystack[27] 、 SpringAI[28] 和 更多[29] 中找到类似的例子。)
看着这个图,你可能开始看到拥有一个丰富的数据结构如何为开发和调试打开了广泛的新可能性。单个数据片段保留了它们的价值,而结构本身存储和传达了额外的含义,你可以用它来为你的应用添加更多智能。
这不仅仅是可视化。这也是数据以传达和存储含义的方式结构化的效果。这是一位来自知名金融科技公司的开发人员在将知识图谱引入他们的RAG工作流程一周后的反应:
这位开发人员的反应很好地符合测试驱动开发的假设,即验证 - 而不是信任 - 答案是否正确。就我个人而言,将100%的自主权交给SkyNet做出完全不透明的决定会让我感到毛骨悚然!更具体地说,即使是非AI末日论者也可以欣赏能够看到一个块或文档与" Apple, Inc.[30] "相关联,而不应该映射到" Apple Corps[31] "的价值。由于数据最终是驱动GenAI决策的因素,因此拥有评估和确保正确性的工具几乎是至关重要的。
GenAI决策的影响越大11,你就越需要能够说服最终对决策错误负责的人信任这个决策。这通常涉及能够审计每个决策。它还需要有良好和可重复的良好决策记录。但这还不够。当他们质疑一个决定时,你还需要能够向那个人解释背后的推理。
LLM本身并不能很好地做到这一点。是的,你可以获得用于做出决策的文档的引用。但这些并不能解释决策本身 - 更不用说LLM是众所周知的会编造这些引用!知识图谱在完全不同的层面上运作,使GenAI管道内的推理逻辑更加清晰,输入也更容易解释。
让我们继续上面的一个例子,Charles从Lettria用从10,000篇金融文章中提取的实体加载知识图谱,并将其与LLM一起用于进行GraphRAG。我们看到这提供了更好的答案。让我们看看数据:
将数据视为图形是第一部分。数据也是可导航和可查询的,并且可以随着时间的推移进行修正和更新。治理的优势在于,它使查看和审计数据的"世界模型"变得更加容易。使用图形使最终对决策负责的人更有可能理解它,相对于被提供相同数据的向量版本而言。在质量保证方面,将数据放在知识图谱中使得挑出数据中的错误和惊喜(愉快的或其他的)变得更加容易,并将它们追溯到源头。你还可以在图中捕获来源和置信度信息,并在计算和解释中使用这些信息。当你只看相同数据的向量版本时,这是不可能的,正如我们之前讨论的,对于普通 - 甚至是高于平均水平的 - 人来说,这是相当难以理解的。
知识图谱还可以显著增强安全性和隐私性。在构建原型时,这往往不是最重要的考虑因素,但它是通向生产的关键部分。如果你在银行或医疗保健等受监管的行业,任何给定员工对信息的访问权限可能取决于该人的角色。LLM和向量数据库都没有很好的方法来限制信息范围以匹配角色。你可以在知识图谱内部轻松处理这个问题,任何给定参与者访问数据的能力都由数据库管理,并排除他们不允许看到的结果。这里是一个简单安全策略的模型,你可以在具有细粒度访问控制的知识图谱中实现:
人们经常问我创建知识图谱需要什么。理解答案的第一步是了解与GenAI应用最相关的两种图:
人们经常扩展这个,包括块与文档对象(如表格)、章节、部分、页码、文档名称/ID、集合、来源等之间的关系。你也可以像这样组合领域和词法图:
创建词法图很容易,主要是简单的解析和分块策略13的问题。至于领域图,根据你引入的数据是来自结构化源、非结构化文本还是两者兼有,有几种不同的路径。幸运的是,从非结构化数据源创建知识图谱的工具正在迅速改进。例如,新的 Neo4j知识图谱构建器[32] 可以接受PDF文档、网页、YouTube剪辑或Wikipedia文章,并自动从中创建知识图谱。它就像点击几个按钮一样简单,让你可以可视化(当然也可以查询)输入文本的领域和词法图。它既强大又有趣,大大降低了创建知识图谱的门槛。
关于客户、产品、地理位置等的数据可能已经以结构化形式存在于您的企业中的某个地方,可以直接从其所在位置获取。以最常见的情况为例,如果数据存储在关系型数据库中,您可以使用遵循关系到图转换的成熟规则的标准 工具[33]14。
一旦您有了知识图谱,就可以使用越来越多的框架来进行GraphRAG,包括 LlamaIndex属性图索引[34] 、 Langchain的Neo4j集成[35] 以及 Haystack的集成[36] 等。这个领域发展很快,但现在我们已经到了编程方法变得简单直接的阶段。
在图谱构建方面也是如此,有像 Neo4j Importer[37] 这样的工具,它有一个图形用户界面用于映射和导入表格数据到图中,还有Neo4j新的v1版本 LLM知识图谱构建器[38] 。下图总结了构建知识图谱的步骤。
使用知识图谱时,您还会发现自己需要将人类语言问题映射到图数据库查询。Neo4j的一个新的开源工具 NeoConverse[39] 旨在帮助对图进行自然语言查询。这是朝着普及这一技术迈出的坚实的第一步15。
虽然图谱确实需要一些工作和学习才能入门,但好消息是随着工具的改进,这变得越来越容易。
LLM和基于向量的RAG固有的基于词的计算和语言技能可以提供_良好的_结果。要获得始终如一的_出色_结果,需要超越字符串,除了_词模型_之外还要捕捉_世界模型_。就像Google发现要掌握搜索,他们需要超越单纯的文本分析,绘制出字符串下面的 底层事物[1] 一样,我们开始在AI世界中看到同样的模式出现。这种模式就是GraphRAG。
进步是以S曲线发生的:当一项技术达到顶峰时,另一项技术会刺激进步并超越前者。随着GenAI的发展,对于那些答案质量至关重要的用途;或者内部、外部或监管利益相关者需要可解释性的用途;或者出于隐私和安全需要对数据访问进行细粒度控制的用途,那么您的下一个GenAI应用很可能会使用知识图谱。
如果您准备好使用GraphRAG迈出下一步,我邀请您尝试 Neo4j LLM知识图谱构建器[40] 。这个简单的网络应用程序让您只需点击几下就可以从PDF、网页和YouTube视频等非结构化文本源创建知识图谱。这是亲身体验GraphRAG威力的完美游乐场。
使用LLM知识图谱构建器,您可以:
要开始使用, 启动一个免费的AuraDB实例[41] 并 构建您的知识图谱[39] 。您可以在 这里[37] 了解更多关于Neo4j LLM知识图谱构建器的信息并获得指导教程!
很多人为这篇文章做出了贡献。我要感谢所有分享学习、写作和代码的人——这里引用了许多例子——并鼓励你们继续这样做。正是通过作为一个社区分享,我们才能共同学习。
我还要感谢许多看到GraphRAG重要性并慷慨地抽出时间审阅和评论这篇文章本身的人。在许多情况下,这是由他们所处的世界中出现的例子所启发的。
与其试图列出每个人的名字,我想特别提到一些你通常不会认为属于"图谱世界"的人。我们一起看到GraphRAG不仅是一个重要趋势,而且是两个世界的融合。
说了这么多,我最深切地感谢你们所有人,包括(按姓氏字母顺序排列):
关于这个主题已经有很多文章,每天都有新的见解和例子出现。虽然我不可能提供一个全面的列表,但如果你有兴趣了解更多,这里有一些特别好的文章可以查看:
1 阅读 这篇博文[1] 可以看到Google在网络搜索方面的历程与GenAI现在发生的情况有多么相似。
2 注意:这些特定的数字可能代表也可能不代表一个苹果。很难知道,这说明了向量和图谱之间的一个关键区别。
3 正如后面在"知识图谱创建"部分讨论的那样,另一种与"领域图谱"不同的知识图谱正在出现并被证明是有用的。这就是"词汇图谱",它不是世界模型,而是向量块及其与周围文档结构(表格/图形/页面/文档/集合/作者等)的关系图。
4 自然地,这在现实世界中经常不仅仅表现为一个全面的步骤,而且越来越多地成为遵循自己一套步骤和逻辑的代理管道的一部分。顺便说一下,这 也是一个图[80] 。随着这些变得更加复杂,人们可能会考虑在图数据库中而不是在代码中捕获这些工作流和规则。但我们还没有达到那个程度,而且这是一个与当前主题不同的话题。
5 这在你已经有了知识图谱的基础上才会启动。这并不是免费的,但你可能会惊讶于最新进展使得这变得多么容易实现。因为这是一个如此基础的话题,我们在这一部分之后专门用了一个章节来讨论构建知识图谱的科学和艺术。
6 知识图谱还可以帮助其他形式的可追溯性,比如捕获数据如何在系统之间流动,通过系统的系统/来源/数据血缘图。它们还可以提供其他AI优势,比如 跟踪已解析的实体[81] 。由于这里的重点是GraphRAG,我们将把所有这些都放在一边。
7 如果你想更深入地研究这个问题并亲自动手编写一些代码,我强烈推荐我的同事Tomaz Bratanic的文章: 使用Neo4j和LangChain实现"从局部到全局"的GraphRAG:构建图谱[60] 。这进一步发展了微软的工作,将其整合到Neo4j + Langchain管道中。
8 论文本身包含了GraphRAG和仅向量RAG方法的更详细比较,发现GraphRAG在 MRR[82] 上改善了77.6%,在 BLEU[83] 上改善了0.32,相比基线。
9 恰好由Neo4j提供支持。
10 这是一个很棒的网络研讨会,展示了他们新的(2024年5月左右) 属性图索引[33] 的使用,其中包括将文本转换为图的内置方法。
11 我想我们都知道"影响"是什么意思,但为了分解一下:这包括任何错误答案可能对健康和人类安全、社会和公平、声誉或高额资金产生影响的决策。显然,这也包括任何可能受政府监管或其他方面存在合规影响的决策。
12 请注意,这里的"词汇"一词不仅仅指单个词,而是更广泛地(如下面的字典定义所示)"与词语或语言词汇有关的"。这包括了属于一组词及其关系领域的所有内容。
13 一些做这件事的库包括(不分先后顺序): Docs2KG[84] 、 Diffbot[85] 、 GLiNER[86] 、 spaCy[87] 、 NuMind[88] 、 NetOwl[89] ®,以及(特别是在实体解析方面的优势) Senzing[90] 。
14 请关注2024年下半年这个工具的新版本,它将支持直接连接到你选择的关系数据库。
15 NeoConverse和LLM GraphBUilder都是Neo4j构建的不断增长的 GraphRAG生态系统工具[57] 的一部分。
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-11-23
FastRAG半结构化RAG实现思路及OpenAI O1-long COT蒸馏路线思考
2024-11-23
检索增强生成(RAG):解密AI如何融合记忆与搜索
2024-11-23
如何提高RAG系统准确率?12大常见痛点及巧妙解!
2024-11-23
RAG 2.0性能提升:优化索引与召回机制的策略与实践
2024-11-22
RAG技术在实际应用中的挑战与解决方案
2024-11-22
从普通RAG到RAPTOR,10个最新的RAG框架
2024-11-22
如何使用 RAG 提高 LLM 成绩
2024-11-21
提升RAG性能的全攻略:优化检索增强生成系统的策略大揭秘 | 深度好文
2024-07-18
2024-05-05
2024-07-09
2024-05-19
2024-07-09
2024-06-20
2024-07-07
2024-07-07
2024-07-08
2024-07-09
2024-11-06
2024-11-06
2024-11-05
2024-11-04
2024-10-27
2024-10-25
2024-10-21
2024-10-21