在大模型RAG系统中应用知识图谱

为什么说知识图谱 + RAG > 传统 RAG? 你是否曾觉得自己的大脑充斥了一团乱麻般的随机事实?知识图谱模拟了我们大脑思考事物,以及事物间关系的方式,同时又规避了大脑会遗忘和错误决策等问题。我们可以将知识图谱视为带了主语、谓语和宾语的三元组。它们将信息表示为一个由相互连接的实体组成的网络,以及实体之间的关系。本质上,知识图谱利用基于图的数据模型,其中节点代表实体(如人、地点或概念的主体和宾语),边表示这些实体之间的关系或谓语。OpenSPG 是一个语义增强的可编程知识图谱,GitHub地址如下,欢迎大家Star关注~ 阅读详情

【引子】 关于大模型及其应用方面的文章层出不穷,聚焦于自己面对的问题,有针对性的阅读会有很多的启发,本文源自Whyhow.ai 上的一些文字和示例。对于在大模型应用过程中如何使用知识图谱比较有参考价值,特汇总分享给大家。

在基于大模型的RAG应用中,可能会出现不同类型的问题,通过知识图谱的辅助可以在不同阶段增强RAG的效果,并具体说明在每个阶段如何改进答案和查询。知识图谱更类似于结构化数据存储,而不是仅仅是一个用于各种目的的结构化数据的一般存储,可以利用它在 RAG 系统中战略性地注入人类推理。

1. RAG简介

对于复杂的 RAG 和多跳数据检索的一般场景,如下图所示, 关于RAG的更多信息可以参考《大模型系列——解读RAG》。

19e5ccc80b48f91deed6a4a69df094d0.jpeg

使用上图所示的阶段来介绍知识图谱支持的 RAG 过程中不同的步骤:

  • 阶段1——预处理: 这指的是在查询被用于帮助从向量数据库中提取数据块之前对其进行处理

  • 阶段2/D——数据块提取: 这是指从数据库中检索最相关的信息块

  • 阶段3-5——后处理: 这指的是为准备检索到的信息以生成答案而执行的过程

在不同阶段应该使用哪些知识图谱技术呢?

2.知识图谱在RAG各阶段的应用

2.1 阶段一:查询增强

查询增强是 在从向量数据库中进行检索之前,向查询添加上下文。此策略用于在缺少上下文的情况下增加查询并修复错误查询。这也可以用来注入一个我们的世界观,明确如何定义或看待某些共同或基础术语。

在许多情况下,我们可能对特定术语有自己的世界观。例如,一家旅游科技公司可能希望确保开箱即用 LLM 能够理解“海滨”住宅和“靠近海滩”住宅代表非常不同类型的房产,不能互换使用。在预处理阶段注入这个上下文有助于确保 RAG系统中的这种区别能够提供准确的响应。

从历史上看,知识图谱在企业搜索系统中的一个常见应用是帮助建立首字母缩略词词典,以便搜索引擎能够有效地识别提出的问题或文档/数据存储中的首字母缩略词。这在第一阶段可以用于多跳推理。

2.2 阶段二:数据块提取

文档层次结构是指创建文档层次结构和在向量数据库中导航块的规则。这用于快速识别文档层次结构中的相关块,并使我们能够使用自然语言创建规则,规定查询在生成响应之前必须引用哪些文档/块。

此阶段我们可以使用多个知识图谱。一个知识图谱可以是文档描述的层次结构,引用存储在向量数据库中的块。第二个知识图可以用于规则导航文档层次结构。例如,考虑一个风险基金的 RAG 系统。我们可以写一个自然语言规则,确定性地应用于查询规划代理“回答一个关于投资者义务的问题,首先检查投资者在投资组合清单中投资了什么,然后检查该投资组合的法律文件。”

上下文字典创建用于在向量数据库中导航块的概念结构和规则,有助于理解哪些文档块包含重要主题。这类似于书后的索引。上下文词典本质上是元数据的知识图谱。此字典可用于维护块导航规则,可以包括一个自然语言规则,例如“任何与快乐概念相关的问题,你必须详尽地搜索所有相关的数据块,由上下文字典定义。由 Query Planning Agent 中的 LLM 代理将其转换为知识图谱的查询,以增加要提取的块。这种规则的建立还可以确保块提取的一致性。

