LLM之RAG理论(五)| 使用知识图谱增强RAG

news2024/11/21 0:25:29

       知识图谱(KG)或任何图都包括节点和边,其中每个节点表示一个概念,每个边表示一对概念之间的关系。本文介绍一种将任何文本语料库转换为知识图谱的技术,本文演示的知识图谱可以替换其他专业知识图谱。

一、知识图谱

       知识图谱表示了任意两个实体之间的关系,在这个结构中,节点表示着诸如人、地点或事件之类的实体,而边表示这些实体之间的连接。知识图谱还包含了第三个元素,通常被称为谓词或边缘标签,它阐明了关系的性质。

       知识图谱就像智能网络一样,显示了现实世界中的事物是如何连接的。它存储在图形数据库中,并可视化为图形结构,形成我们所说的“知识图”。用户可以像实时聊天机器人对话一样使用graph数据进行聊天。

       知识图谱有多种用途。通过应用图算法,我们可以计算任何节点的中心度,从而深入了解一个概念在一系列工作中的重要性。分析连接和断开的概念集,或确定概念群落,可以提供对主题的全面理解。知识图谱使我们能够揭示看似不相关的概念之间的联系。

       此外,知识图谱可以用于图检索增强生成(GRAG或GAG),并促进与文档的对话交互。与具有固有局限性的传统版本的RAG相比,这种方法通常产生优越的结果。例如,依赖简单的语义相似性搜索进行上下文检索可能并不总是有效的,尤其是当查询缺乏足够的上下文时,或者当相关信息分散在庞大的文本语料库中时。

二、高级RAG体系结构

  1. 使用矢量数据库编码文档;

  2. 使用sentence transformer将查询转换为向量;

  3. 基于输入的查询从矢量数据库中检索相关上下文;

  4. 利用查询和检索到的上下文来激发LLM。

三、RAG的局限性

       RAG的一个主要缺点是它很难对复杂而细微差别的查询提供精确的响应。这种限制源于几个因素:

理解用户意图:RAG系统可能很难完全掌握用户查询背后的确切意图,这是向LLM提供准确信息的关键方面。

对矢量嵌入的依赖性:RAG在很大程度上依赖矢量嵌入来解释查询并将其与相关信息匹配。虽然这些嵌入是有效的,但它们并不是万无一失的,有时会导致理解查询上下文的不准确或过于简单化。

黑盒性质:生成和比较矢量嵌入的过程是复杂的,而且往往是不透明的。考虑到嵌入可能具有多个维度,在语义搜索中破译其结构并理解其对相似性得分的影响是一个挑战。

通用训练数据:嵌入模型通常在通用数据集上进行训练,可能会错过某些查询所必需的特定细微差别或上下文。这可能导致在不同的内容片段之间绘制出表面上的相似之处。

四、知识图的类型

百科全书式KGs:这种常见类型通过整合百科全书、数据库和专家见解等不同来源的信息来获取一般知识。例如,Wikidata汇编了维基百科文章中的大量知识,产生了大量多样的KGs,其中包含数百万个实体和多种语言的关系。

常识性KGs:这些KGs专注于日常知识,包含有关对象、事件及其关系的信息。它们有助于理解我们日常生活中使用的基本知识,通常是隐含的知识。例如,ConceptNet包括常识性的概念和关系,帮助计算机更自然地掌握人类语言。

特定领域的KGs:这些KGs针对医学、金融或生物学等特定领域量身定制,体积较小,但高度精确和可靠。例如,医学领域的UMLS包含详细的生物医学概念和关系,以满足专业知识需求。

多模态KGs:超越文本,这些KGs包含图像、声音和视频,用于图像-文本匹配或视觉问答等目的。像IMGpedia和MMKG这样的例子无缝地融合了文本和视觉信息,以实现全面的知识表示。

五、搜索引擎中的用例

       在搜索引擎领域,KGs在提高搜索精度和相关性方面起着关键作用。通过理解KGs中嵌入的关系和上下文,搜索引擎超越了单纯的关键词匹配,深入研究了用户查询背后的意图和深刻意义。这种演变导致搜索结果不仅更直观,而且与上下文相适应,从根本上改变了我们在线获取信息的方式。

