GMeLLo:结合知识图谱的 LLM 多跳问答技术,效果显著提升

news2024/9/22 23:38:01

1. GMeLLo 提出的背景

1.1 多跳问答

多跳问答的难度往往比较大,因为不仅要追溯事实,还要聚合与串联事实。

事实的来源可以是知识图谱、表格、自由格式文本,或者是这些来源的异构组合。

随着大型语言模型的发展,基于提示的方法搭配可选的检索模块已成为处理多跳问答的常用手段,但以往多数工作侧重于静态信息库。

1.2 知识编辑

知识编辑目前有两种主流方案:修改模型参数和保留模型参数。

1.2.1 修改模型参数

可进一步细分为元学习和定位-编辑方法。

  • • 元学习方法(meta-learning):利用超网络来学习编辑大型语言模型所需的调整。
  • • 定位-然后-编辑(locate-then-edit)范例,首先识别与特定知识对应的参数,然后通过直接更新目标参数来进行修改。
2.2.2 保留模型参数

在保留模型参数的情况下,主要方法是引入额外的参数或外部存储器。

  • • 额外参数范式( additional parameters ):将额外的可训练参数纳入语言模型。这些参数在修改后的知识数据集上进行训练,而原始模型参数保持不变。
  • • 基于存储器的模型(memory-based models):将所有编辑的示例存储在存储器中,并使用检索器为每个新输入提取相关的编辑事实,从而引导模型生成编辑后的输出。

2. GMeLLo

基于以上背景,作者提出了 GMeLLo (Graph Memory-based Editing for Large Language Models)方法,通过整合大语言模型和知识图谱(Knowgledge Graph),解决知识编辑后的多跳问答任务。

图片

如上图,在更新了有关英国首相的信息后,显然相应的配偶信息也应予以修改。

图片

如上图所示,GMeLLo 包括以下关键步骤:

  • • 借助大型语言模型将编辑后的事实句子转化为三元组,利用这些三元组来更新知识图谱,确保其信息保持最新。
  • • 对于给定的问题,利用大型语言模型提取其关系链。通过模板填充,将关系链转换为正式查询,并用于搜索更新后的知识图谱。
  • • 依据问题检索最相关的编辑事实,并通过大型语言模型依据这些事实生成答案。
  • • 当大型语言模型提供的答案与知识图谱的答案相冲突时,将知识图谱的答案作为最终回应。

3.1 从知识库中提取三元组

将知识图谱 Wikidata 用作基础知识库。当收到更新的事实时,运用大型语言模型从句子中提取实体并确定它们的关系(从预定义列表中选择一个关系)。生成经过编辑的事实三元组,然后用于更新知识图谱。需要依据主体实体和关系来识别知识图谱中的连接,打破这些连接,并基于三元组建立新的连接。

通过上下文学习,以确保大型语言模型对任务有深入理解。此外,鉴于大型语言模型可能生成不在预定义关系列表中的关系,使用检索模型从预定义关系列表中识别出最相似的关系(即嵌入空间中最接近的关系)。检索模型的融入让三元组提取过程更强大。

3.2 从问题中提取关系链

随着世界快速发展,大型语言模型的训练数据可能很快过时。

不过,由于语言模式的演变通常较为缓慢,大型语言模型的大量训练数据应当能使其有效地理解大多数句子模式。

借助大型语言模型从句子中提取关系链,涵盖问题中提到的实体及其与其他未识别实体的关系。与从知识库中提取三元组提取类似,让大型语言模型从预定义列表中选择一个关系,以减少相同关系的不同表述。

以 MQuAKE-CF 数据集中的一个问题句子为例,

问题:

Eeyore 的创作者的孩子的国籍所在国家的首都是什么?

What is the capital of the country of citizenship of the child of the creator of Eeyore?

关系链

Eeyore->创作者->?x->孩子->?y->国籍->?z->首都->?m

Eeyore->creator->?x->child->?y->country of citizenship->?z->capital->?m

示例中的这个问题需要一个 4 跳的推理过程。

以“Eeyore”作为关注的已知实体,要得出最终答案,需要依次识别其创作者“?x”,接着是创作者的孩子“?y”,获取孩子的国籍“?z”,最终检索该国的首都“?m”。所有的关系,如“创作者”“孩子”“国籍”和“首都”,都从预定义的关系列表中选取。关系链囊括了得出答案所需的全部关键信息。

为了让大型语言模型能够提取关系链并以结构化模板生成输出,在提示中提供了若干关系链提取的示例用于模型的上下文学习。具体提示词如下:

图片

  • • 以上提示词用于从知识库中提取三元组