这与简单的元数据搜索有何不同?除了提高速度之外,如果文档是简单的,可能意义不大。但是,在某些情况下,我们可能希望确保将特定的信息块标记为与某个概念相关,即使该概念可能未在该块中提及或暗示。这可能发生在讨论正交信息(即与特定概念有争议或不一致的信息)的情况。上下文词典使得与不明显的信息块建立明确的关联变得容易。

2.3 阶段三:递归知识图谱查询

这是用来结合信息提取和存储连贯的答案。LLM 向知识图谱查询答案。这在功能上类似于CoT过程,其中外部信息存储在知识图谱中,以帮助确定下一步的调查。

基本上是一次又一次的运行数据块提取,检索提取的信息,并存储在一个知识图谱中,以强制连接来揭示关系。建立关系并将信息保存在知识图谱中之后,再次使用从知识图谱中提取的完整上下文运行查询。如果上下文不足,请再次将提取的答案保存在相同的知识图谱中,以强制执行更多的连接并清洗。

如果数据不断地流入系统,并且希望确保随着时间的推移使用新的上下文更新答案,那么这一点尤其有用。

2.4 阶段四之一:响应增强

响应增强是根据最初从矢量数据库生成的查询添加上下文。这用于添加必须存在于任何答案中的附加信息,这些附加信息涉及一个未能检索到或在矢量数据库中不存在的特定概念。这对于在基于提到或触发的某些概念的回答中包含免责声明或警告特别有用。

一个有趣的推测途径也可以包括使用答案增强作为一种方式,对于面向消费者的 RAG 系统,当某些答案提到某些产品时,可以包含个性化广告的答案。

2.5 阶段四之二:响应规则

响应规则是根据知识图谱设置的规则重新排序。这是用来强制执行关于可以生成的答案的一致规则。这对信任和安全有影响,我们可能希望消除已知的错误或危险的答案。

Llamaindex 有一个有趣的例子,它使用维基百科的知识图谱来复核一个 LLM 的基本真理。尽管 Wikipedia 不能作为内部 RAG 系统的基本事实的来源,但是您可以使用客观的行业或常识知识图谱来防止 LLM 的幻觉。

2.6 阶段五:数据块访问控制和个性化

知识图谱可以强制执行关于用户可以根据其权限检索哪些块的规则。例如,假设一家医疗保健公司正在构建一个 RAG 系统,该系统包含对敏感临床试验数据的访问。他们只希望拥有特权的员工能够从向量存储中检索敏感数据。通过将这些访问规则作为属性存储在知识图谱的数据上,它们可以告诉 RAG 系统只检索特权块(如果允许用户这样做的话)。

知识图谱可用于为用户的每个响应实现个性化。例如,考虑一个企业 RAG 系统,如果希望为每个办公室的每个员工、团队或部门定制响应。当生成一个答案时,RAG 系统可以咨询 知识图谱,以了解哪些块包含基于用户角色和位置的最相关信息。

我们需要同时包含上下文,以及上下文对于每个答案意味着什么。然后,可能希望将该上下文作为提示或答案增强包括在内。该策略可以建立在块访问控制的基础上。一旦 RAG 系统确定了与该特定用户最相关的数据,它还可以确保该用户确实拥有访问该数据的权限。

3.一个用例

用医学领域的一个例子来进一步阐述RAG系统中如何应用知识图谱。示例问题如下: “阿尔茨海默病治疗的最新研究是什么?” 然后可以采取以下步骤,以知识图谱增强RAG 系统。我们不认为每个 RAG 系统都必须需要以下所有步骤,但这些用例在复杂的 RAG 用例中相对常见。

26362ddd1e32097b9691ca1719b6cb56.jpeg

在这里,描述知识图谱在所有技术(查询增强、数据块提取规则、递归知识图谱查询、响应增强、响应控制、块访问控制)环节的应用示例。

3.1 查询增强

