为了账号安全,请及时绑定邮箱和手机立即绑定

图RAG指南:探索新一代生成式AI应用的新途径

由帕克博士,Charna Parkey

你肯定对用知识图谱和图RAG来提升你的应用程序的潜力感兴趣。

本指南将介绍如何在检索增强生成(见此处^1)中利用知识图谱,从而增加以前没有的上下文理解程度。

RAG图克服了传统向量搜索的局限性,无缝集成多个数据源,产生更精准的结果。真是个激动人心的时刻!行业领导者正在利用RAG图拓展人工智能的边界,并依靠DataStax Astra DB来实现这一变革。

咱们来看看怎么做吧。

RAG是什么以及它是如何工作的?

RAG 是一种自然语言查询技术,用于增强现有的大型语言模型(LLMs),并通过引入外部知识。如图所示,RAG 包含一个检索信息组件,该组件从外部来源获取“智能上下文”,从而提高检索和回答问题的准确性。

让我们来聊聊接下来图表中详细描述的那个智能上下文。GenAI 不仅仅是需要更好地处理业务数据。到目前为止,聊天机器人只用了第一类数据,也就是用户输入的数据。基本的RAG则添加了第二类数据,也就是非结构化的数据。而智能上下文则需要所有四种类型的数据,并且需要是实时的。

标准知识来源于目前存储在内部的内容管理系统、协作平台和搜索引擎中的特定领域的非结构化数据。这些内容包括视频、图片、PDF文档、二进制文件等,并且这些内容也会被交易系统作为元数据信息引用。

个性化数据和用户档案是从表示用户及其与公司互动信息的半结构化数据中整合的。例如,包括用户档案、购买记录、评论、提问记录、点击、身份验证以及其他互动。

基于推导的洞察是基于结构化的历史和预测洞察构建的,这些洞察来自分析系统。例如,预测感兴趣的产品或流失的可能性。

什么是RAG图?

Graph RAG 是 RAG 方法的一种改进。它检索知识图谱作为背景信息提供给大模型进行生成。与一般的图谱不同,知识图谱是一种特定类型的图谱,其中节点代表概念,边代表这些概念之间的关系。这种方法可以让生成的文本包含更多结构化且内容丰富的信息,从而提高生成答案的准确性和相关性。

RAG图的工作原理

图RAG通常会先检索知识图,然后再使用大规模语言模型生成响应。知识图可以是实体导向的也可以是内容导向的。无论选择哪种格式,你不需要专门的知识图数据库去实现图检索和生成。内容导向的知识图是专门为图RAG设计的,能提供更好的大规模语言模型集成,使你能控制结构化的“链接”存储在向量数据库中的数据块。这种方法有助于更全面的上下文理解,从而实现更经济、更智能且更精确的生成。它允许利用比向量表示单独提供的更多类型的现有数据,例如文档之间的相互链接方式。Astra DB支持实体导向的知识图和内容导向的知识图。

RAG图的优势

为了克服仅依赖语义相似性的向量搜索的局限,你可以将任意两个文档链接起来,这样,当你的向量搜索匹配到一个文档时,可以同时检索出两个文档。这种方法提供了一种处理边缘情况的流程,使你的系统会随着时间变得更加智能。例如,如果你的向量数据库中有你需要的内容而未能检索到,你可以添加一个链接将相关文档连接起来。这会通过整合新的结构化数据源,带来更深入的见解和更准确的结果,从而使系统更加智能。

图RAG展示了为RAG带来的两个关键要素:

  • 增强的上下文理解能力:LLM可以更好地理解不同信息之间的关系和依赖关系,从而生成更连贯且符合上下文的回复。
  • 改进的知识整合:图增强检索和生成技术可以从多个来源整合信息(包括知识图谱和外部数据库),这使得模型能够生成更有见地的回复。

在考虑图RAG实现的可扩展性时,需要注意,并非所有的数据库都能处理高度连接的图,这可能导致性能问题。为了确保可扩展性,应选择那些在查询时发现边,而不是为每加载的新数据创建链接的数据库。基于Cassandra构建的Astra DB简化了图的创建,并且非常适合这一用途。图的创建过程可以通过对内容执行简单的操作来实现,而无需调用大型语言模型(LLM)。高效的信息检索也非常重要;最有效的图RAG实现可以从基于图的知识库中高效地检索相关信息,从而减少生成响应所需的时间和计算资源。

