GraphRAG揭秘:构建层次化知识图谱的终极指南

简介: GraphRAG揭秘:构建层次化知识图谱的终极指南

image.png

简介

现在的 RAG 检索增强生成是一种使用真实世界信息改进 LLM 输出的技术。

大多数 RAG 方法使用向量相似性作为搜索技术,叫 Baseline RAG

但是 RAG 提取的每个文档是独立的,没有显式的结构化关系。

检索出的文档可能缺乏上下文连接,并且依赖于语言模型的推理能力还有检索出的文档。

GraphRAG 是一种结构化的、分层的检索增强生成 ( RAG ) 方法,不同于使用纯文本片段的简单语义搜索方法。

GraphRAG 流程包括从原始文本中提取知识图谱、构建社区层次结构、为这些社区生成摘要,然后在执行基于 RAG 的任务时利用这些结构。

微软在在这种情况下推出了 GraphRAG ,它通过将知识表示为图结构,捕捉更复杂的知识结构和关系,通过这种图结构,可以更容易地获取相关实体的上下文信息。

这样的图结构提供了更直观的知识表示,有助于理解模型的推理过程。也大幅提高了模型的推理问答性能。

一、环境安装

GraphRAG 依赖的 python 版本在 3.10-3.12 之间,执行下列命令:


pip install graphrag

下载一个语料数据集,https://www.gutenberg.org/cache/epub/24022/pg24022.txt

根目录新建 /ragtest/input 空文件,然后把下载好的语料文件放入 input 下面。

二、graphRAG 使用

第一步先完成 GraphRAG 初始化:


python -m graphrag.index --init --root ./ragtest

image.png

执行成功,可以看到我们的 ragtest 目录下面是这样,

image.png

这里面的 .env 里面是 GraphRAG 管道所需的环境变量。

主要是 GRAPHRAG_API_KEY=<API_KEY> 这是 OpenAI APIAzure OpenAI 端点的 API 密钥。

用我们自己的 API 密钥。

image.png

settings.yaml 包含流程的设置。你可以修改此文件以更改流程的设置。

image.png

这里的llm如果是 openai_chat,最好是设置成 gpt-4o-mini ,这一步为了减少我们的成本。 现在初始化工作完全准备了,开始执行索引建立:


python -m graphrag.index --root ./ragtest

下面是我们终端的输出,当然这一步时间要长一点,取决于你文档的大小,

image.png

image.png

image.png

可以看到正在提取我们文档里面的数据集还有段落。最后出现 All workflows completed successfully. 说明就成功了。 然后打开我们的 output 下面的图谱文件。

image.png

图谱至此建立完毕,我们来做一个查询:


python -m graphrag.query \ --root ./ragtest \ --method global \ "What are the top themes in this story?"

得到下面输出:

image.png

可以发现问题的答案非常贴近整部书籍。

GraphRAG 在回答上述问题时显示出显著的改进,展示了比以前应用于私有数据集的方法更高的智能的掌握能力。

三、总结

上面就是使用 GraphRAG基本流程,完成的步骤主要就是提取+嵌入,跟之前的rag很类似,GraphRAG 结合了知识图谱和 RAG

它的目的在于解决传统 RAG 的一些问题,提供更高质量的检索,同时它的出现也改变了企业私有数据分析的技术。

下一节我们将讲述怎么在项目里使用向量数据neo4j ,还有 langchain 工具和 GraphRAG 结合起来。