对于“阿尔茨海默氏症治疗的最新研究是什么?” 这个query,通过访问知识图谱,LLM 代理可以持续检索关于最新的阿尔茨海默病治疗的结构化数据,如“胆碱酯酶抑制剂”和“盐酸美金胺”,RAG 系统将进一步提出更具体的问题: “关于胆碱酯酶抑制剂和盐酸美金胺治疗阿尔茨海默病的最新研究是什么?”

3.2 文件层次和矢量数据库检索

使用文档层次结构,识别哪些文档和数据块与“胆碱酯酶抑制剂”和“盐酸美金胺”最相关,并返回相关的答案。

关于“胆碱酯酶抑制剂”的相关块提取规则有助于指导查询引擎提取最有用的块。文档层次结构帮助查询引擎快速识别与副作用相关的文档,并开始提取文档中的块。上下文字典帮助查询引擎快速识别与“胆碱酯酶抑制剂”相关的块,并开始提取与此主题相关的块。一条关于“胆碱酯酶抑制剂”的既定规则指出,查询胆碱酯酶抑制剂的副作用也应检查与 X 酶相关的块。这是因为 X 酶是一个众所周知的副作用,不能被忽略,并相应地包括相关的块。

3.3 递归知识图谱查询

使用递归知识图谱查询,初始查询返回称为“ XYZ 效应”的“记忆时间”的副作用。“ XYZ 效应”作为上下文存储在一个单独的知识图中,用于递归上下文。LLM 被要求使用 XYZ 效果的附加上下文检查新增加的查询。根据过去格式化的答案来衡量结果,它确定需要更多关于 XYZ 效应的信息来构成一个令人满意的答案。然后,它在知识图谱中的 XYZ 效应节点内执行更深入的搜索,从而执行多跳查询。

在 XYZ 效应节点中,它发现关于临床试验 A 和临床试验 B 的信息,它可以包括在答案中。

3.4 数据块控制访问

尽管临床试验 A & B 都包含有益的上下文,但是与临床试验 B 节点相关的元数据标签指出,用户对该节点的访问受到限制。因此,一个常设的控制访问规则可以防止临床试验 B 节点被包含在对用户的响应中。

只有关于临床试验 A 的信息才会返回给 LLM,以帮助其制定返回的答案。

3.5 响应增强

作为后处理步骤,还可以选择使用特定于医疗行业的知识图谱来增强后处理输出。例如,您可以包括特定于盐酸美金胺治疗的默认健康警告,或包括与临床试验 A 相关的任何其他信息。

3.6 数据块个性化

由于用户是研发部门的初级员工,临床试验 B 的信息不对用户开放,所以附加了一个说明,禁止用户访问临床试验 B 的信息,并要求向高级经理询问更多信息。

4. 一点思考

使用知识图谱而非向量数据库进行查询增强的一个优点是,知识图可以对已知关系的某些关键主题和概念进行一致性检索。我们把个性化定义为用户和矢量数据库之间信息流的控制,但是个性化也可以理解为用户特征的封装。

知识图谱可以反映更广泛的用户特征集合的存储,可以用于一系列的个性化工作。在某种程度上,一个知识图谱是一个外部数据存储(即外部 LLM 模型) ,它更容易以一致的形式提取(即知识图谱数据能够以一种更模块化的方式插入,播放和删除)。如果实现了物联网中的数字孪生,知识图谱很可能成为代表这种系统和模型之间的模型个性化的最佳手段。

关于物联网和数字孪生的相关内容,可以参考拙作《一书读懂物联网》一书。

b56cea80dd8fe9b01beca966525eb1ca.png

【参考资料与关联阅读】

LLM之RAG理论(五)| 使用知识图谱增强RAG 例如,依赖简单的语义相似性搜索进行上下文检索可能并不总是有效的,尤其是当查询缺乏足够的上下文时,或者当相关信息分散在庞大的文本语料库中时。无论是通过利用LLM的知识还是构建广泛的KG文本语料库,这一过程都显著增强了KG到文本的生成,特别是在训练数据有限的情况下。知识图谱表示了任意两个实体之间的关系,在这个结构中,节点表示着诸如人、地点或事件之类的实体,而边表示这些实体之间的连接。例如,Wikidata汇编了维基百科文章中的大量知识,产生了大量多样的KGs,其中包含数百万个实体和多种语言的关系。 阅读详情

