ChatkBQA:一个基于大语言模型的知识库问题生成-检索框架11.13

news2024/12/29 11:03:41

ChatkBQA:一个基于大语言模型的知识库问题生成-检索框架

  • 摘要
  • 1 引言
  • 3 准备工作
  • 4 方法
    • 4.1 ChatKBQA概述
    • 4.2 在LLMS上进行高效微调
    • 4.3 用微调LLMS生成逻辑形式
    • 4.4 实体和关系的非监督检索
    • 4.5 可解释查询执行

在这里插入图片描述

摘要

基于知识的问答(KBQA)旨在从大规模知识库(KBs)中获得自然语言问题的答案,通常分为两个研究部分:知识检索和语义分析。然而,三个核心的挑战仍然存在,包括低效的知识检索,检索错误的语义分析产生不利影响,和以前的KBQA方法的复杂性。在大型语言模型(LLM)时代,我们引入了ChatKBQA,这是一种基于Llama-2,ChatGLM 2和Baichuan 2等开源LLM微调的新型生成然后检索KBQA框架。ChatKBQA建议首先使用微调的LLM生成逻辑形式,然后通过无监督检索方法检索和替换实体和关系,这更直接地改进了生成和检索。实验结果表明,ChatKBQA在标准KBQA数据集、WebQSP和ComplexWebQuestions(CWQ)上实现了最新的性能。这项工作还提供了一个新的范例,结合LLM与知识图谱(KG)的可解释性和知识要求的问题回答。

1 引言

基于知识的问答(KBQA)是一种经典的NLP任务,用于基于大规模知识库(KB)上的事实回答自然语言问题,例如Freebase,和DBpedia,其由结构化知识图(KG)组成,所述结构化知识图谱(KG)由包括(头实体、关系、尾实体)的三元组构建。以前的KBQA方法主要集中在解决两个核心问题:知识检索和语义解析。知识检索主要是从知识库中根据问题定位最相关的实体、关系或三元组,缩小了考虑的范围。然后,语义解析本质上将问题从非结构化的自然语言转换成结构化的逻辑形式(诸如S表达式),然后可以将其转换为可执行的图形数据库查询语言(例如SPARQL)以获得精确的答案和可解释的路径。

以前的KBQA工作提出了具有命名实体识别(NER)技术的不同知识检索方法,实体链接或子图检索。然后,他们利用检索到的事实三元组,使用seq2seq模型(如T5)直接得出问题的答案。其他在检索相关三元组之后执行语义解析以生成逻辑形式,然后在KB上执行相应的转换后的SPARQL查询以获取答案。此外,Yu等人将这两种方法结合起来,进一步提高了KBQA任务的准确性。
在这里插入图片描述
尽管如此,如图1左侧所示,仍然存在三个主要挑战。

  • (1)检索效率低。传统的方法首先确定候选实体的跨度,然后进行实体检索和关系检索。由于自然语言问题的结构与知识库事实不同,大多数方法需要训练专用模型来进行低效的提取和链接。
  • (2)不正确的检索结果会误导语义分析。先前的方法还利用检索到的三元组作为与原始问题一起沿着到seq2seq模型的引用的输入。然而,由于检索到的三元组并不总是准确的,它们会对语义解析结果产生不利影响。此外,如果有许多检索到的三元组,seq2seq模型需要更长的上下文长度。
  • (3)多个处理步骤使KBQA成为一项非常复杂的任务。先前的工作将KBQA任务分解为多个子任务,形成复杂的流水线处理,这使得复制和迁移具有挑战性。在大型语言模型(LLM)正在重构传统的NLP任务,一个更直接的解决方案,利用LLM重新制定传统的KBQA范式是有前途的。