图片

  • • 以上提示词用于从问题中提取三元组

图片

  • • 以上提示词用于基于LLM的QA

3.3 将关系链转换为正式查询

一旦获取关系链,接下来就要把已知实体和关系整合到正式的查询模板中。

考虑以 RDF 格式展示知识图谱并以 SPARQL 查询,比如:

PREFIX ent: <http://www.kg/entity/>
PREFIX rel: <http://www.kg/relation/>
SELECT DISTINCT?id?label WHERE {
  ent:E0 rel:R0?x.
  ?x rel:R1?y.
  ?y rel:R2?z.
  ?z rel:R3?id.
  ?id rdfs:label?label.
}LIMIT 1 

“ent”和“rel”分别作为实体和关系的前缀。

标识符“E0”在知识图谱中唯一代表“Eeyore”,而“创作者”“孩子”“国籍”和“首都”的标识符分别记为“R0”“R1”“R2”和“R3”。

在识别出实体“?id”后,检索其字符串标签“?label”作为最终答案。

3.4 整合LLM-QA与KG-QA

3.4.1 LLM-QA:基于大型语言模型的问答

使用预训练的 Contriever 模型从一系列编辑过的事实句子中检索最相关的事实。然后,大型语言模型依据问题和这些相关事实生成答案。与 MeLLo 中的“拆分-回答-检查”流程相比,在事实准确提供的情况下,这种基于大型语言模型的问答方式预计更简便,并能得出更准确的结果。

Contriever是一个 Embedding模型,用于Dense Retrieval

Github地址:https://github.com/facebookresearch/contriever

然而,处理多跳问题,尤其是那些编辑的事实与中间跳有关的问题时,往往无法准确检索到相关信息。

3.4.2 KG-QA:基于知识库的问答

为了解决基于大型语言模型问答的难题,整合来自基于知识库的问答的响应,以优化大型语言模型的输出。

当关系链和事实三元组准确推导出来后,基于知识库的问答系统会提供正确答案。

然而,如果关系链提取有误,知识图谱中的搜索路径可能失效,导致基于知识库的问答系统无法产生输出。在这种情况下,将大型语言模型的响应视作最终答案。

4. 效果评估

4.1 评估数据集

MQuAKE是一个聚焦于多跳问答的测试数据集,主要包括两个数据集:MQuAKE-CF、MQuAKE-T。

  • • MQuAKE-CF:在 MQuAKE-CF 上的实验是基于完整数据集的随机抽样子集进行的,总计包含 3000 个实例(2、3、4 跳问题各 1000 个实例),专为反事实编辑而设。每个问题都与一个或多个编辑相关,用于检验知识编辑方法处理反事实编辑的有效性。
  • • MQuAKE-T,专为时间知识的更新定制。由 1868 个实例构成,每个实例都与一个现实世界的事实变化相关。其旨在评估知识编辑方法在运用当代事实数据更新过时信息方面的效能。

4.2 参数设置

具体而言,测试样本被分组处理:

  • • MQuAKE-CF:每组样本数 n 取值于 {1, 100, 1000, 3000}
  • • MQuAKE-T:每组样本数 n 取值于 {1, 100, 500, 1868}

4.3 测试基准

  • • MEND:通过训练一个超网络,基于编辑的事实转换原始微调梯度来生成权重更新。
  • • MEMIT:更新各层的前馈网络以纳入所有相关事实。
  • • MeLLo:采用基于内存的方式进行多跳问答,将所有更新的事实存储于外部内存中。

4.4 主要结果

图片

如上图,GMeLLo 在 MQuAKE-CF 数据集和 MQuAKE-T 数据集上均显著优于所有现有方法,尤其在处理大量编辑时表现出色。

MeLLo 的性能下降主要归因于随着编辑数量的增加,它在识别相关事实方面遭遇挑战。

当 k = 1 时,模型仅使用与输入问题直接相关的事实作为上下文。然而,随着 k 的增大,模型在从更广泛的内存中辨别相关事实时面临困境。

GMeLLo 模型通过采用明确的符号图表示来化解这一难题,增强了系统有效更新和检索相关事实的能力。这一特性显著提升了 GMeLLo 的可扩展性,使其非常适用于需要管理大量快速变化信息的实际问答应用。

使用两个更大的模型,GPT-3.5-Turbo-Instruct 和 GPT-3.5-Turbo 在 MQuAKE-CF 数据集上对 MeLLo 和 GMeLLo 进行评估,k = 3000。MeLLo 和 GMeLLo 与 GPT-3.5-Turbo-Instruct 的准确率分别为 30.7%和 51.4%。

