广告位 · header_banner

RAG 进阶:从基础检索到 GraphRAG 的工程化路径

从 Naive RAG 到 GraphRAG

基础 RAG(Retrieval-Augmented Generation)的流程人人会写:文档切块 → 向量化 → Top-K 检索 → 拼到 prompt。大量教程教你用 LangChain 或 LlamaIndex 30 行代码跑通 demo,但生产环境里,基础 RAG 经常答非所问。根因不在 embedding 模型不够好,而在于检索只看到局部文本,看不到实体之间的关系。GraphRAG 的解决思路是把”文档块”升级为”实体-关系图”,让检索时能沿着关系图漫游。

基础 RAG 在哪里会失效

三个典型场景,基础 RAG 都做不好:

  • 跨文档的实体关联:”A 公司的 CEO 在 B 公司任独立董事”——这类信息散落在多份文档里,Top-K 检索很难同时命中两个实体,即使命中了 chunk,模型也看不出”同一个人”在两个公司之间的桥梁关系。
  • 时间线推理:”A 项目 2024 年立项、2025 年推迟、2026 年上线”——切块后会破坏时间顺序,模型看不到完整时间线,容易把”立项”和”上线”当成两件独立的事。
  • 汇总型问题:”我们公司的主要客户有哪些”——Top-K 返回的是相似片段,不是真正的”全部客户列表”,因为相似度计算天然偏向”更短的回答”,汇总型问题需要全量数据。

GraphRAG 的核心做法

GraphRAG(Microsoft Research 2024 年提出,2026 年已有 6 个商业落地案例)在 Naive RAG 之上多走三步:

  1. 实体-关系抽取:用 LLM 从每篇文档里抽 (实体, 关系, 实体) 三元组,例如 (Anthropic, 投资, Amazon)、(Amazon, 合作, Anthropic)。这一步对 LLM 的指令遵循能力要求很高,小模型经常漏抽或编造。
  2. 图谱构建:把三元组灌入图数据库(Neo4j、Memgraph、TuGraph),形成实体-关系图,带时间戳和置信度元数据。
  3. 社区检测:对图跑 Leiden/Louvain 算法,自动划分”实体社区”,对每个社区用 LLM 生成摘要,实现”先有局部知识,再有全局视野”。

检索时,先用 embedding 召回相关 chunk,再用图谱做”邻居展开”——找到 chunk 提到的实体,顺着关系图扩展到 1-2 跳范围内的所有相关实体,最后把”chunk + 实体摘要 + 邻居关系”一起送进 LLM。比起 Naive RAG 直接拼 chunk,GraphRAG 给模型的上下文更结构化,回答也更连贯。

工程化落地的关键决策

要不要上 GraphRAG:如果你的知识库是”政策/法规/技术文档/公司治理”这类结构化文本,GraphRAG 的提升非常明显;如果只是”产品手册 / FAQ / 客服话术”,Naive RAG 足够,GraphRAG 是过度工程,投入产出不划算。

图数据库选型:Neo4j 生态最成熟(8 年积累、Cypher 查询语言、丰富的可视化工具)但授权费贵,生产环境一个集群年费 5-10 万美元起;Memgraph 开源、C++ 性能好,适合追求性价比;国内项目用 TuGraph、华为 GES 也可以,但社区资料少,出问题需要自己 debug。生产环境建议用 Neo4j Enterprise 或 Memgraph,不要用 Neo4j Community——后者不支持集群,单点故障会直接拖垮在线检索。

实体抽取的 LLM 选择:这一步对 LLM 的指令遵循能力要求很高,Sonnet 4.5 / GPT-5 表现稳定,Qwen2.5-72B 也能用,小模型(< 14B)经常漏抽或乱编关系,实测会漏掉 30% 以上的实体,严重影响图谱质量。如果成本敏感,用 Qwen2.5-7B + 二次校验(把抽取结果让另一个 LLM 复核)也能凑合。

成本控制:GraphRAG 的 LLM 调用量是 Naive RAG 的 5-10 倍,主要是实体抽取和社区摘要两步。建议离线跑完这两步,结果存进图数据库,在线检索时只做”邻居展开 + 最终 prompt 拼接”,不要每次请求都重新抽取。离线索引的时间成本也要算进去,1 万份文档约 8-12 小时。

一个真实案例

某法律科技公司把 GraphRAG 接到 5 万份判决书知识库。问题:”近三年网络诈骗案件中缓刑比例”,基础 RAG 答准确率 41%(经常漏掉部分案件),GraphRAG 提升到 78%(实体”网络诈骗”和”缓刑”在图谱中能跨判决书关联)。多出的成本主要是离线索引阶段约 3 万元 LLM API 费用 + 一个 Memgraph 集群(2 台 32 核 64G 机器),在线检索成本与基础 RAG 持平。

另一起案例是医疗文献问答:某肿瘤医院把 30 万篇论文做成 GraphRAG,问题”PD-1 抑制剂在非小细胞肺癌的联合用药方案”,基础 RAG 给出碎片化答案,GraphRAG 能跨论文组织出”PD-1 + 化疗”和”PD-1 + 抗血管生成”两条主线,医生用起来明显更顺手。

结论:GraphRAG 不是”升级版 RAG”,而是”针对特定问题类型的工具”。在能清楚描述”为什么基础 RAG 不够”之前,不要上——多数”问答不准”的问题其实在切块策略、embedding 选型、prompt 工程上就能修,不必动图谱。一旦决定上,先小范围 POC(1 万份文档以内),效果验证后再扩容,不要一上来就铺 10 万份。

广告位 · footer_banner
广告位 · sidebar_rect