为了克服这些挑战,我们引入了ChatKBQA,这是一种基于微调开源LLM的新型生成然后检索KBQA框架和百川2-7 B。如图1右侧所示,ChatKBQA为KBQA提出了一种直接的方法:
1.首先生成逻辑形式,
2.然后进行实体和关系的检索,旨在避免检索对逻辑形式生成的影响,提高检索效率。
在生成阶段,我们使用指令调优技术微调开源LLM,使他们具备以逻辑形式感知和生成的能力。由于LLM的特殊学习能力,波束搜索结果表明,大约74%的测试问题,一旦转换为逻辑形式,已经匹配基本事实。此外,在实体和关系被屏蔽(骨架)的情况下,超过91%的样本具有与地面事实一致的逻辑形式结构。在检索阶段,我们提出了一种无监督的实体和关系的检索方法,进行短语级语义检索的实体集和关系集的知识库中的实体和关系的逻辑形式,并取代它们在各自的位置。整个ChatKBQA框架简单易用,其中LLM部分可以替换为当前开源的LLM,检索部分可以灵活地与其他语义匹配模型交换,确保了即插即用的出色性能。

为了测试我们提出的框架的性能,我们在两个标准KBQA数据集WebQSP和复杂网络问题(CWQ),使用和不使用黄金实体的设置。实验结果表明,ChatKBQA在KBQA任务中实现了新的最先进的性能。我们还设置了额外的实验,以验证我们的生成,然后检索方法是否提高了生成结果和检索效率。最后,我们还讨论了如何从这个框架的见解使我们设想未来的LLM和KG的组合。

3 准备工作

在本节中,我们定义了我们工作的两个基本概念:知识库和逻辑形式,其次是知识库问答任务的问题陈述。

定义1:知识库(KB)

定义2:逻辑形式
逻辑形式是自然语言问题的结构化表示。以S-表达式为例,一个逻辑形式通常由投影和各种运算符组成。

投影操作表示三元组(s,r,o)在s或o上的单跳查询,其中,(?,r,o)记为(JOIN r o),而(s,r,?)表示为(JOIN(R r)s)。

各种运算符包括 “ A N D ”( A N D E 1 E 2 ) “AND”(AND E_1 E_2) ANDANDE1E2表示取 E 1 和 E 2 E_1和E_2 E1E2的交点,
“ C O U N T ”( C O U N T E 1 ) “COUNT”(COUNT E_1) COUNTCOUNTE1表示计数 E 1 E_1 E1
“ A R G M A X ”( A R G M A X E 1 r ) “ARGMAX”(ARGMAX E_1 r) ARGMAXARGMAXE1r表示取 E 1 在 r E_1在r E1r关系中投影后获得的最大文字,
“ A R G M I N ”( A R G M I N E 1 r )表示取 E 1 的 r “ARGMIN”(ARGMIN E_1 r)表示取E_1的r ARGMINARGMINE1r)表示取E1r关系的投影之后获得的最小文字,
“ G T ”( G T E 1 l ) “GT”(GT E_1 l) GTGTE1l表示取 E 1 的大于 l E_1的大于l E1的大于l的部分,
“ G E ”( G E E 1 l )表示取 E 1 “GE”(GE E_1 l)表示取E_1 GEGEE1l)表示取E1中大于或等于1的部分,
“ L T ”( L T E 1 l )表示取 E 1 “LT”(LT E_1 l)表示取E_1 LTLTE1l)表示取E1中小于1的部分,
“ L E ”( L E E 1 l )表示取 E 1 “LE”(LE E_1 l)表示取E_1 LELEE1l)表示取E1中小于或等于 l l l的部分,其中 E 1 或 E 2 E_1或E_2 E1E2表示子层逻辑形式。

问题陈述
对于KBQA任务,给定自然语言问题Q和知识库K,我们需要首先将Q转换为逻辑形式 F = S p ( Q ) ,其中 S p ( . ) F = Sp(Q),其中Sp(.) F=Sp(Q),其中Sp(.)是一个语义解析函数。然后将 F 转换为等价的 S P A R Q L 查询 q = C o n v e r t ( F ) F转换为等价的SPARQL查询q = Convert(F) F转换为等价的SPARQL查询q=ConvertF,其中 C o n v e r t ( . ) Convert(.) Convert(.)是固定的转换函数。最后,最后一组答案 A = E x e c u t e ( q ∣ K ) A = Execute(q | K) A=Execute(qK)是通过对K执行q而获得的,其中 E x e c u t e ( . ) Execute(.) Execute(.)是查询执行函数。