六、此应用程序的业务体系结构

      数据来源于各种渠道,包括非结构化数据、平面文件、带有XML或JSON数据库的结构化数据、传统SQL数据库等。通过从这些不同的数据源提取实体和关系来构建知识图谱。与ETL传统方法不同,现在使用生成人工智能自动提取实体和关系,还可以生成Neo4j cipher查询语言。最终将这些元素自动集成到Neo4j数据库中,如下图的左侧所示。

       生成人工智能通过将这些问题转换为数据库查询语言Cipher而发挥作用。对数据库执行查询,获得结果,然后进行另一轮生成人工智能处理,将其转换回自然语言。

       在中间层,图数据库将基于语料库数据生成知识图谱schema,并使用节点和边缘将其生成概念图。当您连接这些节点时,您可以看到节点和边的关系,如下所示。

七、构建知识图

       构建知识图谱有如下四个步骤,但这将根据业务需求和用例场景而有所不同。

  1. 从内容中识别和捕获概念和实体。这些元素表示系统中的节点;

  2. 识别概念之间的关系,形成结构的边缘;

  3. 使用已识别的节点(概念)和边(关系)填充图形数据结构或图形数据库;

  4. 将构建的图形可视化,以获得分析见解和潜在的艺术享受。

      语料库数据流图如下所示,此流将根据您使用的数据库模型而有所不同。例如,如果您使用图形数据库和数据科学数据库,数据将存储在后端系统中。如果你使用内存中的占位符,那么你可以使用Pandas DataFrame等。

     在初始阶段,首先对文本语料库进行分段,每个片段被分配一个唯一的chunk_id。在此之后,使用语言模型(LLM)从每个文本块中提取概念及其语义关系,为这些关系分配W1的权重。需要注意的是,同一对概念之间可能存在多种关系。

      随后,考虑同一文本块内的上下文相关度,从而在概念之间建立权重为W2的附加关系。不同块中相同的概念对也可以建立权重为W2的附加关系。为了简化数据,对相似的对进行分组,它们的权重进行求和,并把它们的关系进行拼接。结果是一个统一的表示,每个不同的概念对都有一条边,并以特定的权重和关系列表作为其标识符。

       现在,让我们对DataFrame的每个文本块运行这个GenAI模型,并将json转换为Pandas DataFrame,如下所示。

        如果您使用的是后端数据库,那么实体如下所示:

       每一行表示一对概念之间的关系,充当连接图中两个节点的边。同一对概念之间可能存在多个边或关系。data frame的count表示权重,任意设置为4。

八、将KG与LLM-RAG集成

       知识图谱(KGs)与大型语言模型(LLM)的集成有望显著增强检索增强生成(RAG)过程,从而改进知识表示和推理。这种协作方法有助于动态知识融合,确保真实世界的知识保持最新,并与文本空间不同。因此,在推理过程中提供的信息仍然是最新的和相关的。

8.1 动态知识融合

       将知识图谱(KG)视为大型语言模型(LLM)可访问的动态数据库,用于查询最新的相关信息。事实证明,这种方法在回答问题等任务中非常有效,在这些任务中,保持最新信息至关重要。这些知识与LLM的集成是通过高级架构实现的,促进了文本标记和KG实体之间的深刻交互。这通过结构化的事实数据丰富了LLM的响应,提高了生成信息的质量。

8.2 KG增强型RAG

       使用知识图谱提升RAG技术包括在知识图谱中搜索相关事实,并将其作为上下文信息呈现给LLM。这种方法能够生成精确、多样和真实的内容。例如,当LLM的任务是对最近的事件做出回应时,它可以在制定回复之前先咨询KG了解最新的事实。

      此外,LLM在制作准确描述KG信息的高质量文本方面发挥了重要作用。这对于产生真实的叙事、对话和故事具有巨大的潜力。无论是通过利用LLM的知识还是构建广泛的KG文本语料库,这一过程都显著增强了KG到文本的生成,特别是在训练数据有限的情况下。

8.3 LLM和KGs推理

       LLM和KGs的协同效应在推理任务中变得尤为明显。使用LLM来解释文本问题并促进对KGs的推理,建立了文本信息和结构信息之间的联系,增强了可解释性和推理能力。这种连贯的方法适用于各个领域,从对话系统中的个性化建议到通过结合领域知识图来加强特定任务的培训程序。

