GraphRAG:知识图谱+大模型案例实战(二)

GraphRAG:知识图谱+大模型案例实战(二)

GraphRAG:知识图谱+大模型案例实战(二)

Soyoger  2024年07月15日 08:10美国

www.zeeklog.com - GraphRAG:知识图谱+大模型案例实战(二)

上一篇我们讲了GraphRAG的局部搜索。文章如下:

通过扩展特定实体的邻居和相关概念,可以对该实体进行推理。

这种场景旨在通过结合知识图谱中的结构化数据和输入文档中的非结构化数据,增强大型语言模型(LLM)在查询时的上下文,从而更好地回答涉及输入文档中特定实体的问题。这种方法将即用的图谱数据与非结构化文本结合,基于实体进行推理,利用知识图谱中的结构化数据和输入文档中的非结构化数据,以在查询时为LLM提供与查询相关的实体信息。

GraphRAG首先识别与用户输入语义相关的知识图谱中的实体集合。这些实体作为访问知识图谱的入口,帮助提取更多相关信息,如相关实体、关系、实体协变量和社区报告。此外,还从原始输入文档中提取与已识别实体相关联的相关文本块。然后,这些候选数据源将被优先排序和过滤,以适应预定义大小的单个上下文窗口,用于生成对用户查询的响应。

这篇文章介绍GraphRAG的另一个应用场景:全局搜索。

全局搜索:通过利用社区摘要,对整个语料库进行全面的推理分析。借助大型语言模型(LLM)生成的知识图谱来组织和整合信息,从而回答需要跨数据集聚合信息的复杂查询。这种方法不仅提升了信息检索的效率,还提高了回答问题的准确性和深度。

全局搜索方法使用LLM生成的社区报告集合作为上下文数据,以map-reduce方式生成响应。在map步骤中,社区报告被分割成预定义大小的文本块。每个文本块用于生成包含要点列表的中间响应,每个要点都有相应的数值评分,表示其重要性。在reduce步骤中,从中间响应中筛选出最重要的要点,并将它们聚合起来,作为生成最终响应的上下文。

下面介绍一下这个全局搜索案例:

全球搜索方法通过以地图减少的方式搜索所有 AI 生成的社区报告来生成答案。这是一种资源密集型方法,但对于需要从整体上理解数据集的问题,通常可以很好地回答问题(例如,本笔记本中提到的草药的最重要价值是什么?

import os

接下来,进行LLM 设置:

"GRAPHRAG_API_KEY"

将社区报告加载为全局搜索的上下文:

# parquet files generated from indexing pipeline
entity_df = pd.read_parquet(f"{INPUT_DIR}/{ENTITY_TABLE}.parquet")
基于社区报告构建全局搜索:
context_builder = GlobalCommunityContext(
执行全局搜索:
context_builder_params = {
search_engine = GlobalSearch(
result = await search_engine.asearch(
# inspect the data used to build the context for the LLM responses
# inspect number of LLM calls and tokens

通过2个案例局部搜索和全局搜索,可以知道GraphRAG 的核心由两个主要图谱构成:一个是文档图谱,另一个是文档内部的实体关系图谱。文档图谱表示系统输入的文档,这些文档可以是CSV中的单独行或独立的.txt文件。文档内部的实体关系图谱则包含以下要素:

文档(Document):表示系统输入的文档,可以是CSV文件中的单独行或单独的.txt文件。

文本单元(TextUnit):表示待分析的文本块。这些块的大小、重叠以及是否遵守任何数据边界都可以进行配置。

实体(Entity):表示从文本单元中提取的实体,如人、地点、事件或您提供的其他实体模型。

关系(Relationship):表示两个实体之间的关系。

协变量(Covariate):表示提取的声明信息,其中包含可能有时间限制的关于实体的陈述。

社区报告(Community Report):表示一旦生成实体,会对它们执行层次化的社区检测,并为这个层次结构中的每个社区生成报告。

节点(Node):包含已嵌入和聚类的实体和文档的渲染图视图的布局信息。

通过这些元素,GraphRAG 能够构建一个详尽的文档和实体关系图谱,帮助更好地组织和分析数据,从而增强大型语言模型的推理和回答能力

GraphRAG的索引构建过程如下:

GraphRAG索引构建过程将文本文档转换为GraphRAG知识模型,包含以下几个主要阶段:

文本单元切分(Compose TextUnits)

输入文档被转换为文本单元,这些文本单元用于图提取技术,并作为提取知识项的源引用。

图谱抽取(Graph Extraction)

实体&关系抽取:识别文本中的实体和关系。

实体&关系总结:通过要求LLM提供一个简短的总结,将实体及关系列表总结成一个单一描述。

实体消歧:确保每个实体在不同上下文中唯一。

声明抽取:提取有关实体的陈述。

分析每个文本单元,提取实体、关系和声明。具体步骤包括:

图谱增强(Graph Augmentation)

社区检测:使用Leiden算法生成实体社区的层次结构。

图嵌入:使用Node2Vec算法生成向量表示,提供额外的向量空间用于搜索相关概念。

通过社区检测和图嵌入增强图谱,以理解实体的社区结构。具体步骤包括:

社区摘要(Community Summarization)

生成社区报告:使用LLM为每个社区生成摘要。

总结社区报告:通过LLM总结社区报告,供简写使用。

社区嵌入:生成社区报告、社区报告摘要和社区报告标题的文本嵌入,生成社区的向量表示。

为每个社区生成报告,提供对图的高层次理解。具体步骤包括:

文档处理(Document Processing)

链接到文本单元:将每个文档与创建的文本单元关联起来。

文档嵌入:使用文档切片的平均嵌入生成文档的向量表示,理解文档之间的隐含关系,并帮助生成文档的网络表示。

表示文档并形成文档图。具体步骤包括:

通过这些步骤,GraphRAG能够构建一个详尽的文档和实体关系图谱,增强大型语言模型的推理和回答能力。

Read more

黄仁勋公开发文:传统软件开发模式终结,参与AI不必非得拥有计算机博士学位

黄仁勋公开发文:传统软件开发模式终结,参与AI不必非得拥有计算机博士学位

黄仁勋分享全文: AI 是当今塑造世界最强大的力量之一。它并非仅仅是一款巧妙的应用程序,也不是某个单一的模型,而是一种就像电力和互联网一样的基础设施。 AI 依赖真实的硬件、真实的能源以及真实的经济体系运行。它可以把原材料大规模地转化为智能。未来,每家公司都会使用 AI,每个国家/地区都会建设 AI。 要理解 AI 为什么会以这样的方式发展,最好的方法是从第一性原理出发,看看计算领域究竟发生了哪些根本性的变化。 从预先编写的软件,到实时生成的智能 在计算机发展的绝大多数历史中,软件都是预先写好的。人类先描述算法,然后由计算机执行。数据必须被精心组织与设计,存储在表格中,再通过精确的查询进行检索。 因此,SQL 成为不可或缺的工具,因为它让这种计算模式变得可行。 而 AI 打破了这一模式。 我们首次拥有了一台能够理解非结构化信息的计算机。它可以识别图像、阅读文本、理解声音,并理解其中的含义。它能够根据上下文和意图进行推理。更重要的是,它能够实时生成智能。 每一次回答都是全新的。每一次回应都取决于你提供的上下文。这不再是软件从数据库中取出预先存储的指令。而是软件在实时推理

By Ne0inhk
转型AI工程师实战指南

转型AI工程师实战指南

https://github.com/zeeklog/Be-an-AI-engineer-from-any-role 如果帮到你,Plz右上角Star⭐️ 来自 590 家公司的895 条真实JD的数据分析结论: AI 工程师岗位正在疯狂分层——会的人月入翻倍,不会的人正在被时代彻底甩在身后。 现在不行动,你就下一个N+1 🚀 AI 工程师角色 残酷真相:AI 工程师已经彻底变天! 2026 年市场只认一种人:能把 LLM + RAG + Agent 真正上线、能赚钱、能扛住生产压力的 Full-Stack Builder。 岗位类型分布(2026 真实画像) * AI-First(69.4%):直接构建产品核心功能(RAG、智能体、自动化工作流)——做不出来就出局 * AI-Support(28.5%):为全公司搭建 AI

By Ne0inhk