图数据库RAG与KAG

图数据库 RAG 与 KAG

什么是 RAG?

定义

RAG(Retrieval-Augmented Generation,检索增强生成) 是一种将「外部知识检索」与「大语言模型生成」相结合的架构。它让 LLM 在回答问题时,先去知识库检索相关资料,再基于检索到的内容生成答案,从而缓解大模型的「幻觉」问题、知识时效性问题与私有知识缺失问题。

传统向量 RAG 的工作流程

1
2
3
4
5
6
7
8
9
10
11
用户提问
↓
向量化(Embedding)问题
↓
向量数据库相似度检索(余弦距离)
↓
召回 Top-K 相关文本片段
↓
拼接进 Prompt 上下文
↓
LLM 生成最终答案

传统向量 RAG 的痛点

痛点 说明
语义模糊 「相似」不等于「相关」,向量只捕捉字面/浅层语义
缺乏全局视角 只能检索孤立片段,无法感知文档间的关联
多跳推理弱 一个问题需要串联多个实体关系时,向量检索无能为力
可解释性差 不知道答案来自哪里、推理链路是什么
长尾/稀有实体 低频专业术语容易被向量空间稀释

一句话总结:传统 RAG 擅长「找相似的句子」,但不擅长「理清关系和逻辑」。图数据库与 KAG 正是为补齐这些短板而生。


图数据库(Graph Database)

什么是图数据库?

图数据库是以图结构存储数据的数据库,核心由三类元素构成:

  • 节点(Node):实体,如「人物」「公司」「疾病」「概念」
  • 边(Edge / Relationship):实体之间的关系,如「属于」「治疗」「发生于」
  • 属性(Property):节点/边的附加信息

与关系型数据库(表 + JOIN)相比,图数据库用「指针」直接关联数据,查询多跳关系时无需昂贵的 JOIN 操作,复杂关联查询性能随跳数增长几乎线性。

常见图数据库

数据库 类型 特点
Neo4j 原生图,Cypher 查询 最流行,生态成熟,社区资料多
Nebula Graph 分布式,nGQL 国产,高吞吐,支持万亿级边
TuGraph 国产,蚂蚁开源 高性能,图计算与图存储一体
JanusGraph 分布式,可接多种后端 与 Hadoop / HBase 生态融合
TigerGraph 分布式 MPP 实时深度关联分析

GraphRAG:把知识图谱引入 RAG

什么是 GraphRAG?

GraphRAG 是微软(Microsoft Research)于 2024 年提出的方案:在检索之前,先用 LLM 从文档中抽取实体、关系和社区摘要,构建一张知识图谱;检索时既做向量检索,也做图遍历,从而具备全局、多跳的问答能力。

核心流程

  1. 抽取(Extract):LLM 从文本中识别实体、关系、声明,写入图数据库
  2. 社区检测(Community Detection):用 Leiden 算法把图分割成若干社区
  3. 社区摘要(Summarize):对每个社区生成自然语言摘要,形成「鸟瞰视图」
  4. 检索(Query):
    • 局部检索:针对具体实体的图遍历(精确、可溯源)
    • 全局检索:基于社区摘要的「全局性问题」回答
  5. 生成:LLM 综合图结构 + 文本生成答案

GraphRAG 解决了什么?

1
2
3
✅ 全局性问题(「这份资料整体讲了什么主题?」)
✅ 多跳推理(「A 和 B 通过什么关系关联?」)
✅ 实体关系网络问答(「谁影响了谁?」)

KAG:知识增强生成

什么是 KAG?

KAG(Knowledge Augmented Generation,知识增强生成) 是蚂蚁集团基于 OpenSPG 知识图谱引擎开源的框架,旨在解决专业领域(金融、法律、医疗等)中 RAG「检索不准、推理不深、专业性不足」的问题。

KAG 的核心思想:让知识图谱与文本块互索引(mutual index),用逻辑形式引导的符号推理 + 大模型生成,把「图的可解释推理」和「大模型的语义理解」结合起来。

KAG 的核心技术

1. 知识互索引(Knowledge-Text Mutual Index)

  • 知识图谱中的实体/关系 双向链接 到原始文本块
  • 图能回溯原文,原文能展开为图谱,避免「图与文脱节」

2. 受 Schema 约束的知识构建(Schema-Constraint)

  • 用领域 Schema(概念、实体类型、关系类型)约束 LLM 抽取
  • 提升知识抽取的准确率与一致性,减少噪声与幻觉