总体来说,RAG图结合了图神经网络(GNNs)和RAG模型的优点,创建了一个更加强大和有效的系统来,用于生成高质量、相关且符合上下文的回复。

掌握图谱RAG技术的最佳实践

掌握图检索增强生成技术(RAG)的最佳实践涉及几个关键策略。首先,使用以内容为中心的知识图谱来捕获您所在领域或业务中内容之间关系的信息。这有助于创建更全面和互联的数据集。其次,根据您的应用场景选择合适的数据库,尤其是在构建需要实时用户交互的AI应用时。高效的查询响应时间尤为重要。如果您的应用需要快速插入新数据以便立即可用,高效的数据摄入至关重要。例如,Astra DB支持向量、图和图加向量数据类型,提供高效的数据摄入和查询能力,同时以处理大规模数据。这确保您的系统可以处理大量数据的同时保持性能和精确性。

什么是知识地图?

一个更简化的版本如下所示。当向量搜索在RAG中表现不足时,实体节点及其关系边(关系线)的关联知识可能就是你要找的答案。

然而,知识图谱可以分为实体中心的和内容中心的两种。无论你选择哪一种,都不需要专门的图数据库来实现图RAG。内容中心的知识图谱专门为图RAG设计,能更好地整合LLM并提高相关性。提供更好的LLM集成和相关性,详见:https://www.datastax.com/blog/better-llm-integration-and-relevancy-with-content-centric-knowledge-graphs?utm_medium=byline&utm_source=datastaxmedium&utm_campaign=guide&utm_content=graph-rag

以实体为中心的知识图谱 vs. 以内容为中心的知识图谱

以实体为中心的知识图谱允许使用如Cypher或Gremlin这样的图查询语言来表达各种查询。知识图谱可以捕获向量相似性搜索可能遗漏的信息间的关系,并且大型语言模型(LLMs)可以从无结构的内容中提取知识图谱三元组(来源、关系、目标),只需提示即可。与以实体为中心的知识图谱不同,内容中心的知识图谱则是从表示内容的节点(例如文本片段)开始。图中的节点正是在进行向量搜索时存储的内容,可以代表特定的文本段落、图片或表格、文档的部分内容或其他信息。这些节点代表原始内容,让LLM能够发挥其最佳能力——处理上下文并提取重要信息。内容中心的知识图谱更适合应用于图谱RAG。

搞定挑战
向量搜索的局限性

何时向量相似性不足?当许多向量在向量空间中过于接近,或者相关内容相距太远时。传统的搜索增强技术在处理复杂的查询和尖端技术如ChatGPT带来的高需求时往往力不从心。它们缺乏理解和检索实体之间关系相关信息的能力。请参见下图所示的示例。

问题和答案在向量空间中通常语义距离较远,导致大型语言模型在生成答案时检索到的上下文不完整。在任何运营商的网站上都可以找到数百种受支持的蜂窝设备,为了确保正确信息的检索,仅进行简单的向量搜索是不够的。

基于实体的知识图谱在RAG中的限制

实体中心的知识图谱虽然在执行图查询方面非常强大,但在应用于检索增强生成(RAG)时存在几个限制。这些图谱需要一个劳动密集型的过程来构建模式并引导模型进行正确的知识提取,这需要一定的领域专业知识。虽然大型语言模型(LLMs)可以提供帮助,但在应用它们于摄入过程中成本较高。扩展实体中心的知识图谱并在获取良好结果方面具有挑战性。此外,在构建这些图谱时,由于问题尚未明确,因此需要猜测和人工判断哪些事实是重要的。这一过程导致只提取实体和关系信息,可能会忽略其他对LLM生成准确响应至关重要的信息。

Astra DB的图数据库增强功能(Graph RAG)如何解决这些挑战

阿斯特拉的 RAG 图谱解决了传统实体为中心的知识图谱所面临的挑战,通过利用以内容为中心的知识图谱,这些知识图谱专为需要完整上下文检索的生成式 AI 应用程序设计。这些图谱在一个数据库中同时存储结构化和非结构化文本,大大减少了向大型语言模型 (LLM) 提供所需信息的工作量。

基于内容的知识图谱的一个主要优势在于它们确保在创建过程中信息不被丢弃。这种做法减少了随需求变化而重新索引信息的需求,让LLM能够根据具体问题在保存的上下文中提取答案。

