前言

上篇分享我们已经了解了GraphRAG的核心思想,本篇分享我们一起来学习GraphRAG知识图谱构建的详细步骤。有读者可能会问:“我只要会用GraphRAG就可以了,为什么还要花费大量时间学习GraphRAG的详细步骤呢”,主要有如下两点原因:

  1. 只有了解GraphRAG的详细步骤,我们才能在GraphRAG项目安装部署和使用过程中更加合理的设置相关参数(GraphRAG项目有一定门槛)。
  2. 遇到目前通用GraphRAG框架无法满足工作需求的情况,往往需要更加进阶的自己手动搭建GraphRAG,这就需要你掌握GraphRAG的详细流程了。

基于以上两点重要原因,大家就赶紧来看看文本被GraphRAG构建为知识图谱的详细步骤吧!

一、GraphRAG整体流程介绍

GraphRAG 利用大模型将原始文本数据转换为知识图谱来满足跨上下文检索的需求。知识图谱将信息表示为实体和关系互连的网络。与简单的文本片段相比,提供更全面的视角。这种结构化表示使 GraphRAG 能够擅长回答需要推理和连接不同信息的复杂问题。

GraphRAG 主要涉及两个主要阶段:知识图谱构建索引查询。本期分享我们具体讲述GraphRAG知识图谱构建的完整流程。文本输入GraphRAG后被分为可管理的文本单元,然后大模型从这些文本单元中提取实体、关系和声明,形成知识图谱。具体的流程如下图所示:

img

详细来说GraphRAG知识图谱构建可分为如下流程执行:

前排提示,文末有AI大模型CSDN独家资料包哦!

  1. 文本切分(Text Unit Splitting):

    • GraphRAG需要处理一大篇文档或语料库,首先它会将这些文档切分为Text Units (文本单元),这些Text Units是输入文档的切片,通常由段落、句子或固定长度文本块切分而来。
    • 切分为了便于对文本内容进行分析,尤其是当需要进行实体识别和关系抽取时能准确关联到文档上下文。
  2. 实体识别 (Entity Extraction):

    • 在文本切分后,GraphRAG会使用大模型对每个Text Unit进行处理,提取其中的实体,这些实体通常是指文档中出现的人物、地点、组织、概念等信息。
    • 实体识别的目的是构建实体表,将所有实体提取出来后并为后续的关系挖掘和查询做准备。
  3. 关系挖掘(Relation Extraction):

    • 关系挖掘是从文本中识别出实体之间的关系,例如:谁与谁有关联、某个实体与另一个实体之间的关系是“属于”、“合作”、“对立”等。
    • 通过关系抽取,GraphRAG可以构建关系表实体关系表,这两个表将有助于后续的查询引擎理解和推理。
  4. 文本嵌入 (Text Embedding)

    • 在识别了文本中的实体和关系后,GraphRAG会利用词嵌入Embedding模型将文本和实体表示为向量。这些向量不仅包括了文本的语义信息,还能为后续的检索和查询提供高效表示。
    • 这些嵌入向量将保存在向量数据库中,为查询时提供快速的相似度搜索。
  5. 构建社区和层级结构(Communityand Hierarchical Clustering)

    • 通过使用 图谱聚类算法,GraphRAG 会将不同的实体和关系分组,形成多个社区(Community)。这些社区是根据实体之间的相似度或关系的密切程度进行划分的。
    • 通过分组GraphRAG会构建社区表, 更好地理解不同知识领域的结构,为查询时提供更具层次性的上下文信息。

大家如果具备知识图谱经验会快速理解以上步骤是标准化的知识图谱处理流程。如果大家不了解可能一头雾水发出疑问:这些流程都是干啥用的呢?不用担心,下面我将通过一个实例带你从0到1细致了解这些流程的执行过程。

二、实战案例

本篇分享通过实战案例详细说明知识图谱构建的各个步骤,案例文本如下:

《大数据时代》是一本由维克托·迈尔-舍恩伯格与肯尼斯·库克耶合著的书籍,讨论了如何在海量数据中挖掘出有价值的信息。这本书深入探讨了数据科学的应用,并阐述了数据分析和预测在各行各业中的影响力。在书中,作者举了许多实际例子,说明大数据如何改变我们的生活,甚至如何预测未来的趋势。

如果我们将该文本输入GraphRAG并构建一个简单的知识图谱,每一步的流程会是什么样的?

2.1 文本切分

