GraphRAG

现在的 RAG 项目,十个有九个会卡在同一个地方:"单点检索很强,跨段落推理很弱"。

你问"A公司的CEO是谁",向量检索(Vector Search)一搜一个准。但你问"A公司去年的投资策略对B公司的股价有什么隐形影响",传统的 RAG 就歇菜了。因为向量库里,这些信息是散落在不同切片(Chunks)里的,模型看不出它们之间的"线"。

为了把这些点连成线,最近社区主要就看两个流派:微软的 GraphRAG 和港大的 LightRAG

这两篇虽然都是讲图,但路子完全不同。看完这两篇文章,核心的差异其实就这么几点:

1. 微软 GraphRAG:本质是"用算力换智力"的暴力美学

微软这套方案(基于 From Local to Global 论文),说白了就是预计算

它的逻辑是: 既然用户提问时再去找关系来不及,那我就在索引阶段,把所有的关系都算好,甚至把答案都提前写好。

  • 它最狠的一招叫"社区报告(Community Reports)": 它不是简单地把实体连起来,而是用算法(Leiden)把节点聚类。比如把一本书分成"宏观主题"、"具体情节"、"人物关系"几个层级的社区。 然后------重点来了------它会强制 LLM 把每个社区里的内容读一遍,写成摘要报告存下来。

  • 这就解释了为什么它能回答宏观问题: 当你问"这本书讲了啥"的时候,它根本没去翻原文,而是直接把那几个最高层级的"社区报告"甩给你。这也是为什么它用了 MapReduce 的逻辑。

代价是什么?

  • 贵,且慢。 构建索引的过程非常烧 Token,因为要让 LLM 疯狂读图、写摘要。

  • 更新极难。 今天新加一篇文档,整个图的社区结构可能变了,这在工程上几乎意味着重跑。

适合谁? 适合处理静态的长文档(比如财报库、法律卷宗、历史书),且你需要极高质量的全局总结,不在乎构建成本。

2. HKU LightRAG:更符合工程直觉的"敏捷派"

相比微软的重型武器,港大的 LightRAG 明显更懂实际工程痛点。它不想搞那么复杂的预计算,而是把精力花在了**"怎么找""怎么存"**上。

  • 双层检索(Dual-Level Retrieval): 它把索引分成了"具体实体"和"抽象概念"。

    • 问细节(谁、哪年):走低层,直接搜向量。

    • 问逻辑(影响、意义):走高层,在知识图谱里顺藤摸瓜。 这种分流策略,比微软那种全部依赖社区报告的逻辑要灵活很多。

  • 杀手级特性:增量更新(Incremental Update) 这是最打动开发者的一点。新来个文档,LightRAG 不会推倒重来,而是对比现在的图结构,只把新的节点和关系"缝"进去。

适合谁? 适合动态数据(新闻流、日志分析),或者你不想花天价去构建索引,只想在现有 RAG 基础上增加一点推理能力。

3. 落地时的"大实话"

如果你打算上手写代码,文章里提到的几个坑要注意:

  • 显存焦虑: 别看 LightRAG 叫"Light",如果你在本地用 Ollama 跑(比如 deepseek-r1:1.5b),8GB 显存是底线。图谱构建需要大量的 LLM 推理来提取实体,显存不够直接报 503 或 OOM。想舒服点,还是得接 API 或者上 24GB+ 的卡。

  • Prompt 决定生死: 图谱好不好用,全看实体提取(Entity Extraction)那一步。如果你的 Prompt 没写好,提取出来的全是"我"、"他"、"这个"这种无意义节点,那整张图就是垃圾。

  • 可视化是调试工具,不是花瓶: 代码里给的 .graphml 导出功能,一定要用。用 Gephi 或者生成的 HTML 打开看看。如果发现你的图是无数个孤立的点,说明关系提取失败了,这时候上层 RAG 效果再好也没用。

总结一下

维度 Microsoft GraphRAG HKU LightRAG
擅长场景 静态、复杂的长文本(如书籍、历史档案、法律卷宗);需要回答宏观总结性问题。 动态数据(如新闻、业务文档);既有细节查询又有逻辑推理;对成本敏感。
构建成本 极高。需要大量 LLM 调用来生成"社区报告"。 中等。主要是实体提取的开销,没有繁重的社区摘要步骤。
数据更新 困难。牵一发而动全身,通常适合离线批量处理。 丝滑。支持增量插入(Incremental Insert),无需重建索引。
检索逻辑 MapReduce 模式(全局)+ 邻居搜索(局部)。 双层路由:关键词匹配向量 + 图谱关系游走。
技术栈 NetworkX, Leiden 算法, 强依赖高性能 LLM。 NetworkX, Pyvis (可视化), 兼容 Ollama/Zhipu 等轻量模型。
输出产物 包含丰富的层级化社区报告(Summary of summaries)。 GraphML 图文件、KV 存储(JSON)、向量索引。

不要觉得加上"Graph"就无敌了。

  • 如果是死资料、要在宏观层面做深度挖掘 ,硬着头皮上 Microsoft GraphRAG

  • 如果是活数据、要兼顾成本和逻辑关联 ,无脑选 LightRAG

现在的趋势很明显,纯 Vector RAG 的天花板到了,Graph 是必须要补的课,但没必要一上来就搞最复杂的,先跑通流程才是正经事。

相关推荐
冬奇Lab5 分钟前
OpenClaw 源码精读(2):Channel & Routing——一条消息如何找到它的 Agent?
人工智能·开源·源码阅读
冬奇Lab6 分钟前
一天一个开源项目(第38篇):Claude Code Telegram - 用 Telegram 远程用 Claude Code,随时随地聊项目
人工智能·开源·资讯
格砸1 小时前
从入门到辞职|从ChatGPT到OpenClaw,跟上智能时代的进化
前端·人工智能·后端
可观测性用观测云2 小时前
可观测性 4.0:教系统如何思考
人工智能
sunny8652 小时前
Claude Code 跨会话上下文恢复:从 8 次纠正到 0 次的工程实践
人工智能·开源·github
小笼包包仔2 小时前
OpenClaw 多Agent软件开发最佳实践指南
人工智能
smallyoung2 小时前
AgenticRAG:智能体驱动的检索增强生成
人工智能
_skyming_2 小时前
OpenCode 如何做到结果不做自动质量评估,为什么结果还不错?
人工智能
南山安3 小时前
手写 Cursor 核心原理:从 Node.js 进程到智能 Agent
人工智能·agent·设计
掘金安东尼3 小时前
如何为 AI 编码代理配置 Next.js 项目
人工智能