相关推荐

【在大模型RAG系统中应用知识图谱】_rag知识挂载图示

对于复杂的 RAG 和多跳数据检索的一般场景,如下图所示, 关于RAG的更多信息可以参考《[大模型系列——解读RAG]》。

weixin_42924914的博客 973

GraphRAG:知识图谱+RAG技术

由于RAG的一些缺陷,最近工作中用到了GraphRAG,可以简单理解为知识图谱+RAG工作,在进行QFS与深度推理上表现良好。老板希望,在类似于库存管理、预测上面,可以结合更多的上下文信息和逻辑关系,进行推理和结果的输出。(下图为RAG简单示意图)

2401_84208172的博客 2万+

深度解析知识图谱增强的GraphRAG及医药案例

原创 KGGPT 知识图谱科技 2024-03-09 10:37Source: https://blog.griddynamics.com/retrieval-augmented-generation-llm/在讨论RAG中的有效信息检索时,理解“相关性”和“相似性”的区别至关重要。相似性是指字词匹配方面的相似性,而相关性是关于思想的联系性。你可以使用矢量数据库查询来识别语义上相近的内容,但要识别和检索相关内容需要更复杂的工具。当我们在下面探索各种RAG技术时,这是一个重要的概念要牢记。如果你还没有看过Ll

具身机器人和通用AI 2971

知识图谱 + RAG:让大模型检索更精准

知识图谱能够有效解决这些问题,通过结构化的知识表达,使检索和生成更具逻辑性和精准性。知识图谱(Knowledge Graph, KG)是一种用于表示和存储结构化知识的数据模型。将知识图谱与 RAG 结合,可以大幅提升大模型的检索精度和生成质量。

weixin_59191169的博客 2734

【人工智能时代】-在大模型RAG系统中应用知识图谱

对于复杂的 RAG 和多跳数据检索的一般场景,如下图所示, 关于RAG的更多信息可以参考《大模型系列——解读RAG使用上图所示的阶段来介绍知识图谱支持的 RAG 过程中不同的步骤:阶段1——预处理: 这指的是在查询被用于帮助从向量数据库中提取数据块之前对其进行处理阶段2/D——数据块提取: 这是指从数据库中检索最相关的信息块阶段3-5——后处理: 这指的是为准备检索到的信息以生成答案而执行的过程在不同阶段应该使用哪些知识图谱技术呢?

xiaoli8748的专栏 829

别再手动算了!用Excel函数一键搞定AQI和首要污染物分析(附完整公式模板)

本文介绍如何利用Excel函数自动化计算AQI和首要污染物分析,大幅提升数据处理效率。通过构建标准化输入模板、智能计算IAQI、自动判定AQI与首要污染物,并生成可视化仪表盘,帮助环保工作者快速完成每日监测报告。

weixin_30443075的博客 345

【在大模型RAG系统中应用知识图谱】

对于复杂的 RAG 和多跳数据检索的一般场景,如下图所示, 关于RAG的更多信息可以参考《[大模型系列——解读RAG]》。

2401_85375298的博客 1277

Codex 100个真实案例 - 用AI自动生成API测试用例(接口测试全覆盖)

API 测试是保障后端质量的关键环节,但手写测试用例既枯燥又容易遗漏。本案例将展示如何用 Codex 从 Swagger/OpenAPI 规范文档自动生成 pytest 测试用例——包括正常流程测试、边界值测试、异常参数测试、性能压力测试,还能自动生成 Mock 数据和精美的 HTML 测试报告。全程自然语言驱动,让 API 测试覆盖率从 0 飙到 90%+!

yueyeguzhuo的专栏 270

AI大模型 | GraphRAG知识图谱在RAG系统中的应用概述

我们生活在一个信息无处不在的时代,只需点击一下即可访问。然而,真正的问题是如何从这些数据洪流中提取精确且相关的答案,以及如何提供抽象和全面的答案。

