微信扫码
与创始人交个朋友
我要投稿
我们正在进入 RAG 的“蓝色链接”时代
我们即将意识到,要想用GenAI做任何有意义的事情,你不能只依赖自回归LLM来做决定。我知道你在想什么:“RAG就是答案。”或者微调,或者 GPT-5。
是的。基于向量的 RAG 和微调等技术可以提供帮助。它们对于某些用例来说已经足够好了。但还有另一类用例,这些技术都遇到了瓶颈。基于向量的 RAG(与微调一样)增加了许多问题正确答案的概率。然而,这两种技术都不能确保答案正确。不会给你留下很多关于它们为什么做出特定决定的线索。
早在 2012 年,谷歌就推出了他们的第二代搜索引擎,并在一篇标志性的博客文章中发表了一篇名为“介绍知识图谱:事物,而不是字符串”的文章。他们发现,如果使用知识图谱来组织所有这些网页中字符串所代表的事物,并进行所有的字符串处理,那么能力就有可能实现巨大的飞跃。我们今天在 GenAI 中看到了同样的模式。许多 GenAI 项目都遇到了瓶颈,结果的质量受到所使用的解决方案处理的是字符串而不是事物这一事实的限制。
如今,处于前沿的人工智能工程师和学术研究人员发现了与谷歌相同的事情:突破这一天花板的秘诀是知识图谱。换句话说,将有关事物的知识融入基于统计的文本技术中。这就像任何其他类型的 RAG 一样,除了向量索引之外还调用了知识图谱。或者换句话说,GraphRAG!
让我们明确一点,当我们说图谱(Graph)时,我们的意思是这样的:
虽然这张图片已被广泛用于举例说明知识图谱,但原始来源和作者仍未确定
或这个:
威廉·里昂 (William Lyon) 创作的《权力的游戏》图表可视化
或这个:
伦敦地铁地图(来源:伦敦交通局)有趣的是,伦敦交通局最近部署了一个图形驱动的数字孪生,以改善事件响应并减少拥堵。
换句话说,不是图表(chart)。
如果你想深入研究图表和知识图谱,我建议你去Neo4j 的 GraphAcademy或 Andrew Ng 的 Deeplearning.ai 课程“ RAG 知识图谱”。我们不会在这里纠结于定义,而是会假设你对图谱有基本的了解。
如果您理解上面的图片,您就会明白如何在 RAG 管道中查询底层知识图谱数据(存储在图形数据库中)。这就是 GraphRAG 的意义所在。
典型 RAG 的核心是向量搜索,它接收一段文本,并从候选书面材料中返回概念上相似的文本。这是令人愉快的自动化,对于基本搜索非常有用。
每次执行此操作时,您可能不会想到向量是什么样子,或者相似度计算在做什么。让我们从人类术语、向量术语和图形术语来看一下苹果:
人类的表现形式复杂且多维,我们无法在纸上完全捕捉到。让我们赋予一些诗意,想象一下,这幅美丽诱人的图片代表了苹果在感知和概念上的所有荣耀。
苹果的向量表示是一个数字数组——统计领域的构造。向量的神奇之处在于它们各自以编码形式捕捉其对应文本的本质。然而,在 RAG 上下文中,它们只有在您需要确定一些单词与另一个单词的相似程度时才有价值。这样做就像运行相似性计算(又称向量数学)并获得匹配一样简单。但是,如果您想了解向量内部的内容,了解其周围的内容,掌握文本中表示的内容,或者了解其中任何一个如何适应更大的上下文,那么向量作为一种表示就无法做到这一点。
相比之下,知识图谱是世界的声明性(或者用人工智能术语来说,是符号性)表示。因此,人类和机器都可以理解和推理知识图谱。这是一个大问题,我们稍后会重新讨论。此外,您可以查询、可视化、注释、修复和扩展知识图谱。知识图谱代表您的世界模型 - 代表您正在处理的领域的世界的一部分。
这不是一场比赛,向量和图形查询各自在 RAG 中增加了价值。正如 LlamaIndex 创始人 Jerry Liu 所指出的,将 GraphRAG 视为包含向量会很有帮助。这与“纯向量 RAG”不同,后者严格基于与基于文本中单词的嵌入的相似性。从根本上说,GraphRAG 就是 RAG,其中检索路径包括知识图谱。如下所示,核心 GraphRAG 模式很简单。它基本上是与具有向量的 RAG 相同的架构,但在图片中分层了一个知识图谱。
在这里,您可以看到触发了图形查询。它可以选择性地包含向量相似性组件。您可以选择将图形和向量分别存储在两个不同的数据库中,或者使用 Neo4j 等支持向量搜索的图形数据库。
使用 GraphRAG 的常见模式之一如下:
进行向量或关键字搜索来找到一组初始节点。
遍历图表以返回有关相关节点的信息。
或者,使用基于图的排名算法(例如 PageRank)对文档重新进行排名。
模式因用例而异,与当今 AI 中的其他一切一样,GraphRAG 被证明是一个丰富的领域,每周都有新发现出现。我们将在未来的博客文章中专门介绍我们今天看到的最常见的 GraphRAG 模式。
使用 GraphRAG 的 GenAI 应用程序遵循与任何 RAG 应用程序相同的模式,但在开始时添加了“创建图形”步骤:
创建图表类似于对文档进行分块并将其加载到矢量数据库中。工具的进步使得创建图表变得如此简单。好消息有三点:
图表具有高度迭代性——您可以从“最小可行图”开始,然后从那里扩展。
一旦数据进入知识图谱,它就会变得非常容易发展。您可以添加更多类型的数据,以获得数据网络效应的好处。您还可以提高数据质量,以提高应用程序结果的价值。
堆栈的这一部分正在迅速改进,这意味着随着工具变得更加复杂,图形创建将变得更加容易。
将图形创建步骤添加到前面的图片中,您将得到如下所示的管道:
稍后我将深入探讨图形创建。现在,我们先将其放在一边,谈谈 GraphRAG 的好处。
相对于纯矢量 RAG,GraphRAG 的优势主要体现在以下三个方面:
更高的准确度和更完整的答案(运行时间/生产效益)
一旦创建了知识图谱,那么构建并随后维护 RAG 应用程序就变得更加容易(开发时间优势)
更好的可解释性、可追溯性和访问控制(治理优势)
让我们深入探讨一下:
我们看到的 GraphRAG 的第一个(也是最直接、最明显的)好处是更高质量的响应。除了我们从客户那里看到的越来越多的例子之外,越来越多的学术研究也支持这一点。数据目录公司 Data.world 就是一个例子。2023 年底,他们发表了一项研究,表明GraphRAG 在 43 个业务问题中平均将 LLM 响应的准确性提高了 3 倍。基准测试发现,在知识图谱的支持下,响应的准确性显著提高。
最近,也许更为人所知的是微软从 2024 年 2 月开始发布的一系列帖子,其中包括一篇研究博客,标题为GraphRAG:解锁叙述性私有数据的 LLM 发现,以及相关研究论文和软件发布。在这里,他们观察到基线 RAG(即带有向量)存在以下两个问题:
基线 RAG 难以将各个点连接起来。当回答问题需要通过共享属性遍历不同的信息片段以提供新的综合见解时,就会发生这种情况。
当被要求全面理解大型数据集合甚至单个大型文档中的总结语义概念时,基线 RAG 的表现不佳。
微软发现,“通过使用 LLM 生成的知识图谱,GraphRAG 极大地改进了 RAG 的‘检索’部分,用更高相关性的内容填充上下文窗口,从而得到更好的答案并捕获证据出处。 ”他们还发现,与其他方法相比,GraphRAG 所需的标记减少了 26% 到 97%,这不仅使其能够更好地提供答案,而且更便宜、更具可扩展性。
深入探讨准确性这一主题,重要的不仅仅是答案是否正确;答案的实用性也很重要。人们发现,使用 GraphRAG 后,答案不仅更准确,而且更丰富、更完整、更有用。LinkedIn 最近发表的论文描述了 GraphRAG 对其客户服务应用程序的影响,这是一个很好的例子。GraphRAG 提高了回答客户服务问题的正确性和丰富性(因此也提高了实用性),为其客户服务团队将每个问题的平均解决时间缩短了 28.6% 。
类似的例子来自Neo4j 和 GCP、AWS 和 Microsoft 的合作伙伴举办的GenAI 研讨会。下面的示例查询针对的是 SEC 文件的集合,很好地说明了使用矢量 + GraphRAG 时可能得到的答案类型与使用仅矢量 RAG 时获得的答案类型:
请注意,描述可能受锂短缺影响的公司的特征与列出可能受影响的特定公司 之间的区别。如果您是希望在市场发生变化时重新平衡投资组合的投资者,或者希望在自然灾害面前重新平衡其供应链的公司,那么获得后者而不仅仅是前者的渠道可能会改变游戏规则。在这里,两个答案都是准确的。第二个显然更有用。
由 Jesus Barrasa 执导的《Going Meta》第 23 集提供了另一个很好的例子,使用法律文件用例,从词汇图开始。
那些关注 X-sphere 并在 LinkedIn 上活跃的人会发现不仅来自实验室,而且来自现场的新例子也经常出现。在这里,Lettria 的 Charles Borderie 给出了一个仅使用矢量的 RAG 与 GraphRAG 对比的例子,对比了基于 LLM 的文本到图形管道,该管道将 10,000 篇金融文章提取到知识图谱中:
如您所见,与普通 RAG 相比,GraphRAG 不仅使答案的质量显著提高,而且答案所需的标记减少了三分之一。
我要介绍的最后一个值得注意的例子来自Writer。他们最近发布了一份基于 RobustQA 框架的RAG 基准测试报告,将他们基于 GraphRAG 的方法与同类最佳竞争工具进行了比较。GraphRAG 的得分为 86%,与竞争对手相比有了显著的提高,竞争对手的得分在 33% 到 76% 之间,延迟相当或更低。
每周我都会与来自不同行业的客户会面,他们从各种 GenAI 应用中获得的积极影响都是一样的。知识图谱让 GenAI 的结果更准确、更有用,从而为 GenAI 扫清了道路。
知识图谱在概念和视觉上都很直观。能够探索它们通常会发现新的见解。许多用户报告的一个意想不到的附带好处是,一旦他们投入精力创建知识图谱,他们就会发现它以意想不到的方式帮助他们构建和调试 GenAI 应用程序。这在一定程度上与将数据视为图表如何生动地描绘出应用程序底层数据有关。该图谱还为您提供了将答案追溯到数据以及沿着因果链追踪数据的钩子。
让我们看一个使用上述锂暴露问题的示例。如果你将向量可视化,你将得到类似这样的结果,只是行和列要多得多:
当以图形形式处理数据时,您可以用矢量表示无法实现的方式来理解它。
以下是LlamaIndex最近网络研讨会上的一个例子,展示了他们提取矢量化块图(词汇图)和 LLM 提取实体(域图)的能力,并通过“MENTIONS”关系将两者联系在一起:
(你可以在Langchain、Haystack、SpringAI等中找到类似的示例。)
通过此图,您可能开始明白,拥有一个丰富的数据结构将如何开启大量新的开发和调试可能性。各个数据部分保留其价值,而结构本身存储并传达额外的含义,您可以使用这些含义为您的应用程序增添更多智能。
这不仅仅是可视化。这也是将数据结构化以传达和存储含义的效果。以下是知名金融科技公司的开发人员在将知识图谱引入其 RAG 工作流程一周后的反应:
这位开发人员的反应与测试驱动开发假设非常吻合,即验证(而不是相信)答案是否正确。就我个人而言,将 100% 的自主权交给 SkyNet 来做出完全不透明的决策,我感到很不安!但更具体地说,即使是非 AI 悲观论者也能体会到能够看到与“ Apple, Inc. ”相关的块或文档实际上不应映射到“ Apple Corps ”的价值。由于数据最终推动了 GenAI 的决策,因此拥有评估和确保正确性的设施几乎至关重要。
GenAI 决策的影响越大,你就越需要能够说服最终负责的人相信这个决策,如果决策出错的话。这通常涉及能够审核每个决策。它还需要有可靠且可重复的良好决策记录。但这还不够。当那个人将决策提交给法庭时,你还需要能够向他解释背后的原因。
LLM 本身并不能提供很好的方法来实现这一点。是的,您可以获得用于做出决策的文档的参考。但这些并不能解释决策本身——更不用说众所周知的 LLM 会编造这些参考!知识图谱在完全不同的层面上运行,使 GenAI 管道内部的推理逻辑更加清晰,输入也更加易于解释。
让我们继续上面的一个例子,其中来自 Lettria 的 Charles 加载了一个知识图谱,其中包含从 10,000 篇金融文章中提取的实体,并将其与 LLM 一起使用来执行 GraphRAG。我们看到了它如何提供更好的答案。让我们看看数据:
将数据视为图表是第一步。数据也是可导航和可查询的,并且可以随着时间的推移进行更正和更新。治理优势在于,查看和审核数据的“世界模型”变得更加容易。相对于提供相同数据的矢量版本,使用图表更有可能让最终负责决策的负责人理解它。在质量保证方面,将数据放在知识图谱中可以更容易地找出数据中的错误和意外(无论是令人愉快的还是其他的),并将它们追溯到来源。您还可以在图表中捕获出处和置信度信息,并将其不仅用于计算,还用于解释。当您查看相同数据的纯矢量版本时,这是不可能的,正如我们之前所讨论的那样,这对于普通人(甚至高于平均水平的人)来说是相当难以理解的。
知识图谱还可以显著增强安全性和隐私性。在构建原型时,这往往不是首要考虑的问题,但它是生产过程中的关键部分。如果您从事受监管的业务(例如银行或医疗保健),则任何特定员工对信息的访问权限可能取决于该员工的角色。无论是 LLM 还是向量数据库,都没有很好的方法来限制信息范围以与角色相匹配。您可以使用知识图谱中的权限轻松处理此问题,其中任何特定参与者访问数据的能力均受数据库控制,并排除他们无权查看的结果。这是一个简单安全策略的模型,您可以在具有细粒度访问控制的知识图谱中实现该策略:
人们经常问我构建知识图谱需要什么。理解答案的第一步是了解与 GenAI 应用程序最相关的两种图谱:
域图是与您的应用程序相关的世界模型的图形表示。这是一个简单的例子:
词汇图12是文档结构的图。最基本的词汇图对每段文本都有一个节点:
人们经常将其扩展为包括块和文档对象(例如表格)、章节、节、页码、文档名称/ID、集合、来源等之间的关系。您还可以组合域和词汇图,如下所示:
创建词汇图很容易,很大程度上只是简单的解析和分块策略的问题。至于域图,有几种不同的路径,具体取决于您引入的数据是来自结构化源、非结构化文本还是两者兼而有之。幸运的是,用于从非结构化数据源创建知识图的工具正在迅速改进。例如,新的Neo4j 知识图谱构建器可以获取 PDF 文档、网页、YouTube 剪辑或维基百科文章,并自动从中创建知识图谱。它只需单击几个按钮即可简单,并且可以让您可视化(当然还可以查询)输入文本的域图和词汇图。它功能强大且有趣,并大大降低了创建知识图谱的障碍。
有关客户、产品、地理位置等的数据可能以结构化形式存在于您企业的某个地方,并且可以直接从其所在位置获取。以最常见的情况(即数据存在于关系数据库中)为例,您可以使用遵循久经考验的关系到图形映射规则的标准工具 。
一旦你有了知识图谱,就会有越来越多的框架用于 GraphRAG,包括LlamaIndex Property Graph Index、Langchain 的 Neo4j 集成以及Haystack等。这个领域发展迅速,但我们现在正处于编程方法变得简单的阶段。
在图形构建方面也是如此,使用Neo4j Importer等工具,它具有用于将表格数据映射和导入图形的图形用户界面,以及上面提到的 Neo4j 的新 v1 LLM 知识图谱构建器。下图总结了构建知识图谱的步骤。
您会发现自己使用知识图谱做的另一件事是将人类语言问题映射到图形数据库查询。Neo4j 的一款新开源工具NeoConverse旨在帮助进行图形的自然语言查询。这是朝着推广这一目标迈出的坚实的第一步。
虽然图表确实需要一些工作和学习才能开始,但也有好消息要说,随着工具的改进,它会变得越来越容易。
LLM 和基于向量的 RAG 所固有的基于单词的计算和语言技能提供了良好的结果。为了获得始终如一的出色结果,我们需要超越字符串,除了单词模型之外,还要捕捉世界模型。就像谷歌发现要掌握搜索一样,他们需要超越单纯的文本分析,绘制出字符串背后的底层事物,我们开始看到同样的模式出现在人工智能世界中。这个模式就是 GraphRAG。
进步呈 S 曲线:当一项技术达到顶峰时,另一项技术会推动进步并超越前者。随着 GenAI 的进步,对于答案质量至关重要的用途;或者内部、外部或监管利益相关者需要可解释性;或者需要对数据访问进行细粒度控制以保护隐私和安全的用途,您的下一个 GenAI 应用程序很有可能会使用知识图谱。
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-11-22
技术动态 | 如何使用知识图谱改进RAG?
2024-11-22
RAG前沿之RAG–知识图谱构建框架Graphusion:兼看LongRAG双视角检索增强生成范式
2024-11-21
OpenSPG/KAG 新版发布:聚焦用户反馈,大幅优化用户体验!
2024-11-15
大语言模型与图结构的融合:推荐系统中的新兴范式
2024-11-15
利用LLM构建非结构化文本的知识图谱
2024-11-13
GraphRAG:基于PolarDB+通义千问+LangChain的知识图谱+大模型最佳实践
2024-11-13
利用LLM Graph Transformer实现知识图谱的高效构建
2024-11-12
什么是知识图谱和AI多模态推理
2024-07-17
2024-07-11
2024-07-13
2024-08-13
2024-07-08
2024-07-12
2024-07-26
2024-06-10
2024-07-04
2024-06-24
2024-11-22
2024-11-04
2024-10-10
2024-10-03
2024-09-27
2024-09-08
2024-09-05
2024-08-27