4 方法

在本节中,我们首先概述ChatKBQA框架,然后介绍对开源大型语言模型(LLM)的有效微调,通过微调LLM生成逻辑形式,实体和关系的无监督检索,以及可解释的查询执行。

4.1 ChatKBQA概述

ChatKBQA是一个生成然后检索的KBQA框架,用于使用微调的开源LLM进行知识库问答(KBQA)。

首先,ChatKBQA框架需要通过指令微调,基于KBQA数据集中的(自然语言问题,逻辑形式)对 有效地微调开源LLM。
然后使用微调的LLM通过语义解析将新的自然语言问题转换为相应的候选逻辑形式。
然后,ChatKBQA在短语级别检索这些逻辑形式中的实体和关系,并搜索转换为SPARQL后可以对KB执行的逻辑形式。
最后,利用转换后得到的SPARQL得到最终的答案集,并获得可解释的和知识所需的自然语言问题的答案。
在这里插入图片描述

4.2 在LLMS上进行高效微调

为了构造指令微调训练数据,ChatKBQA首先将KBQA数据集中测试集的自然语言问题对应的SPARQL转换为等价的逻辑形式,然后将实体ID(例如,“m.06w2sn5”)与相应的实体标签(例如,“[ Justin比伯]”),让LLM比无意义的实体ID更好地理解实体标签。然后,我们联合自然语言问题(例如:“贾斯汀比伯兄弟的名字是什么?”)以及处理后的对应逻辑形式(例如“(AND(JOIN [ people,person,gender ] [ Male ])(JOIN(R [ people,sibling relationship,sibling ])(JOIN(R [ people,person,sibling s ])[ Justin比伯])”)分别作为“输入”和“输出”,并添加“指令”为“生成检索与给定问题对应的信息的逻辑形式查询”。构成了开源LLM的指令微调训练数据。

为了降低微调具有大量参数的LLM的成本,ChatKBQA利用参数高效微调(PEFT)的方法来微调仅少量的模型参数,并实现与完全微调相当的性能。其中,LoRA通过使用低秩近似来减少在微调期间具有变化权重的大型语言模型的内存占用。QLoRA通过将梯度反向传播到冻结的4位量化模型中来进一步减少存储器,同时保持完整的16位微调任务的性能。P调谐v2采用前缀调谐方法,该方法在输入之前的每一层处并入可微调参数。Freeze通过仅微调Transformer最后几层的全连接层参数,同时冻结所有其他参数,加快了模型的收敛速度。ChatKBQA可以在所有上述有效的微调方法以及LLM之间切换,例如Llama-2-7B和ChatGLM 2-6B。

4.3 用微调LLMS生成逻辑形式

通过微调,LLM在一定程度上掌握了从自然语言问题转换为逻辑形式的语义解析能力。因此,我们使用微调的LLM对测试集中的新问题进行语义解析,我们发现大约63%的样本已经与地面真值逻辑形式相同。当我们使用波束搜索时,LLM输出的候选逻辑形式C列表包含约74%的具有真实逻辑形式的样本,这表明微调的LLM具有良好的语义解析任务的学习和解析能力。此外,如果我们用“[ ]”替换所生成的候选逻辑形式中的实体和关系(例如,“(AND(JOIN [ ] [ ])(JOIN(R [ ])(JOIN(R [ ])[ ]))“)形成逻辑形式的骨架,则为地面真实逻辑形式的骨架,出现在候选骨架中的样本百分比大于91%。这表明我们只需要将这些逻辑形式中相应位置的实体和关系替换为知识库中已有的实体和关系,就可以进一步提高性能。

4.4 实体和关系的非监督检索

由于微调LLM的良好的生成能力的逻辑形式的骨架,在检索阶段,我们采用了无监督的检索方法,它采取的实体和关系的候选逻辑形式,并通过他们通过短语级语义检索和替换,得到最终的逻辑形式转换为SPARQL可执行的知识库。
在这里插入图片描述
具体地,如算法1所示,输入是所生成的候选逻辑形式列表C,并且我们按顺序遍历这些逻辑形式F中的每一个。首先,我们执行实体检索。对于F中的每个实体 e e e,我们计算与知识库K实体集合E中的每个实体 e ′ e' e的标签的相似度 s e ← S i m i E n t i t i e s ( e , e ′ ) s_e ← SimiEntities(e,e') seSimiEntities(e,e)。我们根据相似度对检索到的实体进行排序,取最高的 k e k_e ke和大于阈值 t e t_e te的,得到该实体的检索结果 e l i s t ← T o p K w i t h T h r e s h o l d ( e l i s t , k e , t e ) e_{list}← TopKwithThreshold(e_{list},k_e,t_e) elistTopKwithThresholdelistkete。PermuteByEntity函数对检索到的每个位置的实体进行排列,得到实体检索后的结果 F l i s t F_{list} Flist。根据 F l i s t F_{list} Flist中的概率,取top k1且大于阈值t1,得到一个新的候选逻辑形式列表 C ′ . a p p e n d ( T o p K w i t h T h r e s h o l d ( F l i s t , k 1 , t 1 ) ) C′.append(TopKwithThreshold(F_{list},k_1,t_1)) C′.append(TopKwithThreshold(Flist,k1,t1))

然后,我们执行关系检索。与实体检索相似,但不同的是,对于 F ∈ C ′ F ∈ C′ FC中的每个关系 r r r,我们根据逻辑形式EF的实体集的邻域计算与每个候选关系 r ′ r′ r的相似度 s r ← S i m i R e l a t i o n s ( r , r ′ ) s_r ←SimiRelations(r,r′) srSimiRelations(rr)。我们还根据相似度对检索到的关系进行排序,取最高的 k r k_r kr和大于阈值的 t r t_r tr,得到检索结果 r l i s t ← T o p K w i t h T h r e s h o l d ( r l i s t , r e , r e ) r_{list}←TopKwithThreshold(r_{list},r_e,r_e) rlistTopKwithThreshold(rlist,re,re)。通过对每个位置的关系检索结果进行排列,得到关系检索后的结果Flist,然后取top k2且大于阈值t2,得到新的候选逻辑形式列表 C ′ ′ . a p p e n d ( T o p K w i t h T h r e s h o l d ( F l i s t , k 2 , t 2 ) ) C''.append(TopKwithThreshold(F_{list},k_2,t_2)) C′′.appendTopKwithThresholdFlist,k2,t2))

