游乐游手机版
首页/AI热点日报/热点详情

GraphRAG基于知识图谱的RAG:很好用但成本高昂

类型:热点整理2026-07-17
在之前的文章中,我们已经探讨过 RAG 的应用场景。然而,实际部署后你会发现,传统 RAG 的表现远不如预期——例如在默认配置下处理数据时,切片杂乱无章,效果难以令人满意。于是,你不得不投入大量精力去统一文档规范、借助脚本进行数据清洗,结果却发现这些琐碎付出的价值甚至超过了 AI 本身,这多少有些本

在之前的文章中,我们已经探讨过 RAG 的应用场景。然而,实际部署后你会发现,传统 RAG 的表现远不如预期——例如在默认配置下处理数据时,切片杂乱无章,效果难以令人满意。于是,你不得不投入大量精力去统一文档规范、借助脚本进行数据清洗,结果却发现这些琐碎付出的价值甚至超过了 AI 本身,这多少有些本末倒置。

正是为了弥补传统 RAG 的这些不足,一种基于图结构的检索增强生成方案——GraphRAG——应运而生。本文将深入剖析 GraphRAG 究竟有何神奇之处,是否真的能带来令人惊喜的效果。

什么是 GraphRAG?

官网:https://microsoft.github.io/graphrag

这是微软开源的一项融合了知识图谱检索增强生成技术。简单来说,它能够显著提升 AI 知识库的表现——根据你提供的文档,更精准地回应那些相对复杂的提问。

为什么需要 GraphRAG?

关于 AI 知识库,传统 RAG 即使接入了私有数据,实际使用中依然存在不少问题:精确度不足,AI 经常答非所问。其根源在于传统 RAG 的固有局限——整个索引和检索过程都基于文本块。说白了,就是将大文档切分为若干小文本块,当有查询请求时,按相似度匹配最相关的几个块,然后把这些块连同请求一起交给大模型。

这套机制存在两个硬伤:

  1. 无法有效捕捉实体之间的复杂关系和层次结构
  2. 通常只能检索固定数量的、最相关的文本块

结果就是,面对复杂查询时显得力不从心。

为了弥补这一短板,微软推出了 GraphRAG 并开源。它最大的优势在于全局性

Github:https://github.com/microsoft/graphrag

GraphRAG 在对数据集建立索引时,会执行两项关键操作:提取实体(Entity),以及提取实体之间的关系。从视觉上看,这些实体就是一个个节点,有关联的两个实体用线连接起来——一张庞大的知识图谱就此形成,这也是其名称中“Graph”的由来。

要表达复杂的关系,图谱确实是一种绝佳的工具。借助知识图谱,GraphRAG 能够把握那些细微、交错的数据关系,从而构建出全局性的视角,最终提升 RAG 的精确度。

如何使用 GraphRAG?

官方文档:https://microsoft.github.io/graphrag/get_started

1. 安装 GraphRAG

pip install graphrag

需要下载的组件较多,请耐心等待片刻。

2. 创建目录

mkdir -p ./ragtest/input

3. 在 ragtest/input 文件夹中存入文档

将你的文档放入该目录,目前仅支持 txt 和 csv 格式。官方示例使用的是查尔斯·狄更斯的《圣诞颂歌》:

curl https://www.gutenberg.org/cache/epub/24022/pg24022.txt -o ./ragtest/input/book.txt

需要提醒的是,如果你使用的是 OpenAI,请谨慎运行这个文件——200 页的内容处理下来需要花费 11 美元,成本相当高昂……

4. 初始化项目

graphrag init --root ./ragtest

执行完命令后,你会看到多出几个文件。其中最重要的两个:一个是 .env 文件,用于填写 OpenAI API Key;另一个是 settings.yaml,用于配置编码和嵌入所需的模型及其参数——如果使用本地大模型,就在这里进行设置。

5. 开始创建索引

graphrag index --root ./ragtest

6. 开始进行问答

graphrag query 
--root ./ragtest
--method global
--query "What are the top themes in this story?"
graphrag query 
--root ./ragtest
--method local
--query "Who is Scrooge and what are his main relationships?"

使用本地大模型

settings.yaml 文件中修改大语言模型和嵌入式模型即可。

本地大模型在配置方面没有太多坑,但运行时确实非常缓慢——建立索引时实体提取耗时较长,嵌入过程也慢得离谱。相比之下,GPT-4 几分钟就能完成,而本地 llama3 8b 的性能差距明显。在实际场景中,一个 200 页的大文档需要处理半小时,这显然不太现实。或许这就是微软选择开源的原因——依靠社区的力量持续优化它吧。

来源:https://www.53ai.com/news/RAG/2025010649265.html

相关热点

继续查看同栏目近期热点。

延伸阅读

补充最近整理过的热点入口。