假设切分的标准是按50个token(50个词语)进行切分,上述文本经过切分后的结果包含三个文本单元:

  1. 文本单元1:

    《大数据时代》是一本由维克托·迈尔-舍恩伯格与肯尼斯·库克耶合著的书籍,讨论了如何在海量数据中挖掘出有价值的信息。

  2. 文本单元2:

    这本书深入探讨了数据科学的应用,并阐述了数据分析和预测在各行各业中的影响力。

  3. 文本单元3:

    在书中,作者举了许多实际例子,说明大数据如何改变我们的生活甚至如何预测未来的趋势。
    前排提示,文末有AI大模型CSDN独家资料包哦!

以上三个文本单元会被记录在文本块表中,内容如下:

id human_readable_id text n_tokens document_ids
t1 text_unit_1 《大数据时代》是一本由维克托·迈尔-舍恩伯格与肯尼斯·库克耶合著的书籍,讨论了如何在海量数据中挖掘出有价值的信息。 50 doc_1
t2 text_unit_2 这本书深入探讨了数据科学的应用,并阐述了数据分析和预测在各行各业中的影响力。 50 doc_1
t3 text_unit_3 在书中,作者举了许多实际例子,说明大数据如何改变我们的生活,甚至如何预测未来的趋势。 50 doc_1

表中各列idhuman_readable_id表示文本块编号,text表示文本块对应的文本,n_tokens表示每个文本块包含的token数目,document_ids表示文本块节选自哪一文件。文本切分流程以图形式表示如下:

img

2.2 实体识别

段落切分后下一工作就是实体识别,我们先来认识什么是实体? 实体通常指文本中独立存在具有特定意义的对象,通常是一组特定名词,它们代表显示世界中的对象或概念,可以是人、地点、组织、事件、时间等。

知识图谱中每个实体都有其独特的标识和属性, 这些标识和属性帮助我们理解实体在特定领域中的作用和上下文。实体识别是图谱构建的重要步骤之一。实体在知识图谱中被标识为图中的点,不同的实体点通过边(实体间关系)相连构成知识图谱。

还是以我们上面的文本为例,我们从中提取实体并构建如下的实体信息表:

id human_readable_id title type description text_unit_ids
e1 大数据时代 大数据时代 书籍 《大数据时代》是一本关于大数据应用的书籍,作者讨论了数据如何改变世界。 [0, 1]
e2 维克托·迈尔-舍恩伯格 维克托·迈尔-舍恩伯格 人物 维克托·迈尔-舍恩伯格是大数据领域的专家,他是《大数据时代》的合著者。 [0, 1]
e3 肯尼斯·库克耶 肯尼斯·库克耶 人物 肯尼斯·库克耶同样是大数据领域的专家,他是《大数据时代》的合著者之一。 [0, 1]
e4 数据科学 数据科学 事件 《大数据时代》讨论的核心议题,关于如何进行更有效的数据挖掘。 [1]
e5 数据分析 数据分析 事件 数据科学领域的某一种具体的实践方法,在大数据时代其价值被进一步放大。 [1, 2]

表中各列idhuman_readable_id表示实体编号,title表示实体名称,type表示实体类别,description表示实体的描述。text_unit_ids表示实体出现在哪些文本块中,这样就把实体和文本块连接起来,所有这些连接关系在之后知识图谱的查询中都会用到。实体识别流程以图形式表示如下:

img

2.3 关系挖掘

知识图谱的构建过程中我们不但会记录实体内容,还要记录不同实体间的语义关系。这些关系可以是显式的,也可以是隐式的,通常的表现形式可以理解为“实体A和实体B之间的关系”,通过挖掘这些关系,最终构建一个“实体-关系-实体”的三元组,这些三元组就是知识图谱的基本单元。我们把抽取实体及其对应关系的步骤叫做关系挖掘。

举个关系挖掘的例子,对语句“维克托·迈尔-舍恩伯格是《大数据时代》一书的作者”进行关系抽取后可以构建如下三元组:

实体A:维克托·迈尔-舍恩伯格(人)
实体B:《大数据时代》一书(书籍)
关系:“是....的作者”

仅仅识别出实体间的关系不够,知识图谱的构建还需要判断实体之间的关系“硬不硬”。那如何评价实体间连接关系的重要程度呢?这里简单介绍一些关于图的相关评判标准:

  1. 度数(Degree):

    度数是一个节点(实体)在图中直接相连的边的数量,表示该实体在知识图谱中的连接性,度数越高说明该实体在图中越重要或越活跃。

  2. 等级(Level):

    等级是指实体在知识图谱中的层次或深度,直观理解就是实体位置越在图谱的中心,说明实体层次越深,相关性越强。等级可以通过图的中心性算法(例如PageRank和近邻中心性算法)来衡量。

