(19)国家知识产权局
(12)发明 专利申请
(10)申请公布号
(43)申请公布日
(21)申请 号 202210456388.0
(22)申请日 2022.04.27
(71)申请人 北京理工大 学
地址 100081 北京市海淀区中关村南大街5
号
(72)发明人 杨晓春 李佳钰 王国仁 张志威
(74)专利代理 机构 北京正阳理工知识产权代理
事务所(普通 合伙) 11639
专利代理师 张利萍
(51)Int.Cl.
G06F 16/2452(2019.01)
G06F 16/22(2019.01)
G06F 16/2455(2019.01)
G06F 40/30(2020.01)
G06F 40/253(2020.01)G06N 5/02(2006.01)
G06N 20/00(2019.01)
(54)发明名称
一种基于深度学习的自然语言转化为SQL语
句的方法
(57)摘要
本发明涉及到一种基于深度学习的自然语
言转化为SQL语句的方法, 特别是使用知识蒸馏
方法的获得轻量级的模型技术, 属于数据库智能
检索、 问答系统等技术领域。 本发明提出了一种
基于深度学习的NL2SQL算法, 基于BERT预训练模
型对英文和 中文的自然语言进行编码训练得到
NL2SQL模型, 再使用知 识蒸馏方法获得轻量级的
NL2SQL模型, 根据提供的NL2SQL任务数据集训练
模型, 输入自然语言问题后即可推理出对应的
SQL语句; 本发明能够处理中文和英文NL2SQL任
务; 本发明减小模型的计算资源消耗, 提高推理
速度。
权利要求书1页 说明书4页
CN 114880347 A
2022.08.09
CN 114880347 A
1.一种基于深度学习的自然语言转化为SQL语句的方法, 其特征在于该方法的步骤包
括:
第一步, 根据待查询的数据表的名称获得 数据表在查询数据库中的数据表所有列名;
第二步, 将 自然语言文本和第一步得到的数据表所有列名输入到NL2SQL模型中, 得到
自然语言文本对应的SQ L查询语句;
第三步, 根据第二 步得到的SQ L查询语句在查询数据库中进行查询, 得到查询结果。
2.根据权利要求1所述的一种基于深度学习的自然语言转化为SQL语句的方法, 其特征
在于:
所述的第二 步中, NL2SQL模型的获取 方法为:
(1)基于英文和中文数据集将 自然语言文本和数据表所有列名作为输入, 使用BERT预
训练模型进行编码, 提取自然语言文本的语义信息和语法特 征;
(2)使用类别标识符, 在模型编码器的输入中对列的属性分为TEXT和REAL两类, 将类别
标识符通过模型编码器后对应的向量作为列的表示;
(3)使用全局信息编码标识符[CLS], 通过注意力机制来对步骤(2)中列的表示进行增
强;
(4)根据SQL语句固定的语法结构将步骤(1)得到的自然语言文本的语义信息和语法特
征以及步骤(3)得到的增强后的列的表示分为八个子任务, 对把八个子任务进 行训练, 得到
基于BERT的N L2SQL模型;
(5)将步骤(4)得到的基于BERT的N L2SQL模型作为教师模型训练学生模型;
(6)使用知识蒸馏方法将设定层数的教师模型中的知识迁移到设定层数的学生模型
中;
(7)结合真实的SQL标签, 使用教师退火策略增强学生模型的知识蒸馏效果, 得到一个
轻量级的N L2SQL模型。
3.根据权利要求2所述的一种基于深度学习的自然语言转化为SQL语句的方法, 其特征
在于:
八个子任务分别为选择列数量预测子任务、 选择列 预测子任务、 聚合函数预测子任务、
条件列的数量和连接符预测子任务、 条件列预测子任务、 条件间连接符预测子任务、 条件值
预测子任务、 条件列和条件值匹配子任务。
4.根据权利要求1 ‑3任一所述的一种基于深度学习的自然语言转化为SQL语句的方法,
其特征在于:
使用知识蒸馏方法将十二层的教师模型中的知识迁移到设定层数的学生模型中。
5.根据权利要求1 ‑3任一所述的一种基于深度学习的自然语言转化为SQL语句的方法,
其特征在于:
使用知识蒸馏方法将设定层数的教师模型中的知识迁移到四层的学生模型中。
6.根据权利要求5所述的一种基于深度学习的自然语言转化为SQL语句的方法, 其特征
在于:
使用知识蒸馏方法将设定 十二层的教师模型中的知识迁移到四层的学生模型中。权 利 要 求 书 1/1 页
2
CN 114880347 A
2一种基于深度学习的 自然语言转化为SQL语句的方 法
技术领域
[0001]本发明涉及到一种基于深度学习的自然语言转化为SQL语句的方法, 特别是使用
知识蒸馏方法的获得 轻量级的模型技 术, 属于数据库智能检索、 问答系统等 技术领域。
背景技术
[0002]在现实生活中, 人们在工作生活过程中通常伴随着海量的数据的产生, 例如档案
管理、 网络购物、 银行业务等等。 在这过程中产生大量结构化和半结构化的数据, 一般通过
使用关系型数据库来有效的存储管理并利用这些数据。 结构化查询语言SQL(Structured
Query Language)是一个通用的、 功能性极强的数据库 操作语言。 因此查询关系型数据库中
的数据的过程中通常需要通过使用SQL查询语 言来进行交互。 但使用SQL查询需要用户预先
学习数据库系统和SQL语法的相关专 业知识, 对于非专 业的人员来说, 学习具有门槛和一定
难度。 随着数据库技术以及人工智能技术在日常工作生活中越来越广泛的应用, 人们希望
通过自然语言实现对数据库的智能交互的需求越来越迫切。 NL2SQL(Natural Language to
SQL)应运而生, 顾名思义, 它是将自然语 言转化为可执行的结构化查询语句。 其目的就是使
那些没有 学习过数据库知识的用户也能够自如地使用数据库。 用户可以用自然语言的表达
形式查询数据库获得自己想要的数据, 而不必掌握相关的SQL语言的文法规则和数据库知
识。 与使用传 统的SQL查询语言相比, 这种方法更适合广大的普通用户, 使用NL2SQL技术能
够改善人机交 互的容易程度, 同时也能大 大提升数据库系统的实用性和易用性。
[0003]近年来随着深度学习技术的发展, 其在自然语言处理领域中得到了广泛应用, 并
通过实验证实了在NL2SQL任务中取得了较大的进展。 模型的创新和改进 大大提高了机器的
理解能力。 但目前深度学习的方法仍面临着一些挑战, 一是深度学习方法的核心问题是它
们需要大量的训练数据才能提供准确的翻译。 编制和标注这些训练数据的成本非常昂贵,
因为它通常需要人工用相应的SQL查询来注释自然语言示例 。 且标注需要有相关专业知识
的人来标注, 自然语言标注成本较高, 这也造成了研究 的数据集存在缺口, 尤其是有关中文
的NL2SQL的研究并不深入, 缺少数据质量高的开源中文数据集。 目前较多人利用的开源数
据集仅有中文CSpider和 追一科技在一次挑战赛发布的中文TableQA数据集。 究其原因, 主
要还是数据集的前期收集工作需要花费大量专 业人员手动的编辑和标注数据处理, 费时费
力。 现阶段对NL2SQL任务的研究大部分基于英文的数据集, 与之相比中文的数据集研究是
近几年才开始, 而且由于中文的语法表达较英文更加丰富和多样, 针对中文的NL2SQL研究
更为复杂。
[0004]另一方面, 诸如BERT等预训练的语言模型, 已经大大改善了许多 自然语言处理任
务的性能。 然而, 预训练的语 言模型通常计算 成本很高, 所以很难在资源受限的设备上有效
地执行它们。
[0005]X‑SQL由微软Dynamic s 365AI提出, 同时也是当前WikiSQL数据集上表现最佳的解
决方案, 在逻辑形式准确度和执行精度准确度分别达到了86.0%和91.8%。 该模型采用任
务解耦的思路。 模型主要为三层: 编 码器、 上下文增强层和输出层, 以下具体介绍各部 分, 第说 明 书 1/4 页
3
CN 114880347 A
3
专利 一种基于深度学习的自然语言转化为SQL语句的方法
文档预览
中文文档
6 页
50 下载
1000 浏览
0 评论
309 收藏
3.0分
温馨提示:本文档共6页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 人生无常 于 2024-03-18 00:10:20上传分享