CN117290376A - 基于大语言模型的两阶段Text2SQL模型、方法与系统 - Google Patents
基于大语言模型的两阶段Text2SQL模型、方法与系统 Download PDFInfo
- Publication number
- CN117290376A CN117290376A CN202311273899.XA CN202311273899A CN117290376A CN 117290376 A CN117290376 A CN 117290376A CN 202311273899 A CN202311273899 A CN 202311273899A CN 117290376 A CN117290376 A CN 117290376A
- Authority
- CN
- China
- Prior art keywords
- model
- sql
- stage
- natural language
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000012549 training Methods 0.000 claims abstract description 35
- 238000012216 screening Methods 0.000 claims description 39
- 238000006243 chemical reaction Methods 0.000 claims description 24
- 238000012545 processing Methods 0.000 claims description 13
- 230000006870 function Effects 0.000 claims description 11
- 238000002372 labelling Methods 0.000 claims description 10
- 238000010801 machine learning Methods 0.000 claims description 9
- 238000005516 engineering process Methods 0.000 claims description 7
- 238000010606 normalization Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 4
- 230000000295 complement effect Effects 0.000 claims description 3
- 230000003247 decreasing effect Effects 0.000 claims description 3
- 238000010276 construction Methods 0.000 abstract description 3
- 238000003058 natural language processing Methods 0.000 abstract description 2
- 238000012795 verification Methods 0.000 description 8
- 238000012360 testing method Methods 0.000 description 5
- 238000011156 evaluation Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000036772 blood pressure Effects 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 239000000779 smoke Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Machine Translation (AREA)
Abstract
本发明涉及自然语言处理和结构化查询语句的生成技术领域,尤其是一种基于大语言模型的两阶段Text2SQL模型、方法与系统。本发明提供的基于大语言模型的两阶段Text2SQL模型的训练方法,分成两阶段,第一阶段是确定输入的自然语言在对应内容数据库中所需要的表和列;第二阶段,根据第一阶段选出的表和列,使用大模型进行Seq2Seq的任务,完成SQL的生成。将整个Text2SQL流程拆分成选表列和生成SQL两阶段,并分别训练小模型和预训练大语言模型来完成这两阶段任务,因此模型的数据构建和使用都具有较强的可拓展性,可很好的支持多表查询和复杂语句生成,并具有较强专业领域适配性。
Description
技术领域
本发明涉及自然语言处理和结构化查询语句的生成技术领域,尤其是一种基于大语言模型的两阶段Text2SQL模型、方法与系统。
背景技术
当前是信息社会,各种数据库中的信息浩如烟海,当需要查询信息时,常规手段是将描述转化为SQL查询语句,再交给计算机去执行,就能方便地对数据库进行查询,大大提高了生活和工作效率。
Text2SQL是当前常用的转化自然语言描述为SQL查询语句的技术,但是现有技术方案主要分为三个方向:
1.基于SQL语法解析和规则解析进行SQL生成
2.基于传统小模型例如bert进行端到端SQL生成
3.基于大语言模型(如ChatGPT,GPT-4),不进行有监督微调,直接使用prompt进行查询与问答
这几种方法存在以下缺点:
1.需要基于现有规则构建模板,消耗人力,且整体流程和分解的子任务较为复杂
2.对复杂SQL语句例如嵌套查询、多表查询的信息构建能力不足
3.无法利用已训练模型的先验知识,可迁移性和可拓展性较差
4.直接使用prompt无法利用领域内的专家知识,使得回答的内容准确性较差;且输出SQL质量受限于大语言模型本身能力,无法进行优化。
可见,当前的Text2SQL技术还有很大的进步空间。
发明内容
为了克服上述现有技术中Text2SQL技术的缺陷,本发明提出了一种基于大语言模型的两阶段Text2SQL模型,简化了Text2SQL问题的难度的同时,也增强了模型生成高质量和复杂的SQL语句的能力。
参照图1,本发明提出的一种基于大语言模型的两阶段Text2SQL模型的训练方法,包括以下步骤:
S1、基于指定内容数据库获取学习数据集,学习数据集中的标注样本为标注有SQL的自然语言语句;
S2、基于学习数据集构建第一学习样本和第二学习样本;第一学习样本为标注有对应指定内容数据库的目标表列项的自然语言语句;第二学习样本包括自然语言语句及其对应的目标表列项、目标表列项存储内容的概括值以及标注的SQL;表列项包括表名称和该表中任一列的列名称;
设置第一基础模型和第二基础模型;第一基础模型的输入为自然语言语句和指定内容数据库中所有的表列项,第一基础模型的输出为表列项分布概率;第二基础模型的输入包括自然语言语句及其目标表列项、目标表列项存储内容的概括值,第二基础模型的输出为自然语言语句的SQL;
令设置的第一基础模型对第一学习样本进行学习,以获取收敛后的第一基础模型作为表列项筛选模型;令设置的第二基础模型对第二学习样本进行学习,以获取收敛后的第二基础模型作为SQL生成模型;
S3、结合表列项筛选模型和SQL生成模型组成两阶段SQL模型;其中表列项筛选模型的输入作为两阶段SQL模型的输入,表列项筛选模型的输出连接SQL生成模型的输入,SQL生成模型的输出作为两阶段SQL模型的输出。
优选的,S2中,目标表列项存储内容的概括值的获取方式为:
如果目标表列项存储内容为离散值,则概括值为存储内容去重后的结果;
如果目标表列项存储内容为连续值,则概括值为存储内容所在区间值。
优选的,S2具体包括以下分步骤:
S21、基于学习数据集构建第一学习样本,令第一基础模型对第一学习样本进行机器学习,以获取表列项筛选模型;
S22、选择部分标注样本作为备选第二学习样本,将各备选第二学习样本中的自然语言语句输入表列项筛选模型,获取表列项筛选模型输出的表列项分布概率中最大的N个概率值对应的表列项作为目标表列项;
S23、获取备选第二学习样本中自然语言语句的目标表列项存储内容的概括值,结合备选第二学习样本的自然语言语句、目标表列项、目标表列项存储内容的概括值以及SQL构成第二学习样本;
S24、令第二基础模型对第二学习样本进行机器学习,获取SQL生成模型。
优选的,S1中学习数据集的获取,包括以下分步骤:
S11、从指定内容数据库中获取样本构成数据集,样本包含自然语言语句和SQL,对数据集中各自然语言语句的SQL进行打分,根据打分将自然语言与语句分为多个难度等级;
S12、获取数据集中各难度等级上的自然语言语句数量分布,判断该分布趋势是否为设定的分布趋势;是,则将该数据集作为学习数据集;否,则执行步骤S13;
S13、对数据集中的自然语言语句进行增减调整,然后返回步骤S11。
优选的,S11中对SQL进行打分的方式为:统计SQL包含的关键词和内置函数的数量总数作为分数,分数越高表示自然语言语句难度越大。
优选的,S1中还包括对标注样本中的SQL进行标准化处理,标准化处理包括:全体大写或是小写、字符常量统一使用单引号或是双引号、所有列名统一补齐表格名、字符统一空一个格。
优选的,第一基础模型采用自然语言模型,第一基础模型进行机器学习过程中,结合各第一学习样本的目标表列项在表列筛选模型输出的表列项分布概率中的概率值计算均方差损失,根据均方差损失反向更新表列筛选模型;SQL生成模型训练过程中结合交叉熵损失函数采用PEFT技术对预训练的第二基础模型进行微调。
本发明提出的一种SQL查询方法,其特征在于,包括以下步骤:
St1、采用如权利要求1-7任一项所述的基于大语言模型的两阶段Text2SQL模型的训练方法获取指定内容数据库对应的两阶段SQL模型;
St2、将待查询的自然语言语句和目标内容数据库中所有的表列项输入两阶段SQL模型,两阶段SQL模型输出待查询的自然语言语句的SQL作为备选SQL;
St3、对备选SQL进行标准化处理,然后将备选SQL根据设定的多条转换规则转换成相对应的目标SQL;
St4、在任意类型的目标内容数据库中顺位执行各目标SQL,直至目标内容数据库上目标SQL执行成功;数据库类型指的是数据库的内容存储形式。
本发明提出的一种SQL查询系统,包括存储器和处理器,存储器存储有计算机程序,处理器与存储器连接,处理器用于执行所述计算机程序以实现所述的SQL查询方法。
本发明提出的一种SQL查询系统,包括:两阶段SQL模型、转换模块、规则库和执行模块;
两阶段SQL模型用于输出获取的自然语言语句的SQL作为备选SQL;
规则库中存储有一种或者多种转换规则,转换规则用于将SQL转换为适用于其对应类型的数据库的SQL;
执行模块外接数据库,用于加载目标SQL在数据库中进行SQL查询;
转换模块分别连接两阶段SQL模型、规则库和执行模块;
转换模块获取两阶段SQL模型输出的备选SQL,转换模块加载规则库中的转换规则,转换模块根据加载的各项转换规则对备选SQL进行转换,获取与转换规则一一对应的目标SQL;执行模块获取各目标SQL;当进行指定类型数据库查询时,执行模块在指定类型数据库中依次执行各目标SQL,直至执行成功。
本发明的优点在于:
(1)本发明整体方案分成两阶段,第一阶段是确定输入的自然语言在指定内容数据库中所需要的表和列;第二阶段,根据第一阶段选出的表和列,使用大模型进行Seq2Seq的任务,完成SQL的生成。将整个Text2SQL流程拆分成选表列和生成SQL两阶段,并分别训练小模型和预训练大语言模型来完成这两阶段任务,因此模型的数据构建和使用都具有较强的可拓展性,可很好的支持多表查询和复杂语句生成,并具有较强专业领域适配性。
(2)两阶段的训练均需要足够数量的高质量数据集,本发明设计了一套SQL难度打分体系和标签体系,可用于评估训练集是否难度分布适中且拥有足够多样性。如此,本发明结合SQL打分对数据集进行增强,保证了模型训练阶段数据集的样本多样性,从而有利于提高模型精度。
(3)本发明采用两阶段训练方法,简化了Text2SQL问题的难度的同时,也增强了模型生成高质量和复杂的SQL语句的能力,并基于现有的开源大模型,充分利用了其先验语言知识,使得本发明具有很好的泛化能力。
附图说明
图1为一种基于大语言模型的两阶段Text2SQL模型的训练方法流程图;
图2为开源Text2SQL数据集CSpider中关键词和内置函数分布图;
图3为SQL查询方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本实施方式提出的表列项筛选模型采用自然语言模型,其基于指定内容数据库的表列信息提取用于概括自然语言语句的表列项。
表列筛选模型的输入为自然语言语句和指定内容数据库中所有的表列项,表列项包括表名称和该表中任一列的列名称;可见,内容数据库的表列项数量为内容数据库中所有表的列数之和。内容数据库用于区分数据库的存储内容,指定内容数据库为存储指定的内容的数据库。后续数据库的类型指的是数据库中内容的存储形式,即不同类型的数据库可存储相同的内容。
表列筛选模型的输出为表列项分布概率,获取最大的N个概率值对应的表列项作为目标表列项预测值,目标表列项即为用于概括输入的自然语言语句的表列项。
表列筛选模型对第一学习样本进行机器学习获得,第一学习样本为标注有目标表列项的自然语言语句。表列筛选模型学习过程中,结合各第一学习样本的目标表列项在表列筛选模型输出的表列项分布概率中的概率值计算均方差损失,以便根据均方差损失反向更新表列筛选模型。
本实施方式提出的SQL生成模型的输入包括:自然语言语句、通过表列筛选模型筛选出的自然语言语句在指定内容数据库上的目标表列项、以及目标表列项存储内容的概括值;SQL生成模型的输出为自然语言语句的SQL。
表列项存储内容的概括值的获取方式为:
如果目标表列项存储内容为离散值,则概括值为存储内容去重后的结果;如性别列中存储的数据,处理成取值集合(“男”,“女”);
如果目标表列项存储内容为连续值,则概括值为存储内容所在区间值;如血压值存储的数据,最大值为200,最小值为120,则处理成取值范围(120,200)。
SQL生成模型通过对第二学习样本获得,第二学习样本包括自然语言语句、通过表列筛选模型筛选出的自然语言语句在指定内容数据库上的目标表列项、以及目标表列项存储内容的概括值,第二学习样本中的标注标签为自然语言语句对应的SQL。SQL生成模型训练过程中采用交叉熵损失函数。具体的,SQL生成模型训练过程中结合交叉熵损失函数采用PEFT技术对预训练的模型进行微调获得。
为了便于模型的训练,训练过程中,定义SQL生成模型的输出为嵌入模板范式的SQL。即SQL生成模型训练过程中,可令第二学习样本的标注标签为嵌入模板范式的SQL。
例如,自然语言语句为“查询每个科室病区女性患者的数量”,结合模板范式“select_,count(_)as patientCount from_where_group by_|”,其标注标签即嵌入模板范式的SQL如下:
select_,count(_)as patientCount from_where_group by_|SELECT Code,admitDepartmentAreaName,originalGender,COUNT(*)AS patientCount FROMhospitalRecord WHERE originalGender=‘女’GROUP BY Code,admitDepartmentAreaName
值得注意的是,训练过程中标注模板范式“select_,count(_)as patientCountfrom_where_group by_|”是为了方便模型的训练,提高模型对标签的理解能力。实际应用过程中,只需要从SQL模型的输出中提取SQL进行应用,例如自然语言语句为“查询每个科室病区女性患者的数量”的SQL如下:
SELECT Code,admitDepartmentAreaName,originalGender,COUNT(*)ASpatientCount FROM hospitalRecordWHERE originalGender=‘女’GROUP BY Code,admitDepartmentAreaName
本实施方式提出的一种基于大语言模型的两阶段Text2SQL模型的训练方法,包括以下步骤S1-S3:
S1、基于指定内容数据库获取学习数据集,学习数据集中的标注样本为标注有SQL的自然语言语句。本实施方式中,为了方便后续处理,对标注样本中的SQL进行标准化处理,标准化处理包括:全体大写或是小写、字符常量统一使用单引号或是双引号、所有列名统一补齐表格名、字符统一空一个格。标准化处理可以避免不影响SQL准确度的无关因素造成的干扰。
本实施方式中的学习数据集为评估增强后的数据集,数据集的评估增强包括以下步骤S11-S13;
S11、从指定内容数据库中随机选择数据构建数据集,对数据集中各自然语言语句的SQL进行打分,根据打分将自然语言与语句分为多个难度等级。具体的,本步骤中,SQL的分数即为SQL包含的关键词和内置函数的数量总数。
例如某个SQL“select avg(patientInfo.patientAge),medicalInfo.medicalTime from patientInfojoin medicalInfo wherepatientInfo.patientId=medicalInfo.patientId”包含5个关键词select、from、join、avg和where,故而该SQL的分数为5分。显然,包含的关键词和内置函数越多,分数越高,代表这条SQL语句越复杂。
具体实施时,为了便于统计,可设置每个关键词和内置函数对应一个标签,从而根据标签进行打分,以方便分类统计和数据增强,例如上述实施例中便可设置SQL拥有5个标签,分别为select、from、join、avg、where。且为数据集针对标签级别的统计,可以代表数据集的丰富度。
具体实施时,针对句子级别的打分,可以代表数据集的难度分级。难度分级用Level 0,Level 1,...,Level n来表示,具体分多少等级根据应用场景来确定。由于一个有实用价值的SQL一定要包含“select”和“from”两个关键词,因此,Level0对应的是2分,其他等级的得分可依次递增,或是根据应用场景,调整不同的映射关系。
S12、获取数据集中各难度等级上的自然语言语句数量分布,判断该分布趋势是否设定的分布趋势,具体可令设定的分布趋势为正态分布;是,则将该数据集作为学习数据集;否,则执行步骤S13。
S13、对数据集中的自然语言语句进行增减调整,然后返回步骤S11。
通过对句子打分,可以得到数据集的整体质量和难度水准。使用者也可以根据不同的应用场景,自定义难度的配比即设定的分布趋势,比如Level 0(2分):Level 1(3分):Level 2(4分):Level 3(5分及以上)=3:3:2:2;从而使用者可以有计划地进行数据集的增强,使得数据集中的数据分布趋向于设定的分布趋势例如正态分布,由于标签与难度不绑定,因此,可以在满足句子难度配比后,再根据标签进行丰富扩充,保持数据均衡。
S2、结合以下步骤S21-S24,获取SQL生成模型,SQL生成模型的输入为自然语言语句,输出为SQL。
S21、基于学习数据集构建第一学习样本,令第一基础模型对第一学习样本进行机器学习,以获取表列项筛选模型;
S22、选择部分标注样本作为备选第二学习样本,将各备选第二学习样本中的自然语言语句输入表列项筛选模型,获取表列项筛选模型输出的表列项分布概率中最大的N个概率值对应的表列项作为目标表列项;
S23、获取备选第二学习样本中自然语言语句的目标表列项存储内容的概括值,结合备选第二学习样本的自然语言语句、目标表列项、目标表列项存储内容的概括值以及SQL构成第二学习样本;
S24、令第二基础模型对第二学习样本进行机器学习,获取SQL生成模型。
S3、结合表列项筛选模型和SQL生成模型组成两阶段SQL模型;其中表列项筛选模型的输入作为两阶段SQL模型的输入,表列项筛选模型的输出连接SQL生成模型的输入,SQL生成模型的输出作为两阶段SQL模型的输出。
如此,只需要将自然语言语句输入两阶段SQL模型,便可获得自然语言语句的SQL。
值得注意的是,两阶段SQL模型训练过程中,可设置多个指定内容数据库,训练过程中,第一基础模型的输入为自然语言语句、对应的指定内容数据库上的目标表列项以及对应的指定内容数据库的所有表列项,训练目标为令两阶段SQL模型输出自然语言语句在对应的指定内容数据库上的目标表列项。如此获得的两阶段SQL模型可适合不同存储内容的数据库,只需要将自然语言语句和对应的目标数据库的所有表列项输入两阶段SQL模型,两阶段SQL模型便可输出目标数据库对应的SQL。
以下结合具体实施例,对上述的两阶段SQL模型进行验证。
本实施例中以开源Text2SQL数据集CSpider为例,数据集CSpider共8656条数据,数据集中关键词和内置函数分布如图2所示,对数据打分结果如表1所示。从表1可看出,CSpider的SQL难度分布合理,贴近实际使用场景,最难和最简单的数量少,中间难度的SQL均匀分布。从图2可看出,CSpider的SQL覆盖了Sqlite语法的常用情况。因此,综合难度和丰富度两个指标,CSpider属于质量良好的数据集。
表1:开源Text2SQL数据集CSpider的数据结构
SQL难度等级 | 数量 | 占比(%) |
Level 0(2分) | 581 | 6.71 |
Level 1(3分) | 1397 | 16.14 |
Level 2(4分) | 2159 | 24.94 |
Level 3(5分) | 1984 | 22.92 |
Level 4(6分) | 1258 | 14.53 |
Level 5(7分及以上) | 1277 | 14.75 |
总计 | 8656 | 100 |
本实施例中,从数据集CSpider和医疗数据集中选择数据构成训练集,训练集中的数据分数呈正态分布。训练集中数据集CSpider的数据与医疗数据的比例为8:1。
考虑到模型目的是学习自然语言表述到SQL的映射,为了提高模型对SQL语法细节的关注,降低SQL中大小写表别名、字符间的空格数量、表名的省略等无关因素对模型的干扰,本实施例中,对训练集中的SQL进行标准化处理,以消除一切跟正确率无关的SQL语句间的差异,例如格式差异等无关因素。
例如SQL"SELECT distinct(BillingCountry)FROM INVOICE"经过标准化处理后转换为"select distinct(invoice.billingcountry)from invoice";
"SELECT FirstName,LastName FROM EMPLOYEE WHERE City=\"青岛\""经过标准化处理后转换为"select employee.firstname,employee.lastname from employeewhere employee.city='青岛'"。
参照图3,本实施例中,以训练集作为学习数据集,执行上述的基于大语言模型的两阶段Text2SQL模型的训练方法获取表列项筛选模型和两阶段SQL模型。
本实施例中,首先以开源数据集CSpider的验证集验证两阶段SQL模型的性能。
本实施例中,将验证集中的自然语言语句和开源数据集CSpider中指定内容数据库的所有的表列项输入表列项筛选模型,表列项筛选模型输出待查询的自然语言语句的目标表列项。
本实施例中,将验证集中各验证样本的目标表列项与验证集中的各验证样本人工标注的表列项进行对比,计算表列项筛选模型的AUC指标达到0.99以上。本实施例中,进一步采用两阶段SQL模型获取验证集中各自然语言语句的备选SQL,再对备选SQL进行标准化处理,然后将备选SQL根据设定的多条转换规则转换成相对应的目标SQL。本实施例中在sqlite、mysql等类型的指定内容数据库上针对验证集中每条自然语言语句顺序执行目标SQL,以执行结果作为判断标准,最终达到了0.8195的准确率(accuracy)。
本实施例中,还结合医疗数据集进一步验证本实施例获得的表列项筛选模型和两阶段SQL模型的准确度。
本实施例中,收集医疗领域的自然语言语句构建测试集。测试集中的自然语言语句和医疗数据集中所有的表列项输入表列项筛选模型,表列项筛选模型输出的目标表列项与测试集中人工标注的表列项进行对比,表列项筛选模型的AUC指标达到0.99以上。
本实施例中,进一步采用两阶段SQL模型获取测试集中各自然语言语句的备选SQL,再对备选SQL进行标准化处理,然后将备选SQL根据设定的多条转换规则转换成相对应的目标SQL。本实施例中在sqlite、mysql等类型的医疗数据集上针对测试集中每条自然语言语句顺序执行目标SQL,以执行结果作为判断标准,最终达到了0.93的准确率(accuracy)。
当然,对于本领域技术人员而言,本发明不限于上述示范性实施例的细节,而还包括在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现的相同或类似结构。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
本发明未详细描述的技术、形状、构造部分均为公知技术。
Claims (10)
1.一种基于大语言模型的两阶段Text2SQL模型的训练方法,其特征在于,包括以下步骤:
S1、基于指定内容数据库获取学习数据集,学习数据集中的标注样本为标注有SQL的自然语言语句;
S2、基于学习数据集构建第一学习样本和第二学习样本;第一学习样本为标注有对应指定内容数据库的目标表列项的自然语言语句;第二学习样本包括自然语言语句及其对应的目标表列项、目标表列项存储内容的概括值以及标注的SQL;表列项包括表名称和该表中任一列的列名称;
设置第一基础模型和第二基础模型;第一基础模型的输入为自然语言语句和指定内容数据库中所有的表列项,第一基础模型的输出为表列项分布概率;第二基础模型的输入包括自然语言语句及其目标表列项、目标表列项存储内容的概括值,第二基础模型的输出为自然语言语句的SQL;
令设置的第一基础模型对第一学习样本进行学习,以获取收敛后的第一基础模型作为表列项筛选模型;令设置的第二基础模型对第二学习样本进行学习,以获取收敛后的第二基础模型作为SQL生成模型;
S3、结合表列项筛选模型和SQL生成模型组成两阶段SQL模型;其中表列项筛选模型的输入作为两阶段SQL模型的输入,表列项筛选模型的输出连接SQL生成模型的输入,SQL生成模型的输出作为两阶段SQL模型的输出。
2.如权利要求1所述的基于大语言模型的两阶段Text2SQL模型的训练方法,其特征在于,S2中,目标表列项存储内容的概括值的获取方式为:
如果目标表列项存储内容为离散值,则概括值为存储内容去重后的结果;
如果目标表列项存储内容为连续值,则概括值为存储内容所在区间值。
3.如权利要求2所述的基于大语言模型的两阶段Text2SQL模型的训练方法,其特征在于,S2具体包括以下分步骤:
S21、基于学习数据集构建第一学习样本,令第一基础模型对第一学习样本进行机器学习,以获取表列项筛选模型;
S22、选择部分标注样本作为备选第二学习样本,将各备选第二学习样本中的自然语言语句输入表列项筛选模型,获取表列项筛选模型输出的表列项分布概率中最大的N个概率值对应的表列项作为目标表列项;
S23、获取备选第二学习样本中自然语言语句的目标表列项存储内容的概括值,结合备选第二学习样本的自然语言语句、目标表列项、目标表列项存储内容的概括值以及SQL构成第二学习样本;
S24、令第二基础模型对第二学习样本进行机器学习,获取SQL生成模型。
4.如权利要求1所述的基于大语言模型的两阶段Text2SQL模型的训练方法,其特征在于,S1中学习数据集的获取,包括以下分步骤:
S11、从指定内容数据库中获取样本构成数据集,样本包含自然语言语句和SQL,对数据集中各自然语言语句的SQL进行打分,根据打分将自然语言与语句分为多个难度等级;
S12、获取数据集中各难度等级上的自然语言语句数量分布,判断该分布趋势是否为设定的分布趋势;是,则将该数据集作为学习数据集;否,则执行步骤S13;
S13、对数据集中的自然语言语句进行增减调整,然后返回步骤S11。
5.如权利要求4所述的基于大语言模型的两阶段Text2SQL模型的训练方法,其特征在于,S11中对SQL进行打分的方式为:统计SQL包含的关键词和内置函数的数量总数作为分数,分数越高表示自然语言语句难度越大。
6.如权利要求1所述的基于大语言模型的两阶段Text2SQL模型的训练方法,其特征在于,S1中还包括对标注样本中的SQL进行标准化处理,标准化处理包括:全体大写或是小写、字符常量统一使用单引号或是双引号、所有列名统一补齐表格名、字符统一空一个格。
7.如权利要求1所述的基于大语言模型的两阶段Text2SQL模型的训练方法,其特征在于,第一基础模型采用自然语言模型,第一基础模型进行机器学习过程中,结合各第一学习样本的目标表列项在表列筛选模型输出的表列项分布概率中的概率值计算均方差损失,根据均方差损失反向更新表列筛选模型;SQL生成模型训练过程中结合交叉熵损失函数采用PEFT技术对预训练的第二基础模型进行微调。
8.一种采用如权利要求1-7任一项所述的基于大语言模型的两阶段Text2SQL模型的训练方法的SQL查询方法,其特征在于,包括以下步骤:
St1、采用如权利要求1-7任一项所述的基于大语言模型的两阶段Text2SQL模型的训练方法获取指定内容数据库对应的两阶段SQL模型;
St2、将待查询的自然语言语句和目标内容数据库中所有的表列项输入两阶段SQL模型,两阶段SQL模型输出待查询的自然语言语句的SQL作为备选SQL;
St3、对备选SQL进行标准化处理,然后将备选SQL根据设定的多条转换规则转换成相对应的目标SQL;
St4、在任意类型的目标内容数据库中顺位执行各目标SQL,直至目标内容数据库上目标SQL执行成功;数据库类型指的是数据库的内容存储形式。
9.一种SQL查询系统,其特征在于,包括存储器和处理器,存储器存储有计算机程序,处理器与存储器连接,处理器用于执行所述计算机程序以实现如权利要求8所述的SQL查询方法。
10.一种采用如权利要求1-7任一项所述的基于大语言模型的两阶段Text2SQL模型的训练方法的SQL查询系统,其特征在于,包括:两阶段SQL模型、转换模块、规则库和执行模块;
两阶段SQL模型用于输出获取的自然语言语句的SQL作为备选SQL;
规则库中存储有一种或者多种转换规则,转换规则用于将SQL转换为适用于其对应类型的数据库的SQL;
执行模块外接数据库,用于加载目标SQL在数据库中进行SQL查询;
转换模块分别连接两阶段SQL模型、规则库和执行模块;
转换模块获取两阶段SQL模型输出的备选SQL,转换模块加载规则库中的转换规则,转换模块根据加载的各项转换规则对备选SQL进行转换,获取与转换规则一一对应的目标SQL;执行模块获取各目标SQL;当进行指定类型数据库查询时,执行模块在指定类型数据库中依次执行各目标SQL,直至执行成功。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311273899.XA CN117290376A (zh) | 2023-09-28 | 2023-09-28 | 基于大语言模型的两阶段Text2SQL模型、方法与系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311273899.XA CN117290376A (zh) | 2023-09-28 | 2023-09-28 | 基于大语言模型的两阶段Text2SQL模型、方法与系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117290376A true CN117290376A (zh) | 2023-12-26 |
Family
ID=89251465
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311273899.XA Pending CN117290376A (zh) | 2023-09-28 | 2023-09-28 | 基于大语言模型的两阶段Text2SQL模型、方法与系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117290376A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117609281A (zh) * | 2024-01-18 | 2024-02-27 | 成都四方伟业软件股份有限公司 | 一种Text2Sql方法、系统、电子设备及存储介质 |
CN118093636A (zh) * | 2024-04-23 | 2024-05-28 | 数据空间研究院 | 一种sql语句查询正确性判别方法 |
-
2023
- 2023-09-28 CN CN202311273899.XA patent/CN117290376A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117609281A (zh) * | 2024-01-18 | 2024-02-27 | 成都四方伟业软件股份有限公司 | 一种Text2Sql方法、系统、电子设备及存储介质 |
CN117609281B (zh) * | 2024-01-18 | 2024-04-05 | 成都四方伟业软件股份有限公司 | 一种Text2Sql方法、系统、电子设备及存储介质 |
CN118093636A (zh) * | 2024-04-23 | 2024-05-28 | 数据空间研究院 | 一种sql语句查询正确性判别方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210173817A1 (en) | Method and system for large scale data curation | |
CN111813802B (zh) | 一种基于自然语言生成结构化查询语句的方法 | |
US11995073B2 (en) | One-shot learning for text-to-SQL | |
CN117290376A (zh) | 基于大语言模型的两阶段Text2SQL模型、方法与系统 | |
US20040181526A1 (en) | Robust system for interactively learning a record similarity measurement | |
CN110175585B (zh) | 一种简答题自动批改系统及方法 | |
CN113779272A (zh) | 基于知识图谱的数据处理方法、装置、设备及存储介质 | |
CN117609470B (zh) | 基于大语言模型和知识图谱的问答系统、其构建方法及智能化数据治理平台 | |
US11487795B2 (en) | Template-based automatic software bug question and answer method | |
CN110162651B (zh) | 基于语义内容摘要的新闻内容图文不符鉴别系统及鉴别方法 | |
CN111858567A (zh) | 一种通过标准数据元进行政务数据清洗的方法和系统 | |
CN109522396B (zh) | 一种面向国防科技领域的知识处理方法及系统 | |
JP5927886B2 (ja) | クエリシステム及びコンピュータプログラム | |
CN113297251A (zh) | 多源数据检索方法、装置、设备及存储介质 | |
CN115794833A (zh) | 数据处理方法、服务器和计算机存储介质 | |
CN117609281B (zh) | 一种Text2Sql方法、系统、电子设备及存储介质 | |
CN111597316A (zh) | 融合语义与问题关键信息的多阶段注意力答案选取方法 | |
CN117725078B (zh) | 一种基于自然语言的多表格数据查询和分析方法 | |
Babur et al. | Towards statistical comparison and analysis of models | |
CN117573797A (zh) | 一种基于大语言模型的试题检索方法 | |
Fu et al. | A supervised learning and group linking method for historical census household linkage | |
CN117216221A (zh) | 一种基于知识图谱的智能问答系统及构建方法 | |
CN115878814A (zh) | 一种基于机器阅读理解的知识图谱问答方法及其系统 | |
CN112905591B (zh) | 一种基于机器学习的数据表连接顺序选择方法 | |
CN116894495A (zh) | 用注释增强机器学习管道的方法、计算机可读介质和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |