搭配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)

相关推荐
扫地的小何尚17 分钟前
NVIDIA RTX PC开源AI工具升级:加速LLM和扩散模型的性能革命
人工智能·python·算法·开源·nvidia·1024程序员节
人工智能AI技术22 分钟前
多智能体开发实战:从需求拆解到落地部署,这套工程化方案直接复用
人工智能
我的offer在哪里26 分钟前
Hugging Face 生态全景图:从数据到部署的全链路 AI 工厂
人工智能
田井中律.36 分钟前
多模态RAG实战指南
人工智能
DX_水位流量监测1 小时前
大坝安全监测之渗流渗压位移监测设备技术解析
大数据·运维·服务器·网络·人工智能·安全
昵称已被吞噬~‘(*@﹏@*)’~1 小时前
【RL+空战】学习记录03:基于JSBSim构造简易空空导弹模型,并结合python接口调用测试
开发语言·人工智能·python·学习·深度强化学习·jsbsim·空战
Yeats_Liao1 小时前
MindSpore开发之路(二十四):MindSpore Hub:快速复用预训练模型
人工智能·分布式·神经网络·机器学习·个人开发
老周聊架构1 小时前
基于YOLOv8-OBB旋转目标检测数据集与模型训练
人工智能·yolo·目标检测
AKAMAI2 小时前
基准测试:Akamai云上的NVIDIA RTX Pro 6000 Blackwell
人工智能·云计算·测试
寂寞恋上夜2 小时前
异步任务怎么设计:轮询/WebSocket/回调(附PRD写法)
网络·人工智能·websocket·网络协议·markdown转xmind·deepseek思维导图