多表Text2sql模型训练方法、系统、装置和介质与流程

文档序号:30949950发布日期:2022-07-30 07:04阅读:947来源:国知局
多表Text2sql模型训练方法、系统、装置和介质与流程
多表text2sql模型训练方法、系统、装置和介质
技术领域
1.本发明涉及人工智能技术领域,尤其是一种多表text2sql模型训练方法、系统、装置和介质。


背景技术:

2.text2sql(text to sql)模型是将自然语言语句转换为数据库可以识别的sql查询语句的模型,该模型可以使用户直接与数据库进行交互。text2sql包括单表text2sql和多表text2sql两种情况,其中,单表text2sql是指用户输入的自然语言语句只涉及到数据库中的一张表,多表text2sql是指用户输入的自然语言语句涉及到了数据库中的多张表。相关技术中,由于多表text2sql相较于单表text2sql的任务更加复杂、难度更高,使得多表text2sql在公开的数据集上进行语句转换的准确率较低,导致用户查询数据的精度较差。


技术实现要素:

3.以下是对本文详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。
4.本发明实施例提供了一种多表text2sql模型训练方法、系统、装置和介质,能够有效提高多表text2sql模型的语句转换准确率,从而提高用户查询数据的精度。
5.一方面,本发明实施例提供了一种多表text2sql模型训练方法,包括以下步骤:
6.获取第一训练数据集;所述第一训练数据集包括第一自然语句和所述第一自然语句对应的第一标签sql语句;所述第一自然语句用于获取数据库中单个表格的第一目标数据;所述第一标签sql语句用于查询并返回所述第一目标数据;
7.根据所述第一训练数据集对单表text2sql模型进行训练,得到训练好的单表text2sql模型;
8.通过迁移学习方式,将训练好的单表text2sql模型的参数转移到多表text2sql模型;
9.获取第二训练数据集;所述第二训练数据集包括第二自然语句和所述第二自然语句对应的第二sql语句;所述第二自然语句用于获取数据库中多个表格的第二目标数据;所述第二标签sql语句用于查询并返回所述第二目标数据;
10.根据所述第二训练数据集对参数迁移后的多表text2sql模型进行训练,得到训练好的多表text2sql模型。
11.另一方面,本发明实施例提供了一种多表text2sql模型训练系统,包括:
12.第一模块,用于获取第一训练数据集;所述第一训练数据集包括第一自然语句和所述第一自然语句对应的第一标签sql语句;所述第一自然语句用于获取数据库中单个表格的第一目标数据;所述第一标签sql语句用于查询并返回所述第一目标数据;
13.第二模块,用于根据所述第一训练数据集对单表text2sql模型进行训练,得到训练好的单表text2sql模型;
14.第三模块,用于通过迁移学习方式,将训练好的单表text2sql模型的参数转移到多表text2sql模型;
15.第四模块,用于获取第二训练数据集;所述第二训练数据集包括第二自然语句和所述第二自然语句对应的第二sql语句;所述第二自然语句用于获取数据库中多个表格的第二目标数据;所述第二标签sql语句用于查询并返回所述第二目标数据;
16.第五模块,用于根据所述第二训练数据集对参数迁移后的多表text2sql模型进行训练,得到训练好的多表text2sql模型。
17.另一方面,本发明实施例提供了一种多表text2sql模型训练装置,包括:
18.至少一个存储器,用于存储程序;
19.至少一个处理器,用于加载所述程序以执行所述的多表text2sql模型训练方法。
20.另一方面,本发明实施例提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行所述的多表text2sql模型训练方法。
21.本发明实施例的有益效果包括:通过包括第一自然语句和所述第一自然语句对应的第一标签sql语句的第一训练数据集,对单表text2sql模型进行训练后,得到训练好的单表text2sql模型,接着基于迁移学习方式将训练好的单表text2sql模型的参数转移到多表text2sql模型,以使多表text2sql模型可以利用单表text2sql模型的参数进行后续的训练,然后通过包括第二自然语句和所述第二自然语句对应的第二sql语句的第二训练数据集,对参数迁移后的多表text2sql模型进行训练,使得多表text2sql模型可以在单表text2sql模型的参数基础上实现快速的训练收敛,并且训练得到的多表text2sql模型能够进一步提高查询多表数据时的语句转换准确率,从而提高用户查询数据的精度。
22.本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易将,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
23.附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
24.图1为本发明实施例的一种多表text2sql模型训练方法的实施环境示意图;
25.图2为本发明实施例的一种多表text2sql模型训练方法的示意图;
26.图3为本发明实施例的一种单表text2sql模型的结构示意图;
27.图4为本发明实施例的一种单表text2sql模型的训练示意图;
28.图5为本发明实施例的一种多表text2sql模型的结构示意图;
29.图6为本发明实施例的一种多表text2sql模型的训练示意图;
30.图7为本发明实施例的一种多表text2sql模型训练系统的模块框图;
31.图8为本发明实施例的一种多表text2sql模型训练装置的结构示意图;
32.图9为本发明实施例的一种计算机设备的模块示意图。
具体实施方式
33.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对
本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
34.需要说明的是,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
35.数据库存储着各行各业的信息,比如学校的选课信息、成绩信息、人员流动信息等。sql语句是一种数据库的查询语言,但是,对于不是计算机领域的专业人员,想要针对不同数据库和应用场景,编写正确率较高的sql语句,存在较大的困难。text2sql模型是一种可以将自然语言转换为sql查询语句的模型,其能够有效降低非专业人员利用sql语句进行数据查询的困难。例如,用户在电脑终端输入“张三是在哪里出生的啊?”,text2sql模型就会先根据问句解析出sql语句“select birth_city from director where name=

