RAG - KG-RAG
Knowledge Graph
- 知识图谱也称为语义网络,表示现实世界实体的网络,并说明它们之间的关系
- 信息通常存储在图形数据库中,并以图形结构直观呈现
- 知识图谱由三部分组成 - 节点 + 边 + 标签
Why
降噪 + 提召 + 提准
- 传统 RAG 中的 Chunking 方式会召回一些噪音的 Chunk
- 引入 KG,可以通过实体层级特征来增强相关性
- 传统 RAG 中的 Chunk 之间是彼此孤立的,缺乏关联,在跨文档回答任务上表现不太好
- 引入 KG,增强 Chunk 之间的关联,并提升召回的相关性
- 假设已有 KG 数据存在,可以将 KG 作为一路召回信息源,补充上下文信息
- Chunk 之间形成的 KG,可以提供 Graph 视角的 Embedding,来补充召回特征
构建一个高质量、灵活更新、计算简单的大规模图谱的代价很高 - RAG 会很慢
- https://hub.baai.ac.cn/view/30017
- https://hub.baai.ac.cn/view/33147
- https://hub.baai.ac.cn/view/33390
- https://hub.baai.ac.cn/view/33265
- https://mp.weixin.qq.com/s?__biz=MzAxMjc3MjkyMg==&mid=2648406891&idx=1&sn=b0143b6ad701171bd11dcf5a33dc2724
How
Idea A
在线 - 使用知识图谱增强 LLM 的问答效果
阶段 | 动作 | 描述 |
---|---|---|
Pre RAG | 意图识别 | 用知识图谱进行实体别称补全和实体上下位推理 |
In RAG | Prompt 组装 | 从知识图谱中查询背景知识放入上下文 |
Post RAG | 结果封装 | 用知识图谱进行知识修正和知识溯源 |
Idea B
利用 KG 作为一路召回源
https://medium.com/@amodwrites/the-future-of-genai-with-kg-enhanced-rag-systems-c34928427453
GraphRAG 思想
- 对 Query 提取实体,然后构造子图形成上下文,最后送入到 LLM 完成生成
- 可以直接使用 Text2Cypher 的方式进行生成
实现
- 使用 LLM 从 Query 中提取关键实体
- 根据实体检索子图,深入到一定深度(例如 2 度)
- 根据获取到的上下文,利用 LLM 产生答案
Idea C
利用 KG 来组织 Chunk 来提升相关性
- 在 Document Parsing 阶段,利用文档解析结果,对 Chunk 之间的层级信息进行存储
- 在 Document ReRanking 阶段,引入实体作为特征,对 Query 与文档之间的实体相关性进行过滤
- 在长文本的场景中,引入 KG 进行摘要聚类,层层索引,提升效果
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.