GraphRAG:用图形重新定义知识提取

2024年08月02日 由 alex 发表 158 0

想象一下,尝试用一张破损的地图(Vanilla RAG)在复杂的信息迷宫中导航。这项任务非常艰巨,迷路的风险很高。这就是微软研究院的 GraphRAG(图形检索增强生成)发挥作用的地方,它将非结构化的数据海洋转化为结构化、可导航且信息量丰富的知识图谱。


GraphRAG 是 RAG 的一个范式转变,旨在增强我们与大型数据集交互和理解大型数据集的方式。


传统 RAG 的局限性


传统 RAG 系统面临的挑战

想象一下,你正在处理一个复杂的数据集,例如庞大的企业知识档案。传统的 RAG 系统在面对现实世界数据的深度和细微差别时往往会陷入困境。它们通常善于匹配简单明了的查询,但在需要更深入的上下文理解或相互关联的数据点时就会出现问题。这正是 GraphRAG 的优势所在:


  • 上下文深度: 传统系统往往提供肤浅的答案,与之不同的是,GraphRAG 擅长提供反映数据内部更深层次联系和关系的见解,从不同的信息源中综合出新的见解。
  • 可扩展性: 传统系统适用于中小型数据集,而 GraphRAG 则适用于大型、不断变化的数据集,能在广泛的数据集合中提供整体理解和语义概念总结。


需要一个超越表面理解的系统


如果我们需要的不仅仅是表面的理解,会发生什么情况?


如果我们不仅能搜索数据,还能真正理解其结构和深度呢?这就是 GraphRAG 发挥作用的地方。通过利用高级聚类算法和知识图谱的强大功能,GraphRAG 极大地提高了问答性能,尤其是当任务涉及复杂、相互关联的信息时。


GraphRAG 使用 LLM根据输入语料库创建知识图谱。该图由社区摘要充实而成,用于在查询时增强提示。因此,与传统的 RAG 方法相比,GraphRAG 在智能响应或掌握响应方面有显著提高,这使其在推理私有数据集(如企业的专有研究、业务文档或通信)时非常有效。


GraphRAG 的卓越功能


GraphRAG 的增强输出

利用上下文深度改造数据检索

GraphRAG 不只是单纯的数据检索,它还能理解上下文、识别趋势并提供连贯的叙述。例如,在查询有关初创企业生态系统的数据集时,传统系统可能会列出最近的几轮融资或著名的初创企业。相比之下,GraphRAG 可以动态链接实体和关系,创建多维数据地图,提供传统系统无法比拟的全面见解。


独特功能: 社区构建

通过社区构建革新知识图谱


GraphRAG 高效的核心在于它能够通过一项名为 "社区构建 "的功能,理解和组织各种联系,从而揭示更深层次的见解:

  • 实体检测: GraphRAG 扫描数据集,以识别公司、技术和细分市场等实体并对其进行分类。
  • 关系映射: 它检查这些实体之间的联系,绘制出将它们联系在一起的关系图。
  • 社区聚类: 利用先进的聚类算法,GraphRAG 将这些实体归类为代表相关信息紧密联系的群组。


社区构建使 GraphRAG 能够将混乱的数据转化为有组织的、可访问的知识,使其不仅成为检索工具,而且成为发现的伙伴。这一独特功能使 GraphRAG 与众不同,它提供了无与伦比的洞察力,超越了单纯的数据检索,成为真正的数据理解工具。


GraphRAG 索引实现

接下来,我们将深入探讨 GraphRAG 的实施阶段,详细分解流程中的每一个步骤。整个管道资产附后供你参考,可在一个地方提供全面概述。

让我们分解每个阶段


14


第 1 阶段:组成文本单元

为大规模文本分析奠定基础


TextUnits 本质上是从较大的文档中分割出来的文本块,与传统的 RAG 系统一致。创建这些文本块需要对文本块的粒度进行决策。在我们的启动分析中,文本块的大小设定为 200 个标记。这种粒度有助于在不丢失上下文的情况下捕获详细的公司概况,而上下文对于后期阶段准确的实体和关系提取至关重要。


不过,平衡块大小也很重要。较大的数据块虽然有助于加快处理速度,但可能会导致较低的保真度输出和意义不大的参考文本。相反,较小的数据块往往能保持较高的数据质量和完整性。


默认情况下,系统会将数据块与文档边界对齐,确保文档与 TextUnits 之间是 "1 对多 "的关系。