九、图形可视化

       可视化阶段为这项练习增加了一个令人愉快的维度,提供了一种独特的艺术满足感。我们已经确定了影响其大小的边权重,为节点社区指定了颜色,并建立了节点度来确定其大小。

       探索放大和缩小、操作节点和边以及使用页面底部的滑块面板调整图形物理特性的灵活性。看看这个动态图是如何帮助提出有见地的问题并提高对主题的理解的!

10、结论

       当需要混合结构化和非结构化数据来推动RAG应用时,知识图谱被证明是非常有效的。这篇博客文章指导你在graph DB中使用语料库、医学或任何文本上的GenAI函数构建知识图。GenAI/模型功能的输出结构整齐,是提取有组织信息的理想选择。为了在图构建中获得LLM的最佳体验,请详细定义图模式,并在提取后加入实体消歧步骤。希望RAG-KG图支持图增强检索的发展,为整体RAG管道的改进做出贡献。

       将知识图谱(KGs)纳入检索增强生成(RAG)系统具有巨大的潜力。通过利用KGs中结构化和互连的数据,我们可以大大提高现有RAG系统的推理能力。这种强有力的融合有望缓解当前RAG管道中固有的局限性,提供更准确、更具上下文意识和细微差别的响应。

       KGs是LLM可访问的强大信息库,使他们不仅能够检索事实,而且能够理解与这些事实相关的关系和潜在背景。这种理解水平的提高对于人工智能系统的发展至关重要,该系统能够与用户进行更有效的交互,提供不仅相关而且深刻见解的信息。

参考文献:

[1] https://regupathit.medium.com/gen-ai-vilimiai-rag-with-knowledge-graph-8a8a6bdcd222

[2] https://knowledge.vilimin.com/

[3] https://vilimin.com/

[4] https://vilimingpt.com/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1384030.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【PyTorch简介】3.Loading and normalizing datasets 加载和规范化数据集

Loading and normalizing datasets 加载和规范化数据集 文章目录 Loading and normalizing datasets 加载和规范化数据集Datasets & DataLoaders 数据集和数据加载器Loading a Dataset 加载数据集Iterating and Visualizing the Dataset 迭代和可视化数据集Creating a Cust…

深度解析Pytest插件pytest-html

在软件开发中,测试报告是开发者获取测试结果和问题定位的关键工具之一。然而,标准的控制台输出有时难以满足我们对测试报告的需求。幸运的是,Pytest插件 pytest-html 提供了一种简单而强大的方式,可以生成漂亮、可视化的HTML格式测…

Python之Matplotlib绘图调节清晰度

Python之Matplotlib绘图调节清晰度 文章目录 Python之Matplotlib绘图调节清晰度引言解决方案dpi是什么?效果展示总结 引言 使用python中的matplotlib.pyplot绘图的时候,如果将图片显示出来,或者另存为图片,常常会出现清晰度不够的…

如何开启文件共享及其他设备如何获取

1.场景分析 日常生活中,常常会遇到多台电脑共同办公文件却不能共享的问题,频繁的用移动硬盘、U盘等拷贝很是繁琐,鉴于此,可以在同一内网环境下设置共享文件夹,减少不必要的文件拷贝工作,提升工作效率。废话…

什么是信噪比

大家好,今天给大家介绍什么是信噪比,文章末尾附有分享大家一个资料包,差不多150多G。里面学习内容、面经、项目都比较新也比较全!可进群免费领取。 “信噪比”是电子技术中经常用到的一个词组,知道它的确切含义有一定意…

[含完整代码]Linux使用.sh脚本自动部署(启动|停止|状态|日志)项目[超详细]

前言: 个人博客:www.wdcdbd.com 我们在linux部署.jar项目时,都需要通过java -jar的形式来部署,每次都要手动停止,部署,这样用起来会很麻烦。所以,这篇文章就是自己通过.sh脚本一键启动&#xf…

工作压力测试

每个职场人都会遇到工作压力,在企业人力资源管理的角度来看,没有工作压力是人力资源的低效,适当的工作压力可以促使员工不断进取,然而每个人的抗压能力是不同的,同样的工作量和工作难度,不同的人在面对相同…

实战之-Redis代替session实现用户登录

