本发明涉及自然语言处理,具体地说是一种水利知识库问答方法、系统及装置。
背景技术:
1、随着nlp(自然语言处理)技术的飞快的发展,目前已经由上一代的预训练加微调的的小模型,例如gpt2、bert、bart、t5等百兆模型大小,进入到zero-shot大模型时代,例如chatgpt、以及类chatgpt模型llama、chatglm等。这些大模型的出现使得在各种nlp任务中取得了令人瞩目的结果,尤其是在不针对具体任务微调的情况下,仍然能够出色的完成相应任务。目前大模型已经在很多应用上开始广泛使用,并且证明是有效果的,例如在代码生成等。sql作为一种常用的编程语言,广泛应用到各种数据库中,例如常用oltp数据库mysql、postgresql和olap数据库例如hive、clickhouse等。大模型当前还是存在很多问题,例如不能实时获取新的内容、还会出现幻觉问题(回答问题胡说八道)、token长度有限制等等。
技术实现思路
1、本发明的技术任务是针对以上不足之处,提供一种水利知识库问答方法、系统及装置,可以实现知识库推理式问答,并可以使得大模型在text2sql精度达到百分之86%的精度。
2、本发明解决其技术问题所采用的技术方案是:
3、一种水利知识库问答方法,该方法的具体实现包括:
4、对于检索性类型的问答,使用elasticsearch全文检索工具实现,把用户问题存储到elasticsearch中,使用字段存取问答对的id号,然后利用elasticsearch检索出来对应问答对的id,从mysql找到对应答案进行返回;
5、对于数据统计类的问答,利用text2sql的技术实现,所述text2sql基于llm(大语言模型),利用问答表示、icl样本选择,构造相应的大模型的prompt;
6、对于数据查询类的问答,利用text2sql的技术实现,所述text2sql基于llm(大语言模型),利用问答表示、icl样本选择,构造相应的大模型的prompt;
7、对于知识库推理式的问答,利用检索增强技术实现,采用llm(大语言模型)结合现有的知识库;用户问题通过知识库检索,找到相应的召回知识;然后利用召回的知识作为大模型的上下文,利用大模型生成相应的答案。
8、优选的,采用textcnn算法作为文本分类算法,该算法用于把用户的问题分到具体的类别,以实现针对不同的类别采用对应的的处理方法。
9、优选的,对于数据统计类的问答,具体实现步骤包括:
10、1)、构造一个基本的prompt;
11、2)、在所述基本的prompt的基础上,选择样本构造icl,对于每个问题动态构造icl中的要本;从而构造新的prompt;
12、3)、根据所述新的prompt,利用大模型,生成最后的sql查询语句,然后查询mysql产生新的答案。
13、优选的,所述基本的prompt,根据给定的数据库详细信息,按照给定的格式输入回答相应问题。
14、优选的,所述对于每个问题动态构造icl中的要本,利用样本选择和组织技术:
15、提前在样本仓库中存储大量的问答加sql语句对;
16、从样本仓库中选择一个与当前问题相似的样例;
17、构造包含topk的icl样本,构造新的prompt。
18、优选的,所述从样本仓库中选择一个与当前问题相似的样例,首先利用语义相似度模型m3e,把当前问题t和仓库中的问题q算一个语义相似度sim(q,t);然后将仓库中的样本按照相似度进行排名;
19、选择topk个样本作为icl样本,topk选择使用5,即构造5shot的icl的prompt,从而得到新的prompt。
20、优选的,所述知识库推理式的问答,具体实现步骤包括:
21、1)、获取用户问题,根据所述问题从用户知识库查询相关数据;
22、2)、构造输入到大模型的prompt;
23、3)、把所述prompt输入到大模型中,获取相应答案。
24、优选的,所述输入到大模型的prompt,根据提供的上下文信息,回复给定的问题。
25、本发明还要求保护一种水利知识库问答系统,包括问题分类模块、检索性类型的问答模块、数据统计类问答模块、数据查询类问答模块、知识库推理式问答模块,该系统实现上述的水利知识库问答方法。
26、本发明还要求保护一种水利知识库问答装置,包括:至少一个存储器和至少一个处理器;
27、所述至少一个存储器,用于存储机器可读程序;
28、所述至少一个处理器,用于调用所述机器可读程序,实现上述的方法。
29、本发明的一种水利知识库问答方法、系统及装置与现有技术相比,具有以下有益效果:
30、利用检索增强技术可以实现知识库推理式问答,利用大模型结合text2sql技术,结合特有的prompt设计方法,设计了带有数据库schema,并且根据两种不同的相似算法选择出来的icl中的样本,可以使得大模型在text2sql精度达到百分之86%的精度;利用textcnn提前做意图识别,可以提高系统响应速度。
1.一种水利知识库问答方法,其特征在于,该方法的具体实现包括:
2.根据权利要求1所述的一种水利知识库问答方法,其特征在于,采用textcnn算法作为文本分类算法,该算法用于把用户的问题分到具体的类别,以实现针对不同的类别采用对应的的处理方法。
3.根据权利要求1所述的一种水利知识库问答方法,其特征在于,对于数据统计类的问答,具体实现步骤包括:
4.根据权利要求3所述的一种水利知识库问答方法,其特征在于,所述基本的prompt,根据给定的数据库详细信息,按照给定的格式输入回答相应问题。
5.根据权利要求3所述的一种水利知识库问答方法,其特征在于,所述对于每个问题动态构造icl中的要本,利用样本选择和组织技术:
6.根据权利要求5所述的一种水利知识库问答方法,其特征在于,所述从样本仓库中选择一个与当前问题相似的样例,首先利用语义相似度模型m3e,把当前问题t和仓库中的问题q算一个语义相似度sim(q,t);然后将仓库中的样本按照相似度进行排名;
7.根据权利要求1所述的一种水利知识库问答方法,其特征在于,所述知识库推理式的问答,具体实现步骤包括:
8.根据权利要求1所述的一种水利知识库问答方法,其特征在于,所述输入到大模型的prompt,根据提供的上下文信息,回复给定的问题。
9.一种水利知识库问答系统,其特征在于,包括问题分类模块、检索性类型的问答模块、数据统计类问答模块、数据查询类问答模块、知识库推理式问答模块,该系统实现权利要求1至8任一项所述的水利知识库问答方法。
10.一种水利知识库问答装置,其特征在于,包括:至少一个存储器和至少一个处理器;