这种对齐方式可保持文档上下文的完整性。对于较短的文档,如简短的公司更新或新闻文章,可调整为多对多关系,以更好地捕捉相互关联的内容。


15


创建文本单元

在这一阶段,我们从文档输入阶段开始,对文档进行初步处理。然后根据标记数将原始文本分割成文本单元,以获得最佳的分析粒度。


配置分块大小:

灵活的设置允许分析深度,从默认的 300 到最大 1200 个 token 不等。这种灵活性可满足不同的需求,从详细的 "拾取 "流程到更广泛的概览。


块大小对提取质量的影响:

大块(便于快速处理)和小块(提高数据完整性)之间的平衡至关重要。较小的数据块往往会产生较高的召回率和精确度,从而优化准确性和相关性。


分组配置:

  • 将数据块与文档边界对齐可保持文档上下文的完整性。
  • 短文档的可调整关系可配置为 "1 对多 "或 "多对多 "关系,从而增强对相互关联内容的捕捉。


这种创建 TextUnits 的综合方法为 GraphRAG 的后续实施阶段奠定了坚实的基础。通过确保文本块的最佳大小和对齐方式,我们为准确而有意义的数据提取和分析奠定了基础。接下来,我们将进入第二阶段,将这些 TextUnits 转化为结构化的可查询图形。


第2阶段:图表提取

将文本单元转化为结构化知识图谱


图提取的第 2 阶段是构建知识图谱的基石,在这一阶段,原始文本被转化为结构化、可查询的图谱,其中囊括了实体、关系和主张。该阶段以第 1 阶段准备的文本单元为基础,为建立一个可轻松浏览和分析的互连信息网络奠定了基础。


图形提取涉及几个关键步骤。让我们逐一深入探讨:


16


实体和关系提取:

该过程首先要对每个文本单元进行详细分析,以提取实体及其关系。实体通过名称、类型和描述等特定属性来识别。关系连接这些实体,并由其来源、目标和链接性质来定义。


实体和关系汇总:

提取之后,我们会遇到一个关键的总结过程。在这里,我们将收集到的实体和关系描述提炼成单一、简洁的描述。这一步至关重要,因为它可以整合信息,使最终用户更容易快速掌握复杂的数据。


索赔提取和分类:

同时提取权利要求。索赔是与实体相关联的事实陈述,通常包含时间或条件细节,这为我们的图表增加了一层深度。提取后,这些主张被归类为协变因素,负责丰富图中的上下文。


这一阶段不仅仅是数据提取,而是为建立一个可轻松浏览和分析的互连信息网络奠定基础。通过将 TextUnits 转化为结构化的知识图谱,我们为后续阶段打下了坚实的基础,图谱将在后续阶段得到进一步完善和增强。接下来,我们将探讨第三阶段:图增强,在这一阶段,我们将增强初步的图结构,以支持复杂的查询任务。


第 3 阶段:图形增强

完善和增强初步图表结构


图增强是原始、非结构化数据开始形成更明确形式的过程。这一阶段分为两个主要步骤: 群落检测和图嵌入。这两个过程对于为图表添加意义层和功能层至关重要,使其成为数据分析的强大工具。


17


社群检测

这一阶段的第一步是使用层次莱顿算法(Hierarchical Leiden Algorithm)进行社群检测。


根据节点之间的连接强度对图进行递归聚类,直到达到社群规模阈值为止。


通过这种技术,我们可以发现图中错综复杂的群落结构,这对于在不同粒度水平上浏览和总结图至关重要。


社群检测不仅仅是对相似实体进行分组,它还有助于识别图中比其他实体连接更密集的核心群集。社区的这种分层排列为用户和算法提供了一个可遵循的路线图,将复杂的数据集简化为易于理解的片段。

  • 分层聚类: 使用层次莱顿算法进行递归聚类。
  • 动态阈值: 根据数据调整群落大小设置。
  • 抗变异能力: 确保对数据不一致性的鲁棒性。


图嵌入

在检测社群之后,我们使用 Node2Vec 算法进行图嵌入。


这一步将我们的图转化为一个几何空间,在这个空间中,每个节点的位置不仅由其显式连接决定,还由其与其他节点的上下文相似性决定。


这一嵌入过程至关重要,因为它为我们的图提供了隐式结构,使系统能够在查询阶段执行语义搜索并有效识别相关概念。