Y525698136的博客 1161

如何使用 SAP ABAP Development Tool 连接 SAP BTP 上的免费 ABAP 编程环境

在云端环境编写 ABAP 代码会遇到一些限制,比如你无法在云端 ABAP 编程环境进行发生在传统 SAPGUI 里的 Dynpro 和 Screen 编程。部分在 SAPGUI 里使用的 List 处理相关的关键字比如 WRITE,还有 CALL TRANSACTION 等代码,也无法在云端使用。 当然如果大家觉得上面提到的这些限制不会影响自己的 ABAP 学习,就可以继续本文的阅读,使用 ABAP Development Tool 登录云端的 ABAP 编程环境。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1517

【华为机试真题 Python实现】分苹果

《华为机试真题》专栏含牛客网华为专栏、华为面经试题、华为OD机试真题。如果您在准备华为的面试,期间有想了解的可以私信我,我会尽可能帮您解答,也可以给您一些建议!本文解法非最优解(即非性能最优)。A,B两个人把苹果分为两堆,A希望按照它的计算规则等分苹果,他的计算规则是按照二进制加法计算,并且不计算走位,12+5=9(1100+0101=9), B的计算规则是十进制加法,包括正常进位,B希望在满足A的情况下获取苹果重量最多,输入苹果的数量和每个苹果重量,输出满足A的情况下获取的苹果总重量, 如果无法满足A的要

3413

【ai大模型】在大模型RAG系统中应用知识图谱

在基于大模型的RAG应用中,可能会出现不同类型的问题,通过知识图谱的辅助可以在不同阶段增强RAG的效果,并具体说明在每个阶段如何改进答案和查询。

Langchain的博客 1605

Python 爬虫教程:美食网站 + 社交平台餐馆评论抓取(评分提取 + 情感分析)

在当今数字化时代,数据无处不在,而爬虫技术则是获取数据的强大工具之一。无论是市场调研、学术研究还是个人兴趣探索,爬虫都能帮助我们从海量的网络信息中提取有价值的数据。本文将通过一个实战案例,带领大家学习如何使用 Python 爬虫技术抓取美食网站和社交平台上的餐馆评论,并进行评分提取与情感分析。通过这个项目,你将掌握爬虫的基本原理、数据解析、以及如何结合情感分析技术来挖掘数据背后的洞察。

u014481728的博客 311

LLM大模型:在RAG系统中应用知识图谱

关于大模型及其应用方面的文章层出不穷,聚焦于自己面对的问题,有针对性的阅读会有很多的启发,本文源自Whyhow.ai 上的一些文字和示例。对于在大模型应用过程中如何使用知识图谱比较有参考价值,特汇总分享给大家。

Langchain的博客 1526

idea出现 EXCEPTION_ACCESS_VIOLATION (0xc0000005) 的解决方法

idea启动的时候出现如下问题,以为没啥事,就索性关闭 后面再打开idea的时候发现直接闪退,之后打开其他软件,直接蓝屏

码农研究僧的博客 4817

FPGA学习笔记(一)入门背景、软件及时钟约束的概念及程序下载与固化

使用正点原子的PFPGA开拓者V2学习,通过b站上正点原子的手把手教你学FPGA-基于开拓者V2学习。

贾saisai的博客 3280

大模型 | 知识图谱在RAG系统中的应用概述

我们生活在一个信息无处不在的时代,只需点击一下即可访问。然而,真正的问题是如何从这些数据洪流中提取精确且相关的答案,以及如何提供抽象和全面的答案。这时,两种创新技术应运而生:知识图谱和检索增强生成(RAG)。这些技术有望改变我们与信息互动的方式,提供更智能、更具上下文的响应。

Androiddddd的博客 1300

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

上一篇: 面向知识图谱的大模型应用
下一篇: 《精益DevOps》译者序
半吊子全栈工匠
半吊子全栈工匠 领域专家: 嵌入式与硬件开发技术领域 领域专家: 嵌入式与硬件开发技术领域
博客等级 码龄18年 4632粉丝 897原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值