本发明涉及大模型,具体为一种大模型场景中构造nl2sql数据集的方法及系统。
背景技术:
1、在自然语言处理(nlp)领域,将自然语言(natural language,nl)转换为结构化查询语言(structured query language,sql)的任务,即nl2sql,是一个重要的研究方向。这种技术旨在使非技术用户能够通过自然语言查询数据库,无需编写复杂的sql语句。
2、然而,构建高质量的nl2sql数据集是这一领域的一个挑战,因为数据集需要覆盖广泛的查询场景、具备足够的多样性和准确性,以便有效训练并评估nl2sql模型。
3、传统的nl2sql数据集构建方法往往依赖于人工编写问题及其对应的sql语句,这种方法虽然准确,但效率低下且成本高昂。此外,人工构建的数据集往往难以覆盖所有可能的查询场景和表述方式,限制了模型的泛化能力。
技术实现思路
1、本发明的目的在于提供一种大模型场景中构造nl2sql数据集的方法及系统,以解决上述背景技术中提出的问题。
2、为实现上述目的,本发明提供如下技术方案:一种大模型场景中构造nl2sql数据集的方法,所述方法包括以下步骤:
3、数据集构建,根据业务需求和用户功能点,构建泛化问题和模版问题两部分数据集;
4、对泛化问题和模版问题进行清洗和难度等级标注;
5、合并泛化问题和模版问题,按比例抽取训练集和测试集;
6、利用训练集和测试集对大模型进行监督微调,以提高大模型根据自然语言生成sql的能力。
7、优选的,构建泛化问题数据集的步骤包括:
8、业务人员提供问题表述,将相关问题、表结构信息和部分数据输入大模型,生成对应的sql语句;
9、业务人员结合业务数据库执行sql查验结果,并人工标记修改错误的sql,以确保其正确性和合规性;
10、利用大模型对问题进行扩充,改变表述方法但不改变表述意思,得到扩充后的问题;
11、对扩充后的问题进行核验,确保扩充后的语义与原始语义保持一致;
12、将扩充后的问题、表结构信息和相关业务背景知识提供给大模型,生成对应的sql语句;
13、将扩充问题生成的sql执行结果与种子问题执行的sql结果进行对比,保留结果一致的问题和sql,得到初始泛化问题数据。
14、优选的,构建模版问题数据集的步骤包括:
15、业务人员提供实际场景中的问题表述,包括多种类别和多种维度;
16、将相关问题、表结构信息和部分数据输入大模型,设计构建prompt,调用大模型自动生成符合语法和语义的sql语句;
17、执行sql,对错误的sql语句进行检查修正,得到初始模版问题和sql语句;
18、对初始模版问题进行实例化,改成模版形式,生成新的样本数据;
19、拼接完成后输入到数据库中执行查询,保留正确的问题及sql数据集,得到检验后的标准化模版问题数据集。
20、优选的,数据集构建前,利用业务人员提供的问题表述、表结构信息和部分数据,生成初始种子数据集。
21、优选的,利用大模型对初始种子数据集中的问题进行扩充,得到扩充后的问题;对扩充后的问题进行核验,确保扩充后的语义与原始语义保持一致;利用大模型生成扩充后问题对应的sql语句,形成初始泛化问题数据。
22、一种大模型场景中构造nl2sql数据集系统,所述系统由数据集构建模块、数据集预处理模块、数据集分类模块以及数据集调整模块组成;
23、数据集构建模块,根据业务需求和用户功能点,构建泛化问题和模版问题两部分数据集;
24、数据集预处理模块,对泛化问题和模版问题进行清洗和难度等级标注;
25、数据集分类模块,合并泛化问题和模版问题,按比例抽取训练集和测试集;
26、数据集调整模块,利用训练集和测试集对大模型进行监督微调,以提高大模型根据自然语言生成sql的能力。
27、优选的,所述数据集构建模块,构建泛化问题数据集的步骤包括:
28、业务人员提供问题表述,将相关问题、表结构信息和部分数据输入大模型,生成对应的sql语句;
29、业务人员结合业务数据库执行sql查验结果,并人工标记修改错误的sql,以确保其正确性和合规性;
30、利用大模型对问题进行扩充,改变表述方法但不改变表述意思,得到扩充后的问题;
31、对扩充后的问题进行核验,确保扩充后的语义与原始语义保持一致;
32、将扩充后的问题、表结构信息和相关业务背景知识提供给大模型,生成对应的sql语句;
33、将扩充问题生成的sql执行结果与种子问题执行的sql结果进行对比,保留结果一致的问题和sql,得到初始泛化问题数据。
34、优选的,所述数据集构建模块,构建模版问题数据集的步骤包括:
35、业务人员提供实际场景中的问题表述,包括多种类别和多种维度;
36、将相关问题、表结构信息和部分数据输入大模型,设计构建prompt,调用大模型自动生成符合语法和语义的sql语句;
37、执行sql,对错误的sql语句进行检查修正,得到初始模版问题和sql语句;
38、对初始模版问题进行实例化,改成模版形式,生成新的样本数据;
39、拼接完成后输入到数据库中执行查询,保留正确的问题及sql数据集,得到检验后的标准化模版问题数据集。
40、优选的,所述数据集构建模块,数据集构建前,利用业务人员提供的问题表述、表结构信息和部分数据,生成初始种子数据集。
41、优选的,所述数据集构建模块,利用大模型对初始种子数据集中的问题进行扩充,得到扩充后的问题;对扩充后的问题进行核验,确保扩充后的语义与原始语义保持一致;利用大模型生成扩充后问题对应的sql语句,形成初始泛化问题数据。
42、与现有技术相比,本发明的有益效果是:
43、本发明提出的大模型场景中构造nl2sql数据集的方法及系统,通过业务人员参与问题表述的提供和sql语句的核验,确保了数据集的质量和业务相关性。同时,利用大模型对问题进行扩充,增加了数据集的多样性和新颖性。
44、通过构建泛化问题和模版问题两部分数据集,并对其进行难度等级标注,使得训练出的大模型能够更好地适应不同难度和类型的问题,提高了模型的泛化能力,达到对模型生成特定难度等级的sql的训练。
45、通过生成符合语法和语义的sql语句,并对其进行人工检查和修正,确保了生成的sql语句的正确性和合规性,从而提升了用户在使用大模型进行数据库查询时的体验。
46、通过构造满足格式要求的目标数据集,并按照需求的难度等级、比例抽取泛化问题及模版问题,使得训练出的大模型能够更快地收敛,降低了模型训练的成本。
1.一种大模型场景中构造nl2sql数据集的方法,其特征在于:所述方法包括以下步骤:
2.根据权利要求1所述的一种大模型场景中构造nl2sql数据集的方法,其特征在于:构建泛化问题数据集的步骤包括:
3.根据权利要求1所述的一种大模型场景中构造nl2sql数据集的方法,其特征在于:构建模版问题数据集的步骤包括:
4.根据权利要求1所述的一种大模型场景中构造nl2sql数据集的方法,其特征在于:数据集构建前,利用业务人员提供的问题表述、表结构信息和部分数据,生成初始种子数据集。
5.根据权利要求4所述的一种大模型场景中构造nl2sql数据集的方法,其特征在于:利用大模型对初始种子数据集中的问题进行扩充,得到扩充后的问题;对扩充后的问题进行核验,确保扩充后的语义与原始语义保持一致;利用大模型生成扩充后问题对应的sql语句,形成初始泛化问题数据。
6.一种根据权利要求1-5任意一项所述的大模型场景中构造nl2sql数据集的方法的大模型场景中构造nl2sql数据集系统,其特征在于:所述系统由数据集构建模块、数据集预处理模块、数据集分类模块以及数据集调整模块组成;
7.根据权利要求6所述的一种大模型场景中构造nl2sql数据集系统,其特征在于:所述数据集构建模块,构建泛化问题数据集的步骤包括:
8.根据权利要求6所述的一种大模型场景中构造nl2sql数据集系统,其特征在于:所述数据集构建模块,构建模版问题数据集的步骤包括:
9.根据权利要求6所述的一种大模型场景中构造nl2sql数据集系统,其特征在于:所述数据集构建模块,数据集构建前,利用业务人员提供的问题表述、表结构信息和部分数据,生成初始种子数据集。
10.根据权利要求9所述的一种大模型场景中构造nl2sql数据集系统,其特征在于:所述数据集构建模块,利用大模型对初始种子数据集中的问题进行扩充,得到扩充后的问题;对扩充后的问题进行核验,确保扩充后的语义与原始语义保持一致;利用大模型生成扩充后问题对应的sql语句,形成初始泛化问题数据。