而GMeLLo在使用GPT-3.5-Turbo时准确率高达66.4%,但当与MeLLo结合使用时,该模型却频繁出错。

这些发现表明,GMeLLo即使在扩展到更大型的语言模型时,依然能够保持良好的性能。

5. 局限性

  • • 未借助更为精妙的提示技术,例如思维链(CoT),来实现更精准的多跳推理。
  • • 未优化预定义的关系列表,以提升其准确性。
  • • 可以进一步强化知识图谱,以支持更复杂的问答,比如涉及历史信息的查询。

如何学习AI大模型?

大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业?”“谁的饭碗又将不保了?”等问题热议不断。

不如成为「掌握AI工具的技术人」,毕竟AI时代,谁先尝试,谁就能占得先机!

但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高

针对所有自学遇到困难的同学们,我帮大家系统梳理大模型学习脉络,将这份 LLM大模型资料 分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓

👉[CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)]()👈

学习路线

在这里插入图片描述

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

在这里插入图片描述

👉学会后的收获:👈

• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

在这里插入图片描述

1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集

👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

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

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

相关文章

安科瑞ACR10R网络电力仪表 CE认证 带外置互感器

产品概述&#xff1a; ‌‌安科瑞ACR10R网络电力仪表是一种集成了多种电力参数测量、电能计量、电能监测和考核管理等多种功能于一体的电力仪表。它适用于冶炼、钢铁、电焊、半导体等高能耗行业的节能改造工程&#xff0c;同时也适用于分布式光伏并网柜的功率监测、电力需求侧…

sqli-labs靶场通关攻略 56-60

主页有sqli-labs靶场通关攻略 1-55 第五六关 less-56 步骤一&#xff1a;闭合方式&#xff1a;?id1)-- 步骤二&#xff1a;查询数据库 ?id-1) union select 1,2,database() -- 步骤三&#xff1a;联合查询 查出网站的数据库表名 ?id-1) union select 1,2,group_concat(t…

探索AntSKPro AI知识库一体机:离线智能的便捷之选

在数字化时代&#xff0c;信息的获取和处理速度是企业和个人效率的关键。然而&#xff0c;网络连接的不稳定性常常成为阻碍。AntSKPro AI知识库一体机&#xff0c;一款专为离线环境设计的智能设备&#xff0c;以其卓越的性能和用户友好的设计&#xff0c;正在重新定义离线AI解决…

双指针--优选算法

个人主页&#xff1a;敲上瘾-CSDN博客 个人专栏&#xff1a;游戏、数据结构、c语言基础、c学习、OJ题 前言&#xff1a; 该篇文章我们主要来学习的是双指针算法&#xff0c;对于该类算法我们可以直接来做题&#xff0c;从题中去感知该算法的魅力&#xff0c;最后再从题中做总…

【数据结构】—— 线性表

目录 前言一、顺序表1.1 顺序表的定义及其特点1.2 顺序表的C语言实现1.2.1 定义顺序表1.2.2 初始化1.2.3 插入1.2.4 删除1.2.5 查找 二、链表2.1 链表的定义2.2 单向链表的实现2.2.1 定义单向链表2.2.2 创建链表2.2.3 插入元素2.2.4 删除元素2.2.5 查找 2.3 双向循环链表 前言 …

选刊风向标!985大学近十年发文热门IEEE期刊盘点

本期盘点同济大学近十年有关IEEE旗下发文较多的期刊&#xff0c;一起来看看哪些是双一流大学热门发文期刊&#xff1a; 1、IEEE Transactions on Cybernetics • 影响因子&#xff1a;9.4 • JCR1区&#xff0c;中科院1区-Top • 检索数据库&#xff1a;SCIE • 期刊分区&a…

stable diffusion的安装

stable diffusion的安装 一、前言二、安装python环境1、已经安装python环境&#xff0c;但非3.10.6版本&#xff08;可以不看&#xff09; 三、安装stable diffusion四、运行五、启动报错1、Torch is not able to use GPU2、Installing open_clip 卡住3、报错提示 "git&qu…

systemverilog中的DPI-C用例介绍

文章目录 前言一、dpi_longint二、dpi_packed_array三、dpi_structure四、相关参考总结 前言 本文主要基于VCS内置的三个关于DPI-C的使用用例&#xff0c;记录一下DPI-C的使用方法。测试用例的路径为$VCS_HOME/doc/examples/testbench/sv/。测试用例包括&#xff1a;dpi_longi…

自然语言处理:第四十三章 视觉RAG:变革传统深度学习模型开发流程,开创下一代多模态视觉模型的新时代