给定一个查询,无监督检索方法不需要额外的训练来选择语义上与候选集最相似的前k个作为检索到的答案集。BM 25使用词频和逆文档频率来根据文档与给定查询的相关性对文档进行排名。SimCSE是使用比较学习模型的无监督密集信息检索。ChatKBQA可以在上述所有实体检索和关系检索的无监督检索方法之间切换。

4.5 可解释查询执行

在检索之后,我们得到最终的候选逻辑形式列表 C ′ ′ C'' C′′,我们顺序地通过逻辑形式 F ∈ C ′ ′ F ∈ C'' FC′′进行查询,并将其转换为 S P A R Q L 查询 q = C o n v e r t ( F ) SPARQL查询q = Convert(F) SPARQL查询q=Convert(F)的等价形式。当找到第一个可以对KB K执行的q时,我们执行以获得最终答案集 A = E x e c u t e ( q ∣ K ) A = Execute(q | K) A=Execute(qK)。通过这种方法,我们也可以得到一个完整的推理路径的自然语言问题的基础上 S P A R Q L SPARQL SPARQL查询具有良好的可解释性。综上所述,ChatKBQA提出了一种思想,既利用LLM进行自然语言语义解析以生成图查询,又调用外部知识库对查询进行解释性推理,我们将其命名为思维图查询(GQoT),这是一种很有前途的LLM+KG组合范式,可以更好地利用外部知识,提高Q&A的可解释性,并避免LLM的幻觉。

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

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