一个实体如果度数越高,等级越深说明这个实体最重要。

单纯介绍概念还是不好理解的,我们还是通过上面的文本来实际操作一下:

  1. 首先我们从上述文本中提取如下实体:

    • 大数据时代(书籍)
    • 维克托·迈尔-舍恩伯格(人名)
    • 肯尼斯·库克耶(人名)
    • 数据科学(学科领域)
    • 数据分析(学科领域)
  2. 然后从文本中识别出实体之间的关系(以三元组表示)

    • 维克托·迈尔-舍恩伯格 与 《大数据时代》 之间的关系:“是作者”
    • 肯尼斯·库克耶 与 《大数据时代》 之间的关系:“是作者”
    • 《大数据时代》 与 数据科学 之间的关系:“探讨”
    • 《大数据时代》 与 数据分析 之间的关系:“阐述”
  3. 通过以上的实体和关系我们可以构建一个简单的关系图结构:

    • 大数据时代<->维克托·迈尔-舍恩伯格(是作者)
    • 大数据时代<->肯尼斯·库克耶(是作者)
    • 大数据时代<->数据科学 (探讨)
    • 大数据时代 <->数据分析(阐述)
  4. 计算不同实体的度数:

    • 大数据时代:度数为 4(它与四个实体都有关系,分别是维克托·迈尔-舍恩伯格、肯尼斯·库克耶、数据科学和数据分析)
    • 维克托·迈尔-舍恩伯格:度数为1(它只与《大数据时代》相关)
    • 肯尼斯·库克耶:度数为1(它只与《大数据时代》相关)
    • 数据科学:度数为1(它只与《大数据时代》相关)
    • 数据分析:度数为1(它只与《大数据时代》相关)
  5. 计算不同实体的等级,这里我就不详细展开等级计算的算法(篇幅会很长且专业性较强),采取直观理解的方法:

    • 大数据时代: 在这个简化的示例中,作为一个核心实体,它连接了所有其他实体因此它的等级值(Level)会较高,可以认为它是核心社区的成员,等级为1(核心层级)
    • 维克托·迈尔-舍恩伯格、肯尼斯·库克耶、数据科学、数据分析:这些实体与“《大数据时代》”相连接,因此它们在图中的位置相对较边缘,等级值(Level)较低,可以认为它们属于外部社区,等级为 2(外层级)

前排提示,文末有AI大模型CSDN独家资料包哦!

执行完以上步骤之后我们可以创建一张关系表,表格内容如下:

id human_readable_id source target description weight combined_degree text_unit_ids
1 relation_1 维克托·迈尔-舍恩伯格 《大数据时代》 作者 0.9 1 [0, 1]
2 relation_2 肯尼斯·库克耶 《大数据时代》 作者 0.7 1 [1]
3 relation_3 《大数据时代》 数据科学 探讨 0.65 1 [2]
4 relation_4 《大数据时代》 数据分析 阐述 0.65 1 [2]

表中各列idhuman_readable_id表示关系编号,source表示实体A,target表示实体B,description表示实体间关系的描述。weight表示的是实体间关系的重要程度(我们没有详细说明weight的计算过程, 大家有疑问可私信),combined_degree表示关系出现次数,text_unit_ids表示关系出现的文本块。

现在有了实体表,有了关系表,我们还需要创建一个合二为一的实体关系表

id human_readable_id title community level degree x y
1 “entity_1” “大数据时代” 1 1 4 0.1 0.5
2 “entity_2” “维克托·迈尔-舍恩伯格” 0 2 1 0.4 0.6
3 “entity_3” “肯尼斯·库克耶” 0 2 1 0.3 0.7
4 “entity_4” “数据科学” 0 2 1 0.6 0.4
5 “entity_5” “数据分析” 0 2 1 0.2 0.2

相信大家可以快速理解表格中各字段,这里主要说明两个字段:

  1. community字段:

    我们基于每个实体的degree和level特性对实体对象聚类(相似特征分为一类),上述表格 大数据时代 level是1, degree是4 而其它实体degree是1,level是2, 所以把大数据时代看成是社区1,其它看成是社区2。(社区聚类是一个非常复杂的过程,这里只是简单说明),那么社区有什么用呢,我们继续看下节。

  2. x,y

    表示知识图谱绘制过程中点的坐标,是可以随意设置的大家不用关注。

