本发明涉及网络安全领域,特别涉及一种基于数据增强和大语言模型的语言转化方法。
背景技术:
1、数据库是一种非常重要的数据存储方式,通过对数据库查询就能够得到高价值的行业知识。数据库默认提供的查询接口是sql语言,需要编写结构化、符合语法的sql语句。但学习和使用sql需要一定的技术门槛,对于非技术人员并不是十分友好;而且sql语句对应的底层逻辑愈加复杂,编写sql语句出错的概率也随之增加。
2、如果能够使用自然语言来进行数据库查询,就能够降低使用门槛、提升使用体验。text-to-sql是一种将自然语言描述转换为sql查询语句的技术。早期主要使用的是规则转换的方法。随着自然语言处理(nlp)的蓬勃发展,各种不同的模型和方法都被应用到text-to-sql中。例如专利《基于语义解析和数据构造的语言转化方法及系统》(申请号:cn116108175a),该专利使用了bert预训练语言模型,但bert参数量小、泛化能力差,属于大语言模型早期的产物。大语言模型参数量大、预测能力强,但它对数据的数量、多样性和质量有着更高的要求。
技术实现思路
1、本公开提供一种基于数据增强和大语言模型的语言转化方法和系统,利用数据增强技术提高训练数据的数量、多样性和质量;为了提升模型预测的效果,将text-to-sql任务进行步骤的拆分,并使用大模型对每个步骤逐个加以解决,从而得到自然语言对应的sql查询语句。
2、本公开提供的基于数据增强和大语言模型的语言转化方法,包括以下步骤:
3、s1,数据增强:基于初步构建的sql查询语句模板和对应text文本模板,根据数据库的schema及文本的语义表示向量特征,扩充得到更多的text-to-sql训练语料,将训练语料库分为训练集和验证集;
4、s2,对text-to-sql模型进行训练的过程中,找出验证集中预测错误率较高的模板,并按照步骤s1的逻辑,基于这些模板生成多个text-to-sql的样本,将这些样本用于模型的继续训练,以得到最终的模型;
5、s3,在预测阶段,通过合并的方式得到输入给大模型的prompt,包括以下几部分:利用text的语义表示向量,寻找到较为相似的列及其对应表作为第一部分prompt;对text进行命名实体识别,将text中包含的列及其对应表作为第二部分prompt;将text文本与不同列及其枚举值构成的文本进行相似度匹配,找出较为相似的若干列作为第三部分prompt;
6、s4,将预测得到的sql用于执行。
7、本公开还提供了一种应用上述方法的基于数据增强和大语言模型的语言转化系统,主要包括:
8、数据增强模块,用于根据已有的数据和数据库的schema生成更加丰富的数据。
9、text-to-sql模块,用于完成模型的训练与预测。
10、sql执行显示模块,对预测得到的sql执行,并将得到的数据类型调用合适的工具进行显示。
11、与现有技术相比,本公开的有益效果是:
12、(1)使用精心设计的数据增强方法,提升了数据的多样性和质量,为模型预测能力提升打下了坚实的基础;
13、(2)针对不同难度的数据进行难度逐步提升的学习,并结合上个阶段中错误率较高模板生成的新数据进行训练,最终提升了模型的泛化能力;
14、(3)在模型预测阶段,对不同颗粒度的方法进行结合,有效提升了prompt中包含正确列的召回率。
1.一种基于数据增强和大语言模型的语言转化方法,包括以下步骤:
2.根据权利要求1所述的方法,其特征在于,所述步骤s1具体包括:
3.根据权利要求2所述的方法,其特征在于,所述步骤s11中判断不同难度的条件包括:
4.根据权利要求3所述的方法,其特征在于,所述步骤s11中:
5.根据权利要求2所述的方法,其特征在于,所述步骤s13中所述命名方式包括:蛇形命名法和驼峰命名法。
6.根据权利要求2-5中任一所述的方法,其特征在于,所述步骤s2中采用提升式学习的学习方法,具体包括:
7.根据权利要求1所述的方法,其特征在于,还包括步骤:训练一个参数量较小的模型,用于进行命名实体识别。
8.根据权利要求1所述的方法,其特征在于,所述步骤s3中,预测阶段大模型的prompt生成方法包括:
9.一种应用权利要求1-8中任一所述方法的基于数据增强和大语言模型的语言转化装置,其特征在于,包括:
10.根据权利要求9所述的装置,其特征在于,所述sql执行模块还用于对sql执行结果进行显示。