相关文章

【网络】TCP协议理论

TCP协议理论 一、TCP协议简介1、浅谈可靠性2、UDP协议存在的意义 二、TCP的协议格式TCP的解包和分用 三、确认应答机制一种应答方式——捎带应答 四、超时重传机制超时等待时间 五、流量控制1、TCP的缓冲区2、TCP的窗口大小3、TCP的PSH标志位 六、TCP的六个标志位URG字段的详细…

泊车功能专题介绍 ———— AVP系统技术要求之地图数据感知要求

文章目录 地图数据规范地图图层和表达要求地图各类数据属性要求SLAM地图要求坐标系数据采集车传感器数据采集数据流程 感知功能要求车端感知功能关键安全感知次要安全感知功能感知体验相关感知 车-场协同感知类型一:引导类型二:重点地段增强类型三&#…

Unit3:贪心算法

文章目录 一、介绍二、分数背包问题问题描述分析时间复杂度伪代码案例彩蛋 三、活动选择问题问题描述分析伪代码时间复杂度拓展:加权活动选择分析计算伪代码时间复杂度案例 对比动态规划和贪心算法 四、哈夫曼编码分类定长编码 目标变长码 案例分析伪代码时间复杂度…

【ArcGIS Pro二次开发】(75):ArcGIS Pro SDK二次开发中的常见问题及解决方法

ArcGIS Pro SDK二次开发路程也近一年时间了,这里总结一下平时遇到的一些问题和解决方法。有些问题没能解决,也记录下来,提醒自己不要忘记。 一、在VS2022中进行调试弹出错误 正常在VS2022中,如果要调试程序的话,直接按…

【工具】QQ音乐本地下载(亲测可用)

目录 0.环境 1.详细步骤 1)电脑端打开QQ音乐,登录 2)随便搜一首歌,在界面上按【F12】打开开发者工具界面,点击【播放】 3)进入播放界面后,点击【网络】,再点击【媒体】 4&…

职场人实用办公技能 | 数据可视化模板

套用模板,不仅报表做得快,数据可视化效果也足够美观,但有些职场人还不太了解从哪些工具上可获得兼具实用性、美观性的BI数据可视化模板,接下来就来介绍一款可提供大量系统化可视化模板的BI工具——奥威BI工具。 奥威BI工具&#…

idea报错java: 程序包com.alibaba.fastjson不存在,明明存在!

经常从线上拉下来代码后编译运行时会报这个错误。刷新maven也没用,重新导入项目也没用 发现解决方法如下: 找到当前报错文件的路径。找到iml文件 删除它!然后刷新maven 就好了!!! 记录一下我的解决方法&…

代码随想录算法训练营第四十八天丨 动态规划part11

123.买卖股票的最佳时机III 思路 这道题目相对 121.买卖股票的最佳时机 (opens new window)和 122.买卖股票的最佳时机II (opens new window)难了不少。 关键在于至多买卖两次,这意味着可以买卖一次,可以买卖两次,也可以不买卖。 接来下我…

YOLO V1中关于bounding boxs的部分要点

YOLO的核心原理预览 YOLO将输入的图片resize成448 x 448,并且为 S x S(S 7)个grid,如果物体的中心落入该grid中,那么该grid就需要负责检测该物体。一次性输出所检测到的目标信息,包括类别和位置。 对于每一…

聚力未来!云起无垠成为光合组织成员单位

近日,云起无垠正式加入海光产业生态合作组织(简称“光合组织”)。云起无垠将与光合组织联合打造安全、好用、开放的产品与解决方案,满足企业的安全检测需求,帮助企业解决业务系统上线前的安全检测和修复问题。 图1 光合…