关系挖掘流程以图形式表示如下:

img

2.4 社区报告构建

根据社区聚类算法的community字段,我们把实体划分到两个社区:

  1. 社区1(核心社区):

    包括大数据时代

  2. 社区2(外围社区):

    包括 维克托·迈尔-舍恩伯格、肯尼斯·库克耶、数据科学, 数据分析

GraphRAG会基于每个社区的特点生成社区报告,每个社区报告描述该社区的核心内容、关联的实体、关系以及社区的重要性等信息。针对以上数据GraphRAG会生成如下两个报告:

核心社区报告(community 1):

  • 社区lD:

    community

  • level:

    1(核心社区)

  • title:

    大数据时代的影响

  • summary:

    社区围绕《大数据时代》一书展开,书中探讨了数据科学、数据分析的应用,以及它们如何在各行各业产生深远影响。社区中的核心实体包括《大数据时代》,它在知识图谱中扮演着中心角色。

  • full_content:

    本书通过多个实际案例,分析了大数据的应用场景,重点讲解了如何通过数据预测未来趋势。书中的内容涉及各个领域的应用,尤其是数据科学和数据分析如何推动各行各业的变革。

  • rank:

    1(该社区在整个知识图谱中的中心位置)

  • rank_explanation:

    该社区的核心实体是《大数据时代》,它与所有其他实体都有紧密关系,且覆盖了多个领域,重要性极高。

  • findings:

    该社区显示了大数据与数据科学、数据分析之间的深刻联系,尤其是在未来趋势预测方面的广泛应用。

  • full content json:

    以JSON格式存储书中的详细分析内容

  • period:

    2025-06-21(报告生成时间)

  • size:

    4(涉及的实体数量)

外围社区报告(community 2):

  • 社区ID:

    community_2

  • level:

    2(外围社区)

  • title:

    《大数据时代》背后的专家与理论

  • summary:

    本社区围绕《大数据时代》书籍的作者和相关学科展开,涉及人物维克托·迈尔-舍恩伯格、肯尼斯·库克耶,以及学科领域“数据科学”和“数据分析”这些实体与核心社区《大数据时代》有着紧密的关系,但它们本身在知识图谱中的地位较为外围。

  • full content:

    社区中包括了书籍的两位作者维克托·迈尔-舍恩伯格和肯尼斯·库克耶,他们在数据科学和数据分析领域有着深远影响。此外,数据科学和数据分析作为学科,也在本社区中占据重要位置。

  • rank:

    2(该社区在整个知识图谱中的外围位置)

  • rank_explanation:

    该社区的实体相对来说是《大数据时代》的支持性内容,它们不直接构成图谱的核心,但在提供背景和理论支持方面仍具有重要价值。findings:该社区揭示了《大数据时代》书籍的学术背景,讲解了作者和学科如何影响现代数据科学的发展。

  • full content json:

    以JSON格式存储该社区中的详细内容和分析。

  • period:

    2024-11-27(报告生成时间)

  • size:

    4(涉及的实体数量)

本例中的社区报告其实就是从两个方面出发:一方面是围绕大数据时代这本书的核心内容进行正面讨论,另一方面是围绕大数据时代这本书的作者、关联关系进行侧面讨论。社区报告很好的模拟了人类分析文档的角度,是GraphRAG的创新步骤之一。

社区报告也会形成一张社区报告表

id human_readable_id community level title summary full_content
community_1 0 1 1 大数据时代的应用及影响 社区围绕《大数据时代》一书展开,探讨了数据科学和数据分析的应用及其对各行各业的影响。核心实体是《大数据时代》。 本书通过多个实际案例分析了大数据的应用场景,重点讲解了数据如何预测未来趋势,涉及各行业的应用。
community_2 1 2 2 《大数据时代》的作者与学科背景 本社区围绕《大数据时代》的两位作者维克托·迈尔-舍恩伯格、肯尼斯·库克耶以及学科数据科学、数据分析,分析了它们对《大数据时代》的影响。 社区包含了书籍的两位作者和学科领域的数据科学、数据分析,探讨了这些领域如何支持《大数据时代》的核心观点。

社区报告流程以图形式表示如下:

img

2.5 知识图谱构建

