面向水利河长制的SQL生成模型的训练方法与流程

摘要: 本技术涉及水利工程,具体涉及一种面向水利河长制的sql生成模型的训练方法。背景技术:1、随着各类业务系统所积累的数据规模持续增长,业务人员通过自然语言对数据库进...
面向水利河长制的SQL生成模型的训练方法与流程

本技术涉及水利工程,具体涉及一种面向水利河长制的sql生成模型的训练方法。

背景技术:

1、随着各类业务系统所积累的数据规模持续增长,业务人员通过自然语言对数据库进行查询的需求日益突出。sql生成技术作为连接自然语言查询与数据库操作的关键技术,其生成的sql语句的语法可执行性与执行效率直接影响数据查询的可用性。基于大语言模型的sql生成方法是当前的主要技术路径,其通过对预训练语言模型施加微调,使模型能够依据自然语言查询输出对应的sql语句。

2、在面向特定目标数据库的sql生成应用场景中,存在如下客观技术问题。目标数据库通常具有不同于通用开源数据库的语法体系、函数集合以及表结构组织方式,对生成的sql语句的语法兼容性提出了相应的要求。对生成的sql语句而言,仅满足语法层面的可执行性并不足以达到实际使用需求,所述sql语句在所述目标数据库中的实际执行代价同样关系到查询体验,而所述执行代价依赖于所述目标数据库自身的执行计划解析能力得到的运行时信息。此外,训练数据的获取与组织、自然语言问题与数据库模式信息之间的关联建立、模型训练参数的设置等环节之间的协同关系,对最终训练得到的模型的sql生成稳定性具有显著影响。

3、当训练过程不能将上述若干环节有效地协同起来,且无法将所述目标数据库的执行代价等运行时信号纳入到模型训练过程中时,所得到的sql生成模型在面向具体业务查询时容易出现所生成的sql语句执行效率不稳定的情况。

技术实现思路

1、有鉴于此,本技术实施例提供了一种面向水利河长制的sql生成模型的训练方法,以提升训练所得模型生成的sql语句在目标数据库中的执行效率稳定性,并使训练过程中训练样本获取、模式信息匹配以及模型参数调整等环节形成相互关联的优化通路。

2、本技术实施例的第一方面提供一种面向水利河长制的sql生成模型的训练方法,包括:

3、获取面向目标数据库的训练样本集;

4、基于业务知识图谱对所述训练样本集中的各样本进行模式链接处理,得到与所述训练样本集中自然语言问题对应的模式信息;其中,所述业务知识图谱中至少一条边的权重与该边所对应路径上的sql执行代价相关;

5、基于所述训练样本集和所述模式信息,采用对比学习对预训练语言模型进行微调;其中,所述对比学习的训练参数至少与样本复杂度评分以及所述业务知识图谱中边的权重相关;

6、获取微调后的语言模型输出的sql语句在所述目标数据库中的执行代价反馈;

7、基于所述执行代价反馈,对所述业务知识图谱中边的权重以及所述对比学习的训练参数中的至少一项进行更新,并迭代执行所述微调,直至得到所述sql生成模型。

8、较为优选的,所述获取面向目标数据库的训练样本集,包括:

9、针对预设的至少一种业务场景,基于该业务场景对应的至少一种变量以及至少一种句式模板,生成自然语言问题样本;

10、基于所述自然语言问题样本以及所述目标数据库的语法规则,生成与所述自然语言问题样本对应的sql语句样本;

11、将所述自然语言问题样本与所述sql语句样本作为训练样本对,加入所述训练样本集。

12、较为优选的,所述将所述自然语言问题样本与所述sql语句样本作为训练样本对之前,所述训练方法还包括:

13、对所述自然语言问题样本以及所述sql语句样本进行数据清洗;

14、对清洗后的所述sql语句样本执行字段完整性校验、长度校验以及sql语法校验中的至少一项;

15、将通过校验的所述自然语言问题样本以及所述sql语句样本作为所述训练样本对。

16、较为优选的,所述训练样本集中各sql语句样本的复杂度评分满足:

17、

18、其中,为所述复杂度评分,为所述sql语句样本中关联数据表的数量,为所述sql语句样本中筛选条件的数量,为所述sql语句样本中聚合函数的数量,为所述sql语句样本中子查询嵌套的层数,、、、均为预设的权重系数。