图形嵌入有效地捕捉了实体之间的细微关系,而这些关系在数据中可能没有明确列出。通过这样做,它可以增强图的实用性,从而根据概念的相似性做出更直观、更准确的查询响应。

  • Node2Vec 算法: 生成节点矢量表示,同时捕捉显式连接和上下文相似性。


图形表输出

一旦对图形进行了彻底的扩充,该阶段的最后一步就是图形表输出。在此,经过丰富的实体和关系将被编译成结构化数据表,这些实体和关系现已嵌入各自的社区并配备了矢量表示。这些表格至关重要,因为它们是以后阶段查询过程的骨干,可确保本阶段所做的所有修改和增强都得到保留和有效利用。


在这一阶段,原始的非结构化数据开始呈现出更加明确的形式。通过检测群落并将图嵌入几何空间,图增强技术增加了重要的意义和功能层。这种丰富而有序的结构为复杂的查询任务做好了准备,使数据分析更加直观和准确。


第 4 阶段:社区汇总

综合结构化数据并将其与上下文联系起来


社区总结是整个过程中最有趣、最关键的组成部分之一。这一阶段对于综合前几个阶段中结构化的大量数据并将其上下文化至关重要。在此,我们将重点放在从图增强阶段识别出的社区中生成详细、可操作的见解,从而加深对图的组成和动态的理解。


社区汇总概述

第 4 阶段利用结构图(现已使用 Node2Vec 嵌入和社区层次结构进行了丰富)为每个社区创建综合报告。这些报告在提供图谱结构的全景和细粒度视图方面至关重要,可提供不同细节层次的见解--从整个图谱的总体主题到局部集群的复杂细节。


18


生成社区报告

本阶段的第一步是为每个社区生成详细报告。我们利用 LLM的强大功能,综合概括每个社区的独特特征和关键数据点。这些报告可作为执行概览,包含有关定义每个社区的实体、关系和诉求的关键信息。


这些报告的深度因社区在层次结构中的级别而异,可提供从广泛概述到具体详细分析的定制见解。


使用 LLM 生成详细报告

  • 每份社群报告都包括高层次的概述以及对社群组成和动态的详细描述。
  • 例如,在一个有关技术创新的数据集中,一份报告可能会侧重于人工智能的进步,详细介绍关键公司、技术及其在该社区中的互动。


总结社区报告

在生成全面的社区报告后,我们会进一步将这些信息浓缩成摘要形式。这一过程包括将完整的报告提炼成更简洁的文件,保留基本信息,使其适合快速参考并更易于理解。这些摘要对于需要掌握要点而又不需要深入研究每份报告全部细节的用户来说至关重要。


迭代总结

  • 总结过程是反复进行的,不断改进报告的准确性和相关性。
  • 利用 LLM,系统可以捕捉到每个社区的精髓,确保即使是汇总版本也能提供丰富而有价值的见解。


社区嵌入

这一阶段的创新步骤是嵌入社区摘要。通过将文本摘要转换为矢量表示,我们将其更深入地整合到图的结构中。这种嵌入不仅增强了图的语义搜索能力,还将文本数据与图的结构属性紧密联系在一起,从而可以进行细致入微的分析和查询,同时考虑文本和拓扑结构。


动态嵌入

  • 对图的向量空间进行持续更新,确保嵌入保持准确,并反映社区的当前状态。
  • 这一步骤增强了图的实用性,使其能够进行更复杂、更贴近上下文的搜索。


社区表格发布

嵌入社区摘要后,这一阶段的最后一步就是社区表的发布。在这里,经过充实的摘要(现在配备了矢量表示法)被编译成结构化数据表。这些表格至关重要,因为它们是后一阶段查询过程的骨干,可确保本阶段所做的所有修改和增强都能得到保留和有效利用。


编译社区表

  • 结构化表格专为查询和分析而设计,便于进行高效的数据搜索。
  • 这些表格支持多层次的详细检查,从高层次的概述到特定群组的深入分析。


总之,第 4 阶段:社区汇总是结构化数据真正发挥作用的地方。通过生成详细的社区报告、汇总这些报告并将汇总嵌入图表,我们创建了一个丰富、动态和高度可浏览的知识库。这一阶段不仅增强了图的语义搜索能力,还为用户提供了深入、可操作的见解。


第 5 阶段: 文档处理