我们通过以上创建的文本块表实体表关系表实体关系表社区报告表,可以画出完整的实体、关系、社区的知识图谱。知识图谱构建完成后,就可以基于它进行检索和查询,从多角度分析我们的文本,大家看到这儿是不是已经理解为什么知识图谱方法要比直接从文本块获取信息全面的多。

我们把上述所有的过程合起来绘制下图,大家可以从这张图中看出知识图谱构建的每一步操作和相应表的构造过程:

img

结合上图我再来梳理一遍整个知识图谱的构建流程加深印象:

  1. 首先将示例文本进行文本切分变成短的文本块
  2. 从短的文本中提取相应的实体
  3. 围绕原文本进行实体间关系挖掘
  4. 根据实体和关系构建实体关系图,在实体关系图上进行聚类
  5. 根据聚类结果创建社区报告

做完以上所有步骤后,GraphRAG就构建好一个完整的知识图谱了。

三、总结

本篇分享详细讲述了GraphRA通过文本切分实体识别关系挖掘社区报告构建生成知识图谱的全过程。同时本篇分享通过列举《大数据时代》图书文本的实例,向大家详细展示了GraphRAG知识图谱生成流程每一步骤的详细细节,也让大家直观感受到知识图谱方法相比简单文本块对照方法可以更全面的从各个角度对文本进行理解分析。

知识图谱构建是GraphRAG的核心优势,本篇笔者花费大量笔墨撰写这一部分工作,建议大家反复阅读,只有真正理解知识图谱构建的全流程才能更快速上手GraphRAG框架使用的相关知识。

知识图谱构建好之后,接下来就是要依据知识图谱对我们提问问题进行检索问答了,那这一流程又是怎样的呢?我们下一篇分享讲。

如何学习AI大模型 ?

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。【保证100%免费】🆓

CSDN粉丝独家福利

这份完整版的 AI 大模型学习资料已经上传CSDN,朋友们如果需要可以扫描下方二维码&点击下方CSDN官方认证链接免费领取 【保证100%免费】

读者福利: 👉👉CSDN大礼包:《最新AI大模型学习资源包》免费分享 👈👈

(👆👆👆安全链接,放心点击)

对于0基础小白入门:

如果你是零基础小白,想快速入门大模型是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。

👉1.大模型入门学习思维导图👈

要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。

对于从来没有接触过AI大模型的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。(全套教程文末领取哈)
在这里插入图片描述

👉2.AGI大模型配套视频👈

很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,每个章节都是当前板块的精华浓缩。
在这里插入图片描述

在这里插入图片描述

👉3.大模型实际应用报告合集👈

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。(全套教程文末领取哈)

在这里插入图片描述

👉4.大模型实战项目&项目源码👈

光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战项目来学习。(全套教程文末领取哈)
在这里插入图片描述

👉5.大模型经典学习电子书👈

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。(全套教程文末领取哈)
在这里插入图片描述

👉6.大模型面试题&答案👈

截至目前大模型已经超过200个,在大模型纵横的时代,不仅大模型技术越来越卷,就连大模型相关的岗位和面试也开始越来越卷了。为了让大家更容易上车大模型算法赛道,我总结了大模型常考的面试题。(全套教程文末领取哈)
在这里插入图片描述

为什么分享这些资料?

只要你是真心想学AI大模型,我这份资料就可以无偿分享给你学习,我国在这方面的相关人才比较紧缺,大模型行业确实也需要更多的有志之士加入进来,我也真心希望帮助大家学好这门技术,如果日后有什么学习上的问题,欢迎找我交流,有技术上面的问题,我是很愿意去帮助大家的!

这些资料真的有用吗?

这份资料由我和鲁为民博士共同整理,鲁为民博士先后获得了北京清华大学学士和美国加州理工学院博士学位,在包括IEEE Transactions等学术期刊和诸多国际会议上发表了超过50篇学术论文、取得了多项美国和中国发明专利,同时还斩获了吴文俊人工智能科学技术奖。目前我正在和鲁博士共同进行人工智能的研究。

资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。

在这里插入图片描述
在这里插入图片描述

CSDN粉丝独家福利

这份完整版的 AI 大模型学习资料已经上传CSDN,朋友们如果需要可以扫描下方二维码&点击下方CSDN官方认证链接免费领取 【保证100%免费】

读者福利: 👉👉CSDN大礼包:《最新AI大模型学习资源包》免费分享 👈👈

(👆👆👆安全链接,放心点击)
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