今天是2023年11月2日,星期四,北京,雾霾。
我们来继续看看知识图谱与大模型的一些有趣工作。
KBQA一直是知识图谱地重要应用点,而在大模型的背景下,如何将两者结合起来,是个有趣的话题。
最近读到一个工作,比较有趣,ChatKBQA:基于微调大语言模型的知识图谱问答框架,全名《ChatKBQA: A Generate-then-Retrieve Framework for Knowledge Base Question Answering with Fine-tuned Large Language Models》利用微调开源大模型进行自然语言问题到逻辑形式的转换,再利用无监督实体关系检索生成图数据库查询语言,实现自然语言的知识图谱问答框架。
论文地址:https://arxiv.org/abs/2310.08975
Github:https://github.com/LHRLAB/ChatKBQA
OpenKG:http://www.openkg.cn/tool/bupt-chatkbqa
本文对该工作进行介绍,首先回顾KBQA这一经典任务以及存在的挑战,然后再对该工作的实现思路及效果进行对比揭示,供大家一起参考。
一、KBQA任务及其挑战
知识库问答(KBQA)是一项经典的自然语言处理(NLP)任务,用于基于大规模知识库(KB)上的事实来回答自然语言问题,例如Freebase、Wikidata和DBpedia等,这些知识库由构建的结构化知识图谱(KG)组成,由三元组(头实体、关系、尾实体)构成。
以前的KBQA方法主要集中在解决两个核心问题上:知识检索(knowledge retrieval)和语义解析(semantic parsing)。
知识检索旨在根据问题从KB中定位最相关的实体、关系或三元组,从而缩小考虑范围。
语义解析是将问题从非结构化自然语言转化为结构化的逻辑形式(logical form),然后可以将其转化为可执行的图数据库查询语言(例如SPARQL)以获得精确的答案和可解释的路径。
传统的KBQA研究提出了不同的知识检索方法,比如利用命名实体识别(NER)技术、实体链接或子图检索等。
然后,他们利用检索到的事实三元组,通过使用seq2seq模型(例如T5)直接得出问题的答案。不仅如此,也有的方法在检索相关的三元组后执行语义解析,生成逻辑形式,然后执行相应的转换后的SPARQL查询来从知识库中获取答案。
此外,Yu等(DECAF)结合了这两种方法,进一步提高了KBQA任务的准确性。
下图分别展示了传统的KBQA,即Retrieval-then-Generate的KBQA框架(左)以及ChatKBQA的框架,即Generate-then-Retrieval的框架(右)。
以往的检索-再生成知识库问答(KBQA)框架示例(左)与本文提出的生成-再检索KBQA框架ChatKBQA(右)对比
尽管如此,KBQA的研究仍存在三个挑战:
(1) 检索效率低:传统方法首先确定候选实体的范围,然后进行实体检索和关系检索。由于自然语言问题的结构与知识库事实不同,大多数方法需要为提取和链接训练专用模型,效率较低。
(2) 错误的检索结果会对语义解析产生误导:传统的方法还将检索到的三元组作为参考的输入提供给seq2seq模型,与原始问题一起。然而,由于检索到的三元组并不总是准确的,它们会对语义解析结果产生不利影响。此外,如果检索到的三元组很多,seq2seq模型需要更长的上下文长度。
(3) 以往方法多个处理步骤使得KBQA成为一个复杂的任务:以前的研究将KBQA任务分解为多个子任务,形成了一个复杂的流水线处理,这使得复制和迁移变得困难。
在大型语言模型(LLMs)改造传统自然语言处理任务的时代,利用大模型重塑KBQA范式的方式成为了可能。
二、ChatKBQA:基于微调大语言模型的知识图谱问答框架
为了克服这些挑战,该工作提出了ChatKBQA,这是一种基于微调开源LLMs(大型语言模型),如Llama-2-7B,ChatGLM2-6B和Baichuan2-7B等,的新型生成-检索KBQA框架。
在具体实现上,首先微调生成逻辑形式,然后对生成的逻辑形式中的实体和关系在知识库中的实体库和关系库分别做检索,避免了以前方法存在的先检索对逻辑形式生成的影响,并提高检索效率。
ChatKBQA框架总览
在生成阶段,使用指令微调技术对开源LLMs进行微调,通过赋予它们感知和生成逻辑形式的能力,beam search显示约74%的测试问题在直接转化为逻辑形式后与事实相匹配,且在实体和关系被掩盖时,这一比例超过91%。
为了构建这种微调的训练数据,ChatKBQA首先将KBQA数据集的问题转换为相应的逻辑形式,并将实体ID替换为实体标签,从而更好地让大模型理解。通过组合自然语言问题和逻辑形式,并添加相应的指令,为大模型提供了指令微调训练数据。
使用各种高效微调方法,如LoRA和P-tuning v2,ChatKBQA仅微调了部分模型参数以达到与完全微调相似的性能,并可以在不同的大模型之间切换。
经过微调后,大模型在语义解析任务中表现出色,其输出的逻辑形式与基准逻辑形式的相似度非常高。这意味着,只需替换逻辑形式中的实体和关系,就可以进一步提高其性能。
在检索阶段,由于经过微调的LLMs对逻辑形式框架具有良好的生成能力,所以在检索阶段,采用一种无监督检索方法,将候选逻辑形式中的实体和关系经过短语级语义检索和替换,以获得最终的逻辑形式,可以转化为可在KB上执行的SPARQL查询。
对于给定的查询,无监督检索方法(如SimCSE、Contriever、BM25)无需额外的训练,可以选择语义上与候选集最相似的前k个作为检索到的答案集。
在检索之后,获得了最终的候选逻辑形式列表,然后我们依次遍历中的逻辑形式并将其转换为等效的 SPARQL 查询。当找到可以对知识库进行执行的第一个时,执行它以获取最终的答案集。
通过这种方法,还可以基于 SPARQL 查询获得自然语言问题的完整推理路径,具有良好的可解释性。
整体ChatKBQA框架简单易用,其中大模型部分可以用当前开源大模型进行替换,检索部分可以灵活地与其他语义匹配模型互换,确保具备即插即用的特性。
三、实验分析
1、实验设置
所有实验都在两个标准的KBQA数据集上进行:WebQuestionsSP (WebQSP) ,其中包含4,737个自然语言问题和SPARQL查询,以及ComplexWebQuestions (CWQ),其中包含34,689个自然语言问题和SPARQL查询。这两个数据集都基于Freebase知识库。
将ChatKBQA与众多KBQA基线方法进行比较,包括KV-Mem ,STAGG,GRAFT-Net ,UHop,Topic Units,TextRay以及第2节中提到的所有其他KBQA方法。
在WebQSP上对LLMs进行了100个epoch的微调,在CWQ上进行了10个epoch的微调,batch size为4,学习率为5e-5。所有实验都在一块NVIDIA A40 GPU(48GB)上完成。
ChatKBQA在CWQ数据集上与其他基线的KBQA结果比较,*表示使用oracle实体链接。
2、KBQA效果
在KBQA任务中,上表列出了提出的generate-then-retrieve ChatKBQA框架的实验结果,采用了最佳设置,使用Llama-2-7B进行LoRA微调,beam search大小设置为15,以及SimCSE用于无监督检索,以及其他基线模型。
可以看到,ChatKBQA在WebQSP和CWQ数据集上都明显优于所有现有的KBQA方法。
与先前的最佳结果相比,ChatKBQA的F1分数、Hits@1和准确率分别提高了约4个百分点、4个百分点和4个百分点在WebQSP上,CWQ上分别提高了约3个百分点、15个百分点和4个百分点,这反映出ChatKBQA在KBQA任务上具有出色的性能,达到了最新的SOTA性能水平。
③为什么选择生成-检索,而不是检索-生成?
为了验证提出的基于大模型的生成然后检索方法是否优于以前的检索然后生成方法,采用了在DECAF中设计的指令获取的知识片段,并分别将Top1、Top2、Top5和Top10的检索结果添加到指令中,然后与不进行检索的Llama-2-7B的微调进行比较。
如下表所示,发现在逻辑形式生成方面,不进行检索优于进行检索,这体现在提取匹配比率(EM)、经过束搜索后的匹配比率(BM)和骨架匹配比率(SM)方面。这是因为检索得到的信息会包含错误的干扰信息,增加指令的最大标记数量,从而导致大模型对原始问题的灾难性遗忘,增加了训练的难度。
同时,观察到,没有进行检索的Llama-2-7B微调实现了74.7%的BM和91.1%的SM,表现出色,这是因为大模型已经学到了实体和关系的良好模式,为生成后的检索提供了基础。
比较在ChatKBQA中微调Llama-2-7B进行逻辑形式生成之前是否使用检索结果。
4、微调开源LLM与ChatGPT以及T5的比较
为了说明为什么ChatKBQA选择对开源的生成型大模型进行微调,例如Llama-27B和ChatGLM2-6B,分别将生成逻辑形式的大模型替换为ChatGPT、GPT-4、T5和Flan-T5,观察它们的提取匹配(EM)和不使用束搜索的骨架匹配(SM)结果。
如下图所示,尽管ChatGPT和GPT-4具有大量的参数,但由于它们不是开源的,无法进行良好的逻辑形式生成。
而T5和Flan-T5在经过微调后可以很好地捕获骨架,但EM仅约为10%,远不如Llama-2-7B的63%,因此不能保证后续的无监督实体和关系检索。
经过微调的开源大模型,如Llama-2-7B和ChatGLM2-6B,展现出比T5和ChatGPT更强的语6义解析能力,可以在EM和SM方面生成质量更高的逻辑形式。
ChatKBQA生成阶段与其他语言模型的比较。
四、总结
本文主要介绍了基于大模型的生成-检索知识图谱问答框架ChatKBQA。
该方案利用生成再检索代替检索在生成的方式,解决了检索效率低、检索误导生成、KBQA任务解决方案复杂等痛点,在WebQSP和CWQ两个知识图谱问答基准benchmark上均达到了较好水平。
值得注意的是,该工作首次利用微调大模型生成图数据库查询语言的方式,即GQoT(Graph Query of Thoughts),将图查询作为大模型思考的过程,实现LLM+KG协同驱动的可解释推理问答的新范式。
此外,利用知识图谱的准确性和可解释性来弥补了大模型可能的幻觉现象以及本身的黑盒短板,将知识从大模型中解耦出来,可以对医疗、法律等专精垂域知识库上的可解释推理问答提供新思路。
本文由罗浩然供稿,作者:罗浩然, 鄂海红(通讯作者),汤子辰, 彭诗耀, 郭艺凯, 张文泰, 麻程昊, 董冠霆, 宋美娜, 林巍。作者单位:北京邮电大学计算机学院、北京邮电大学人工智能学院、北京计算机技术及应用研究所、浪潮集团
参考文献
1、https://arxiv.org/abs/2310.08975
2、https://github.com/LHRLAB/ChatKBQA
关于我们
老刘,刘焕勇,NLP开源爱好者与践行者,主页:https://liuhuanyong.github.io。
老刘说NLP,将定期发布语言资源、工程实践、技术总结等内容,欢迎关注。
对于想加入更优质的知识图谱、事件图谱、大模型AIGC实践、相关分享的,可关注公众号,在后台菜单栏中点击会员社区->会员入群加入。