大模型生成知识图谱:什么是RAG?什么是GraphRAG?

一、LLM的困境?

LLM 面临的最大挑战(也是机遇)或许是将其强大的能力扩展到解决训练数据之外的问题,并使用 LLM 从未见过的数据获得可比的结果。这为数据调查开辟了新的可能性,例如根据上下文和数据集识别主题和语义概念。

二、什么是RAG?

检索增强生成 (RAG) 是一种使用外部知识源改进 LLM 输出的技术,其核心是使用外部的知识构建索引,使大模型能够回答私有的或者未训练过的文档问题。

这种技术是大多数基于 LLM 的工具的重要组成部分,大多数 RAG 方法使用向量相似性作为搜索技术,我们称之为Baseline RAG。

三、RAG的优缺点?

RAG可以回答某些文档的详情,或是细节检索,如检索并回复某段话中的实体信息。

RAG无法完全解决跨段落/跨文章的总结性/摘要性问题:

基准的 RAG 对于需要对数据集中的信息进行聚合以组成答案的查询很难处理。像“数据中前 5 个主题是什么?”这样的查询表现非常糟糕,因为基准的 RAG 依赖于对数据集中语义相似文本内容的向量搜索。查询中没有任何指示它找到正确信息的内容。

然而,使用 GraphRAG,我们可以回答这样的问题,因为 LLM 生成的知识图的结构告诉我们整个数据集的结构(因此也是主题)。这使得私有数据集可以被组织成有意义的语义聚类,并进行预摘要。使用我们的 全局搜索(opens in a new tab) 方法,LLM 在响应用户查询时使用这些聚类来总结这些主题。

四、什么是GraphRAG?

通过使用 LLM 生成的知识图谱,GraphRAG 极大地改进了 RAG 的“检索”部分,用更高相关性的内容填充上下文窗口,从而得到更好的答案并捕获证据来源。

五、GraphRAG的概念

  • Document - 进入系统的输入文档。这些可以代表 CSV 中的单个行或单个.txt 文件。
  • TextUnit - 要分析的文本块。这些块的大小,重叠和是否符合任何数据边界可以在下面进行配置。常见用例是将 CHUNK_BY_COLUMNS 设置为 id,以便文档和 TextUnit 之间存在一对多关系,而不是多对多关系。
  • Entity - 从 TextUnit 中提取的实体。这些代表你提供的人物,地点,事件或其他实体模型。
  • Relationship - 两个实体之间的关系。这些由协变量生成。
  • Covariate - 协变量,提取的声明信息,包含关于可能随时间变化的实体的陈述。
  • Community - 社区,是在整个图谱中,某一个类别的模块。
  • Community Report - 生成实体后,我们对其进行层次化社区检测,并为层次结构中的每个社区生成报告,用于模块检索。
  • Node - 该表包含嵌入和聚类的实体和文档的渲染知识图谱视图的布局信息。

六、GraphRAG的运作逻辑