相关文章
|
SQL 存储 物联网
基于 LLM 的知识图谱另类实践
大语言模型时代,我们有了 few-shot 和 zero-shot 的能力。借助这些 LLM 能力,如何更便捷地实现知识图谱的知识抽取,用知识图谱来解决相关问题。
877 1
基于 LLM 的知识图谱另类实践
|
存储 自然语言处理 搜索推荐
GraphRAG:构建下一代知识图谱驱动的对话系统
【10月更文挑战第10天】随着自然语言处理(NLP)技术的发展,对话系统已经从简单的基于规则的问答系统演变为能够理解复杂语境并提供个性化服务的智能助手。然而,传统的对话系统往往依赖于预先定义好的模板或有限的知识库,这限制了它们在理解和生成多样化响应方面的能力。为了解决这一问题,GraphRAG(Graph-based Retrieval-Augmented Generation)技术应运而生。GraphRAG结合了大规模的知识图谱和先进的NLP模型,旨在提升对话系统的理解和响应能力。
806 1
|
4月前
|
缓存 自然语言处理 数据可视化
知识图谱与RAG融合实战:用LightRAG极速构建智能问答系统
本文介绍了LightRAG——一种融合知识图谱与RAG技术的轻量级框架,通过三重检索机制(向量、关键词与图检索)提升问答系统的准确性与全面性,并提供快速构建、可视化、性能优化及多领域应用方案。
|
机器学习/深度学习 存储 自然语言处理
基础与构建:GraphRAG架构解析及其在知识图谱中的应用
【10月更文挑战第11天】随着数据的不断增长和复杂化,传统的信息检索和生成方法面临着越来越多的挑战。特别是在处理结构化和半结构化数据时,如何高效地提取、理解和生成内容变得尤为重要。近年来,一种名为Graph Retrieval-Augmented Generation (GraphRAG) 的新架构被提出,它结合了图神经网络(GNNs)和预训练语言模型,以提高多模态数据的理解和生成能力。本文将深入探讨GraphRAG的基础原理、架构设计,并通过实际代码示例展示其在知识图谱中的应用。
1674 0
|
机器学习/深度学习 人工智能 自然语言处理
GraphRAG入门指南:构建你的第一个知识图谱驱动应用
【10月更文挑战第28天】随着人工智能和机器学习技术的飞速发展,知识图谱(Knowledge Graph)逐渐成为连接数据和智能应用的重要桥梁。GraphRAG(Graph-based Retrieval-Augmented Generation)是一种结合了知识图谱和自然语言处理的技术,能够在生成文本时利用知识图谱中的结构化信息,从而提高生成质量和相关性。作为一名数据科学家和技术爱好者,我有幸深入研究并实践了GraphRAG技术,现将我的经验和心得整理成这份入门指南,希望能帮助初学者快速上手并构建自己的知识图谱驱动应用。
1679 2
|
存储 关系型数据库 分布式数据库
GraphRAG:基于PolarDB+通义千问+LangChain的知识图谱+大模型最佳实践
本文介绍了如何使用PolarDB、通义千问和LangChain搭建GraphRAG系统,结合知识图谱和向量检索提升问答质量。通过实例展示了单独使用向量检索和图检索的局限性,并通过图+向量联合搜索增强了问答准确性。PolarDB支持AGE图引擎和pgvector插件,实现图数据和向量数据的统一存储与检索,提升了RAG系统的性能和效果。
|
JSON 数据可视化 API
GraphRAG+Ollama,构建本地精准全局问答系统!
RAG 是目前大语言模型相关最知名的工具之一,从外部知识库中检索事实,以便为大型语言模型 (LLM) 提供最准确、最新的信息。
|
11月前
|
机器学习/深度学习 人工智能 自然语言处理
GraphAgent:自动构建知识图谱,能够处理结构化和非结构化数据,并通过知识图谱展示复杂关系
GraphAgent 是香港大学和香港科技大学联合推出的智能图形语言助手,能够处理结构化和非结构化数据,并通过知识图谱展示复杂关系。
749 9
GraphAgent:自动构建知识图谱,能够处理结构化和非结构化数据,并通过知识图谱展示复杂关系
|
机器学习/深度学习 人工智能 自然语言处理
RAG分块策略:主流方法(递归、jina-seg)+前沿推荐(Meta-chunking、Late chunking、SLM-SFT)
RAG分块策略:主流方法(递归、jina-seg)+前沿推荐(Meta-chunking、Late chunking、SLM-SFT)
1452 11
RAG分块策略:主流方法(递归、jina-seg)+前沿推荐(Meta-chunking、Late chunking、SLM-SFT)
|
自然语言处理 数据可视化 API
Qwen系列模型+GraphRAG/LightRAG/Kotaemon从0开始构建中医方剂大模型知识图谱问答
本文详细记录了作者在短时间内尝试构建中医药知识图谱的过程,涵盖了GraphRAG、LightRAG和Kotaemon三种图RAG架构的对比与应用。通过实际操作,作者不仅展示了如何利用这些工具构建知识图谱,还指出了每种工具的优势和局限性。尽管初步构建的知识图谱在数据处理、实体识别和关系抽取等方面存在不足,但为后续的优化和改进提供了宝贵的经验和方向。此外,文章强调了知识图谱构建不仅仅是技术问题,还需要深入整合领域知识和满足用户需求,体现了跨学科合作的重要性。