System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及nl2sql生成,具体而言,涉及一种基于偏好学习的nl2sql生成方法、装置、终端及存储介质。
技术介绍
1、nl2sql是指在给定数据库和自然语言的条件下,将自然语言解析成sql语句,并执行sql语句返回查询结果的技术。随着大模型技术的不断发展,nl2sql得到了越来越多的关注,因此,如何生成nl2sql成为亟待解决的问题。
2、目前,主要采用图神经网络或大语言模型生成nl2sql,其普遍依赖于在私有数据集上对开源模型进行有监督微调,从而依赖微调后的模型生成nl2sql。
3、但是,上述方法采用的监督学习所得到的大模型的性能较低,导致所生成的nl2sql准确度低。
技术实现思路
1、本申请的主要目的在于提供一种基于偏好学习的nl2sql生成方法、装置、终端及存储介质,以解决相关技术中生成的nl2sql准确度低的问题。
2、为了实现上述目的,第一方面,本申请提供了一种基于偏好学习的nl2sql生成方法,包括:
3、获取sft数据;
4、基于sft数据和多个大型语言模型,构造偏好数据集,其中,多个大型语言模型中的各个大型语言模型的类型不同;
5、建立sft模型;
6、基于偏好数据集、sft模型和直接偏好优化算法,确定目标模型,以基于目标模型生成nl2sql语句。
7、在一种可能的实现方式中,基于sft数据和多个大型语言模型,构造偏好数据集,包括:
8、针对多个大型语言
9、将每个大型语言模型所输出的sql语句进行汇总,得到多个sql语句;
10、从多个sql语句中选取符合预设条件的sql语句作为目标sql语句,并由目标sql语句构造偏好数据集。
11、在一种可能的实现方式中,从多个sql语句中选取符合预设条件的sql语句作为目标sql语句,并由目标sql语句构造偏好数据集,包括:
12、获取sft数据中的标签;
13、针对多个sql语句中的每个sql语句,将每个sql语句与标签进行对比;
14、将多个sql语句中与标签不相同的sql语句作为目标sql语句;
15、按照sql语句的质量高低对目标sql语句进行排序,并由排序后的目标sql语句构成偏好数据集。
16、在一种可能的实现方式中,建立sft模型,包括:
17、获取nl2sql数据集;
18、利用nl2sql数据集对初始模型进行有监督学习,得到sft模型。
19、在一种可能的实现方式中,基于偏好数据集、sft模型和直接偏好优化算法,确定目标模型,包括:
20、基于sft模型,确定参考模型和待训练模型;
21、利用偏好数据集对参考模型进行推理预测,得到响应数据;
22、基于响应数据和直接偏好优化算法对待训练模型的参数进行更新,得到目标模型。
23、在一种可能的实现方式中,基于响应数据和直接偏好优化算法对待训练模型的参数进行更新,得到目标模型,包括:
24、获取直接偏好优化算法的初始损失函数;
25、将响应数据输入初始损失函数,并对初始损失函数进行简化处理,得到目标损失函数;
26、当目标损失函数的值满足预设阈值,利用目标损失函数对待训练模型的参数进行更新,得到目标模型。
27、在一种可能的实现方式中,目标损失函数包括第一累积概率、第二累积概率、第三累积概率和第四累积概率,第一累积概率用于表征待训练模型生成的良好响应数据的累积概率,第二累积概率用于表征参考模型生成的良好响应数据的累积概率,第三累积概率用于表征待训练模型生成的不良响应数据的累积概率,第四累积概率用于表征参考模型生成的不良响应数据的累积概率;
28、当目标损失函数的值满足预设阈值,利用目标损失函数对待训练模型的参数进行更新,得到目标模型,包括:
29、计算第一累积概率与第二累积概率的差,得到第一差值;
30、计算第三累积概率和第四累积概率的差,得到第二差值;
31、计算第一差值与第二差值的差,得到目标差值;
32、当目标差值满足预设阈值,利用目标损失函数对待训练模型的参数进行更新,得到目标模型,其中,预设阈值用于表征最大值。
33、第二方面,本专利技术实施例提供了一种基于偏好学习的nl2sql生成装置,包括:
34、获取模块,用于获取sft数据;
35、构造模块,用于基于sft数据和多个大型语言模型,构造偏好数据集,其中,多个大型语言模型中的各个大型语言模型的类型不同;
36、建立模块,用于建立sft模型;
37、生成模块,用于基于偏好数据集、sft模型和直接偏好优化算法,确定目标模型,以基于目标模型生成nl2sql语句。
38、第三方面,本专利技术实施例提供了一种终端,包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现如上任一种基于偏好学习的nl2sql生成方法的步骤。
39、第四方面,本专利技术实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现如上任一种基于偏好学习的nl2sql生成方法的步骤。
40、本专利技术实施例提供了一种基于偏好学习的nl2sql生成方法、装置、终端及存储介质,包括:先获取sft数据,然后基于sft数据和多个大型语言模型,构造偏好数据集,其中,多个大型语言模型中的各个大型语言模型的类型不同,再建立sft模型,进而基于偏好数据集、sft模型和直接偏好优化算法,确定目标模型,以基于目标模型生成nl2sql语句。本专利技术构造的偏好数据集无需人工标注,降低了人工成本,还可以达到与人类反馈相似的性能,此外,本专利技术还利用直接偏好优化算法对sft模型进行优化,提升了目标模型的性能,从而提高了生成的nl2sql的准确度。
本文档来自技高网...【技术保护点】
1.一种基于偏好学习的NL2SQL生成方法,其特征在于,包括:
2.如权利要求1所述基于偏好学习的NL2SQL生成方法,其特征在于,所述基于所述SFT数据和多个大型语言模型,构造偏好数据集,包括:
3.如权利要求2所述基于偏好学习的NL2SQL生成方法,其特征在于,所述从所述多个SQL语句中选取符合预设条件的SQL语句作为目标SQL语句,并由所述目标SQL语句构造所述偏好数据集,包括:
4.如权利要求1所述基于偏好学习的NL2SQL生成方法,其特征在于,所述建立SFT模型,包括:
5.如权利要求1所述基于偏好学习的NL2SQL生成方法,其特征在于,所述基于所述偏好数据集、所述SFT模型和直接偏好优化算法,确定目标模型,包括:
6.如权利要求5所述基于偏好学习的NL2SQL生成方法,其特征在于,所述基于所述响应数据和所述直接偏好优化算法对所述待训练模型的参数进行更新,得到所述目标模型,包括:
7.如权利要求6所述基于偏好学习的NL2SQL生成方法,其特征在于,所述目标损失函数包括第一累积概率、第二累积概率、第三
8.一种基于偏好学习的NL2SQL生成装置,其特征在于,包括:
9.一种终端,其特征在于,包括存储器,以及与所述存储器通信连接的一个或多个处理器;
10.一种计算机可读存储介质,其特征在于,包括程序或指令,当所述程序或指令在计算机上运行时,实现权利要求1至7中任一项所述基于偏好学习的NL2SQL生成方法。
...【技术特征摘要】
1.一种基于偏好学习的nl2sql生成方法,其特征在于,包括:
2.如权利要求1所述基于偏好学习的nl2sql生成方法,其特征在于,所述基于所述sft数据和多个大型语言模型,构造偏好数据集,包括:
3.如权利要求2所述基于偏好学习的nl2sql生成方法,其特征在于,所述从所述多个sql语句中选取符合预设条件的sql语句作为目标sql语句,并由所述目标sql语句构造所述偏好数据集,包括:
4.如权利要求1所述基于偏好学习的nl2sql生成方法,其特征在于,所述建立sft模型,包括:
5.如权利要求1所述基于偏好学习的nl2sql生成方法,其特征在于,所述基于所述偏好数据集、所述sft模型和直接偏好优化算法,确定目标模型,包括:
6.如权利要求5所述基于偏好学习的nl2sql生成方法,其特征在于,所述基于所述响应数据和所述直接偏好优化算法对所...
【专利技术属性】
技术研发人员:房松涛,李家诚,沙雨辰,卢睿轩,黄卫航,刘东,胡光龙,
申请(专利权)人:网易杭州网络有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。