此外,创建这些图表不需要领域专家来调整知识提取过程的参数。相反,您可以向现有的向量搜索管道中添加边提取功能,链接将自动连接。通过使用我们的预构建的提取器来定义图连接并快速加载文档内容,此过程进一步简化。

创建以内容为中心的知识图谱的过程可以通过对内容进行简单的操作来实现,无需调用大型语言模型。我们为LangChain贡献了Graph Vector Store,用户只需修改两行代码,就能轻松构建具有图连接的向量存储。这种集成使得通过结合图的连接性和高效理解及检索相关数据的能力,使得RAG应用程序的性能提升变得简单。

处理高度连接的知识图谱

处理高度互联的知识图谱可能颇具挑战,但Astra DB的内容中心的知识图谱提供了一个快速且易于填充的解决方案,类似于向量数据库。然而,生成高度连接的图谱需要仔细规划链接或边的添加时机与方式。

Astra 通过记录每个块数据链接到哪里的信息,实现了存储连接度任意高的图的可扩展且高效的方式。这种方法确保即使高度连接的图也能高效管理而不会影响性能。

图的遍历遵循最大边际相关性(MMR)原则,这有助于检索与查询最相关且多样化的信息。这种方法确保遍历过程能够获取到全面且相关的结果,从而提升知识图谱提供准确且详尽答案的整体效果。

更高效的知识图谱,无需边的构建

构建更高效的知识图谱,没有边,涉及优化模式和查询模式,以便在通用数据库之上进行检索。这种方法使添加节点更简单,并使遍历更快。关键变化在于存储出去和进来的链接,而不是实际生成边。这意味着遍历在查询时进行,以发现边,而不是在加载节点时生成边,从而使得遍历速度更快。在遍历过程中,只考虑一次每个连接节点的标签或属性,达到的节点集不会受到改变,而在传统图中,每当遍历节点时,都必须考虑每条边。这种方法利用通用数据库处理相互关联内容的效率。

链接和连线

与其具体描述边,我们使用“链接”的概念,请参见下面的图来帮助理解这个概念。每个节点定义了零个或多个链接,这些链接连接到其他文档中的相应链接。具有出站链接的节点与其他具有匹配入站链接的节点之间都有边相连。例如,假设三个节点通过关键词“foo”相连。节点2是唯一具有关键词“bar”的节点,因此它与“bar”这个词没有连接。节点1有一个指向“bar”的出站链接,而节点3有一个指向“bar”的入站链接,因此节点1和节点3之间有一条由节点1指向节点3的单向边。

类似于超图可以表示为二分图(即,一种特殊的图,其中节点分为两组,每条边仅连接这两组中的节点),这可以被视作一个图,其中节点之间的边通过代表图中标记的不同类型的节点。在这种情况下,从节点到标记的连接是从节点到标记的边,从标记到节点的连接是从标记到节点的边。在原图中,节点之间的边等同于在这个二分图中,通过标记节点的长度为2的路径。长度为2的路径是指在节点之间通过恰好两条边连接的路径。

Graph RAG 发展的未来方向

图谱RAG未来发展的几个关键领域包括:

  1. 手动链接与自动提取:通过引入自动提取技术来简化手动链接。
  2. 多模态链接:开发连接不同内容类型的能力,例如段落与它们引用的表格或图像。
  3. 文档定义链接:增强链接文档中特定术语或短语(如法律文件中的“租户”)的能力。
  4. 自然语言引用检测:实现能够检测和链接自然语言引用的系统,例如“参见第4节”或“如定义…”。
  5. 引用处理:改进文档中引用的处理及链接。
  6. 混合知识图谱支持:支持以内容为中心和实体为中心的知识图谱。
  7. 基于重排序的遍历:引入基于特定标准重新排序节点的遍历方法。
  8. 摘要生成:开发技术以总结每个节点及其所在社区的信息。

这些方向旨在提升图谱RAG系统的效率、准确性和易用性,使其更加稳健和多功能。

使用Astra DB进行全文检索入门

要开始使用Astra DB进行完整的上下文检索,可以使用其内置功能。可以利用其内置支持的特性直接开始使用。Astra DB 提供了图连接功能,帮助用户深入理解数据并有效管理异常情况。

为了体验这些进步的好处,我们邀请您通过使用LangChain将您的项目与内容中心的知识图谱整合起来。这将使您能够进一步探索连接和检索内容的新功能,从而使您的数据交互更加高效和富有洞察力。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消