2016Outlook邮箱启动提示找不到文件Outlook.pst

2016Outlook邮箱启动提示找不到文件Outlook.pst 故障现象 Outlook邮箱启动提示找不到文件Outlook.pst 故障截图 故障原因 数据文件损坏 解决方案: 1、开始 –>运行–>输入cmd,或win键R–>输入cmd 2、命令行下,使用cd命令切换到…

vue前端项目配置

目录 背景: 0.参考文档 0.1介绍 | Vue CLI (vuejs.org)(官方文档) 0.2【vue-cli5 bug】npm run build自动编译两次??? - 掘金 (juejin.cn) 0.3vendor.js文本过大 0.4vue性能优化 0.5启动项目一直是生产环境 0.6process.env&#x…

c++分割路径的字符串,得到 目录 文件名 扩展名

简单的做一个c小代码片的记录 c分割了图片的 路径字符串&#xff0c;得到 目录 文件名 扩展名 #include <iostream> using namespace std;int main() {std::string path "E:\\set1_seg\\32.jpg";//index:"\\"在字符串中的位置int index path.find…

GPT Store上线 OpenAI 的「iPhone时刻」这回真来了

OpenAI首届全球开发者大会上&#xff0c;Sam Altman再次给AI行业扔了一系列重磅炸弹。GPT-4 Turbo、GPT Store和定制化的GPT在大会上发布&#xff0c;OpenAI的生态体系初具雏形。 GPT模型刚升级了不到24小时&#xff0c;高能网友就开始用它的定制化功能创造了各种有趣的应用。…

索引下推(ICP)是什么意思?如何理解?

目录 1. 索引下推概述 2. 索引下推举例 3. ICP 的主要作用 1. 索引下推概述 ICP 全称 Index Condition Pushdown&#xff0c;是MySQL5.6之后的一个新特性&#xff0c;它是一种在存储引擎层使用索引过滤数据的一种优化方式。 2. 索引下推举例 下面是数据库的一张 employee…

AI图像生成模型LCMs: 四个步骤就能快速生成高质量图像的新方法

在最新的AI模型和研究领域&#xff0c;一种名为Latent Consistency Models&#xff08;LCMs&#xff09;的新技术正迅速推动文本到图像人工智能的发展。与传统的Latent Diffusion Models(LDMs)相比&#xff0c;LCMs在生成详细且富有创意的图像方面同样出色&#xff0c;但仅需1-…

关系查询处理和查询优化

关系数据库系统的查询处理 4 个阶段 查询分析查询检查【此时的完整性检查是初步的、静态的检查】查询优化【分为代数优化、物理优化】查询执行 关系数据库系统的查询优化 查询优化的优点不仅在于用户不必考虑如何最好地表达查询以获得较高地效率&#xff0c;而且在于系统可…

酷柚易汛ERP - 其他收支明细表操作指南

1、应用场景 其他收支明细表统计一段时期内其他收入单、其他支出单的收支项目、收入/支出及往来单位信息。 2、主要操作 打开【资金】-【其他收支明细表】&#xff1a;

【毕业论文】基于微信小程序的植物分类实践教学系统的设计与实现

基于微信小程序的植物分类实践教学系统的设计与实现https://download.csdn.net/download/No_Name_Cao_Ni_Mei/88519758 基于微信小程序的植物分类实践教学系统的设计与实现 Design and Implementation of Plant Classification Practical Teaching System based on WeChat Mini…

酷柚易汛ERP- 备份与恢复操作指南

1、应用场景 该界面只有管理员才会显示&#xff0c;对已有数据的账套进行备份与恢复。 2、操作指南 2.1 开始备份 对当前系统内的所有数据进行备份&#xff0c;备份成功后当前数据则保存至当前服务器上&#xff0c;同时也会在列表内新增一条当前操作的备份文件记录 2.2 上传…