题目
大语言模型融合知识图谱的问答系统研究

论文地址:http://fcst.ceaj.org/CN/10.3778/j.issn.1673-9418.2308070
项目地址:https://github.com/zhangheyi-1/llmkgqas-tcm/
摘要
问答系统(Question Answering,QA)能够自动回答用户提出的自然语言问题,是信息检索和自然语言处理的交叉研究方向,将知识图谱(Knowledge Graph,KG)与问答系统融合,正确理解用户语义是一大挑战。虽然知识图谱问答能够通过对问题进行分析理解,最终获取答案,但面对自然语言的灵活性与模糊性,如何处理复杂问题的语义信息、如何提高复杂推理问答的高效性仍是研究难点。
近年来,大型语言模型(Large Language Models,LLM)在多种自然语言处理任务上取得了令人印象深刻的结果,并表现出若干涌现能力。Instruct GPT、ChatGPT1、GPT4等自回归大型语言模型通过预训练、微调(Fine-tuning)等技术理解并遵循人类指令,使得其能够正确理解并回答复杂问题。LLM在各种自然语言处理任务上表现卓越,甚至能够在从未见过的任务上表现出不错的性能,这为正确处理复杂问题展示了统一解决方案潜力。然而,这些模型都存在一些固有局限性,包括处理中文能力较差,部署困难,无法获得关于最近事件的最新信息以及产生有害幻觉事实(Hallucinatory Fact)等。由于这些局限性,将大型语言模型直接应用于专业领域问答仍然存在诸多问题。
一方面难以满足大型语言模型对于硬件资源的要求;另一方面,面对专业领域,大型语言模型的能力仍然有所不足。面对专业领域的问题,大型语言模型的生成结果可能缺乏真实性和准确性,甚至会产生“幻觉事实”。为了增强大型语言模型应对专业领域问题的能力,很多工作采取数据微调的方式修改模型参数,从而让大模型具有更高的专业能力,然而一些文献指出这些数据微调的方法会产生灾难性遗忘(Catastrophic Forgetting),致使模型原始对话能力丧失,甚至在处理非微调数据时会出现混乱结果。为了应对这些问题,本文结合大型语言模型与知识图谱,设计了一种应用于专业领域的问答系统。该问答系统通过将知识库(Knowledge Base ,KB)中的文本知识、知识图谱的结构化知识、大型语言模型中的参数化知识三者融合,生成专业问答结果,因此无需使用数据微调的方式修改模型参数,就能够理解用户语义并回答专业领域的问题。同时,通过采用类似于ChatGLM-6B这样对硬件资源要求较低的模型,以降低硬件对系统的约束。另外,随着大型语言模型技术的发展,研究认知智能范式的转变,是接下来的研究重点,如何将大型语言模型与知识图谱进行有效结合是一个值得研究的课题。因此,本文以研究问答系统的形式,进一步研究大型语言模型+知识图谱的智能信息系统新范式,探索知识图谱与大型语言模型的深度结合,利用专业性知识图谱来增强LLM的生成结果,并利用LLM理解语义抽取实体对知识图谱进行检索与增强。
本文主要贡献有两点:1.提出大型语言模型+专业知识库的基于提示学习(Prompt Learning)的问答系统范式,以解决专业领域问答系统数据+微调范式带来的灾难性遗忘问题。在提升大模型专业能力的同时,保留其回答通用问题的能力。并在硬件资源不足的情况下,选择较小的大模型部署专业领域的问答系统,实现能和较大的大模型在专业领域相媲美甚至更好效果。2.探索了大型语言模型和知识图谱两种知识范式的深度结合。实现了将大型语言模型和知识图谱的双向链接,可以将易读的自然语言转换为结构化的数据进而和知识图谱中的结构化数据匹配以增强回答专业性;可以将KG中的结构化知识转换为更易读的自然语言知识来方便人们理解。
方法
系统实现了以下功能:信息过 滤、专业问答、抽取转化。 为了实现这些功能,系统基于专业知识与大语言模型,利用 LangChain 将两者结合,设计并实现了大型语言模型与知识图谱的深度结合新模式。信息过滤模块旨在减少大型语言模型生成虚假信息的可能性,以提高回答的准确性。专业问答模块通过将专业知识库与大型语言模型结合, 提供专业性的回答。这种方法避免了重新训练大语言模型所需的高硬件要求和可能导致的灾难性遗忘后果。
抽取转化(从自然语言文本抽取出知识图谱结构化数据;将知识图谱结构化数据转化为自然语言文本)是为了进一步探索问答系统新范式而设计。一方面基于大型语言模型提取出专业知识, 将知识图谱结构化数据转化为自然语言文本,易于用户理解;另一方面利用知识抽取出三元组和知识图谱对比验证,可以增强大语言模型回答专业性,同时抽取出的三元组在经专家验证后可 以插入知识图谱中以增强知识图谱。除此之外, 本系统还实现了用户友好的交互服务。如下图所示,系统交互流程是(1)用户向系统提出问题,问题通过信息过滤后,与知识库中的相关专业知识组成提示,输入到专业问答模块中得到答案;(2)