CN114880347A - 一种基于深度学习的自然语言转化为sql语句的方法 - Google Patents
一种基于深度学习的自然语言转化为sql语句的方法 Download PDFInfo
- Publication number
- CN114880347A CN114880347A CN202210456388.0A CN202210456388A CN114880347A CN 114880347 A CN114880347 A CN 114880347A CN 202210456388 A CN202210456388 A CN 202210456388A CN 114880347 A CN114880347 A CN 114880347A
- Authority
- CN
- China
- Prior art keywords
- model
- natural language
- nl2sql
- column
- sql
- 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
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
- 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
- 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/2455—Query execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/253—Grammatical analysis; Style critique
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Evolutionary Computation (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Machine Translation (AREA)
Abstract
本发明涉及到一种基于深度学习的自然语言转化为SQL语句的方法,特别是使用知识蒸馏方法的获得轻量级的模型技术,属于数据库智能检索、问答系统等技术领域。本发明提出了一种基于深度学习的NL2SQL算法,基于BERT预训练模型对英文和中文的自然语言进行编码训练得到NL2SQL模型,再使用知识蒸馏方法获得轻量级的NL2SQL模型,根据提供的NL2SQL任务数据集训练模型,输入自然语言问题后即可推理出对应的SQL语句;本发明能够处理中文和英文NL2SQL任务;本发明减小模型的计算资源消耗,提高推理速度。
Description
技术领域
本发明涉及到一种基于深度学习的自然语言转化为SQL语句的方法,特别是使用知识蒸馏方法的获得轻量级的模型技术,属于数据库智能检索、问答系统等技术领域。
背景技术
在现实生活中,人们在工作生活过程中通常伴随着海量的数据的产生,例如档案管理、网络购物、银行业务等等。在这过程中产生大量结构化和半结构化的数据,一般通过使用关系型数据库来有效的存储管理并利用这些数据。结构化查询语言SQL(StructuredQuery Language)是一个通用的、功能性极强的数据库操作语言。因此查询关系型数据库中的数据的过程中通常需要通过使用SQL查询语言来进行交互。但使用SQL查询需要用户预先学习数据库系统和SQL语法的相关专业知识,对于非专业的人员来说,学习具有门槛和一定难度。随着数据库技术以及人工智能技术在日常工作生活中越来越广泛的应用,人们希望通过自然语言实现对数据库的智能交互的需求越来越迫切。NL2SQL(Natural Language toSQL)应运而生,顾名思义,它是将自然语言转化为可执行的结构化查询语句。其目的就是使那些没有学习过数据库知识的用户也能够自如地使用数据库。用户可以用自然语言的表达形式查询数据库获得自己想要的数据,而不必掌握相关的SQL语言的文法规则和数据库知识。与使用传统的SQL查询语言相比,这种方法更适合广大的普通用户,使用NL2SQL技术能够改善人机交互的容易程度,同时也能大大提升数据库系统的实用性和易用性。
近年来随着深度学习技术的发展,其在自然语言处理领域中得到了广泛应用,并通过实验证实了在NL2SQL任务中取得了较大的进展。模型的创新和改进大大提高了机器的理解能力。但目前深度学习的方法仍面临着一些挑战,一是深度学习方法的核心问题是它们需要大量的训练数据才能提供准确的翻译。编制和标注这些训练数据的成本非常昂贵,因为它通常需要人工用相应的SQL查询来注释自然语言示例。且标注需要有相关专业知识的人来标注,自然语言标注成本较高,这也造成了研究的数据集存在缺口,尤其是有关中文的NL2SQL的研究并不深入,缺少数据质量高的开源中文数据集。目前较多人利用的开源数据集仅有中文CSpider和追一科技在一次挑战赛发布的中文TableQA数据集。究其原因,主要还是数据集的前期收集工作需要花费大量专业人员手动的编辑和标注数据处理,费时费力。现阶段对NL2SQL任务的研究大部分基于英文的数据集,与之相比中文的数据集研究是近几年才开始,而且由于中文的语法表达较英文更加丰富和多样,针对中文的NL2SQL研究更为复杂。
另一方面,诸如BERT等预训练的语言模型,已经大大改善了许多自然语言处理任务的性能。然而,预训练的语言模型通常计算成本很高,所以很难在资源受限的设备上有效地执行它们。
X-SQL由微软Dynamics 365AI提出,同时也是当前WikiSQL数据集上表现最佳的解决方案,在逻辑形式准确度和执行精度准确度分别达到了86.0%和91.8%。该模型采用任务解耦的思路。模型主要为三层:编码器、上下文增强层和输出层,以下具体介绍各部分,第一部分是编码层,X-SQL使用了大型NLP预训练模型MT-DNN作为encoder层,作者的解释是因为MT-DNN模型在NLP的众多其它下游迁移任务上表现比BERT更好。在encoder层上X-SQL使用了全新的构造输入,其将自然语言查询语句和查询表格中所对应的所有列名以[SEP]这个token作为间隔进行拼接来共同作为模型的输入部分,并给每个表头序列前添加了[EMPTY]空列标识符作为列预测的embedding的对应位置,模型还将原本BERT中只有0和1两种情况的segment embedding拓展为type embedding,包含自然语言查询问题,数值,类别和空值4种类型。X-SQL将BERT中的[CLS]改名为[CTX],来强调输入构造上引用信息的增加。第二部分中间层作为上下文增强层将各列名所对应的输出向量整合进[CTX]得到一个列向量。设计该编码其的目的是为了在初始序列编码器的基础上,通过融入全局上下文的标识符[CTX]增强数据列的表示,通过利用注意力机制,获得融入上下文表示的数据列向量输出。第三部分的输出层将NL2SQL任务划分为6个子任务,分别是W-NUM代表条件个数预测,W-COL代表条件选择列预测,W-OP代表条件运算符预测,W-VAL代表条件值预测,S-COL代表查询目标列预测,S-AGG代表査询聚合操作预测。
He P提出的X-SQL算法的主要缺陷如下:
(1)算法仅针对英文WikiSQL数据集,只能解决简单的SQL语句生成,只选择单列的情况,条件子句中只能处理单一的AND或者OR的情况;
(2)X-SQL仅能有效处理英文的NL2SQL任务,对中文NL2SQL任务的准确率较低;
(3)X-SQL使用了大型NLP预训练模型MT-DNN作为编码器,训练时间长,模型计算消耗的资源大,推理速度不够快速,算法的时间复杂度和空间复杂度有待提升。
发明内容
本发明的技术解决问题是:克服现有技术的不足,提出一种基于深度学习的自然语言转化为SQL语句的方法,该方法通过知识蒸馏等方法,在不影响模型性能的前提下,提升模型速度,降低推理时延,最终形成一个轻量级的NL2SQL模型,该方法为一种高效的处理方法对数据库智能检索是至关重要的,针对现有的处理英文NL2SQL任务的X-SQL算法的不足之处,提出了一种基于深度学习的中英文NL2SQL算法,由于本发明使用知识蒸馏方法对大型预训练模型的模型进行压缩,所以本发明相较于现有技术,不仅模型的计算资源消耗更小,而且提升了模型的推理速度,改善模型的实用性。NL2SQL任务的目的是自动将自然语言表达的查询转化为机器可执行的SQL语句,将NL2SQL任务定义为在给定数据库或表的前提下,根据用户输入的自然语言表达的问题,生成相应的SQL语句。数学描述如下:
令Q表示用户的自然语言提问,T表示与问题相关的数据库或表,R表示其对应的SQL语句,NL2SQL语句的任务可以表述为:对于每一组独立的(Q,T,R),将(Q,T)映射到对应的R,NL2SQL任务的输入是自然语言查询语句Q和需要查询的数据库表T,输出是与自然语言查询语句对应的SQL语句R。
本发明的技术解决方案是:
一种基于深度学习的自然语言转化为SQL语句的方法,该方法的步骤包括:
第一步,根据待查询的数据表的名称获得数据表在查询数据库中的数据表所有列名;
第二步,将自然语言文本和第一步得到的数据表所有列名输入到NL2SQL模型中,得到自然语言文本对应的SQL查询语句;
第三步,根据第二步得到的SQL查询语句在查询数据库中进行查询,得到查询结果。
所述的第二步中,NL2SQL模型的获取方法为:
(1)基于英文和中文数据集将自然语言文本和数据表所有列名作为输入,使用BERT预训练模型进行编码,提取自然语言文本的语义信息和语法特征;
(2)使用类别标识符,在模型编码器的输入中对列的属性分为TEXT和REAL两类,将类别标识符通过模型编码器后对应的向量作为列的表示;
(3)使用全局信息编码标识符[CLS],通过注意力机制来对步骤(2)中列的表示进行增强;
(4)根据SQL语句固定的语法结构将步骤(1)得到的自然语言文本的语义信息和语法特征以及步骤(3)得到的增强后的列的表示分为八个子任务,对把八个子任务进行训练,得到基于BERT的NL2SQL模型,八个子任务分别为选择列数量预测子任务、选择列预测子任务、聚合函数预测子任务、条件列的数量和连接符预测子任务、条件列预测子任务、条件间连接符预测子任务、条件值预测子任务、条件列和条件值匹配子任务;
(5)将步骤(4)得到的基于BERT的NL2SQL模型作为教师模型训练学生模型;
(6)使用知识蒸馏方法将设定层数优选十二层的教师模型中的知识迁移到设定层数优选四层的学生模型中;
(7)结合真实的SQL标签,使用教师退火策略增强学生模型的知识蒸馏效果,得到一个轻量级的NL2SQL模型。
有益效果
(1)本发明提出的一种基于深度学习的自然语言转化为SQL语句的方法,该方法通过将自然语言文本以及对应的列名输入到NL2SQL模型中获得,得到对应的SQL查询语句,由于得到的SQL查询语句是数据库中所使用的语言,因此将得到的SQL查询语句在数据库中进行查询获得查询结果,该方法简单明了快捷;
(2)本发明提出的一种基于深度学习的自然语言转化为SQL语句的方法,该方法通过基于BERT预训练模型对英文和中文的自然语言进行编码训练得到NL2SQL模型,再使用知识蒸馏方法获得轻量级的NL2SQL模型,再根据提供的NL2SQL任务数据集训练模型,输入自然语言问题后即可推理出对应的SQL语句,且该方法能够同时处理中文和英文NL2SQL任务;
(3)本发明提出的一种基于深度学习的自然语言转化为SQL语句的方法,该方法通过将训练的任务分为八个子任务,并有针对性的进行训练,使得得到的基于BERT的NL2SQL模型所消耗的计算资源小,提高了计算速度和获取结果的效率及准确性;
(4)本发明提出的一种基于深度学习的自然语言转化为SQL语句的方法,该方法通过知识蒸馏等方法,在不影响模型性能的前提下,提升模型速度,降低推理时延,最终形成一个轻量级的NL2SQL模型;
(5)本发明提出的一种基于深度学习的自然语言转化为SQL语句的方法,该方法能够解决现有的处理英文NL2SQL任务的X-SQL算法的不足之处;
(6)本发明的提出的一种基于深度学习的自然语言转化为SQL语句的方法,该方法通过使用知识蒸馏方法对大型预训练模型的模型进行压缩。
具体实施方式
下面结合实施例对本发明做进一步说明。
一种基于深度学习的自然语言转化为SQL语句的方法,该方法的步骤包括:
第一步,根据待查询的数据表的名称获得数据表在查询数据库中的数据表所有列名;
第二步,将自然语言文本和第一步得到的数据表所有列名输入到NL2SQL模型中,得到自然语言文本对应的SQL查询语句;
第三步,根据第二步得到的SQL查询语句在查询数据库中进行查询,得到查询结果。
所述的第二步中,NL2SQL模型的获取方法为:
(1)基于英文和中文数据集将自然语言文本和数据表所有列名作为输入,使用BERT预训练模型进行编码,提取自然语言文本的语义信息和语法特征;
(2)使用类别标识符,在模型编码器的输入中对列的属性分为TEXT和REAL两类,将类别标识符通过模型编码器后对应的向量作为列的表示;
(3)使用全局信息编码标识符[CLS],通过注意力机制来对步骤(2)中列的表示进行增强;
(4)根据SQL语句固定的语法结构将步骤(1)得到的自然语言文本的语义信息和语法特征以及步骤(3)得到的增强后的列的表示分为八个子任务,对把八个子任务进行训练,得到基于BERT的NL2SQL模型,八个子任务分别为选择列数量预测子任务、选择列预测子任务、聚合函数预测子任务、条件列的数量和连接符预测子任务、条件列预测子任务、条件间连接符预测子任务、条件值预测子任务、条件列和条件值匹配子任务;
(5)将步骤(4)得到的基于BERT的NL2SQL模型作为教师模型训练学生模型;
(6)使用知识蒸馏方法将设定层数优选十二层的教师模型中的知识迁移到设定层数优选四层的学生模型中;
(7)结合真实的SQL标签,使用教师退火策略增强学生模型的知识蒸馏效果,得到一个轻量级的NL2SQL模型。
实施例
给定一个待查询的数据表T“主要城市成交信息一览表”和自然语言查询问题Q“近四周成交量小于3574套并且环比低于69.7%的城市有几个”,基于深度学习的中英NL2SQL模型算法的具体实施细节如下:
获取目标自然语言查询问题文本和数据表的列名,数据示例如下:“[CLS]近四周成交量小于3574套并且环比低于69.7%的城市有几个[SEP]城市[SEP]近4周周均成交[SEP]环比[SEP]”;
通过NL2SQL模型得到SQL语句如下:SELECT COUNT城市FROM TABLE WHERE环比<69.7AND近4周周均成交<3574;
得到的SQL查询语句在查询数据库中进行查询,得到查询结果如下:24。
Claims (6)
1.一种基于深度学习的自然语言转化为SQL语句的方法,其特征在于该方法的步骤包括:
第一步,根据待查询的数据表的名称获得数据表在查询数据库中的数据表所有列名;
第二步,将自然语言文本和第一步得到的数据表所有列名输入到NL2SQL模型中,得到自然语言文本对应的SQL查询语句;
第三步,根据第二步得到的SQL查询语句在查询数据库中进行查询,得到查询结果。
2.根据权利要求1所述的一种基于深度学习的自然语言转化为SQL语句的方法,其特征在于:
所述的第二步中,NL2SQL模型的获取方法为:
(1)基于英文和中文数据集将自然语言文本和数据表所有列名作为输入,使用BERT预训练模型进行编码,提取自然语言文本的语义信息和语法特征;
(2)使用类别标识符,在模型编码器的输入中对列的属性分为TEXT和REAL两类,将类别标识符通过模型编码器后对应的向量作为列的表示;
(3)使用全局信息编码标识符[CLS],通过注意力机制来对步骤(2)中列的表示进行增强;
(4)根据SQL语句固定的语法结构将步骤(1)得到的自然语言文本的语义信息和语法特征以及步骤(3)得到的增强后的列的表示分为八个子任务,对把八个子任务进行训练,得到基于BERT的NL2SQL模型;
(5)将步骤(4)得到的基于BERT的NL2SQL模型作为教师模型训练学生模型;
(6)使用知识蒸馏方法将设定层数的教师模型中的知识迁移到设定层数的学生模型中;
(7)结合真实的SQL标签,使用教师退火策略增强学生模型的知识蒸馏效果,得到一个轻量级的NL2SQL模型。
3.根据权利要求2所述的一种基于深度学习的自然语言转化为SQL语句的方法,其特征在于:
八个子任务分别为选择列数量预测子任务、选择列预测子任务、聚合函数预测子任务、条件列的数量和连接符预测子任务、条件列预测子任务、条件间连接符预测子任务、条件值预测子任务、条件列和条件值匹配子任务。
4.根据权利要求1-3任一所述的一种基于深度学习的自然语言转化为SQL语句的方法,其特征在于:
使用知识蒸馏方法将十二层的教师模型中的知识迁移到设定层数的学生模型中。
5.根据权利要求1-3任一所述的一种基于深度学习的自然语言转化为SQL语句的方法,其特征在于:
使用知识蒸馏方法将设定层数的教师模型中的知识迁移到四层的学生模型中。
6.根据权利要求5所述的一种基于深度学习的自然语言转化为SQL语句的方法,其特征在于:
使用知识蒸馏方法将设定十二层的教师模型中的知识迁移到四层的学生模型中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210456388.0A CN114880347A (zh) | 2022-04-27 | 2022-04-27 | 一种基于深度学习的自然语言转化为sql语句的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210456388.0A CN114880347A (zh) | 2022-04-27 | 2022-04-27 | 一种基于深度学习的自然语言转化为sql语句的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114880347A true CN114880347A (zh) | 2022-08-09 |
Family
ID=82672321
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210456388.0A Pending CN114880347A (zh) | 2022-04-27 | 2022-04-27 | 一种基于深度学习的自然语言转化为sql语句的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114880347A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116467347A (zh) * | 2023-03-22 | 2023-07-21 | 天云融创数据科技(北京)有限公司 | 一种股票问答方法 |
CN117787922A (zh) * | 2024-02-27 | 2024-03-29 | 东亚银行(中国)有限公司 | 基于蒸馏学习和自动学习的反洗钱业务处理方法、系统、设备和介质 |
CN117787922B (zh) * | 2024-02-27 | 2024-05-31 | 东亚银行(中国)有限公司 | 基于蒸馏学习和自动学习的反洗钱业务处理方法、系统、设备和介质 |
-
2022
- 2022-04-27 CN CN202210456388.0A patent/CN114880347A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116467347A (zh) * | 2023-03-22 | 2023-07-21 | 天云融创数据科技(北京)有限公司 | 一种股票问答方法 |
CN116467347B (zh) * | 2023-03-22 | 2024-04-30 | 天云融创数据科技(北京)有限公司 | 一种股票问答方法 |
CN117787922A (zh) * | 2024-02-27 | 2024-03-29 | 东亚银行(中国)有限公司 | 基于蒸馏学习和自动学习的反洗钱业务处理方法、系统、设备和介质 |
CN117787922B (zh) * | 2024-02-27 | 2024-05-31 | 东亚银行(中国)有限公司 | 基于蒸馏学习和自动学习的反洗钱业务处理方法、系统、设备和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110110054B (zh) | 一种基于深度学习的从非结构化文本中获取问答对的方法 | |
CN104361127B (zh) | 基于领域本体和模板逻辑的多语种问答接口快速构成方法 | |
CN110287494A (zh) | 一种基于深度学习bert算法的短文本相似匹配的方法 | |
CN112860908A (zh) | 基于多源异构电力设备数据的知识图谱自动化构建方法 | |
CN111930906A (zh) | 基于语义块的知识图谱问答方法及装置 | |
CN110188348A (zh) | 一种基于深度神经网络的中文语言处理模型及方法 | |
CN109684449A (zh) | 一种基于注意力机制的自然语言语义表征方法 | |
CN112364132A (zh) | 基于依存句法的相似度计算模型和系统及搭建系统的方法 | |
CN113946684A (zh) | 电力基建知识图谱构建方法 | |
CN109766546A (zh) | 一种基于神经网络的自然语言推理方法 | |
CN114880347A (zh) | 一种基于深度学习的自然语言转化为sql语句的方法 | |
Hu | Research and implementation of railway technical specification question answering system based on deep learning | |
Xu et al. | Enabling language representation with knowledge graph and structured semantic information | |
Xie et al. | Research and implementation of automatic question answering system based on ontology | |
CN111259106A (zh) | 一种结合神经网络和特征演算的关系抽取方法 | |
CN113010676B (zh) | 一种文本知识提取方法、装置及自然语言推断系统 | |
CN115545038A (zh) | 一种优化网格标签的方面情感分析方法 | |
CN115203236A (zh) | 基于模板检索的文本到sql生成方法 | |
Zhang | Research on the optimizing method of question answering system in natural language processing | |
Xu | Multi-region English translation synchronization mechanism driven by big data | |
Zhou et al. | Challenges and Future Development of Question Answering Systems in the Construction Industry | |
Yang et al. | Applications research of machine learning algorithm in translation system | |
Hou et al. | Intelligent Question Answering System Based on Knowledge Graph of Beijing Opera | |
Yang et al. | Analysis of AI MT based on fuzzy algorithm | |
Guo et al. | A review of the development and application of natural language processing |
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 |