搭配Knowledge Graph的RAG架构

1. RAG

检索增强生成(Retrieval-Augmented Generation,简称 RAG)通过结合大型语言模型(LLM)和信息检索系统来提高生成文本的准确性和相关性。这种方法允许模型在生成回答之前,先从权威知识库中检索相关信息,从而确保输出内容的时效性和专业性,无需对模型本身进行重新训练。

RAG技术之所以重要,是因为它解决了LLM面临的一些关键挑战,例如虚假信息的提供、过时信息的生成、非权威来源的依赖以及由于术语混淆导致的不准确响应。通过引入RAG,可以从权威且预先确定的知识来源中检索信息,增强了对生成文本的控制,同时提高了用户对AI解决方案的信任度。

2. 知识图谱

知识图谱(Knowledge Graph)是一种结构化的语义知识库,它旨在存储与现实世界实体(如人、地点、组织、事件等)相关的信息,并描述这些实体之间的各种关系。知识图谱通常用于增强搜索引擎的功能,提供更丰富的搜索结果,以及在各种人工智能应用中改善数据的语义理解。

知识图谱的核心组成部分包括:

  • 实体(Entities):

实体是知识图谱中的基本单位,代表现实世界中的对象或概念,如"埃菲尔铁塔"、"纽约"或"苹果公司"。

  • 关系(Relations):

关系描述了实体之间的语义联系,例如"位于"、"创始人"或"主演"。这些关系使得知识图谱能够表达复杂的事实,如"埃菲尔铁塔位于巴黎"。

  • 属性(Attributes):

实体通常具有一系列的属性,这些属性提供了关于实体的额外信息,如"埃菲尔铁塔"的高度或建造年份。

3. Knowledge Graph+RAG

在RAG(Retrieval-Augmented Generation)框架中,我们将文档切成小段(chunk),然后通过检索模块找到与查询相关的文档片段。这种方法可以提高生成文本的准确性和相关性,同时保持生成文本的时效性和专业性。

然而,在实际文本中,chunk与chunk之间是存在关联的,而RAG技术并未充分考虑到这种关联性。为了解决这一问题,我们可以引入知识图谱,将文档中的chunk之间的关系表示为图结构。在检索时,不仅可以找到与查询相关的文档片段,还可以根据知识图谱中的关系找到与查询相关的chunk之间的关联信息。

在每一个实体上,存储了该chunk的信息;在每一个关系上,存储了chunk之间的关系信息。

在进行检索时,我们可以根据语义找到若干个相关实体,对于每个实体,我们还可以遍历到其他相关实体。即使某个实体没有被语义检索直接召回,我们也能通过关联关系将其返回。这种方法有效避免了在文档切分过程中可能出现的信息丢失问题。

通过这种方式,RAG框架不仅提高了检索的准确性和相关性,还增强了对文档内部复杂关系的理解,使生成的文本更加连贯和专业。

4. 误区

在使用RAG+Knowledge Graph的时候,我们需要注意以下几个误区:

  1. 不是直接复用之前的Knowledge Graph,而是需要根据具体的任务重新构建知识图谱;
  2. Knowledge Graph的的构建不是生成传统意义上的实体关系图,而是借用了图数据库的思想,将文档中的chunk之间的关系表示为图结构;

参考

1\] [deeplearning.ai](https://www.deeplearning.ai/short-courses/knowledge-graphs-rag/) ### 欢迎关注我的GitHub和微信公众号,来不及解释了,快上船! [GitHub: LLMForEverybody](https://github.com/luhengshiwo/LLMForEverybody) 仓库上有原始的Markdown文件,完全开源,欢迎大家Star和Fork! ![请添加图片描述](https://i-blog.csdnimg.cn/direct/193bb2866f7046bd8be75f260c4d4628.png)

相关推荐
机器之心14 分钟前
MoE推理「王炸」组合:昇腾×盘古让推理性能狂飙6-8倍
人工智能
西柚小萌新23 分钟前
【大模型:知识图谱】--5.neo4j数据库管理(cypher语法2)
数据库·知识图谱·neo4j
艾醒(AiXing-w)23 分钟前
探索大语言模型(LLM):RSE流程详解——从文档中精准识别高相关片段
数据库·人工智能·语言模型
陈奕昆1 小时前
4.2 HarmonyOS NEXT分布式AI应用实践:联邦学习、跨设备协作与个性化推荐实战
人工智能·分布式·harmonyos
AI.NET 极客圈1 小时前
.NET 原生驾驭 AI 新基建实战系列(六):Pinecone ── 托管向量数据库的向量数据库的云原生先锋
数据库·人工智能·.net
YBCarry_段松啓1 小时前
uv:下一代 Python 包管理器
人工智能·python
聚客AI1 小时前
深度解构神经网络的底层引擎:从感知机到反向传播的数学之旅
人工智能·神经网络·掘金·日新计划
张较瘦_1 小时前
[论文阅读] 人工智能+软件工程 | 用大模型优化软件性能
论文阅读·人工智能·软件工程
机器之心1 小时前
深夜突袭!谷歌Gemini 2.5 Pro更新蝉联榜一:推理超越o3,编程超越opus4
人工智能·gemini
fc&&fl1 小时前
大模型面试题总结
人工智能·python