收藏 分销(赏)

基于自然语言处理的SQL语句生成研究.pdf

上传人:自信****多点 文档编号:2328455 上传时间:2024-05-28 格式:PDF 页数:4 大小:1.05MB
下载 相关 举报
基于自然语言处理的SQL语句生成研究.pdf_第1页
第1页 / 共4页
基于自然语言处理的SQL语句生成研究.pdf_第2页
第2页 / 共4页
基于自然语言处理的SQL语句生成研究.pdf_第3页
第3页 / 共4页
亲,该文档总共4页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、2023.22 科学技术创新基于自然语言处理的 SQL 语句生成研究张康林*,戴一成(公安部第三研究所,上海)引言在如今这样一个数据驱动的世界中,海量数据的存储和使用对于各种组织和企业来说至关重要,其中所涉及的关键技术是使用数据库并结合对应的结构化查询语言((structured query language,SQL)进行有关数据的查询,其作为与数据库交互的标准语言,扮演着重要角色。然而,了解数据库模式以及编写 SQL语句需要相应的技术能力,对于非专业的数据库用户来说具有一定的门槛。随着自然语言处理(natural language processing,NLP)和人工智能技术的快速发展,尤其

2、是 2023 年开始语言大模型的广泛使用,如何运用自然语言访问对应数据库,生成对应的 SQL 脚本并输出相应结果的需求日益迫切,该需求的目的是希望通过自然语言与数据库进行交互,以简化数据库操作的过程,使更多的人能够轻松地与数据库进行沟通和操作。基于自然语言处理的 SQL 语句生成已成为一个重要的研究方向。目前,自然语言转 SQL 语句(Text-to-SQL)的国内外相关研究已取得一定进展。Giordani A 等人1基于规则和启发式方法进行 SQL 语句的生成及查询,然而,由于自然语言的复杂性和多义性,基于规则的方法往往无法覆盖所有情况,并且需要大量的人工努力来创建和维护规则。Warren

3、DHD 等人2基于模板的方法使用预定义的查询模板,其中包含了常见的查询结构和语法,这些模板与自然语言查询进行匹配,并将查询参数插入到模板中以生成 SQL 语句,尽管基于模板的方法相对简单,但它们通常只适用于特定领域和查询类型,并且对于复杂的查询往往无法提供良好的支持。随着后续机器学习和深度学习的快速发展,基于机器学习和深度学习的方法在自然语言转 SQL 方面取得了显著进展,这些方法使用大规模的自然语言和SQL 查询数据进行训练,并构建模型来学习自然语言和 SQL 之间的映射关系。其中,基于神经网络的模型如序列到序列(Seq2Seq)模型和注意力机制(Attention)模型被广泛应用于该领域3

4、-6,这些模型可以自动从自然语言查询生成对应的 SQL 语句,具有更好的泛化能力和适应性。而当预训练语言模型(如 BERT、GPT 等)在自然语言处理任务中取得了显著的突破后,研究者们开始探索如何将预训练语言模型应用于自然语言转 SQL 任务中7-8,通过微调预训练模型,并引入特定的 SQL 解析器和生成器,在自然语言转 SQL 任务中取得了更好的性能。由于基于预训练模型实现 SQL 语句生成的最新研究较少,且基于国产预训练模型完成 SQL 语句生成的研究缺乏,所以本研究将使用 ChatGLM-6B 国产预训练大模型学习自然语言和 SQL 语句之间的映射关系,实现自然语言到 SQL 的转换。旨

5、在减少普通用户摘要:大数据时代下,数据的价值也随之提升,数据库作为海量数据的存储和管理工具,熟练掌握其查询语言至关重要。为了提升非专业数据库用户使用数据库的简捷度以及提高其数据库操作的效率和准确性,本研究提出了一种基于 ChatGLM 预训练模型的自然语言转 SQL 查询语句的方法,即通过分词化、词嵌入、模型训练和模型测试等流程完成文本转 SQL 研究。在由 1 020 条 SQL 查询语句构建的数据集上的实验表明,该方法的F1 指数达到 89.8%,能够满足普通用户的查询需求,促进了数据库的普及和应用。关键词:自然语言处理;SQL;ChatGLM;Text-to-SQL中图分类号院TP391

6、文献标识码院A文章编号院2096-4390渊2023冤22-0069-04通讯作者:张康林(1995-),男,硕士,研究方向:机器学习、自然语言处理。69-科学技术创新 2023.22学习和使用 SQL 的成本、提高数据库操作的效率和准确性、降低错误的产生率、促进数据库的普及和应用,进一步推动数据驱动决策和应用的发展。1研究方法1.1GLM 介绍随着大模型被广泛使用以及算力的不断发展,国内外开发出了一系列语言大模型,其中由清华大学提出的通用语言模型(General Language Model,GLM)9正在被国内各个组织和企业广泛使用。截至 2023 年,预训练语言大模型主要分为三种:一是以

7、 GPT 大模型为代表的自回归模型;二是以BERT 大模型为代表的自编码模型;三是以 T5 大模型为代表的编码-解码模型。三种类型的大模型在各自的领域上都能取得较好的效果,但上述三种预训练模型还无法在自然语言理解、条件文本生成以及非条件文本生成三个任务上都取得较好的表现,而 GLM 大模型实现了统一。GLM 预训练框架通过以下四点实现了巧妙融合:(1)拥有自编码思想,在输入文本中,随机删除连续的 tokens。(2)拥有自回归思想,顺序重建连续 tokens,在使用自回归方式预测缺失 tokens 时,模型既可以访问corrupted 文本,又可以访问之前已经被预测的 spans。(3)spa

8、n shuffling 结合了二维位置编码技术。(4)通过改变缺失 spans 的数量和长度,自回归空格填充任务可以为条件生成以及无条件生成任务预训练语言模型。1.2ChatGLM 介绍ChatGLM 是基于 GLM 框架构建的对话语言模型,开源,同时支持中英双语。其中的 ChatGLM-6B 具有 62 亿个参数,使用了和 ChatGPT 相似的技术,针对中文问答和对话进行了优化。经过约 1T 标识符的中英双语训练,辅以监督微调、反馈自助、人类反馈强化学习等技术的加持,62 亿参数的 ChatGLM-6B 在对话生成方面,已获得相当不错的效果。由于目前很多大模型需要强大的算力支持,但在计算资

9、源只有单卡的环境下,ChatGLM-6B 也能够进行部署,进行微调,并最终取得不错的效果,这也是本次研究选择该模型的重要原因之一。2研究设计此次所有实验均在系统 win10、64GB 内存、Inter酷睿 i9-10980XE CPU、NVIDIA GeForce RTX 3090的 PC 机上通过 Python3.8 版本完成。2.1数据获取为了保证模型后续能够在不同类型的数据库上顺利迁移并成功使用,本次研究需要获取三部分信息形成模型所需要学习的数据,分别是:(1)数据库的连接信息,见表 1。本次研究只针对 Mysql 数据库。表 1数据库的连接信息(2)数据库中所有表的表结构信息,见表 2

10、。表 2所需的数据库表信息(3)基于内部数据分析人员工作 3 年所积累的SQL 语句,开始对其一一收集,为后续模型需要的训练集和测试集做铺垫。为保障数据集的质量,收集过程中考虑了如下两个方面:一是保障收集的 SQL 查询语句包含大部分 SQL 关键字,比如 SELECT、DIS原TINCT、WHERE、GROUP BY、INTERSECT、EXCEPT、UNIONALL、UNION、IN、NOT IN、OR、AND、ORDERBY、LIMIT、LEFT JOIN、RIGHT JOIN、JOIN、EXISTS、LIKE、HAVING 以及嵌套查询;二是收集的 SQL 查询语句需要保证在相对应的环

11、境下运行成功,以免语句错误,从而导致模型的准确性较低。最终共收集 510条 SQL 查询语句。2.2数据预处理首先为构建高质量的训练集和测试集,考虑到自然语言的丰富表达方式,所以对于每一条 SQL 查询语句,需要整理出相对应的 2 种中文表达方式,便于模型能够学习到更加丰富的语义。此次整理全部通过人工标注的方式对 510 条 SQL 查询语句给予两种对应的中文表达,相对应的 SQL 查询语句为目标集。部分序号 连接信息 描述 1 ip 连接地址 2 host 连接端口 3 user 连接用户 4 password 连接密码 5 database 连接数据库 序号 表结构信息 描述 1 tabl

12、e 表名 2 info 表的简单中文描述 3 field 字段信息(包括字段英文名、字段中文描述、字段类型)70-2023.22 科学技术创新图 1表结构信息重建部分样例样例见表 3。表 3SQL 数据集示例然后针对训练好的模型,为方便模型读取所连接的数据库的所有表信息,需要对收集的前两种数据结构进行重新构建,最终形成 config.ymal 文件,便于使用 python 中的 yaml 模块进行快速解析。整体的结构样例见图 1。2.3构建 Text-to-SQL 模型本次研究基于 paddlepaddle 深度学习框架和ChatGLM 语言大模型构建自然语言转 SQL 模型,构建过程如下:(

13、1)对预处理完毕的数据集按照 8:2 的比例划分训练集和测试集。(2)使用 ChatGLM-6b 作为嵌入层模型,对训练集进行分词并向量化,其中人工整理的中文表达对应的向量作为模型的输入,SQL 语句对应的向量作为模型的目标输出。(3)开始进行模型的训练,ChatGLM-6b 选为需要微调的预训练模型,其中迭代次数设置为 50,优化器为 Adam,评估指标为 F1 指 数,学习 率范围0.01,0.03,0.05,0.1,0.3,0.5,0.7,使用网格搜索法进行确定,且最终确定的学习率为 0.03,训练集上的 F1 指数为 91.3%。(4)模型评估阶段,使用测试集对训练过程中保存的最优模型

14、进行评估,以确定其在未见过的数据上的性能,且测试集上的 F1 指数为 89.8%。2.4构建 web 界面为了方便用户快速简单地使用 Text-to-SQL 功能和服务,本次研究将提供 web 前端供用户进行输入数据、点击按钮与应用程序进行实时的信息交流,使用了 Python 中用于构建交互式界面的 Gradio 库,该库可以快速构建、共享和部署机器学习模型界面化工具,它提供了一个简单的接口,开发人员能够在几行代码中创建具有输入字段和输出预测的用户界面。3研究结论本研究通过对数据库连接信息、数据库表结构信息、SQL 查询语句收集,人工整理 SQL 查询语句中文表达,配置文件的构建,Text-t

15、o-SQL 模型的训练和测试以及 web 界面的设计等一系列流程,完成了此次基于自然语言处理的 SQL 语句生成研究,并能够基本满足用户的查询需求,大大减少用户学习和使用SQL 的成本。最后,本研究仅支持 MySQL 数据库并且在复杂的子查询上效果较差,下一步将针对上述问题,丰富支持的数据库类型并提升模型在复杂的子查询上效果,为用户提供更佳的使用体验。参考文献1Giordani A,Moschitti序号 SQL 语句 中文表达 查询物品信息表时间范围为 2022 年到 2023 的所有物品 id,并去重 1 select distinct 物品 id from 物品信息表 where 年份

16、between 2022 and 2023 查询2022年到2023年之间出现的所有不同物品 id 查询不同年份对应的销售量 2 select 年份,销售量 from 物品信息表 group by 年份 根据年份进行分组查询销售量和年份 查询销售量大于100小于200并根据物品大小进行排序的前五个物品名称 3 select 物品名称 from 物品信息表 where 销售量100 and 销售量200 order by 物品大小 limit 5 从物品信息表中找到销售量范围在100 到 200 之间,物体大小排名前五的物品 71-科学技术创新 2023.22A.Translating ques

17、tions to SQL queries with genera原tive parsers discriminatively reranked.In:Proc.of theCOLING 2012:Posters.Mumbai:The COLING 2012 Or原ganizing Committee,2012.401-410.2Warren DHD,Pereira FCN.An efficient easily adapt原able system for interpreting natural language queries.Computational Linguistics,1982,8

18、(3-4):110-122.3Yu T,Yasunaga M,Yang K,et al.SyntaxSQLNet:syn原taxtree networks for complex and cross-domain Text-to-SQL task C/Proceedings of EMNLP 2018.Brussels:ACL,2018:1653-1663.4Lei W,Wang W,Ma Z,et al.Re-examining the role ofschema linking in Text-to-SQLC/Proceedings ofEMNLP 2020.s.l.:ACL,2020:6

19、943-6954.5Choi D,Shin M C,Kim E,et al.RYANSQL:re原cursively applying sketch-based slot fillings for com原plex Text-to-SQL in cross-domain databases J.Com原putational Linguistics,2021,47(2):309-332.6曹合心,赵亮,李雪峰.图神经网络在 Text-to-SQL 解析中的技术研究J.计算机科学,2022,49(4):110-115.7Yin PC,Neubig G,Yih W,Riedel S.TaBERT:P

20、re原training for joint understanding of textual and tabular da原ta.In:Proc.of the 58thAnnual Meeting of the Associationfor Computational Linguistics.Association for Computa原tional Linguistics,2020.8413-8426.doi:10.18653/v1/2020.acl-main.745.8Herzig J,Nowak PK,M俟ller T,Piccinno F,EisenschlosJ.TAPAS:Wea

21、kly supervised table parsing via pre-train原ing.In:Proc.of the 58th Annual Meeting of the Associa原tion for Computational Linguistics.Association for Com原putational Linguistics,2020.4320-4333.doi:10.18653/v1/2020.acl-main.398.9Du Z,Qian Y,Liu X,et al.GLM:General LanguageModel Pretraining with Autoregr

22、essive Blank InfillingJ.2021.DOI:10.48550/arXiv.2103.10360.Research on SQL Statement GenerationBased on Natural Language ProcessingZhang Kanglin*袁Dai Yicheng(The Third Research Institute of the Ministry of Public Security,Shanghai,China)Abstract:In the era of Big data,the value of data will also inc

23、rease.As a storage and management toolfor massive data,it is crucial to master its Query language skillfully.In order to improve the simplicity ofnon professional database users using the database and improve the efficiency and accuracy of their databaseoperations,this paper proposes a natural langu

24、age to SQL query statement method based on the ChatGLM pretraining model,that is,to complete the text to SQL research through processes such as lexicalization,Wordembedding,model training and model testing.The experiment on a dataset constructed from 1 020 SQL querystatements shows that the F1 index of this method reaches 89.8%,which can meet the query needs of ordi原nary users and promote the popularization and application of databases.Key words:natural language processing;SQL;ChatGLM;Text-to-SQL72-

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 论文指导/设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服