将自然语言语句转换为SQL语句的方法、设备及介质与流程
- 国知局
- 2024-08-22 14:21:03
本申请属于大数据,具体而言涉及一种将自然语言语句转换为sql语句的方法、设备以及计算机可读存储介质。
背景技术:
1、大数据时代的到来,数据库技术成为重要的基建应用,帮助存储海量数据,对数据进行高效的查询和处理分析。数据库结构化查询语言(structured query language,以下简称sql)是用来定义和操作数据库数据的编程语言,是与数据库进行交互的重要工具。但是sql的语法复杂,需要专业人员经过学习后才能够正确使用,导致了数据库不能够被非数据库专业人员所使用,影响了日常生活中的数据使用效率,阻碍了大数据技术在各行各业的普及使用。
2、自然语言转sql技术是自然语言处理重要的研究方向之一,主要研究如何将自然语言转换成对应的sql,降低数据库的使用门槛。自然语言转sql技术对自然语言理解和代码生成能力要求很高,导致传统方法的准确率不够高。随着大语言模型的出现,其强大的语言理解和生成能力,使得基于大语言模型的自然语言转sql的准确率大幅度提升,让大数据技术真正普惠应用成为可能。
3、现有大语言模型具备了一定将自然语言转换为sql语句的能力,但是通常转换后的sql出现语法错误的概率较大,以致不能够被sql执行程序正确执行。
技术实现思路
1、鉴于上述的分析,本发明实施例旨在提供一种将自然语言语句转换为sql语句的方法、设备以及计算机可读存储介质,用以解决现有将自然语言转换为sql语句后容易出现语法错误,不能够被sql执行程序正确执行的问题。
2、本申请的一个方面,提供了一种将自然语言语句转换为sql语句的方法,所述方法包括:
3、获取输入的待转换的自然语言语句;
4、将所述自然语言语句输入至自然语言转sql大语言模型中,生成转换后的sql语句;
5、将所述转换后的sql语句输入至sql执行程序;
6、如果sql执行失败,则将sql执行程序输出的语法错误信息、所述自然语言语句以及所述转换后的sql语句输入至所述自然语言转sql大语言模型中,得到纠正后的sql语句;
7、其中,所述自然语言转sql大语言模型采用如下方式训练得到:
8、创建自然语言转sql训练数据;
9、创建sql纠正训练数据;
10、将所述自然语言转sql训练数据以及所述sql纠正训练数据进行合并,使用大语言模型进行训练,得到自然语言转sql大语言模型。
11、可选地,在所述将所述转换后的sql语句输入至sql执行程序之后还包括:
12、如果sql执行成功,则输出初步验证的sql语句。
13、可选地,所述创建自然语言转sql训练数据包括:
14、获取自然语言语句以及转换后正确的sql语句;
15、将自然语言语句作为输入,将转换后正确的sql语句作为输出,构成自然语言转sql训练数据,以便采用所述自然语言转sql训练数据对自然语言转sql大语言模型进行训练。
16、可选地,所述采用所述自然语言转sql训练数据对自然语言转sql大语言模型进行训练包括:
17、采用大语言模型对所述自然语言转sql大语言模型进行微调;
18、微调方法为采用全参微调方法或lora微调方法;
19、损失函数l使用交叉熵,
20、其中,n表示训练样本量,m表示词表大小,yic表示样本i的真实类别,如果真实类别属于c取1,否则取0,pic表示模型预测样本i属于c的概率。
21、可选地,所述创建sql纠正训练数据包括:
22、将自然语言语句输入自然语言转sql大语言模型中,得到转换后的sql语句;
23、将所述转换后的sql语句输入至sql执行程序,获取执行错误的sql语句的语法错误信息,得到纠正后的sql语句;
24、将执行错误的sql语句、语法错误信息以及自然语言语句作为输入,转换后正确的sql语句作为输出,构成sql纠正训练数据,以便采用所述sql纠正训练数据对自然语言转sql大语言模型进行训练。
25、可选地,所述采用所述sql纠正训练数据对自然语言转sql大语言模型进行训练包括:
26、采用大语言模型对所述自然语言转sql大语言模型进行微调;
27、微调方法为采用全参微调方法或lora微调方法;
28、损失函数l使用交叉熵,
29、其中,n表示训练样本量,m表示词表大小,yic表示样本i的真实类别,如果真实类别属于c取1,否则取0,pic表示模型预测样本i属于c的概率。
30、可选地,在所述输出初步验证的sql语句之后还包括:
31、对所述初步验证的sql语句进行人工验证,得到正确的sql语句;
32、将所述自然语言语句、以及正确的sql语句输入至所述自然语言转sql大语言模型中作为所述自然语言转sql训练数据的新增数据源。
33、可选地,所述得到纠正后的sql语句之后还包括:
34、将所述纠正后的sql语句输入至sql执行程序;
35、如果sql执行失败,则将sql执行程序输出的语法错误信息、所述自然语言语句以及所述转换后的sql语句输入至所述自然语言转sql大语言模型中,直至生成sql执行成功的sql语句。
36、本申请的第二方面,提供了一种将自然语言语句转换为sql语句的设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时实现上述任一种所述的将自然语言语句转换为sql语句的方法。
37、本申请的第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一种所述的将自然语言语句转换为sql语句的方法。
38、本申请提供的将自然语言语句转换为sql语句的方法,获取输入的待转换的自然语言语句;将自然语言语句输入至自然语言转sql大语言模型中,生成转换后的sql语句;将转换后的sql语句输入至sql执行程序;如果sql执行失败,则将sql执行程序输出的语法错误信息、所述自然语言语句以及所述转换后的sql语句输入至所述自然语言转sql大语言模型中,得到纠正后的sql语句。本申请通过引入生成sql与纠正sql的多轮转换机制,有效缓解了转换后sql存在语法错误的问题,从而提升了自然语言转sql的整体效果。
39、此外,本申请还提供了具有上述技术效果的将自然语言语句转换为sql语句的设备以及计算机可读存储介质。
技术特征:1.一种将自然语言语句转换为sql语句的方法,其特征在于,所述方法包括:
2.根据权利要求1所述的将自然语言语句转换为sql语句的方法,其特征在于,在所述将所述转换后的sql语句输入至sql执行程序之后还包括:
3.根据权利要求1所述的将自然语言语句转换为sql语句的方法,其特征在于,所述创建自然语言转sql训练数据包括:
4.根据权利要求3所述的将自然语言语句转换为sql语句的方法,其特征在于,所述采用所述自然语言转sql训练数据对自然语言转sql大语言模型进行训练包括:
5.根据权利要求1至4任一项所述的将自然语言语句转换为sql语句的方法,其特征在于,所述创建sql纠正训练数据包括:
6.根据权利要求5所述的将自然语言语句转换为sql语句的方法,其特征在于,所述采用所述sql纠正训练数据对自然语言转sql大语言模型进行训练包括:
7.根据权利要求2所述的将自然语言语句转换为sql语句的方法,其特征在于,在所述输出初步验证的sql语句之后还包括:
8.根据权利要求1至4任一项所述的将自然语言语句转换为sql语句的方法,其特征在于,所述得到纠正后的sql语句之后还包括:
9.一种将自然语言语句转换为sql语句的设备,其特征在于,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时实现根据权利要求1-8任一项所述的将自然语言语句转换为sql语句的方法。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序被处理器执行时实现根据权利要求1-8任一项所述的将自然语言语句转换为sql语句的方法。
技术总结本申请涉及一种将自然语言语句转换为SQL语句的方法、设备以及计算机可读存储介质,属于大数据技术领域,解决了现有技术中将自然语言转换为SQL语句后容易出现语法错误,不能够被SQL执行程序正确执行的问题。本申请获取输入的待转换的自然语言语句;将所述自然语言语句输入至自然语言转SQL大语言模型中,生成转换后的SQL语句;将所述转换后的SQL语句输入至SQL执行程序;如果SQL执行失败,则将SQL执行程序输出的语法错误信息、所述自然语言语句以及所述转换后的SQL语句输入至所述自然语言转SQL大语言模型中,得到纠正后的SQL语句。本申请利用自然语言转SQL数据集和SQL纠正数据集微调大语言模型,缓解了转换SQL存在语法错误的问题,提升自然语言转SQL的整体效果。技术研发人员:张诗禹,刘海波,王仿受保护的技术使用者:北京智谱华章科技有限公司技术研发日:技术公布日:2024/8/20本文地址:https://www.jishuxx.com/zhuanli/20240822/278266.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。