张三
’”
,再对数据库执行该sql语句后,查询并返回“xx省xx市”。
36.相关技术中,text2sql模型包括单表text2sql模型和多表text2sql模型,多表text2sql模型相较于单表text2sql模型的任务执行过程更复杂、难度更高,从而使得根据用户输入的自然语言转换得到的sql语句准确度较低,导致返回的查询结果的准确度不高。
37.基于此,本实施例提供了一种多表text2sql模型训练方法,本技术实施例的方法通过迁移学习方式将训练好的单表text2sql模型的参数应用于多表text2sql模型,使得多表text2sql模型进行训练后,基于单表text2sql模型的准确度的基础上,进一步提高语句转换准确度,从而提高用户进行数据查询的精度。
38.下面结合附图对具体实施例进行阐述:
39.参照图1,图1是本技术实施例提供的一种多表text2sql模型训练方法的实施环境示意图。参照图1,该实施环境的软硬件主体主要包括操作终端110和服务器120,操作终端110与服务器120通信连接。其中,该多表text2sql模型训练方法可以单独配置于操作终端110执行,也可以单独配置于服务器120执行,或者基于操作终端110与服务器120二者之间的交互来执行,具体可以根据实际应用情况进行适当的选择,本实施例对此并不作具体限定。
40.具体地,本技术中的操作终端110可以包括但不限于智能手表、智能手机、电脑、个人数字助理(personal digital assistant,pda)、智能语音交互设备、智能家电或者车载终端中的任意一种或者多种。服务器120可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn(content delivery network,内容分发网络)以及大数据和人工智能平台等基础云计算服务的云服务器。操作终端110与服务器120之间可以通过无线网络或有线网络建立通信连接,该无线网络或有线网络使用标准通信技术和/或协议,网络可以设置为因特网,也可以是其它任何网络,例如包括但不限于局域网(local area network,lan)、城域网(metropolitan area network,man)、广域网(wide area network,wan)、移动、有线或者无线网络、专用网络或者虚拟专用网络的任何组合。
41.人工智能(artificial intelligence,ai),是利用数字计算机或者数字计算机控
制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
42.参照图2,图2是本技术实施例提供的一种多表text2sql模型训练方法的示意图,该多表text2sql模型训练方法可以配置在操作终端或者服务器中的至少一者。具体地,参照图2,本技术实施例的多表text2sql模型训练方法包括但不限于步骤210至步骤250:
43.步骤210、获取第一训练数据集;所述第一训练数据集包括第一自然语句和所述第一自然语句对应的第一标签sql语句;所述第一自然语句用于获取数据库中单个表格的第一目标数据;所述第一标签sql语句用于查询并返回所述第一目标数据。
44.在本技术实施例中,第一训练数据集内的数据可以是云端数据库内的历史记录数据。例如,在一些实施例中,第一训练数据集内的数据可以是用户在当前时刻之前,采用自然语句进行数据查询时保存的查询记录数据。在一些实施例中,第一训练数据集也可以是预设网站上公开使用的数据集,例如,wikisql数据集或nl2sql数据集。这些公开的数据集,均是可以通过数据调用方式直接获取后,在本技术实施例中用于训练单表text2sql模型。在另一些实施例中,第一训练数据集内的第一自然语句也可以是从网页中实时采集的自然语言数据,第一标签sql语句可以是根据实时采集的自然语言数据重新匹配得到的sql语句。该sql语句可以包括用于指向数据库内具体位置、具体内容等内容的语句。例如,sql语句可以包括select子句和where子句。具体地,select子句用于提供从数据库内获取目标数据的选取语句模板,where子句用于提供目标数据在数据库内具体位置的查询语句模板。可以理解的是,select子句可以包括但不限地select column子句、select num子句和select op子句。select column子句可以理解为目标数据在单个表格上的具体列;select num子句以理解为目标数据在数据内单个表格上的编号;select op子句可以理解为目标数据在单个表格上的选取方式。
45.步骤220、根据所述第一训练数据集对单表text2sql模型进行训练,得到训练好的单表text2sql模型。
46.在本技术实施例中,在获取到第一训练数据集后,可以通过将第一训练数据集输入到单表text2sql模型内,以通过第一训练数据集对单表text2sql模型进行训练并调整单表text2sql模型的参数。具体地,如图3所示,单表text2sql模型可以包括但不限于第一语义分析层310和第一分类输出层320;第一语义分析层310与第一分类输出层320连接。其中,第一语义分析层310可以用于提取输入的自然语句的语义特征数据;第一分类输出层320可以用于根据语义特征数据预测得到语义特征数据对应的sql语句。
47.在本技术实施例中,参照图3,第一语义分析层310可以采用bert模型,bert模型是一种多层双向transformer编码器,其通过联合调节所有层中的左右上下文来预训练深度双向表示。如图3所示,第一分类输出层320可以包括第一预设个数的第一线性归一化层
321,每一个所述第一线性归一化层321的输出结果用于查询所述第一目标数据在所述单个表格中的一个维度的属性特征。其中,属性特征包括目标数据在单个表格中的位置,例如列、行、编号等位置特征。具体地,第一预设个数的第一线性归一化层可以包括但不限于9个第一线性归一化层,每个第一归一化层用于执行一个分类子任务,每一个分类子任务可以用对应的sql语句执行。例如,在sql语句中可以包含但不限于select子句和where子句,select子句又可以包括但不限于select column子句、select num子句和select op子句共3个子句,where子句可以包括但不限于where colunm子句、where num子句、where conn子句、where op子句、where value start子句、where value end子句共6个子句。每一个子句在对应的一个第一线性归一化层内完成对应的分类任务,使得每一个第一线性归一化层的输出结果分别用于查询第一目标数据在单个表格中的一个维度的属性特征。
48.在本技术实施例中,单表text2sql模型需要进行训练,才能达到预设语句转换精度。本实施例为了使每个线性归一化层均能够有效学习对应子任务的区别,每个线性归一化层之间的参数设置为不共享形式。具体地,如图4所示,本技术实施例对单表text2sql模型的训练过程包括但不限于:
49.步骤410、将所述第一自然语句输入到所述第一语义分析层,得到第一特征数据;
50.在本技术实施例中,第一语义分析层在得到自然语句后,分析该自然语句的语义信息,并将该语义信息转换为向量形式,以使第一分类输出层能够有效接收到该向量形式的语义信息。具体地,在一些实施例中,在第一语义分析层接收自然语句之前,可以通过嵌入层将自然语句转换为第一语义分析层能够接收的向量形式。
51.步骤420、将所述第一特征数据输入到所述第一分类输出层,得到第一预测sql语句;所述第一预测sql语句用于查询并返回数据库中单个表格的数据。
52.在本技术实施例中,在得到向量形式的第一特征数据后,由于单表text2sql模型的第一分类输出层包括若干个线性归一化层,每个线性归一化层之间的参数不共享,因此,为了使每个线性归一化层都能有效学习到任务之间的区别,需要将第一特征数据分别传输到每个线性归一化层内,以对每个线性归一化层进行训练和参数调整。
53.步骤430、根据所述第一标签sql语句和所述第一预测sql语句,调整所述单表text2sql模型的参数。
54.在本技术实施例中,对于单表text2sql模型的预测结果的准确性,可以通过损失函数(loss function)来衡量。损失函数是定义在单个训练数据上的,用于衡量一个训练数据的预测误差,具体是通过单个训练数据的标签和模型对该训练数据的预测结果确定该训练数据的损失值。而实际训练时,一个训练数据集有很多训练数据,因此一般采用代价函数(cost function)来衡量训练数据集的整体误差,代价函数是定义在整个训练数据集上的,用于计算所有训练数据的预测误差的平均值,能够更好地衡量出模型的预测效果。
55.在本技术实施例中,机器学习(machine learning,ml),是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科,它专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域,机器学习(深度学习)通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。对于一般的机器学习模型来说,基于前述的代价
函数,再加上衡量模型复杂度的正则项即可作为训练的目标函数,基于该目标函数便能求出整个训练数据集的损失值。常用的损失函数种类有很多,例如0-1损失函数、平方损失函数、绝对损失函数、对数损失函数、交叉熵损失函数等均可以作为机器学习模型的损失函数,在此不再一一阐述。
56.在本技术实施例中,以交叉熵损失函数(cross-entropy function)为例,本实施例可以根据第一标签sql语句和第一预测sql语句,通过交叉熵损失函数确定训练的损失值,然后根据该损失值,通过反向传播算法调整单表text2sql模型上各个层的参数。具体地,交叉熵损失函数具有权重更新快的优点,其是用于度量两个信息之间的差异性信息,例如,第一标签sql语句和第一预测sql语句之间的差异。反向传播算法的实质是一种映射关系,其主要由激励传播和权重更新这两个环节反复循环迭代,直到网络模型对输入的响应达到预定的目标范围为止。
57.步骤230、通过迁移学习方式,将训练好的单表text2sql模型的参数转移到多表text2sql模型。
58.在本技术实施例中,单表text2sql模型的架构与多表text2sql模型中部分单元的架构相同。因此,在完成对单表text2sql模型的训练后,可以将训练好的单表text2sql模型的参数应用于多表text2sql模型中,使多表text2sql模型可以基于单表text2sql模型的参数进行后续的训练,从而节省训练时间和提高多表text2sql模型的语句转换精度。具体地,本实施例可以通过迁移学习方式将训练好的单表text2sql模型的参数转移到多表text2sql模型。其中,迁移学习是指一种学习对另一种学习的影响,或者一种学习获得的经验对完成其他学习活动的影响。在机器学习过程中,迁移学习能够较好地利用在先标注好的数据,来提高新的任务模型的训练精度。具体地,迁移学习包括但不限于基于特征的迁移和基于共享参数的迁移。基于特征的迁移是先找源领域与目标领域之间共有的特征表示,然后利用这些特征表示进行知识迁移。在本实施例中,则可以通过先确定单表text2sql模型与多表text2sql模型的共有特征表示,然后基于共有特征表示将单表text2sql模型的参数迁移到多表text2sql模型中。
59.在一些实施例中,如图5所示,所述多表text2sql模型包括第二语义分析层510和第二分类输出层520;所述第二语义分析层510与所述第二分类输出层520连接。所述第二分类输出层520包括第二预设个数的第二线性归一化层521,每一个所述第二线性归一化层521的输出结果用于查询所述第二目标数据在所述多个表格中的一个维度的属性特征。具体地,第二预设个数的第二线性归一化层可以包括但不限于16个第二线性归一化层,每个第二归一化层用于执行一个分类子任务,每一个分类子任务可以用对应的sql语句执行。例如,在sql语句中可以包含但不限于select子句、where子句、order by子句、groupy by子句、having、limit子句、intersect子句、except子句和union子句。select子句又可以包括但不限于select column子句、select num子句和select op子句共3个子句,where子句可以包括但不限于where colunm子句、where num子句、where conn子句、where op子句、where value start子句、where value end子句共6个子句。每一个子句在对应的一个第二线性归一化层内完成对应的分类任务,使得每一个第二线性归一化层的输出结果分别用于查询第二目标数据在多个个表格中的一个维度的属性特征。将图3和图4进行对比可知,多表text2sql模型相较于单表text2sql模型多了7个线性归一化层,其余结构与单表
text2sql模型的结构相同,因此,第一预设个数小于等于第二预设个数,并且,本实施例还可以通过迁移学习中的基于特征的迁移将单表text2sql模型参数迁移到多表text2sql模型的对应单元内。
60.步骤240、获取第二训练数据集;所述第二训练数据集包括第二自然语句和所述第二自然语句对应的第二sql语句;所述第二自然语句用于获取数据库中多个表格的第二目标数据;所述第二标签sql语句用于查询并返回所述第二目标数据。
61.在本技术实施例中,第二训练数据集内的数据可以是云端数据库内的历史记录数据。例如,在一些实施例中,第二训练数据集内的数据可以是用户在当前时刻之前,采用自然语句进行数据查询时保存的查询记录数据,该查询记录数据可以包括用户输入的自然语句和自然语句对应的标签sql语句。在一些实施例中,第二训练数据集也可以是预设网站上公开使用的数据集,例如,spider数据集或dusql数据集。这些公开的数据集,均是可以通过数据调用方式直接获取后,在本技术实施例中用于训练多表text2sql模型。在另一些实施例中,第一训练数据集内的第一自然语句也可以是从网页中实时采集的自然语言数据,第二标签sql语句可以是根据实时采集的自然语言数据重新匹配得到的sql语句。该sql语句可以包括用于指向数据库内具体位置、具体内容等内容的语句。例如,sql语句可以包括select子句和where子句。在本实施例中,由于第二训练数据集是用于训练多表text2sql模型,多表text2sql模型相较于单表text2sql模型的结构较复杂。因此,第二训练数据集内的标签sql语句还可以包括order by子句、groupy by子句、having、limit子句、intersect子句、except子句和union子句,这些子句可以用于提供查询自然语句对应多个表中的约束条件查询模板。在本实施例中,select子句用于提供从数据库内获取目标数据的选取语句模板,where子句用于提供目标数据在数据库内具体位置的查询语句模板。可以理解的是,select子句可以包括但不限地select column子句、select num子句和select op子句。select column子句可以理解为目标数据在单个表格上的具体列;select num子句以理解为目标数据在数据内单个表格上的编号;select op子句可以理解为目标数据在单个表格上的选取方式。
62.步骤250、根据所述第二训练数据集对参数迁移后的多表text2sql模型进行训练,得到训练好的多表text2sql模型。
63.在本实施例中,在得到单表text2sql模型的参数和第二训练数据集后,可以通过第二训练数据集,对配置了单表text2sql模型的参数后的多表text2sql模型进行训练并调整多表text2sql模型的参数。具体地,本实施例为了使每个第二线性归一化层均能够有效学习对应子任务的区别,每个第二线性归一化层之间的参数设置为不共享形式。在本实施例中,如图6所示,本实施例对多表text2sql模型的训练过程包括但不限于:
64.步骤610、将所述第二自然语句输入到所述第二语义分析层,得到第二特征数据。
65.在本技术实施例中,第二语义分析层在得到自然语句后,分析该自然语句的语义信息,并将该语义信息转换为向量形式,以使第二分类输出层能够有效接收到该向量形式的语义信息。具体地,在一些实施例中,在第二语义分析层接收自然语句之前,可以通过嵌入层将自然语句转换为第一语义分析层能够接收的向量形式;又或者,当第二语义分析层内部设置有嵌入层时,则可以直接将自然语句输入到第二语义分析层,第二语义分析层内自带的嵌入层将自然语句转换为向量形式后,即能从该向量内提取到自然语句对应的语义
信息。
66.步骤620、将所述第二特征数据输入到所述第二分类输出层,得到第二预测sql语句;所述第二预测sql语句用于查询并返回数据库中多个表格的数据。
67.在本技术实施例中,如图5所示,第二分类输出层可以包括16个线性归一化层,每个线性归一化层执行一个分类子任务,并且,每个线性归一化层之间的参数不共享。因此,本实施例在得到第二语义分析层输出的第二特征数据后,需要将第二特征数据分别传输到每个线性归一化层内,使每个线性归一化层单独预测得到一个sql语句作为第二预测sql语句,第二预测sql语句用于查询所述第二目标数据在所述多个表格中的一个维度的属性特征。
68.步骤630、根据所述第二标签sql语句和所述第二预测sql语句,调整所述参数迁移后的多表text2sql模型的参数。
69.在本实施例中,在本技术实施例中,对于多表text2sql模型的预测结果的准确性,可以通过损失函数(loss function)来衡量。损失函数是定义在单个训练数据上的,用于衡量一个训练数据的预测误差,具体是通过单个训练数据的标签和模型对该训练数据的预测结果确定该训练数据的损失值。而实际训练时,一个训练数据集有很多训练数据,因此一般采用代价函数(cost function)来衡量训练数据集的整体误差,代价函数是定义在整个训练数据集上的,用于计算所有训练数据的预测误差的平均值,能够更好地衡量出模型的预测效果。对于一般的机器学习模型来说,基于前述的代价函数,再加上衡量模型复杂度的正则项即可作为训练的目标函数,基于该目标函数便能求出整个训练数据集的损失值。常用的损失函数种类有很多,例如0-1损失函数、平方损失函数、绝对损失函数、对数损失函数、交叉熵损失函数等均可以作为机器学习模型的损失函数,在此不再一一阐述。
70.在本技术实施例中,以交叉熵损失函数(cross-entropy function)为例,本实施例可以根据第二标签sql语句和第二预测sql语句,通过交叉熵损失函数确定训练的损失值,然后根据该损失值,通过反向传播算法调整多表text2sql模型上各个层的参数。具体地,交叉熵损失函数具有权重更新快的优点,其是用于度量两个信息之间的差异性信息,例如,第二标签sql语句和第二预测sql语句之间的差异。反向传播算法的实质是一种映射关系,其主要由激励传播和权重更新这两个环节反复循环迭代,直到网络模型对输入的响应达到预定的目标范围为止。
71.在本实施例中,通过不断计算第二标签sql语句和第二预测sql语句的损失值,然后根据这个损失值反向调整多表text2sql模型上各个层的参数,直到损失值满足预设要求,停止多表text2sql模型的训练过程。
72.综上可知,本技术实施例在对多表text2sql模型进行训练时,通过获取包括第一自然语句和所述第一自然语句对应的第一标签sql语句的数据作为第一训练数据集,接着将第一训练数据集输入到单表text2sql模型的语义分析层内,提取得到特征数据作为第一特征数据,将第一特征数据输入到单表text2sql模型的分类输出层内,分类预测得到sql语句作为第一预测sql语句,根据第一预测sql语句与第一标签sql语句进行损失值的计算后,根据计算得到的损失值反向调整单表text2sql模型的参数。
73.当单表text2sql模型的参数调整完成后,通过迁移学习方式将单表text2sql模型的参数配置到多表text2sql模型的目标单元内,其中,该目标单元的结构与单表text2sql
模型的结构相同,以使单表text2sql模型的参数能够有效且准确地配置到多表text2sql模型。
74.当多表text2sql模型内配置完成单表text2sql模型的参数后,获取包括第二自然语句和所述第二自然语句对应的第二sql语句的第二训练数据集,接着将第二训练数据集输入到多表text2sql模型的语义分析层内,提取得到特征数据作为第二特征数据,将第二特征数据输入到多表text2sql模型的分类输出层内,分类预测得到sql语句作为第二预测sql语句,根据第二预测sql语句与第二标签sql语句进行损失值的计算后,根据计算得到的损失值反向调整多表text2sql模型的参数。
75.在完成多表text2sql模型训练后,用户通过终端设备输入自然语句,多表text2sql模型即能将该自然语句转换为对应的sql语句,并根据该sql语句进行多表查询后得到目标数据,并将该目标数据返回到用户的终端设备。
76.综上,本实施例利用迁移学习,将准确率较高的单表text2sql模型的参数迁移到准确率较低的多表text2sql模型内,提升多表text2sql模型的语句转换准确率;并且利用迁移学习,将单表text2sql模型的参数用到多表的text2sql任务中,有效缓解多表text2sql模型因训练数据不足导致精度不高的问题。
77.参照图7,本发明实施例提供了一种多表text2sql模型训练系统,包括:
78.第一模块710,用于获取第一训练数据集;所述第一训练数据集包括第一自然语句和所述第一自然语句对应的第一标签sql语句;所述第一自然语句用于获取数据库中单个表格的第一目标数据;所述第一标签sql语句用于查询并返回所述第一目标数据;
79.第二模块720,用于根据所述第一训练数据集对单表text2sql模型进行训练,得到训练好的单表text2sql模型;
80.第三模块730,用于通过迁移学习方式,将训练好的单表text2sql模型的参数转移到多表text2sql模型;
81.第四模块740,用于获取第二训练数据集;所述第二训练数据集包括第二自然语句和所述第二自然语句对应的第二sql语句;所述第二自然语句用于获取数据库中多个表格的第二目标数据;所述第二标签sql语句用于查询并返回所述第二目标数据;
82.第五模块750,用于根据所述第二训练数据集对参数迁移后的多表text2sql模型进行训练,得到训练好的多表text2sql模型。
83.本发明方法实施例的内容均适用于本系统实施例,本系统实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法达到的有益效果也相同,在此不在赘述。
84.参照图8,本发明实施例提供了一种多表text2sql模型训练装置,包括:
85.至少一个存储器810,用于存储程序;
86.至少一个处理器820,用于加载所述程序以执行图2所示的多表text2sql模型训练方法。
87.在一些可选的实施例中,存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些
远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
88.实现上述实施例的多表text2sql模型训练方法所需的非暂态软件程序以及指令存储在存储器中,当被处理器执行时,执行上述实施例中的用户搜索意图的处理方法,例如执行以上描述的图2中的方法步骤210至步骤250。
89.在一些可选的实施例中,上述处理装置可以为计算机设备,该计算机设备可以是服务器,可以是用户终端。本实施例以计算机设备是用户终端为例,具体如下:
90.如图9所示,计算机设备可以包括rf(radio frequency,射频)电路910、包括有一个或一个以上计算机可读存储介质的存储器920、输入单元930、显示单元940、传感器950、音频电路960、短距离无线传输模块970、包括有一个或者一个以上处理核心的处理器980、以及电源990等部件。
91.rf电路910可用于收发信息,信号的接收和发送,具体地,将基站的下行信息接收后,交由一个或者一个以上处理器980处理;另外,将涉及上行的数据发送给基站。通常,rf电路910包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(sim)卡、收发信机、耦合器、lna(lownoise amplifier,低噪声放大器)、双工器等。此外,rf电路910还可以通过无线通信与网络和其他设备通信。无线通信可以使用任一通信标准或协议,包括但不限于gsm(global system of mobile communication,全球移动通讯系统)、gprs(general packet radio service,通用分组无线服务)、cdma(code division multiple access,码分多址)、wcdma(wideband code division multiple access,宽带码分多址)、lte(long term evolution,长期演进)、电子邮件、sms(short messaging service,短消息服务)等。
92.存储器920可用于存储软件程序以及模块。处理器980通过运行存储在存储器920的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器920可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音录制功能、图像查看功能等)等;存储数据区可存储根据设备的使用所创建的数据(比如音频数据、文本等)等。此外,存储器920可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器920还可以包括存储器控制器,以提供处理器980和输入单元930对存储器920的访问。
93.输入单元930可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,输入单元930可包括触敏表面931以及其他输入设备932。触敏表面931,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面931上或在触敏表面931附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面931可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器980,并能接收处理器980发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面931。除了触敏表面931,输入单元930还可以包括其他输入设备932。具体地,
其他输入设备932可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
94.显示单元940可用于显示由用户输入的信息或提供给用户的信息以及控制的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元940可包括显示面板941,可选的,可以采用lcd(liquid crystal display,液晶显示器)、oled(organic light-emitting diode,有机发光二极管)等形式来配置显示面板941。进一步的,触敏表面931可覆盖在显示面板941之上,当触敏表面931检测到在其上或附近的触摸操作后,传送给处理器980以确定触摸事件的类型,随后处理器980根据触摸事件的类型在显示面板941上提供相应的视觉输出。
95.以上所描述的系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
96.此外,本发明实施例提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行图2所示的多表text2sql模型训练方法。
97.本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
98.以上是对本发明的较佳实施进行了具体说明,但本发明并不局限于上述实施方式,熟悉本领域的技术人员在不违背本发明精神的前提下还可作出种种的等同变形或替换,这些等同的变形或替换均包含在本发明权利要求所限定的范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1