19、较为优选的,所述获取面向目标数据库的训练样本集之后,所述训练方法还包括:

20、基于各sql语句样本的复杂度评分以及对应的业务特征向量,对所述训练样本集进行下采样,使所述训练样本集中各复杂度等级的训练样本占比满足预设分布。

21、较为优选的,所述训练样本集还包括至少一种负样本,所述负样本对应的sql语句标注为空;

22、其中,所述至少一种负样本包括以下任一项:越权查询样本、隐私信息查询样本、超出预设业务范围的查询样本。

23、较为优选的,所述基于业务知识图谱对所述训练样本集中的各样本进行模式链接处理之前,所述训练方法还包括:

24、以所述目标数据库中的数据表为节点、以数据表之间的关联关系为边,构建所述业务知识图谱;

25、所述模式链接处理包括:

26、将所述训练样本集中的自然语言问题映射至所述业务知识图谱中的对应概念节点;

27、沿所述业务知识图谱中的边对所述对应概念节点进行有界搜索,得到与所述自然语言问题相关的至少一个数据表节点;

28、其中,所述业务知识图谱中边的权重满足:

29、

30、其中,为所述边的权重,d为所述对应概念节点到目标数据表节点的最短路径跳数,为用户问题与表元数据之间的语义余弦相似度,为sql执行计划代价因子,α为平衡系数,β为衰减率参数,λ为代价惩罚系数。

31、较为优选的,所述采用对比学习对预训练语言模型进行微调,包括:

32、针对所述训练样本集中的sql语句样本,按预设的方言转换规则生成对应的伪负样本;

33、基于所述sql语句样本、对应的所述伪负样本以及所述对比学习的训练参数,对所述预训练语言模型进行训练。

34、较为优选的,所述对比学习的训练参数包括自适应边际和损失函数;

35、其中,所述自适应边际满足:

36、

37、其中,为所述自适应边际,为算法预设的基础边界基线常量,为对应sql的空间结构复杂度得分,为目标核心业务表在知识图谱有界搜索阶段动态生成的边权重衰减值,γ为协调两项跨域特征在惩罚调节中占比的平滑控制系数;

38、所述损失函数满足:

39、

40、其中,为所述损失函数,为交叉熵损失项,为正样本,为伪负样本,和分别为所述预训练语言模型对正样本和伪负样本的生成概率,为sql执行计划代价因子,λ1为对比损失权重系数,λ2为执行代价奖励权重。

41、较为优选的,所述对所述训练样本集进行下采样,包括:

42、按各sql语句样本的复杂度评分升序排列所述训练样本集,并将排列后的所述训练样本集划分为连续的n个桶;

43、对于第i个桶,将第i-1个桶的采样结果中心点作为前参考点,将第i+1个桶中所有样本的中心点作为后参考点;其中,首桶和尾桶均采用复杂度评分中位数所对应的样本作为参考点;

44、基于所述第i个桶中各样本点与所述前参考点以及所述后参考点构成的三角形面积,从所述第i个桶中选取所述三角形面积最大的样本点作为所述第i个桶的采样结果,i为1~n之间的整数。

45、较为优选的,所述业务特征向量基于至少两类特征生成;

46、其中,所述至少两类特征包括所述训练样本对应的业务场景类别以及所述sql语句样本所包含的语法结构类别;

47、所述业务特征向量由对所述至少两类特征进行独热编码后拼接得到。

48、较为优选的,所述迭代执行所述微调,直至得到所述sql生成模型,包括:

49、在每轮所述微调结束后,对所述微调后的语言模型进行评测,得到所述微调后的语言模型对应的通过率以及平均执行代价;

50、当连续多轮所述评测中所述通过率的提升幅度低于第一预设阈值,且所述平均执行代价的降低幅度低于第二预设阈值时,结束所述迭代,将当前所述微调后的语言模型作为所述sql生成模型。

51、本技术实施例的第一方面提供的sql生成模型的训练方法,通过在模式链接环节引入与执行代价相关的边权重,使训练样本与模式信息的匹配兼顾业务关联性与执行效率;通过将对比学习的训练参数与复杂度评分以及业务知识图谱中边的权重相关联,使训练过程对不同样本特性的适配能力得到增强;通过获取目标数据库的执行代价反馈并将其用于业务知识图谱边的权重以及对比学习训练参数的更新,构建训练过程的闭环优化通路,使模型生成的sql语句的执行效率得以持续优化。