一种适用于所有行业的基于大模型生成nl2sql训练集的方法及系统与流程

本发明涉及自然语言处理,具体为一种适用于所有行业的基于大模型生成nl2sql训练集的方法及系统。
背景技术:
1、随着人工智能技术的发展,自然语言到结构化查询语言(nl2sql)任务成为了一个研究热点。nl2sql技术旨在将自然语言查询转换为sql查询语句,以便从数据库中检索相关信息。
2、然而,nl2sql模型的训练需要大量的标注数据,即自然语言查询与对应sql查询语句的配对。现有的nl2sql训练集往往基于特定领域或行业构建,难以适应跨行业的应用需求。此外,手动构建大规模、高质量的nl2sql训练集成本高昂、效率低下。
技术实现思路
1、本发明的目的在于提供一种适用于所有行业的基于大模型生成nl2sql训练集的方法及系统,以解决上述背景技术中提出的问题。
2、为实现上述目的,本发明提供如下技术方案:一种适用于所有行业的基于大模型生成nl2sql训练集的方法,所述包括以下步骤:
3、基于建表语句构建初始问题集;
4、人工筛选常用场景问题;
5、生成与校验种子sql;
6、语义相似问题扩充;
7、人工校验扩充后的问题;
8、生成扩充问题的sql;
9、数据库执行与结果比对;
10、构建微调训练集。
11、优选的,基于建表语句构建初始问题集的具体操作包括:
12、在构建初始问题集过程中,通过编写通用脚本的方法,进行问题构建,在脚本中构建通用prompt,调用大模型接口,针对不同行业场景,仅需变更通用prompt中的建表语句以及提供的一些问题示例,或者提供的一些表数据,即可生成基于表结构的具体场景下的问题集;
13、人工筛选常用场景问题的具体操作包括:
14、结合相关业务人员或客户,对问题进一步筛选过滤改造处理,筛选出符合客户业务场景的种子问题集,在训练过程中,让大模型理解常用场景的指标计算逻辑。
15、优选的,生成与校验种子sql的具体操作包括:
16、撰写自动化脚本,通过请求大模型接口的方式,自动化生成种子问题对应的sql语句,并输出sql语句文件,通过自动化脚本,极大缩短人为编写sql的时间,极大的提高构建训练集的效率,并对生成的sql再次进行人工校验;
17、语义相似问题扩充的具体操作包括:
18、对种子问题进行深度分析,提取其中的关键信息点,如查询主体、查询条件、查询目的,利用大模型对关键信息点进行重组和变换,生成新的问题表述;利用自然语言处理中的相似度计算方法,如余弦相似度或bert模型的语义嵌入,计算新问题与种子问题之间的相似度,对于相似度过低或过高的问题,通过代码逻辑进行剔除或合并处理,利用人工审核的方式,对筛选后的问题进行逐一检查,确保每个问题都与种子问题在语义上保持一致,并且具有合理的表述方式。
19、优选的,人工校验扩充后的问题的具体操作包括:
20、对每个问题进行仔细阅读,理解其查询意图和表述方式,尤其是指标或场景的表述方式,人工将问题与对应的种子问题进行对比,检查在语义上是否保持一致,对于语义不一致的问题,要求与业务人员或客户进行深入的分析和讨论,并根据实际情况进行了修正处理;通过修改措辞、添加上下文信息或明确查询条件等方式来消除歧义,使其更加清晰明确,记录下问题和修改过程,以便后续对训练集进行进一步优化和改进;
21、生成扩充问题的sql的具体操作包括:
22、利用大模型为这些问题生成对应的sql语句,利用大模型对自然语言查询意图的理解能力,将自然语言问题转换为结构化的sql语句;通过构建prompt对大模型进行适当调优,使其更加适应nl2sql任务的需求,将扩充后的问题作为输入,利用调优后的大模型生成对应的sql语句;在生成过程中,关注sql语句的语法正确性和逻辑合理性,确保生成的sql语句正确反映问题的查询意图。
23、优选的,数据库执行与结果比对的具体操作包括:
24、连接到一个实际的数据库并执行这些sql语句,当前步骤需确保所有执行的sql都可查询到结果数据,否则导致匹配结果不准确;操作人员执行300个种子sql语句并记录查询结果,写入文件中,操作人员分别执行与每个种子问题对应的10个扩充问题的sql语句,并将查询结果与种子sql的查询结果进行比对,如果扩充后问题的sql查询结果与对应种子sql一致,则说明该sql语句是准确的;如果不一致,则说明该sql语句存在问题,需要进行修正;
25、构建微调训练集的具体操作包括:
26、构建一个通用脚本,固定数据文件格式,将构建好的excel文件通过具体的逻辑写入符合大模型要求的微调训练文件,生成的训练集不仅数量庞大、多样性丰富,而且每个问题都对应一个准确无误的sql语句,作为大模型的微调训练集,提高nl2sql模型的性能和准确性,提升大模型的nl2sql能力。
27、一种适用于所有行业的基于大模型生成nl2sql训练集系统,所述系统包括:
28、初始问题集构建模块,用于基于建表语句构建初始问题集;
29、场景问题筛选模块,用于人工筛选常用场景问题;
30、校验种子生成模块,用于生成与校验种子sql;
31、问题扩展模块,用于语义相似问题扩充;
32、校验模块,用于人工校验扩充后的问题;
33、sql生成模块,用于生成扩充问题的sql;
34、执行和对比模块,用于数据库执行与结果比对;
35、训练集构建模块,用于构建微调训练集。
36、优选的,初始问题集构建模块,在构建初始问题集过程中,通过编写通用脚本的方法,进行问题构建,在脚本中构建通用prompt,调用大模型接口,针对不同行业场景,仅需变更通用prompt中的建表语句以及提供的一些问题示例,或者提供的一些表数据,即可生成基于表结构的具体场景下的问题集;
37、场景问题筛选模块,结合相关业务人员或客户,对问题进一步筛选过滤改造处理,筛选出符合客户业务场景的种子问题集,在训练过程中,让大模型理解常用场景的指标计算逻辑。
38、优选的,校验种子生成模块,撰写自动化脚本,通过请求大模型接口的方式,自动化生成种子问题对应的sql语句,并输出sql语句文件,通过自动化脚本,极大缩短人为编写sql的时间,极大的提高构建训练集的效率,并对生成的sql再次进行人工校验;
39、问题扩展模块,对种子问题进行深度分析,提取其中的关键信息点,如查询主体、查询条件、查询目的,利用大模型对关键信息点进行重组和变换,生成新的问题表述;利用自然语言处理中的相似度计算方法,如余弦相似度或bert模型的语义嵌入,计算新问题与种子问题之间的相似度,对于相似度过低或过高的问题,通过代码逻辑进行剔除或合并处理,利用人工审核的方式,对筛选后的问题进行逐一检查,确保每个问题都与种子问题在语义上保持一致,并且具有合理的表述方式。
40、优选的,校验模块,对每个问题进行仔细阅读,理解其查询意图和表述方式,尤其是指标或场景的表述方式,人工将问题与对应的种子问题进行对比,检查在语义上是否保持一致,对于语义不一致的问题,要求与业务人员或客户进行深入的分析和讨论,并根据实际情况进行了修正处理;通过修改措辞、添加上下文信息或明确查询条件等方式来消除歧义,使其更加清晰明确,记录下问题和修改过程,以便后续对训练集进行进一步优化和改进;
41、sql生成模块,利用大模型为这些问题生成对应的sql语句,利用大模型对自然语言查询意图的理解能力,将自然语言问题转换为结构化的sql语句;通过构建prompt对大模型进行适当调优,使其更加适应nl2sql任务的需求,将扩充后的问题作为输入,利用调优后的大模型生成对应的sql语句;在生成过程中,关注sql语句的语法正确性和逻辑合理性,确保生成的sql语句正确反映问题的查询意图。
42、优选的,执行和对比模块,连接到一个实际的数据库并执行这些sql语句,当前步骤需确保所有执行的sql都可查询到结果数据,否则导致匹配结果不准确;操作人员执行300个种子sql语句并记录查询结果,写入文件中,操作人员分别执行与每个种子问题对应的10个扩充问题的sql语句,并将查询结果与种子sql的查询结果进行比对,如果扩充后问题的sql查询结果与对应种子sql一致,则说明该sql语句是准确的;如果不一致,则说明该sql语句存在问题,需要进行修正;
43、训练集构建模块,构建一个通用脚本,固定数据文件格式,将构建好的excel文件通过具体的逻辑写入符合大模型要求的微调训练文件,生成的训练集不仅数量庞大、多样性丰富,而且每个问题都对应一个准确无误的sql语句,作为大模型的微调训练集,提高nl2sql模型的性能和准确性,提升大模型的nl2sql能力。
44、与现有技术相比,本发明的有益效果是:
45、本发明提出的适用于所有行业的基于大模型生成nl2sql训练集的方法及系统,基于通用的建表语句和大模型生成问题,适用于所有需要数据查询的行业;通过人工筛选、校验和修正,确保生成的训练集具有高质量和准确性;自动化和智能化的生成过程降低了数据标注成本,提高了训练集生成效;根据实际业务场景调整问题和sql的数量和比例,具有良好的可扩展性。
技术研发人员:赵兴业,李廷,韩同
技术所有人:浪潮云信息技术股份公司
备 注:该技术已申请专利,仅供学习研究,如用于商业用途,请联系技术所有人。
声 明 :此信息收集于网络,如果你是此专利的发明人不想本网站收录此信息请联系我们,我们会在第一时间删除
