Knowledge Graph

  1. 知识图谱也称为语义网络,表示现实世界实体的网络,并说明它们之间的关系
  2. 信息通常存储在图形数据库中,并以图形结构直观呈现
  3. 知识图谱由三部分组成 - 节点 + + 标签

kg

Why

降噪 + 提召 + 提准

  1. 传统 RAG 中的 Chunking 方式会召回一些噪音的 Chunk
    • 引入 KG,可以通过实体层级特征来增强相关性
  2. 传统 RAG 中的 Chunk 之间是彼此孤立的,缺乏关联,在跨文档回答任务上表现不太好
    • 引入 KG,增强 Chunk 之间的关联,并提升召回的相关性
  3. 假设已有 KG 数据存在,可以将 KG 作为一路召回信息源,补充上下文信息
  4. Chunk 之间形成的 KG,可以提供 Graph 视角的 Embedding,来补充召回特征

构建一个高质量灵活更新计算简单大规模图谱的代价很高 - RAG 会很慢

  1. https://hub.baai.ac.cn/view/30017
  2. https://hub.baai.ac.cn/view/33147
  3. https://hub.baai.ac.cn/view/33390
  4. https://hub.baai.ac.cn/view/33265
  5. https://mp.weixin.qq.com/s?__biz=MzAxMjc3MjkyMg==&mid=2648406891&idx=1&sn=b0143b6ad701171bd11dcf5a33dc2724

How

Idea A

在线 - 使用知识图谱增强 LLM 的问答效果

image-20240903170738512

阶段 动作 描述
Pre RAG 意图识别 用知识图谱进行实体别称补全实体上下位推理
In RAG Prompt 组装 从知识图谱中查询背景知识放入上下文
Post RAG 结果封装 用知识图谱进行知识修正知识溯源

Idea B

利用 KG 作为一路召回源

image-20240903173517505

https://medium.com/@amodwrites/the-future-of-genai-with-kg-enhanced-rag-systems-c34928427453

1_pES0UE24Ichw-R_QVvt23w

GraphRAG 思想

  1. Query 提取实体,然后构造子图形成上下文,最后送入到 LLM 完成生成
  2. 可以直接使用 Text2Cypher 的方式进行生成

实现

  1. 使用 LLM 从 Query 中提取关键实体
  2. 根据实体检索子图,深入到一定深度(例如 2 度)
  3. 根据获取到的上下文,利用 LLM 产生答案

Idea C

利用 KG 来组织 Chunk提升相关性

  1. Document Parsing 阶段,利用文档解析结果,对 Chunk 之间层级信息进行存储
  2. Document ReRanking 阶段,引入实体作为特征,对 Query文档之间的实体相关性进行过滤
  3. 在长文本的场景中,引入 KG 进行摘要聚类,层层索引,提升效果