CN115168402A - 训练序列生成模型的方法及装置 - Google Patents
训练序列生成模型的方法及装置 Download PDFInfo
- Publication number
- CN115168402A CN115168402A CN202210800826.0A CN202210800826A CN115168402A CN 115168402 A CN115168402 A CN 115168402A CN 202210800826 A CN202210800826 A CN 202210800826A CN 115168402 A CN115168402 A CN 115168402A
- Authority
- CN
- China
- Prior art keywords
- sequence
- statement
- target
- sentence
- metadata
- 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
Images
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/245—Query processing
- G06F16/2452—Query translation
- G06F16/24522—Translation of natural language queries to structured queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/151—Transformation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Machine Translation (AREA)
Abstract
本说明书实施例提供一种训练序列生成模型的方法和装置。根据该方法,首先获取原始训练样本,其中包括:通过自然语言对目标数据表进行查询的第一语句,目标数据表的元数据,以及作为数据查询语言的第二语句。然后根据预设的概率,对训练样本施加预定的若干种加噪操作,其中任意一种加噪操作至少包括,对第一语句和第二语句之一进行修改,由此生成加噪样本,其中包括源语句,目标元数据和目标语句。于是,基于源语句和目标元数据形成输入序列,利用序列生成模型处理输入序列,得到输出序列;并根据输出序列和目标语句,更新上述序列生成模型。
Description
技术领域
本说明书一个或多个实施例涉及数据库查询和人工智能,尤其涉及一种训练用于生成查询语句的序列生成模型的方法及装置。
背景技术
众所周知,对数据库进行查询一般需要使用该数据库特定的数据查询语言。例如,对于关系型数据库而言,SQL语言即为专用的结构化数据查询语言。然而,这为不熟悉专业的数据查询语言的用户带来了一些查询困难。
Text-to-SQL是将自然语言转化为SQL的技术,属于语义解析(Semantic Parsing)的一种。Text-to-SQL技术可以让不具备相关数据挖掘专业背景的用户,通过自然语言提问的方式直接与数据库交互,查询与分析结果,从而降低数据分析的门槛。由于自然语言→SQL→查询结果的流程相比于直接根据问题返回结果的表格问答方案具有更好的可解释性,该技术可以在基于表格的问答场景中有很好的前景。
目前已经提出利用机器学习的模型,来实现以上自然语言到数据查询语言的转换。在机器学习模型的方案中,通常是以一定概率预测输出的数据查询语言。由于数据查询场景中对于转换的数据查询语言的准确性有极高的要求,因此,迫切希望提升机器学习模型的预测准确性。
发明内容
鉴于上述问题,本说明书提供了一种训练序列生成模型的方法,通过加噪去噪学习的方式,增强序列生成模型对于数据查询语言的适用性和鲁棒性,从而提升自然语言到数据查询语言转换的性能。
根据第一方面,提供一种训练序列生成模型的方法,包括:
获取训练样本,其中包括:通过自然语言对目标数据表进行查询的第一语句,原始元数据,以及作为数据查询语言的第二语句;所述原始元数据指示所述目标数据表的字段信息;
根据预设的概率,对所述训练样本施加预定的若干种加噪操作,其中任意一种加噪操作至少包括,对所述第一语句和第二语句之一进行修改;
根据加噪操作结果生成加噪样本,其中包括源语句,目标元数据和目标语句;
基于所述源语句和目标元数据形成输入序列,利用所述序列生成模型处理所述输入序列,得到输出序列;
根据所述输出序列和所述目标语句,更新所述序列生成模型。
根据一种实施方式,对所述训练样本施加预定的若干种加噪操作,包括:根据第一概率,对所述训练样本施加第一加噪操作,所述第一加噪操作包括:
对所述原始元数据进行第一修改,得到目标元数据;
根据所述第一修改,对应修改所述第二语句;
根据加噪操作结果生成加噪样本包括,将所述第一语句作为所述源语句,将修改后的第二语句作为目标语句。
在上述实施方式的一个实施例中,原始元数据包括依次拼接的多个数据项,单个数据项包括,所述目标数据表的一个字段对应的字段序号和字段名;所述第二语句通过将原始数据查询语句中的字段名替换为对应的字段序号得到。在这样的情况下,所述第一修改可以包括:打乱所述多个数据项中的字段序号;对应修改所述第二语句包括:按照打乱后的字段序号,修改所述第二语句中的字段序号。
在上述实施方式的另一实施例中,所述第一修改包括:从所述原始元数据中随机删除若干字段的字段信息;对应修改所述第二语句包括:将所述第二语句中引用所述若干字段的符号替换为表示异常的第一预定符号。
在上述实施方式的又一实施例中,所述第一修改包括:在所述原始元数据中插入来自其他数据表的新增字段;对应修改所述第二语句包括:按照插入所述新增字段后的字段序号,修改所述第二语句中的字段序号。
根据一种实施方式,对所述训练样本施加预定的若干种加噪操作,包括:根据第二概率,对所述训练样本施加第二加噪操作,所述第二加噪操作包括:
根据预设的选择概率,从所述第一语句和第二语句中选择一个作为选中语句;
对所述选中语句进行修改,得到修改语句;
根据加噪操作结果生成加噪样本包括,将所述修改语句作为所述源语句,将所述原始元数据作为目标元数据,将所述选中语句作为目标语句。
在上述实施方式的一个实施例中,对所述选中语句进行修改,得到修改语句,包括:获取所述选中语句中的多个实体词;打乱所述多个实体词在语句中的顺序。
根据一个实施例,基于所述源语句和目标元数据形成输入序列,具体包括:根据所述目标语句为自然语言或是数据查询语言,确定类型标识;在所述源语句和目标元数据基础上添加所述类型标识,得到所述输入序列。
根据以上实施例,利用所述序列生成模型处理所述输入序列,得到输出序列,可以包括:当所述类型标识取值为指示自然语言的第一标识,所述序列生成模型执行第一处理,得到自然语言形式的输出序列;当所述类型标识取值为指示数据查询语言的第二标识,所述序列生成模型执行第二处理,得到数据查询语言形式的输出序列。
在一个实施例中,序列生成模型包括指针生成网络;利用所述序列生成模型处理所述输入序列,得到输出序列,具体包括:针对待输出序列的当前位置,所述指针生成网络根据输入序列的编码,确定从目标词汇集中选择其中各个词汇的第一概率分布,以及从输入序列中复制其中各个词的第二概率分布,根据所述第一概率分布和第二概率分布确定当前位置的输出词汇。
根据一种实现方式,对所述训练样本施加预定的若干种加噪操作,包括:将所述训练样本输入若干加噪模块,所述若干加噪模块分别用于执行所述若干种加噪操作,且所述若干加噪模块各自的激活概率符合所述预设的概率。
根据第二方面,提供了一种训练序列生成模型的装置,包括:
训练样本获取单元,配置为获取训练样本,其中包括:通过自然语言对目标数据表进行查询的第一语句,原始元数据,以及作为数据查询语言的第二语句;所述原始元数据指示所述目标数据表的字段信息;
加噪操作单元,配置为根据预设的概率,对所述训练样本施加预定的若干种加噪操作,其中任意一种加噪操作至少包括,对所述第一语句和第二语句之一进行修改;
加噪样本生成单元,配置为根据加噪操作结果生成加噪样本,其中包括源语句,目标元数据和目标语句;
序列处理单元,配置为基于所述源语句和目标元数据形成输入序列,利用所述序列生成模型处理所述输入序列,得到输出序列;
更新单元,配置为根据所述输出序列和所述目标语句,更新所述序列生成模型。
根据第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面所述的方法。
根据第四方面,提供了一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面所述的方法。
在本说明书实施例中,以一定的概率对原始训练样本进行加噪操作,利用如此得到的加噪样本训练序列生成模型。其中,经历侵蚀操作的加噪样本,可以辅助序列生成模型更好地识别出查询目标与元数据的关联性,经历切洗操作的加噪样本,可以辅助序列生成模型更好地学习到实体与实体,实体与其成分之间的关系。因此,以上的训练过程,针对数据查询语言的特殊性构造加噪样本,增强了序列生成模型针对数据查询语言转换的适用性和鲁棒性,从而提升对数据查询语言的转换性能。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1示出利用序列生成模型进行语言转换的示意图;
图2示出根据一个实施例训练序列生成模型的方法流程图;
图3示出训练样本的一个具体示例;
图4示出经过侵蚀加噪操作的训练样本的一个具体示例;
图5示出经过切洗加噪操作的训练样本的一个具体示例;
图6示出根据一个实施例训练序列生成模型的装置示意图。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
为了便于不熟悉数据查询语言的用户进行数据库查询操作,提出利用机器学习的模型,来实现从自然语言到数据查询语言的转换。在这样的情况下,机器学习模型本质上实现将一种语言形式的输入序列,转换为另一种语言形式的输出序列的序列到序列seq2seq的转换任务。因此,可以采用主流的编码-解码架构的序列生成模型,执行该seq2seq生成任务。
图1示出利用序列生成模型进行语言转换的示意图。如图1所示,序列生成模型可以包括编码器和解码器。编码器获取语言A的输入序列,对其进行编码,得到编码隐向量H。解码器根据该编码隐向量H,实施解码操作,逐个字符地输出语言B形式的输出序列。当语言A和语言B是不同的自然语言,上述过程可实现不同语言的机器翻译。当语言A是自然语言,语言B是数据查询语言,例如SQL,上述过程即等效于将自然语言的查询语句,转换为数据查询语言的任务。
虽然属于序列到序列任务的一种,但是从自然语言到数据查询语言(例如SQL)的转换任务相比于普通的序列转换任务(例如两种自然语言的翻译),具有其特殊性。
第一个特殊性来自于语言空间的不对称。可以理解,传统机器翻译问题中,源语言与目标语言均属于自然语言,具有相近的表达完备性。这意味着源语言的表达,大多可以在目标语言找到相似对应。而例如SQL的数据查询语言作为一种专门为数据查询而设计的计算机执行语言,在表达能力上与自然语言差距较大,这使得自然语言到SQL的翻译过程会涉及大量“多到一”的情况。同时,SQL语言中存在大量顺序无关成分(例如WHERE子句中的各条件),因而一对一的训练任务难以表征SQL的这一语法特性。
另一方面的特殊性来自于需要与数据库信息融合。在传统机器翻译中,输入与输出都为自然语言序列,但从自然语言转换到数据查询语言的任务中,需要参考待查询的数据库/数据表的元数据信息(schema),因此,还会将元数据输入到模型中。同一自然语言问题对应的SQL语句,即使在问法上基本相同,也会因元数据的不同而变化,从而让对应的SQL具有完全不同的表达形式。
由于以上的特殊性,特别是SQL语句的一些顺序无关性(例如条件列),给图1所示的序列生成模型进行端到端的序列生成带来一定噪声,使得预测性能有待提升。
在一种相关方案中,针对SQL语言的特点,还提出了基于多任务的槽值填充方案。具体地,首先构建一个通用的SQL模板,将一个完整的SQL语句通过该模板拆分成SELECT、WHERE等多个子句,每个子句都有一些可填充的槽位。由此,序列生成一个SQL语句的任务就转换成了填充各个子句的对应槽值。这样,建立多个子任务分别捕捉不同SQL子句的槽值,便能化繁为简地完成Text-to-SQL的任务。该方案通常比直接的序列生成具有更好的可维护性,因为预测结果的每个成分相对独立,可以拆分进行,在出现预测错误时也可以较快溯源。但需要预先定义通用模板就导致该方案所能生成的SQL句法类型需要在一开始就定义好。若后期需要支持新的更复杂的句式,或针对与之类似但是语法略有不同的其他数据查询语言,就需要对子任务进行重新开发。同时,随着任务增多,子任务之间的级联关系也会愈发复杂,给模型的拓展性带来一定限制。
基于发明人的以上研究和分析,在本说明书中提出一种改进方案,考虑数据查询语言的上述特殊性,从加噪去噪学习的角度和方向,增强seq2seq序列生成模型的适用性和鲁棒性,从而提升对数据查询语言的转换性能。下面详细描述该改进方案的实施方式。
图2示出根据一个实施例训练序列生成模型的方法流程图。该方法可以通过任何具有计算、处理能力的计算单元、平台、服务器、设备等执行。如图2所示,该训练方法可以包括以下具体描述的步骤。
首先,在步骤21,获取训练样本,该训练样本包括:通过自然语言对目标数据表进行查询的第一语句,上述目标数据表的元数据,以及作为数据查询语言的第二语句。下文中,在一些示例中将训练样本表示为{Q,S,Y},其中Q为自然语言语句,即上述第一语句;S为元数据,指示目标数据表的字段信息;Y为数据查询语句,即上述第二语句。可以理解,序列生成模型的训练目标即为,当将第一语句Q和元数据S拼接在一起输入模型,模型可以输出第二语句Y作为转换后的语句。
在一种实施方式中,可以对训练样本中的各个部分进行格式上的优化,使其更好地辅助模型训练。
具体地,可以将待查询的目标数据表T的各个字段的字段信息序列化,从而得到序列化表示的元数据S。在一个实施例中,元数据S包括依次拼接的多个数据项,各个数据项依次对应于目标数据表的各个字段(或称为各个列column)。单个数据项包括,目标数据表的一个字段对应的字段序号和字段名。
在一个具体例子中,可以将目标数据表中各个列的信息通过<coli>[col name]:[col type]这样一个模板整理为各个数据项,各数据项拼接后的序列可作为元数据S。上述模板中,前置符号"<coli>"代表对应字段为数据表中第i列,即字段序号,"col name"为字段名,"col type"为字段类型,指示该字段的取值类型,例如数值型,字符串型等等。
对于第二语句Y,作为对目标数据表T进行查询的结构化查询语句,其中一般会提及目标数据表T中的字段信息。可以按照上述元数据S中对各个字段的序列编号,将原始查询语句中的字段名替换为对应的字段序号,作为用于模型训练的数据查询语句。进一步的,在一个实施例中,还将数据查询语句中提及的字段名、字段值和条件值用特殊符号标出,例如,用"`"符号将其环绕,以辅助模型理解。
图3示出训练样本的一个具体示例。在该示例中,目标数据表table包含名为week,data,opponent,result,attendance等多个字段。针对这样的数据表,其元数据S的序列可以包含依次排列拼接的多个数据项:<col0>week<col1>data<col2>opponent等等。其中出于简洁,没有示出字段类型col type信息。针对该数据表进行查询的自然语言语句Q例如是:which week had an attendance of 53677。与该自然语言语句对应的原始SQL语句例如是:SELECT week from table Where attendance=53677。需理解,该自然语言语句和对应的原始SQL语句,可以通过人工编写生成,或基于历史查询记录进行标注而获得。通过将上述原始SQL语句中的字段名替换为元数据S中对应的字段序号,具体的,将week替换为<col0>,将attendance替换为<col4>,并添加上特殊符号,可以得到图中所示的语句:SELECT`<col0>`from`table`Where`<col4>`=`53677`。该语句可作为训练样本中的第二语句Y。在图3的示例中,序列生成模型的训练目标是,当将元数据S和自然语言语句Q作为输入序列输入到序列生成模型,可以得到图中所示的第二语句Y作为输出序列。
基于以上形式的训练样本,接下来,在步骤22,根据预设的概率,对上述训练样本施加预定的若干种加噪操作,其中任意一种加噪操作至少包括,对第一语句和第二语句之一进行修改。然后,在步骤23,根据加噪操作结果生成加噪样本,其中包括源语句,目标元数据和目标语句。
根据本说明书的实施例,预先设定若干种加噪操作,并为其设定施加概率。对于获取的训练样本,按照各个加噪操作对应的施加概率,对其施加加噪操作。下面描述若干种加噪操作的具体加噪过程。
根据一种实施方式,预先设定的若干种加噪操作包括第一加噪操作,下文中又将其称为“侵蚀”操作。侵蚀操作通过在训练样本的元数据中添加噪声,并对应修改第二语句,来增强序列生成模型对元数据关联性的识别能力,增强对噪声的鲁棒性。
具体的,在一个实施例中,侵蚀操作可以包括重排子操作,其中将元数据所包含的多个数据项中的字段序号进行打乱或重排,也就是,打乱字段序号与字段名之间的关联对应关系。由于元数据S被修改,需要对应修改第二语句,使其与元数据S记载信息一致。在重排子操作的情况下,需要按照打乱后的字段序号,修改第二语句Y中的字段序号。
在一个实施例中,侵蚀操作还可以包括移除子操作,其中,从元数据中随机删除若干字段的字段信息。需要理解,如果需要查询的字段没有包含在元数据中(意味着数据表中没有包含该字段的信息),那么将因为数据表的信息不足而无法对该字段进行查询,此时应抛出异常,指示无法构建可行的数据查询语句。因此,对于移除子操作的情况,对第二语句的对应修改可以包括,若第二语句中引用被移除的若干字段,则将这些字段的符号(原本是对应的字段序号)替换为表示异常的预定符号,例如unk(表示unknown),或者exp(表示异常)。
在另一实施例中,侵蚀操作还可以包括添加子操作,其中,随机地将其他数据表中的部分字段插入到针对目标数据表的元数据中。一般地,插入其他数据表的字段也会使得元数据中原有的字段序号发生变化。在此情况下,需要按照变化后的字段序号,修改第二语句Y中的字段序号。
在一种实现方式中,当训练样本以一定概率P1被选中进行侵蚀操作,可以针对该训练样本依次进行上述重排子操作、移除子操作和添加子操作。在另一种实现方式中,可以针对重排子操作、移除子操作和添加子操作各自设置一定的子概率。训练样本根据各个子概率,被施加以上重排子操作、移除子操作和添加子操作中的一个或多个的组合。
图4示出经过侵蚀加噪操作的训练样本的一个具体示例。该例子中的样本以图3的训练样本为基础,进行侵蚀加噪操作而得到。具体地,基于图3的原始元数据,施加了重排子操作,例如,将字段“attendance”的字段序号由原来的<col4>重排为<col0>,施加了移除子操作,例如,将字段“week”从原始元数据中移除;以及添加子操作,其中在原始元数据中添加了其他数据表的字段“venue”。如此得到了修改后的元数据S’。与之对应地,对于字段序号发生变化的字段“attendance”,在SQL语句中将表示该字段的符号修改为重排后的字段序号“<col0>”;对于被移除的字段“week”,在SQL语句中将引用该字段的符号替换为异常符号“unk”。如此得到了修改后的第二语句Y’。
在以上以各种子操作方式实现的侵蚀操作的过程中,首先对元数据进行扰动修改(添加噪声),然后对应修改第二语句,第一语句则保持不变。与之相应地,基于侵蚀操作生成的加噪样本{Ts,S’,Tt}中,源语句Ts即为原来的第一语句Q,目标元数据S’即扰动修改后的元数据,目标语句Tt即为对第二语句Y进行对应修改后的语句。如此得到的加躁样本,由于对输入(S)和输出(Y)进行了联合加噪修改,可以训练序列生成模型识别出目标数据表中与当前查询真正相关的字段,并在表中信息不足以生成完备的数据查询语句时学会“抛出异常”,从而增强序列生成模型对元数据关联性的识别能力。
根据一种实施方式,预先设定的若干种加噪操作还包括第二加噪操作,下文中又将其称为“切洗”操作。不同于对元数据(以自然语言表示)和数据查询语言两个域均进行修改的侵蚀操作,切洗操作仅作用于单语言空间中的单个序列,对该单个序列进行扰动修改,并训练序列生成模型来还原未经扰动的原始序列。
具体而言,在一个实施例中,切洗操作可以包括,根据预设的选择概率,从训练样本的第一语句和第二语句中选择一个作为选中语句,然后对选中语句进行修改,得到修改语句。对选中语句的修改,可以通过多种方式实现,例如重排选中语句中的若干词汇,删除词汇,添加不相关的词汇,等等。在一个实现方式中,可以从选中语句中识别出实体词,这些实体词包括,表名、字段名、字段值,等等。然后对这些实体词进行乱序,打乱其在选中语句中的顺序,如此得到修改语句。
图5示出经过切洗加噪操作的训练样本的一个具体示例。该例子中的样本以图3的训练样本为基础,进行切洗操作而得到。具体地,对于图3中原始的自然查询语句Q:“whichweek had an attendance of 53677”,施加了打乱实体词顺序的切洗操作,例如得到修改后的自然查询语句Q’:“which 53677had an week of attendance”。作为示例,对于图3中原始的数据查询语句Y,也施加了打乱词汇顺序的切洗操作,得到图5所示的修改后的数据查询语句Y’。需要说明的是,尽管在图5中同时示出了对自然查询语句Q和数据查询语句Y进行的修改,但是这仅仅是为了示例,如何分别对第一语句Q和第二语句Y进行修改。实践操作中,单次切洗操作,仅从第一语句Q和第二语句Y中选择一个语句,进行扰动修改。
在以上切洗操作的情况下,元数据保持不变,第一语句和第二语句之一作为选中语句,被施加扰动修改。如此,生成的加噪样本{Ts,S’,Tt}中,源语句Ts为上述修改语句,目标元数据S’即原始元数据S,目标语句Tt即为上述选中语句。如此使得,序列生成模型基于元数据和修改后的语句,预测修改前的语句,即还原出未修改的选中语句。当选中语句为第一语句Q时,序列生成模型被训练为,根据元数据和修改后的自然语句Q’,还原出原始的自然语句Q。当选中语句为第二语句Y时,序列生成模型被训练为,根据元数据和修改后的数据查询语句Y’,还原出原始的数据查询语句Y。通过切洗加噪去噪的学习,可以使得序列生成模型能够学习到各种实体词之间的关联,特别是实体特征与其成分之间的关系。例如,数字值更有可能是一个条件值,而简单名词更有可能出现在条件子句中。
以上的侵蚀操作和切洗操作,各自以预设的概率施加。因此,存在一定的概率,针对某个训练样本既施加侵蚀操作,又施加切洗操作。由于侵蚀操作不改变样本中各个要素Q,S,Y的顺序和作用,在一个实施例中,在确定施加两种加噪操作的情况下,可以设定先施加侵蚀操作,将侵蚀操作后的样本作为切洗操作的输入样本,继续施加切洗操作。
根据一种实现方式,可以将侵蚀操作、切洗操作的操作算法包装为模块,得到包含侵蚀模块和切洗模块的多个加噪模块,并设定各个加噪模块的激活概率,该激活概率符合前述施加对应加噪操作的施加概率。于是,在步骤22中,将训练样本依次输入若干加噪模块,各个加噪模块在被激活的情况下,执行对应的加噪操作。更具体的,对于侵蚀模块,可以在其中设置多个子模块,包括重排子模块,移除子模块和添加子模块。当侵蚀模块被激活的情况下,各个子模块以各自的子激活概率,施加相应的子操作。
在一种实施方式中,针对各个噪声模块,甚至各个子模块,可以动态调整其激活概率,从而调整不同噪声的样本在全量样本中的比例,防止模型对固定的噪声样式过拟合,使模型获得更好的泛化能力。
以上描述了侵蚀加噪操作和切洗加噪操作的具体操作过程。在此基础上,还可以结合其他加噪操作作为备选加噪操作,例如,一些常规的数据增强操作。如此,通过以对应概率对训练样本施加若干种加噪操作,得到不同于原始训练样本的加噪样本。
接着,在步骤24,基于加噪样本中的源语句和目标元数据形成输入序列,利用序列生成模型处理所述输入序列,得到输出序列。
在一个实施例中,将加噪样本中的源语句和目标元数据进行拼接,作为输入序列,输入到序列生成模型中。
根据一种实现方式,在预设的若干种加噪操作包括切洗操作的情况下,需考虑序列生成模型的处理模式问题。可以理解,在常规模式下,基于自然语言的查询语句Q和元数据S形成输入序列,输入到序列生成模型中,期望模型输出例如SQL语言的数据查询语句Y。然而,如前所述,在切洗操作中,以一定概率将第一语句Q作为选中语句,对其进行修改。在这样的情况下,加噪样本中的源语句为修改后的第一语句Q’,而目标语句为原始的第一语句Q,而需要留意的是,第一语句是自然语言的查询语句。这意味着,在该情况下,要求序列生成模型输出自然语言语句,作为对目标语句的预测。因此,需要序列生成模型在不同处理模式下,输出不同语言形式的语句。为了指示加噪样本需要序列生成模型输出的语言形式,在一个实施例中,可以根据加噪样本中目标语句的语言形式确定类型标识,在源语句和目标元数据基础上添加该类型标识,得到输入序列。如此,输入序列中包含类型标识,该类型标识可以指示序列生成模型利用对应的处理模式,输出所需的语言形式。
在一个实施例中,上述类型标识以前缀的形式添加到输入序列中。例如,若该类型标识取值为“2sql”,表示需要序列生成模型输出sql语句;若该类型标识取值为“2nl”,表示需要序列生成模型输出自然语言语句。
相应的,在序列生成模型处理输入序列时,会根据类型标识取值的不同,执行不同的处理过程。具体的,当类型标识取值为指示自然语言的第一标识,例如“2nl”,序列生成模型执行第一处理,得到自然语言形式的输出序列;当类型标识取值为指示数据查询语言的第二标识,例如“2sql”,序列生成模型执行第二处理,得到数据查询语言形式的输出序列。上述第一处理和第二处理,实质上是模型对不同取值的类型标识进行模型处理所得到的不同中间结果,与其他模型部分处理结果的不同组合。这在多语种自然语言翻译中已有应用。
上述序列生成模型可以采用编码器-解码器的基本架构,其中的编码器/解码器可以采用各种神经网络实现。在一个示例中,可以采用基于注意力机制的神经网络实现编解码,例如基于Transformer的编解码器。在另一示例中,可以采用基于时序的神经网络实现编解码,例如基于LSTM神经网络,或RNN神经网络的编解码器。
在一个示例中,序列生成模型可以包括指针生成网络作为其解码器。相应的,序列生成模型处理输入序列,得到输出序列的过程可以包括以下步骤。编码器基于输入序列进行编码,得到编码隐向量H。解码器依次逐个输出字符或符号,构成输出序列。其中,针对待输出序列的各个当前位置,指针生成网络根据输入序列的编码H,通常还根据之前已经输出的序列生成当前隐状态h,根据当前隐状态h,确定从目标词汇集V中选择其中各个词汇的第一概率分布{s1,s2,…s|V|},以及从输入序列中复制其中各个词的第二概率分布{i1,i2,…i|X|},其中,|V|为目标词汇集的词汇数目,|X|为输入序列X的词汇数目,第一概率分布和第二概率分布中的各个元素,可以是针对对应各个词汇的(未归一化的)概率得分。然后可以根据第一概率分布和第二概率分布两者,确定当前位置的输出词汇。
在一个例子中,上述目标词汇集V可以包括,训练语料词汇子集Vq,与原始元数据相关的词汇Vc,以及数据查询语言中的标准词汇Vs。以SQL语言为例,数据查询语言中的标准词汇Vs可以包括各种SQL可用的关键词,例如,Select,Max,Min,Where,等等。
通过以上各种具体的神经网络和处理方式,序列生成模型对输入序列进行处理,生成输出序列。
于是接着,在步骤25,根据输出序列和目标语句,更新所述序列生成模型。
具体地,目标语句作用为序列生成模型本次处理的期望输出或标注标签。因此,可以利用各种损失函数形式,例如交叉熵损失函数,基于输出序列和目标语句的差异,确定预测损失;并以预测损失最小化为目标,更新序列生成模型的模型参数,从而实现对模型的训练。
在以上过程中,以一定的概率对原始训练样本进行加噪操作,利用如此得到的加噪样本训练序列生成模型。其中,经历侵蚀操作的加噪样本,可以辅助序列生成模型更好地识别出查询目标与元数据的关联性,经历切洗操作的加噪样本,可以辅助序列生成模型更好地学习到实体与实体,实体与其成分之间的关系。因此,以上的训练过程,针对数据查询语言的特殊性构造加噪样本,增强了序列生成模型针对数据查询语言转换的适用性和鲁棒性,从而提升对数据查询语言的转换性能。
需理解,在以上描述中,主要以sql语言为例描述了数据查询语言。然而,上述方案并不局限于转换到sql语言,而是可以应用于具有类似特点的其他结构化查询语言,例如Gremlin,λ表达式,等等。
在利用加噪样本训练好序列生成模型之后,即可利用训练好的模型进行自然语言-数据查询语言的转换。在转换时,将进行查询的自然语言q和待查询的数据表的元数据s拼接为输入序列,输入到序列生成模型中。在一个实施例中,在模型支持切洗操作产生的加噪样本的情况下,还需在输入序列中添加类别标识,例如2sql。如此,序列生成模型基于输入序列,生成数据查询语言形式的输出序列,从而实现从自然语言到数据查询语言的转换。
通过测试样本的测试,利用上述加噪去噪学习训练的序列生成模型,对于数据查询语言的转换性能得到大幅提升。
根据另一方面的实施例,与图2所示的训练方法相对应的,本说明书还提供一种训练序列生成模型的装置,该装置可以部署在任何具有计算、处理能力的计算单元、平台、服务器、设备中。图6示出根据一个实施例训练序列生成模型的装置示意图。如图6所示,该装置600包括:
训练样本获取单元61,配置为获取训练样本,其中包括:通过自然语言对目标数据表进行查询的第一语句,原始元数据,以及作为数据查询语言的第二语句;所述原始元数据指示所述目标数据表的字段信息;
加噪操作单元62,配置为根据预设的概率,对所述训练样本施加预定的若干种加噪操作,其中任意一种加噪操作至少包括,对所述第一语句和第二语句之一进行修改;
加噪样本生成单元63,配置为根据加噪操作结果生成加噪样本,其中包括源语句,目标元数据和目标语句;
序列处理单元64,配置为基于所述源语句和目标元数据形成输入序列,利用所述序列生成模型处理所述输入序列,得到输出序列;
更新单元65,配置为根据所述输出序列和所述目标语句,更新所述序列生成模型。
以上装置的各个单元,可以配置用来执行图2的方法步骤,具体执行过程可以参照之前结合图2的描述,不复赘述。
根据其他方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行前述结合图2描述的训练方法。
根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,该存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现前述结合图2描述的训练方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
Claims (16)
1.一种训练序列生成模型的方法,包括:
获取训练样本,其中包括:通过自然语言对目标数据表进行查询的第一语句,原始元数据,以及作为数据查询语言的第二语句;所述原始元数据指示所述目标数据表的字段信息;
根据预设的概率,对所述训练样本施加预定的若干种加噪操作,其中任意一种加噪操作至少包括,对所述第一语句和第二语句之一进行修改;
根据加噪操作结果生成加噪样本,其中包括源语句,目标元数据和目标语句;
基于所述源语句和目标元数据形成输入序列,利用所述序列生成模型处理所述输入序列,得到输出序列;
根据所述输出序列和所述目标语句,更新所述序列生成模型。
2.根据权利要求1所述的方法,其中,对所述训练样本施加预定的若干种加噪操作,包括:
根据第一概率,对所述训练样本施加第一加噪操作,所述第一加噪操作包括:
对所述原始元数据进行第一修改,得到目标元数据;
根据所述第一修改,对应修改所述第二语句;
根据加噪操作结果生成加噪样本包括,将所述第一语句作为所述源语句,将修改后的第二语句作为目标语句。
3.根据权利要求2所述的方法,其中,所述原始元数据包括依次拼接的多个数据项,单个数据项包括,所述目标数据表的一个字段对应的字段序号和字段名;所述第二语句通过将原始数据查询语句中的字段名替换为对应的字段序号得到;
所述第一修改包括:打乱所述多个数据项中的字段序号;
对应修改所述第二语句包括:按照打乱后的字段序号,修改所述第二语句中的字段序号。
4.根据权利要求2所述的方法,其中,
所述第一修改包括:从所述原始元数据中随机删除若干字段的字段信息;
对应修改所述第二语句包括:将所述第二语句中引用所述若干字段的符号替换为表示异常的第一预定符号。
5.根据权利要求2所述的方法,其中,
所述第一修改包括:在所述原始元数据中插入来自其他数据表的新增字段;
对应修改所述第二语句包括:按照插入所述新增字段后的字段序号,修改所述第二语句中的字段序号。
6.根据权利要求1-5中任一项所述的方法,其中,对所述训练样本施加预定的若干种加噪操作,包括:
根据第二概率,对所述训练样本施加第二加噪操作,所述第二加噪操作包括:
根据预设的选择概率,从所述第一语句和第二语句中选择一个作为选中语句;
对所述选中语句进行修改,得到修改语句;
根据加噪操作结果生成加噪样本包括,将所述修改语句作为所述源语句,将所述原始元数据作为目标元数据,将所述选中语句作为目标语句。
7.根据权利要求6所述的方法,其中,对所述选中语句进行修改,得到修改语句,包括:
获取所述选中语句中的多个实体词;
打乱所述多个实体词在语句中的顺序。
8.根据权利要求1所述的方法,其中,基于所述源语句和目标元数据形成输入序列,包括:
根据所述目标语句为自然语言或是数据查询语言,确定类型标识;
在所述源语句和目标元数据基础上添加所述类型标识,得到所述输入序列。
9.根据权利要求8所述的方法,其中,利用所述序列生成模型处理所述输入序列,得到输出序列,包括:
当所述类型标识取值为指示自然语言的第一标识,所述序列生成模型执行第一处理,得到自然语言形式的输出序列;
当所述类型标识取值为指示数据查询语言的第二标识,所述序列生成模型执行第二处理,得到数据查询语言形式的输出序列。
10.根据权利要求1所述的方法,其中,所述序列生成模型包括指针生成网络;利用所述序列生成模型处理所述输入序列,得到输出序列,包括:
针对待输出序列的当前位置,所述指针生成网络根据输入序列的编码,确定从目标词汇集中选择其中各个词汇的第一概率分布,以及从输入序列中复制其中各个词的第二概率分布,根据所述第一概率分布和第二概率分布确定当前位置的输出词汇。
11.根据权利要求10所述的方法,其中,所述目标词汇集包括,训练语料词汇,与所述原始元数据相关的词汇,以及所述数据查询语言中的标准词汇。
12.根据权利要求1所述的方法,其中,根据预设的概率,对所述训练样本施加预定的若干种加噪操作,包括:
将所述训练样本输入若干加噪模块,所述若干加噪模块分别用于执行所述若干种加噪操作,且所述若干加噪模块各自的激活概率符合所述预设的概率。
13.根据权利要求1所述的方法,其中,根据所述输出序列和所述目标语句,更新所述序列生成模型,包括:
基于所述输出序列和所述目标语句的差异,确定预测损失;
以预测损失最小化为目标,更新所述序列生成模型的模型参数。
14.一种训练序列生成模型的装置,包括:
训练样本获取单元,配置为获取训练样本,其中包括:通过自然语言对目标数据表进行查询的第一语句,原始元数据,以及作为数据查询语言的第二语句;所述原始元数据指示所述目标数据表的字段信息;
加噪操作单元,配置为根据预设的概率,对所述训练样本施加预定的若干种加噪操作,其中任意一种加噪操作至少包括,对所述第一语句和第二语句之一进行修改;
加噪样本生成单元,配置为根据加噪操作结果生成加噪样本,其中包括源语句,目标元数据和目标语句;
序列处理单元,配置为基于所述源语句和目标元数据形成输入序列,利用所述序列生成模型处理所述输入序列,得到输出序列;
更新单元,配置为根据所述输出序列和所述目标语句,更新所述序列生成模型。
15.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-13中任一项所述的方法。
16.一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-13中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210800826.0A CN115168402A (zh) | 2022-07-08 | 2022-07-08 | 训练序列生成模型的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210800826.0A CN115168402A (zh) | 2022-07-08 | 2022-07-08 | 训练序列生成模型的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115168402A true CN115168402A (zh) | 2022-10-11 |
Family
ID=83492921
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210800826.0A Pending CN115168402A (zh) | 2022-07-08 | 2022-07-08 | 训练序列生成模型的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115168402A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116541752A (zh) * | 2023-07-06 | 2023-08-04 | 杭州美创科技股份有限公司 | 元数据管理方法、装置、计算机设备及存储介质 |
CN117251473A (zh) * | 2023-11-20 | 2023-12-19 | 摩斯智联科技有限公司 | 车辆数据查询分析方法、系统、装置和存储介质 |
-
2022
- 2022-07-08 CN CN202210800826.0A patent/CN115168402A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116541752A (zh) * | 2023-07-06 | 2023-08-04 | 杭州美创科技股份有限公司 | 元数据管理方法、装置、计算机设备及存储介质 |
CN116541752B (zh) * | 2023-07-06 | 2023-09-15 | 杭州美创科技股份有限公司 | 元数据管理方法、装置、计算机设备及存储介质 |
CN117251473A (zh) * | 2023-11-20 | 2023-12-19 | 摩斯智联科技有限公司 | 车辆数据查询分析方法、系统、装置和存储介质 |
CN117251473B (zh) * | 2023-11-20 | 2024-03-15 | 摩斯智联科技有限公司 | 车辆数据查询分析方法、系统、装置和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220147321A1 (en) | Multi-lingual line-of-code completion system | |
US11900261B2 (en) | Transfer learning system for automated software engineering tasks | |
CN109492113B (zh) | 一种面向软件缺陷知识的实体、关系联合抽取方法 | |
Shi et al. | Incsql: Training incremental text-to-sql parsers with non-deterministic oracles | |
US20220164626A1 (en) | Automated merge conflict resolution with transformers | |
CN115168402A (zh) | 训练序列生成模型的方法及装置 | |
US11513774B2 (en) | Multi-lingual code generation with zero-shot inference | |
CN110442880B (zh) | 一种机器翻译译文的翻译方法、装置及存储介质 | |
Levendovszky et al. | A novel approach to semi-automated evolution of dsml model transformation | |
CN113190219A (zh) | 一种基于递归神经网络模型的代码注释生成方法 | |
CN113065322B (zh) | 一种代码段注释生成方法、系统及可读存储介质 | |
CN117708282A (zh) | 一种基于大语言模型的知识问答方法及系统 | |
CN113032371A (zh) | 数据库语法分析方法、装置和计算机设备 | |
CN115203236B (zh) | 基于模板检索的文本到sql生成方法 | |
CN112148879B (zh) | 一种自动给代码打数据结构标签的计算机可读存储介质 | |
CN113609157B (zh) | 语言转换模型训练、语言转换方法、装置、设备及介质 | |
CN115688792A (zh) | 基于文档的问题生成方法、装置及服务器 | |
CN117634473B (zh) | 一种融入源信息的语法纠错早停多轮解码方法和系统 | |
CN113821198B (zh) | 一种代码补全方法、系统、存储介质及计算机程序产品 | |
US20050165599A1 (en) | Method and apparatus for generating a translation table | |
CN115017281A (zh) | 基于强化学习和知识图谱的多轮对话方法及系统 | |
Yagi et al. | Tracking Morphophonemic Transformation in Arabic Word Generation and Root Extraction. | |
CN117850754A (zh) | 一种低代码支持多平台的表达式处理和执行的方法及系统 | |
CN114675831A (zh) | 一种编程语言的编译系统及方法 | |
CN114997147A (zh) | 基于混合mask的poi地址纠错方法、装置、存储介质和设备 |
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 |