整合和完善文档以提高可用性


GraphRAG 系统的第 5 阶段是文档处理,主要是整合和完善文档数据,以提高知识模型的可用性和可访问性。该阶段确保前几个阶段的结构化数据得到有效链接,并以全面、可查询的格式呈现。


19


链接到文本单元

本阶段的一项关键任务是将每个文档链接回第一阶段生成的文本单元。这种链接至关重要,因为它在文档和整个 GraphRAG 流程中使用的原子分析单元之间保持了可追溯的路径。例如,详细介绍初创公司 "Dropbox "的文档将链接回讨论其融资轮次、技术创新和市场影响的 TextUnits,从而确保获得的见解或数据可以准确地追溯到其原始来源。


确保可追溯的数据路径

  • 通过将文档链接到 TextUnits,我们保持了一条清晰、可追溯的路径,将更高层次的文档见解与其基础元素联系起来。


文档嵌入

在链接过程之后,我们进行文档嵌入。在此,每份文档都会根据其相关 TextUnits 的聚合嵌入转化为矢量表示。这一嵌入过程捕捉到了文档的语义本质,如初创企业的详细商业模式或技术进步,有助于创建文档的细致网络表示。这种嵌入对于理解文档之间的隐含关系以及促进相似性搜索和聚类等高级分析任务至关重要。


捕捉语义本质:

  • 生成文档嵌入有助于捕捉语义内容,增强图表的搜索和分析能力。


编译文档表

文档链接和嵌入完成后,最后一步就是将文档编译成结构化数据表。这些表格经过系统整理,便于访问和查询。


总之,第 5 阶段: 文档处理整合并完善文档数据,将其链接回基础 TextUnits 并嵌入其中以增强语义搜索。通过将文档编译成结构化表格,该阶段可确保知识模型的全面性和可访问性,并为高级查询做好准备。


使用 GraphRAG 进行高级查询


全局搜索

通过广泛查询揭示全面见解


GraphRAG 中的 "全局搜索 "旨在解决广泛、总体性的问题,如:

  • "这些数据的首要主题是什么?
  • "过去 4 年中,YC 的人工智能格局发生了哪些变化?
  • "你认为创始人人数与创意复杂度之间有什么关联?


通过遍历整个图结构,它可以分析社区集群及其关系,从而得出总体概念和模式。这一过程采用了地图还原式算法,确保了回复的深度和广度。


全局搜索过程

全局搜索将用户的查询与对话历史记录结合起来,整合了过去的相关互动。这种双重输入可确保每次回复不仅准确无误,而且还能根据用户与系统正在进行的对话进行语境感知。


第 1 阶段:接收输入

  • 用户查询: 用户的初始输入查询。
  • 对话历史: 考虑用户以前的相关互动,以提供符合上下文的回复。


第 2 阶段:社区报告准备

  • 社区选择: 系统从其知识图谱中选择相关的社区片段,识别出富含与查询相关信息的群组。
  • 洗牌: 为避免偏差并确保整体视图,对这些片段进行随机化处理。这样可以确保图谱的多样化覆盖。
  • 分割: 将社区报告分割成易于管理的小块,为深入分析保留上下文。


20


第 3 阶段:生成中间响应(地图阶段)

  • 处理: 系统对这些数据块进行分析,生成潜在的响应并指出关键的见解。
  • 评级: 对每个数据块的相关性和优先级进行评估,确保只有信息量最大的数据块才能向前推进。已评级的中间回复会经过一致性检查和质量评估。


21


第 4 阶段:答复综合(减少阶段)

  • 排序和筛选: 对评分最高的回复进行排序和筛选,根据相关性整理数据。过滤掉较弱的回复,然后汇总最高分的回复。
  • 汇总: 合并排名靠前的回复,合并相关的见解,确保全面覆盖查询范围。


22


第 5 阶段: 最终对策制定

  • 整合: 将数据合并为一个连贯的答复,保持逻辑流畅并确保完整性。
  • 格式化: 准备最终输出,应用格式规则确保可读性。


23


第 6 阶段: 产出交付

  • 响应输出: 向用户发送最终回复。发送响应,并保存日志以备将来参考。


深度见解


GraphRAG 的 "全局搜索 "不仅仅是一个工具,它还是从庞大的数据集中发掘深刻见解的入口。通过将用户查询与历史互动相结合、分析社区集群以及通过结构化流程对回复进行综合,它可确保用户获得全面的、了解上下文的答案。


