普通 RAG 有个老毛病:你问它「这堆文档整体在讲什么」,它答不上来。因为它只会把问题切成向量,去几十个文本块里捞最相似的几段拼给模型看。可「整体讲什么」这种问题,答案根本不在任何单独一段里——它散在全篇的联系里。
微软的 GraphRAG 就是冲着这个软肋来的。它先把文档抽成一张知识图谱(实体、关系),再把图谱聚成一个个「社区」,给每个社区生成摘要。你问全局大问题时,它靠的是这些社区摘要,而不是零散的文本块。这就是它「全局问答」比普通 RAG 强的根本原因。
之前写过的那篇 LightRAG,走的也是图谱路线,但它更轻更快。这篇我想把更重、也更「正统」的 GraphRAG 在 8GB 卡上跑通,顺便把两者什么时候用哪个讲清楚。
为什么要本地化
官方 GraphRAG 默认调 OpenAI。索引阶段它会反复调用 LLM抽实体、建关系、写社区摘要,一份中等文档喂进去,API 账单能让你肉疼。本地跑用 Ollama 顶上,省钱,数据也不出门。
本地化有两条路。一条是社区仓库TheAiSingularity/graphrag-local-ollama,它把官方代码改造好了,配置文件直接指向 Ollama,开箱即用,还带个 Web UI 能可视化图谱。另一条是自己装官方graphrag,手动改settings.yaml把模型指到本地。我两条都试了,下面讲通用的官方路子,社区仓库的思路完全一致。
安装与配置
先建环境(建议 Python 3.10,版本太新容易踩坑),装包,拉模型:
pip install graphragollama pull qwen3.5:9bollama pull nomic-embed-textqwen3.5:9b约 6.6GB,负责抽实体和写摘要;nomic-embed-text做向量嵌入(想效果好一点可以换mxbai-embed-large)。8GB 卡这套组合能跑。
初始化项目目录:
mkdir -p ./ragtest/input# 把你的 .txt 文档丢进 ./ragtest/inputpython -m graphrag.index --init --root ./ragtest这一步会生成settings.yaml和一个.env。关键改这几处:
.env里的 API key 用不上,但字段不能空——随便填个ollama之类的占位符即可。- LLM 的
model改成本地qwen3.5:9b,api_base指向http://localhost:11434/v1。 - embedding 的
model改成nomic-embed-text(或mxbai-embed-large),api_base同样指向本地。
改完就能建索引:
python -m graphrag.index --root ./ragtest然后查询:
python -m graphrag.query --root ./ragtest --method global "这批文档的核心主题有哪些"查询模式怎么选
GraphRAG 最值钱的地方是它不止一种查法。用--method切换,各有各的适用场景:
| 模式 | 靠什么 | 适合的问题 |
|---|---|---|
| Global | 社区摘要 | 全局大问题,「整体讲了什么」「有哪些主题」 |
| Local | 实体 + 向邻居扩散 | 具体实体,「某某功能是什么」 |
| DRIFT | 迭代推理,全局+局部结合 | 复杂问题,边查边生成子问题深挖 |
| Basic | 快速向量检索 | 简单事实,等同普通 RAG 基线 |
| Lazy | 索引时跳过社区摘要 | 想快速入库、查询时再算 |
日常「这份资料整体在说啥」用 Global,「文档里提到的那个工具具体怎么用」用 Local,拿不准就上 DRIFT——它会先做一轮社区检索,再自动生成一串子问题去局部深挖,答案最扎实但也最慢。只想快速捞事实、不需要全局视野时,Basic 就够了,本质就是普通向量 RAG。
必须提前知道的坑
入库真的慢。前面说过,索引阶段 GraphRAG 会频繁调用 LLM 抽实体、建图、写摘要,本地跑省下的是钱,付出的是时间。文档量稍大,入库耗时会明显拉长——我的建议是别在工作时间跑,晚上开着让它慢慢建,第二天来收。急着要结果的话,用上面那个 Lazy 模式先跳过社区摘要,能省下相当一部分索引时间。
版本敏感。GraphRAG 迭代很快,社区教程常常只保证某个特定版本能顺利跑通,换个版本settings.yaml字段名或流程就变了。社区仓库graphrag-local-ollama尤其如此,它锁的是某个较早的 GraphRAG 版本。照着某篇指南装,最稳的做法是版本对齐它,别盲目上最新版;真要用新版,得自己重新对一遍配置。
Ollama 上下文别开太小。抽实体时喂给模型的 prompt 不短,上下文窗口给小了容易截断、图谱质量下降。8GB 卡显存有限,这里得在窗口大小和显存占用之间找平衡。
GraphRAG 还是 LightRAG
两个都试过之后,我的结论很清楚:
- GraphRAG:全局问答、社区摘要是它的杀手锏,答复杂的「整体性」问题质量确实高。代价是重——入库慢、依赖多、版本娇气。适合文档相对固定、你要反复对整个知识库做深度提问的场景。
- LightRAG(之前写过的那篇):更轻、入库更快、部署更省心。适合数据经常更新、追求响应速度、大问题没那么频繁的场景。
一句话:要「读懂全局」选 GraphRAG,要「快而轻」选 LightRAG。8GB 卡两个都能跑,但 GraphRAG 建索引时你得有耐心。
上手建议
如果你手头有一批需要反复深挖的资料——研报、项目文档、一整套笔记,而且你常问的是「整体怎么样」这类问题,GraphRAG 值得装。先拿几篇短文档跑通全流程,摸清 Global / Local 的差别,再喂大数据集。切记入库放到晚上跑,版本严格对齐你参照的教程。
学AI大模型的正确顺序,千万不要搞错了
🤔2026年AI风口已来!各行各业的AI渗透肉眼可见,超多公司要么转型做AI相关产品,要么高薪挖AI技术人才,机遇直接摆在眼前!
有往AI方向发展,或者本身有后端编程基础的朋友,直接冲AI大模型应用开发转岗超合适!
就算暂时不打算转岗,了解大模型、RAG、Prompt、Agent这些热门概念,能上手做简单项目,也绝对是求职加分王🔋
📝给大家整理了超全最新的AI大模型应用开发学习清单和资料,手把手帮你快速入门!👇👇
学习路线:
✅大模型基础认知—大模型核心原理、发展历程、主流模型(GPT、文心一言等)特点解析
✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑
✅开发基础能力—Python进阶、API接口调用、大模型开发框架(LangChain等)实操
✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用
✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代
✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经
以上6大模块,看似清晰好上手,实则每个部分都有扎实的核心内容需要吃透!
我把大模型的学习全流程已经整理📚好了!抓住AI时代风口,轻松解锁职业新可能,希望大家都能把握机遇,实现薪资/职业跃迁~