1.文本切分,组合TextUnits(chunks1200token

在这里插入图片描述

2.实体和关系抽取,如命名实体、概念间关系、细节描述,用于生成知识图谱。

在这里插入图片描述

3.生成实体和关系的摘要,增强知识图谱

社区检测:使用层次 Leiden 算法生成实体社区的层次结构。该方法将对我们的知识图谱应用递归的社区聚类,直到达到社区大小阈值。这将使我们能够了解我们的网络的社区结构,并提供在不同粒度级别上导航和总结知识图谱的方法。

知识图谱嵌入:使用 Node2Vec 算法生成知识图谱的向量表示。这将使我们能够理解我们的知识图谱的隐含结构,并提供一个额外的向量空间,用于在查询阶段搜索相关概念。

4.社区总结:在社区数据的基础上生成报告。这将使我们能够更深入地了解知识图谱在各个粒度级别上的高层次情况。例如,如果社区 A 是最高层级的社区,我们将获得有关整个知识图谱的报告。如果社区是较低级别的,则我们将获得有关局部集群的报告。

大模型生成社区报告、大模型总结社区报告、生成向量、形成结果表格。

5.文档处理:为知识模型创建表格

链接文本单元:将每个文档链接到在第一阶段创建的文本单元。这样我们就能知道哪些文档与哪些文本单元相关。

Embedding:使用文档片段的平均嵌入生成文档的向量表示。我们重新分块文档,没有重叠的块,然后为每个块生成一个嵌入。我们通过标记计数加权这些块的平均值,并将其用作文档嵌入。这将使我们能够理解文档之间的隐含关系,并帮助我们生成文档的网络表示。

发布表格:我们可以将 文档 表发布到知识模型中

6.可视化

GraphRAG的查询方法论

全局搜索:数据中前 5 个主题是什么?

在这里插入图片描述

根据用户查询和可选的对话历史,全局搜索方法使用一系列来自图的社区层次结构中指定级别的社区报告作为上下文数据,以映射减少的方式生成响应。在 map 步骤中,将社区报告分割成预定义大小的文本块。然后,使用每个文本块生成一个包含一系列具有附带的数值评级的点的中级回应。在 reduce 步骤中,从中级回应中筛选出一组最重要的点,并将其聚合使用作为上下文来生成最终的响应。

全局搜索的响应质量很大程度上取决于所选的用于获取社区报告的社区层次结构级别。较低层次的层次结构带有其详细报告,往往会产生更详尽的响应,但可能也会增加生成最终响应所需的时间和 LLM 资源,因为需要处理更多的报告。

本地搜索:在查询时将知识图谱的结构化数据与输入文档的非结构化数据相结合, 以相关实体信息增强 LLM 上下文。这种方法非常适合回答需要理解输入文档中提到的特定实体的问题(例如, “洋甘菊的治疗特性是什么?”)。

在这里插入图片描述

给定用户查询和可选的对话历史, 本地搜索方法从知识图谱中识别出与用户输入在语义上相关的一组实体。这些实体作为进入知识图谱的接入点, 能够提取更多相关细节, 如连接的实体、关系、实体协变量和社区报告。此外, 它还从与识别的实体相关的原始输入文档中提取相关文本块。然后对这些候选数据源进行优先排序和过滤, 以适应预定义大小的单一上下文窗口, 用于生成对用户查询的响应。


七、最后分享

AI大模型作为人工智能领域的重要技术突破,正成为推动各行各业创新和转型的关键力量。抓住AI大模型的风口,掌握AI大模型的知识和技能将变得越来越重要。

学习AI大模型是一个系统的过程,需要从基础开始,逐步深入到更高级的技术。

这里给大家精心整理了一份全面的AI大模型学习资源,包括:AI大模型全套学习路线图(从入门到实战)、精品AI大模型学习书籍手册、视频教程、实战学习、面试题等,资料免费分享

1. 成长路线图&学习规划

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

这里,我们为新手和想要进一步提升的专业人士准备了一份详细的学习成长路线图和规划。可以说是最科学最系统的学习成长路线。
在这里插入图片描述

2. 大模型经典PDF书籍

书籍和学习文档资料是学习大模型过程中必不可少的,我们精选了一系列深入探讨大模型技术的书籍和学习文档,它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础(书籍含电子版PDF)

在这里插入图片描述

3. 大模型视频教程

对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的大模型视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识

在这里插入图片描述

4. 2024行业报告

行业分析主要包括对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。

在这里插入图片描述

5. 大模型项目实战

学以致用 ,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。

在这里插入图片描述

6. 大模型面试题

面试不仅是技术的较量,更需要充分的准备。

在你已经掌握了大模型技术之后,就需要开始准备面试,我们将提供精心整理的大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。

在这里插入图片描述

全套的AI大模型学习资源已经整理打包,有需要的小伙伴可以微信扫描下方优快云官方认证二维码,免费领取【保证100%免费

### GraphRAG 知识图谱 使用教程及介绍 GraphRAG(Graph-based Retrieval-Augmented Generation)是一种结合知识图谱和大型语言模型(LLM)的技术,旨在提升复杂查询处理、多跳推理以及跨文档语义关联的能力。以下是对 GraphRAG 的详细介绍和使用教程。 #### 1. GraphRAG 核心概念 GraphRAG 是检索增强生成RAG)技术的升级版本,通过引入结构化的知识图谱表示,捕捉数据中的实体、关系及全局语义[^1]。这种方法能够显著提高 LLM 对私有或未训练数据的理解与生成能力,尤其在需要深度语义分析的任务中表现出色。 #### 2. 构建 GraphRAG 的步骤 构建 GraphRAG 需要以下几个关键步骤: - **数据预处理**:从非结构化文本中提取结构化信息。可以使用 KeyBERT 和 HDBSCAN 等工具进行关键词提取和聚类分析,从而为知识图谱的构建提供基础数据[^2]。 - **知识图谱生成**:利用 Zephyr-7B-Beta 或其他 LLM 增强的自然语言处理技术,将提取到的结构化信息转化为知识图谱。这一步涉及定义实体、属性和关系。 - **集成到 RAG 框架**:将生成知识图谱与现有的 RAG 模型结合,形成 GraphRAG。具体实现可以通过图嵌入(Graph Embedding)或其他图神经网络(GNN)技术完成。 #### 3. 示例代码:基于 Python 的 GraphRAG 实现 以下是一个简单的 Python 示例,展示如何从非结构化文本中提取知识并构建 GraphRAG。 ```python from keybert import KeyBERT from hdbscan import HDBSCAN import networkx as nx # 数据预处理:关键词提取 kw_model = KeyBERT() text = "你的非结构化文本内容" keywords = kw_model.extract_keywords(text) # 聚类分析 hdbscan_model = HDBSCAN(min_cluster_size=5) clusters = hdbscan_model.fit_predict([kw[0] for kw in keywords]) # 构建知识图谱 graph = nx.Graph() for i, (keyword, cluster) in enumerate(zip(keywords, clusters)): graph.add_node(i, label=keyword[0], cluster=cluster) # 添加边(根据实际需求调整) for i in range(len(graph.nodes)): for j in range(i + 1, len(graph.nodes)): if graph.nodes[i]['cluster'] == graph.nodes[j]['cluster']: graph.add_edge(i, j) # 输出知识图谱 print("知识图谱生成:", graph.nodes(data=True)) ``` #### 4. 应用场景 GraphRAG 可广泛应用于以下领域: - **智能问答系统**:通过知识图谱支持多跳推理,提高回答准确性和上下文理解能力。 - **个性化推荐**:结合用户行为数据和知识图谱生成更精准的推荐结果。 - **数据分析**:用于复杂关系挖掘和模式发现,特别是在医疗、金融等领域。 #### 5. 注意事项 在使用 GraphRAG 时需要注意以下几点: - 数据质量直接影响知识图谱的准确性,因此需确保输入数据的清洁度和完整性。 - 知识图谱的规模可能会影响计算效率,建议在实际应用中优化存储和检索策略。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值