通过这一过程,GraphRAG 将广泛、复杂的查询转化为可操作的智能,为用户提供了一种深入、有效地探索和理解大型数据集的强大机制。


本地搜索

释放基于实体的精确推理


本地搜索更适用于实体识别清晰、可在图的本地部分与一组主要实体进行交互的查询。这种以精确性为重点的方法可以获得非常详细和具体的见解,使其成为需要基于实体进行深入推理的任务中不可或缺的工具。


24


实体描述嵌入

收到查询后,系统会识别关键词和短语,并将其转换为实体描述嵌入。这种嵌入以系统可进一步处理的形式体现了查询的本质。


提取关键实体:

利用嵌入的查询描述,系统会扫描知识图谱,找出与查询密切相关的实体。这可能包括识别用户输入中提到的特定公司或技术。


跨数据流的映射和提取:

一旦识别出实体,系统就会将这些实体映射到各种数据点,从而扩大其覆盖范围:


文本单元:

从提及这些实体的文档中提取相关片段,以便进一步分析。


社区报告:

系统从与已识别实体相关的社区中检索报告,提供既广泛又具体的见解。


实体关系:

了解实体之间的联系可以获得更丰富的背景信息,因此系统会映射和检索这些实体如何在图中互动的信息。


协变量数据:

还可检索可能影响实体或其关系的其他协变量信息,为收集到的信息增加另一层深度。


优先排序和筛选:

有了这些信息,真正的挑战是如何以易于理解的格式呈现这些信息。系统会对这些数据进行优先排序和过滤,确保最相关、最关键的信息能够呈现在最前沿,以随时响应查询。


撰写回复:

所有这些元素汇聚成一个回复,不仅能回答用户的问题,还能通过 GraphRAG 系统中的深层次、相互关联的数据提供详细、精确的回答。


解锁详细见解

GraphRAG 中的本地搜索是基于实体的精确查询的强大机制。通过关注图中的特定实体及其关系,它可提供高度详细且上下文丰富的答案。这使得本地搜索成为需要深入、细致地了解其数据的用户的宝贵工具。


通过这一过程,GraphRAG 将具体、详细的查询转化为可操作的智能,为用户提供了一个强大的机制,以无与伦比的精确度探索和了解他们的数据。


借助全局和本地搜索功能,GraphRAG 为全面、精确的数据查询提供了一套强大的工具。无论是解决广泛的主题问题,还是深入研究特定的实体关系,GraphRAG 都能提供无与伦比的洞察力,彻底改变我们与大型数据集交互和理解大型数据集的方式。


结论

利用 GraphRAG 彻底改变数据智能

GraphRAG 代表着检索增强生成领域的一次重大飞跃,改变了我们与大型数据集交互和理解大型数据集的方式。通过利用分层聚类、图嵌入和社区构建等先进技术,GraphRAG 解决了传统 RAG 系统的局限性,为数据智能设定了新标准。


全面且内涵丰富的洞察力

通过其创新方法,GraphRAG 提供了一个结构化的、可导航的知识图谱,而不仅仅是数据检索。它能提供全面的、上下文丰富的洞察力,使其成为任何希望从复杂数据集中提取深入的、可操作的情报的人不可或缺的工具。全局搜索和本地搜索的双重功能可确保用户轻松处理广泛的主题问题和基于实体的精确查询。


全局搜索

通过分析完整的图结构、将用户查询与历史交互整合在一起,并通过结构化的 map-reduce 流程对响应进行综合,使用户能够发现总体主题和模式。


本地搜索

重点关注图中的特定实体及其关系,提供高度详细和上下文丰富的答案,非常适合需要基于实体进行深入推理的任务。


数据检索和生成的未来

GraphRAG 能够将原始数据转化为可操作的智能,再加上其强大的查询功能,使其成为数据检索和理解领域的游戏规则改变者。通过将数据组织成直观的社区并将其嵌入几何空间,GraphRAG 增强了知识模型的可用性和可访问性,使用户更容易浏览和分析复杂的数据集。

文章来源:https://medium.com/@thecagedai/graphrag-redefining-knowledge-extraction-97fb3d8f9bec
欢迎关注ATYUN官方公众号
商务合作及内容投稿请联系邮箱:bd@atyun.com
评论 登录
写评论取消
回复取消