文章链接:微信公众平台 (qq.com) 写在前面: 笔者更新不易&#xff0c;希望走过路过点个关注和赞&#xff0c;笔芯!!! 写在前面: 笔者更新不易&#xff0c;希望走过路过点个关注和赞&#xff0c;笔芯!!! 写在前面: 笔者更新不易&#xff0c;希望走过路过点个关注和赞&#xff…

Chaper 09 深入理解Promise

文章目录 前言一、异步编程二、Promise 前言 在JavaScript中&#xff0c;异步编程是一个重要的概念。随着应用程序的复杂性增加&#xff0c;处理异步操作的方式也变得更加复杂。Promise是一种用于处理异步操作的对象&#xff0c;它提供了一种更清晰和更强大的方式来管理异步代…

智能的JavaScript开发工具WebStorm v2024.2全新发布

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具&#xff0c;被广大中国JS开发者誉为"Web前端开发神器""强大的HTML5编辑器""智能的JavaSscript IDE"等。与IntelliJ IDEA同源&#xff0c;继承了IntelliJ IDEA强大的JS部分的功能。 立即获…

学生防近视台灯什么品牌好?学生护眼台灯怎么选?收下这份攻略

根据中国报告大厅的数据&#xff0c;近年来&#xff0c;随着科技的不断进步&#xff0c;台灯行业亦得到了快速发展。早期的台灯主要采用白炽灯作为光源&#xff0c;但随着LED技术的日益成熟&#xff0c;LED台灯已成为市场主流。目前&#xff0c;台灯行业正处于高速发展阶段&…

【吊打面试官系列-Redis面试题】Redis 过期键的删除策略?

大家好&#xff0c;我是锋哥。今天分享关于 【Redis 过期键的删除策略】面试题&#xff0c;希望对大家有帮助&#xff1b; Redis 过期键的删除策略&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 1、定时删除:在设置键的过期时间的同时&#xff0c;创建…

19 - 路径搜索的综合

---- 整理自狄泰软件唐佐林老师课程 文章目录 1. 需求2. 一些工具3. 编译规则的依赖4. 实验 1. 需求 工程项目中不希望源码文件夹在编译时被改动&#xff08;只读文件夹&#xff09;在编译时自动创建文件夹&#xff08;build&#xff09;用于存放编译结果编译过程中能够自动搜…

java基本程序设计结构与数据类型

1.一个简单程序的编写、编译与运行 编写如下的Main.java public class Main{public static void main(String[] args){System.out.println("Hello World");} }上面的程序有几个要注意的点&#xff1a; ①public 是访问修饰符&#xff0c;用来表示其他程序对Main类的…

【C++】vector(下)--下篇

个人主页~ vector&#xff08;上&#xff09;~ vector&#xff08;下&#xff09;–上篇~ vector 二、模拟实现3、test.cpptest1test2test3test4test5test6 三、一个难题 二、模拟实现 3、test.cpp test1 这个没啥好说的&#xff0c;就是尾插和迭代器都能正常使用 //测尾…

中国各、省、市、县、乡镇基尼系数数据(2000-2023年)

基尼系数是一个国际上广泛用来综合考察居民内部收入分配差异状况的重要指标。它表示在全部居民收入中&#xff0c;用于进行不平均分配的那部分收入占总收入的百分比。基尼系数的值介于0和1之间&#xff0c;其中0代表收入分配绝对平均&#xff0c;即每个人的收入都相等&#xff…

Qt21基础图形的绘制

基础图形的绘制 paintareapaintarea.hpaintarea.cpp paintexpaintex.hpaintex.cpp main.cpp运行图 paintarea paintarea.h #ifndef PAINTAREA_H #define PAINTAREA_H#include <QWidget> #include <QBrush> #include <QPen> #include <QPainter> #inc…

DZ主题模板 Discuz迪恩淘宝客购物风格商业版模板

Discuz淘宝客网站模板&#xff0c;迪恩淘宝客购物风格商业版模板。 版本支持&#xff1a;discuzx3.0版本,discuzx3.1版本,discuzx3.2版本。 包括网站首页&#xff0c;论坛首页&#xff0c;论坛列表页&#xff0c;论坛内容页&#xff0c;论坛瀑布流,频道列表页&#xff0c;频道…

开学季好物合集有哪些?全方位必备好物推荐

随着秋风轻拂&#xff0c;书页翻新的声音在耳边悄然响起&#xff0c;我们迎来了又一个开学季。在这个特别的时刻&#xff0c;每位学子都怀揣着对未来的无限憧憬&#xff0c;踏入了校园的大门。为了帮助大家更好地适应新学期的学习节奏&#xff0c;享受更加充实而愉快的校园生活…