一、设计key的结构 首先我们要思考一下利用redis来存储数据,那么到底使用哪种结构呢?由于存入的数据比较简单,我们可以考虑使用String,或者是使用哈希,如下图,如果使用String,注意他的value&…

快速入门java网络编程基础------Nio

一. NIO 基础 哔哩哔哩黑马程序员 netty实战视频 0.什么是nio? NIO(New I/O)是Java中提供的一种基于通道和缓冲区的I/O(Input/Output)模型。它是相对于传统的IO(InputStream和OutputStream)模型…

基于YOLOv7算法的高精度实时六类水果目标检测识别系统(PyTorch+Pyside6+YOLOv7)

摘要:基于YOLOv7算法的高精度实时六类水果目标检测系统可用于日常生活中检测与定位苹果(apple)、香蕉(banan)、葡萄(grape)、橘子(orange)、菠萝(pineapple&a…

ElasticSearch(1):Elastic Stack简介

1 简介 ELK是一个免费开源的日志分析架构技术栈总称,官网https://www.elastic.co/cn。包含三大基础组件,分别是Elasticsearch、Logstash、Kibana。但实际上ELK不仅仅适用于日志分析,它还可以支持其它任何数据搜索、分析和收集的场景&#xf…

HarmonyOS 通过 animateTo讲解尺寸动画效果

上文 HarmonyOS讲解并演示 animateTo 动画效果 我们已经做出了基本的动画效果 也对 animateTo 的使用比较熟悉了 第一个参数是 配置动画参数的json 第二个参数 则是改变我们元素属性值的事件 但属性值 远远不止位置属性 本文 我们来说 通过尺寸变化 完成动画效果 如果你有看过…

[ACM题目练习] 前后手

题目1 A为了让数字总和最大,但是B想让数字总和最小。 题解 因为A先操作B后操作,所以B的策略一定是把当前剩下的数字中前1到 x 大的元素给乘上-1,那么A的策略是怎样的(通常这种题A没有策略,都是遍历所有的情况) (再接着优化&#…

规则与不规则的凸多边形IoU计算

在视觉中可能比较多的是计算规则凸四边形,而在少部分视觉,大部分现实中的多边形可能是不规则的,这个时候如果用规则的方法计算,可能会引入很多bug。在自动驾驶中不规则的凸多边形计算非常常见。 IoU= 交集 / 并集=inner_area / (area1 + area2 - inner_area) 1.规则凸四边…

深入理解JVM虚拟机第三十八篇:JVM中OOM的说明和举例

😉😉 欢迎加入我们的学习交流群呀! ✅✅1:这是孙哥suns给大家的福利! ✨✨2:我们免费分享Netty、Dubbo、k8s、Mybatis、Spring、Security、Docker、Grpc、消息中间件、Rpc、SpringCloud等等很多应用和源码级别高质量视频和笔记资料,你想学的我们这里都有! 🥭🥭3:…

杨中科 EFCORE 第四部分 命令详解56-61

Migrations 深入研究Migrations 1、使用迁移脚本,可以对当前连接的数据库执行编号更高的迁移,这个操作叫做“向上迁移” (Up),也可以执行把数据库回退到旧的迁移,这个操作叫“向下迁移(Down) 2、除非有特殊需要&…

《C++大学教程》4.14信用额度问题

题目&#xff1a; #include <iostream> #include <iomanip> using namespace std;int main() {unsigned int account;double beginning_balance, total_charges, total_credits, credit_limit;cout << "Enter account numbeu(or -1 to qiut):";cin…

e2studio开发三轴加速度计LIS2DW12(4)----测量倾斜度

e2studio开发三轴加速度计LIS2DW12.4--测量倾斜度 概述视频教学样品申请源码下载计算倾斜角度工作原理单轴倾斜检测双轴倾斜检测三轴倾斜检测通信模式管脚定义IIC通信模式速率新建工程工程模板保存工程路径芯片配置工程模板选择时钟设置UART配置UART属性配置设置e2studio堆栈e…

认识监控系统zabbix

利用一个优秀的监控软件&#xff0c;我们可以: ●通过一个友好的界面进行浏览整个网站所有的服务器状态 ●可以在 Web 前端方便的查看监控数据 ●可以回溯寻找事故发生时系统的问题和报警情况 了解zabbix zabbix是什么&#xff1f; ●zabbix 是一个基于 Web 界面的提供分布…