3. 逻辑形式引导的混合推理求解器(Logical-Form Solver)

  • 把自然语言问题转成逻辑表达式(类似 SPARQL / 谓词组合)
  • 在图谱上做符号推理(交集、并集、否定、多跳)
  • 对图谱无法覆盖的部分,回退到大模型语义检索
  • 既保证可解释,又保证召回完整

4. 图谱与原文协同的检索

1
2
3
4
5
6
7
8
9
10
用户问题
↓
语义解析 → 逻辑形式(Logic Form)
↓
├─ 图谱符号推理(精准、可解释)
└─ 原文向量检索(补充、兜底)
↓
互索引对齐、去重、排序
↓
LLM 融合生成答案 + 引用溯源

GraphRAG vs KAG 对比

维度 GraphRAG(微软) KAG(蚂蚁)
提出方 Microsoft Research 蚂蚁集团(OpenSPG)
知识组织 实体-关系图 + 社区摘要 Schema 约束的知识图谱 + 文本互索引
推理方式 图遍历 + 社区摘要生成 逻辑形式符号推理 + 语义检索
专业性 通用文档 面向专业领域(金融/法律/医疗)
可解释性 中等 高(引用可溯源到图与原文)
构建成本 中等(自动抽取) 较高(建议引入领域 Schema)
适用问题 全局性、关联性问答 严谨推理、专业问答

图数据库 RAG / KAG 能应用到哪里?

1. 金融风控与合规

  • 反欺诈:通过「账户—设备—IP—交易」关系网发现团伙欺诈
  • 合规审查:合同条款、监管规则与交易行为的关联检索
  • 投研问答:基于公告、研报知识图谱的精准问答与溯源

2. 医疗与生命科学

  • 辅助诊断:症状—疾病—药物—基因的多跳推理
  • 药物研发:分子结构、靶点、通路图谱(参考 GraphGPT / AlphaFold 思路)
  • 医保审核:规则图谱 + 病例关联判断

3. 法律与政务

  • 类案检索:法条、判例、案由关系图谱
  • 政策问答:政策文件结构化 + 知识图谱,精准溯源到具体条款
  • 政务知识库:跨部门事项办理路径推理

4. 企业知识管理

  • 技术文档问答:API、架构、故障案例的关系网络
  • 客服知识库:从「问答对」升级为「知识图谱」,解决多跳问题
  • 代码与架构治理:服务依赖图谱、调用链问答

5. 科研与情报分析

  • 文献综述:自动抽取研究主题、方法、结论构成图谱
  • 情报关联:人物—组织—事件网络分析

6. 网络安全

  • 攻击溯源:资产—漏洞—攻击路径图谱
  • 威胁情报:IOC(失陷指标)关联推理

实践建议

什么时候用哪种方案?

场景 推荐方案
简单 FAQ、单文档问答 传统向量 RAG 即可
需要多跳关联、全局摘要 GraphRAG
专业领域、强可解释、强准确 KAG
已有知识图谱资产 KAG / 图数据库增强

技术选型

  • 图数据库:Neo4j(上手快)/ Nebula Graph(海量分布式)
  • GraphRAG:微软 graphrag 库(Python 生态)
  • KAG:蚂蚁 KAG 开源框架(基于 OpenSPG)

落地注意点

  1. 知识抽取质量决定上限:领域 Schema 很关键
  2. 图谱规模与性能:百亿边要选分布式图库
  3. 图谱 + 原文协同:不要只信图,也要保留原文检索兜底
  4. 可解释与溯源:金融/医疗必须能给出引用

总结

传统 RAG 用「向量」找回相似的片段;GraphRAG 用「图」找回关联的网络;KAG 用「知识图谱 + 逻辑推理」做严谨、可解释的专业问答。

三者并非替代关系,而是能力递进:

  • 向量 RAG:快、省、够用
  • 图 RAG(GraphRAG):能看到关系与全局
  • KAG:专业、严谨、可溯源

理解它们的差异,才能在「通用问答」到「专业决策」的不同场景里选对方案。


💡 延伸阅读

  • 微软 GraphRAG 官方仓库与论文(From Local to Global)
  • 蚂蚁 KAG / OpenSPG 开源文档
  • 知识图谱 + LLM 的更多融合范式(GraphGPT、G-Retriever、HippoRAG 等)