【论文速读】| TCSR-SQL:面向表内容感知的自检索文本到SQL方法

news2024/9/24 3:28:41

图片

本次分享论文:TCSR-SQL: Towards Table Content-aware Text-to-SQL with Self-retrieval

基本信息

原文作者:Wenbo Xu, Liang Yan, Peiyi Han, Haifeng Zhu, Chuanyi Liu, Shaoming Duan, Cuiyun Gao, Yingwei Liang

作者单位:哈尔滨工业大学(深圳)、鹏城实验室、广东电网公司

关键词:Text-to-SQL,表内容感知,自检索,LLM

原文链接:https://arxiv.org/pdf/2407.01183

开源代码:

https://github.com/TCSR-SQL/TCSR-SQL

论文要点

论文简介:大语言模型(LLM)在文本到SQL(Text-to-SQL)方法中取得了重要进展,但在面对真实世界场景中的表内容感知问题时,现有方法在处理问题中模糊数据内容关键词和不存在的数据库模式列名时表现不佳。

为了解决这一问题,本文提出了一种面向表内容感知的自检索文本到SQL(TCSR-SQL)方法。该方法利用LLM的上下文学习能力,从问题中提取数据内容关键词并推断可能相关的数据库模式,通过模糊搜索数据库生成初始SQL,并在多轮生成-执行-修正过程中不断优化,最终生成精确的SQL。本文还引入了一个包含1692个问题-SQL对的数据集,以验证该方法的有效性。实验结果表明,TCSR-SQL在执行准确率上相比现有方法至少提高了13.7%。

研究目的:本文的研究目的是解决当前LLM在生成对应于表内容感知的自然语言问题的SQL查询时面临的两个主要困难:一是如何识别自然语言问题中的数据内容关键词所对应的数据库模式列名;二是如何在自然语言问题中的不精确数据内容关键词的基础上,识别数据库中存储的精确内容值。通过引入自检索技术,本文提出了一个创新的方法来处理这一问题,旨在提高生成SQL查询的准确性。

研究贡献:

  • 提出了一种新颖的TCSR-SQL方法,利用自检索技术解决了生成对应表内容感知自然语言问题的SQL查询问题。

  • 创建了一个包含1692个问题-SQL对的新数据集,用于评估该方法的有效性。

  • 实验结果表明,TCSR-SQL在执行准确率上相比现有最先进的方法提高了13.7%。

引言

随着大语言模型(LLM)技术的快速发展,基于LLM的文本到SQL(Text-to-SQL)方法在生成SQL查询方面取得了重要进展。然而,现有方法在处理真实世界中的表内容感知问题时,仍然面临一些挑战。例如,当问题中包含模糊的数据内容关键词和不存在的数据库模式列名时,现有方法的表现往往不尽如人意。

为了解决这些问题,本文提出了一种面向表内容感知的自检索文本到SQL(TCSR-SQL)方法。该方法利用LLM的上下文学习能力,从问题中提取数据内容关键词并推断可能相关的数据库模式,通过模糊搜索数据库生成初始SQL,并在多轮生成-执行-修正过程中不断优化,最终生成精确的SQL。

具体来说,TCSR-SQL包括三个主要模块:关键词提取与模糊检测、知识检索与对齐、SQL生成与修正关键词提取与模糊检测模块从自然语言问题中提取数据内容关键词,并通过模糊检测技术搜索数据库中的相关内容值。知识检索与对齐模块则利用检索到的编码知识确认SQL查询中的列名和条件值。最后,SQL生成与修正模块生成初步的SQL查询,并根据执行结果进行修正,直至生成最终的精确SQL。

相关工作

目前,最新的Text-to-SQL研究主要关注如何利用大语言模型(LLM)来完成这一任务。基于LLM的Text-to-SQL方法大致可以分为两类:基于数据库模式的方法和基于数据内容的方法。

1. 基于数据库模式的方法

· 提示工程方法:例如,C3-SQL设计了一种零样本提示技术,通过将Text-to-SQL任务分解为两个子任务:模式链接和SQL生成。DIN-SQL设计了多轮少样本提示策略,将Text-to-SQL任务分解为四个子任务:模式链接、分类与分解、SQL生成和自我修正。

· 微调方法:随着LLM技术的快速迭代和开源LLM模型的大规模出现,一些研究致力于通过微调技术将通用LLM训练为Text-to-SQL领域的特定LLM。

2. 基于数据内容的方法

· 仅使用LLM的方法:一些方法直接在提示工程和微调方法的基础上增加了几个数据内容样本。例如,SQLPrompt在输入提示中增加了相关的数据库内容值。CodeS在设计的数据库提示构建会话中引入了数据内容样本,以微调开源LLM模型StarCoder。

· 基于代理的方法:一些研究探索了代理方法在Text-to-SQL领域的可能性。例如,SQL-CRAFT引入了SQL查询执行的反馈信息,以指导LLM修正其生成的SQL查询。

尽管这些方法提供了数据内容样本,但它们仍然无法直接使用数据库中存储的精确内容值作为生成SQL查询的条件值。因此,本文提出了一种自检索技术,将数据库内容理解与SQL生成-执行-修正过程相结合,以解决这一问题。

TCSR-SQL

如引言部分所述,现有的基于LLM的Text-to-SQL方法在根据大数据库的表内容感知自然语言问题生成SQL查询时面临两大困难:一是识别自然语言问题中的数据内容关键词所对应的数据库模式列名,二是识别数据库中存储的精确内容值。

图片

为了解决这些问题,本文提出了TCSR-SQL方法,包含三个模块:

1. 关键词提取与模糊检测模块:从自然语言问题中提取数据内容关键词,并通过模糊检测技术搜索数据库中的相关内容值。

2. 知识检索与对齐模块:利用模糊检测模块的搜索结果确认SQL查询中的列名和条件值。

3. SQL生成与修正模块:生成初步的SQL查询,并根据执行结果进行修正,直至生成最终的精确SQL。

研究评估

实验设置:为了评估TCSR-SQL方法的有效性,本文创建了一个包含1692个问题-SQL对的基准数据集(TCD)。该数据集从多个Spider变体数据集和实际数据库中提取,涵盖了真实世界中的表内容感知问题。评估指标包括执行准确率(EX)和精确匹配准确率(EM),前者比较预测SQL查询和金标准SQL查询的执行输出,后者比较预测SQL查询和金标准SQL查询的各个部分。实验使用GPT-3.5-turbo模型,并采用Dmeta-embedding算法进行相似度计算。

整体结果:实验结果表明,TCSR-SQL在执行准确率(EX)和精确匹配准确率(EM)方面均显著优于现有最先进的方法。具体而言,TCSR-SQL在EX和EM上分别达到了75.0%和48.2%,相比最佳现有方法至少提高了13.7%。这得益于关键词提取与模糊检测、知识检索与对齐、SQL生成与修正三个模块的协同工作。通过多轮生成-执行-修正过程,TCSR-SQL能够更准确地生成对应表内容感知的SQL查询,有效应对真实世界中的复杂查询任务。

消融实验:通过消融实验评估了TCSR-SQL各模块对整体性能的影响。结果显示,去除关键词提取与模糊检测模块后,执行准确率(EX)下降了7.6%;去除知识检索与对齐模块后,EX下降了9.3%;去除SQL修正模块后,EX下降了6.4%。这些结果表明,每个模块对提高SQL生成准确性都起到了重要作用。特别是知识检索与对齐模块,通过整合编码知识,显著提升了SQL查询条件的精确性,而SQL修正模块通过执行反馈进一步优化了最终的SQL查询。

图片

案例研究:为了深入了解TCSR-SQL的工作原理,研究者进行了案例研究。研究表明,现有方法在生成SQL查询时常常无法正确识别数据内容关键词和条件值,导致查询结果为空或错误。相比之下,TCSR-SQL通过关键词提取与模糊检测模块有效地提取问题中的数据内容关键词,并利用知识检索与对齐模块确认数据库中的精确存储值。最终,SQL生成与修正模块生成准确的SQL查询,避免了常见错误。例如,在处理一个关于GDP增长率的问题时,TCSR-SQL成功生成了正确的SQL查询,而其他方法均未能正确执行。

论文结论

本文提出的TCSR-SQL方法,通过引入自检索技术,显著提升了生成对应表内容感知自然语言问题的SQL查询的准确性。实验结果表明,TCSR-SQL在执行准确率和精确匹配准确率方面均显著优于现有最先进的方法。具体来说,TCSR-SQL利用关键词提取与模糊检测、知识检索与对齐、SQL生成与修正三个模块,解决了在大数据库中生成准确SQL查询的关键挑战。通过创建一个包含1692个问题-SQL对的新数据集,研究者验证了该方法的有效性,证明了其在处理复杂查询任务中的优越性能。总之,TCSR-SQL为Text-to-SQL领域提供了一个创新且高效的解决方案。

原作者:论文解读智能体

校对:小椰风

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1933825.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何使用 Containerfile/Dockerfile 构建 .net 镜像?

Podman 简介 Podman 是 Red Hat 开发的一款容器管理工具,它允许用户在没有守护进程的情况下运行、构建、管理和推送容器。Podman 是一个无守护进程的容器引擎,这意味着它不需要一个持续运行的后台进程来管理容器,这与 Docker 的守护进程模式…

科普文:详解23种设计模式

概叙 设计模式是对大家实际工作中写的各种代码进行高层次抽象的总结,其中最出名的当属 Gang of Four(GoF)的分类了,他们将设计模式分类为 23 种经典的模式,根据用途我们又可以分为三大类,分别为创建型模式…

Anything in Any Scene:无缝融入任何场景,实现逼真视频对象插入技术

人工智能咨询培训老师叶梓 转载标明出处 现实世界的视频捕获虽然因其真实性而宝贵,但常常受限于长尾分布的问题,即常见场景过度呈现,而关键的罕见场景却鲜有记录。这导致了所谓的"分布外问题",在模拟复杂环境光线、几何…

在Centos上安装MySQL

目录 在Centos上安装MySQL1.确认当前的系统版本2.添加 MySQL Yum 源2.1访问MySQL开发者专区2.2根据当前系统选择对应的发布包2.3补充 3.MySQL的历史发行版本4.安装发布包5.安装MySQL5.1启动MySQL服务器5.2查看服务器状态5.3开机自启动5.4 登入MySQL5.5修改密码 在Centos上安装M…

今日总结,没啥特别学习到的,还是省市县三级,和一些开发的规范和git的冲突解决。(maven clean)

20240718 一、对于省市县三级联动告一段落二、修改开发好的接口三、对于git(每天都有他的问题)的推送和拉取问题 一、对于省市县三级联动告一段落 省市县三级联动,直接前端连接一个组件就可以直接实现,好家伙,白费我时…

【深度学习】inpaint图像中的alpha混合图的边缘处理

比如原图是: 红圈内就是文字水印,经过inpaint后得到图和原图混合,如何处理边界呢,这个代码可以干这事: 越是中心就直接用inpaint图,否则就用原图,这样进行alpha混合。 import numpy as np i…

计算机网络技术期末复习

一. 填空 在采用电信号表达数据的系统中,数据有 数字数据 和 模拟数据 两种。域名系统DNS是一个 分布式数据库 系统。TCP/IP的网络层最重要的协议是 IP互连网协议,它可将多个网络连成一个互连网。 4. 在TCP/IP层次模型的网络层中包括的协议主要有ARP 、…

计算机毕业设计-基于Springboot的养老院管理系统-源码程序文档

项目源码,请关注❥点赞收藏并私信博主,谢谢~ 本系统开发采用技术为JSP、Bootstrap、Ajax、SSM、Java、Tomcat、Maven 此文章为本人亲自指导加编写,禁止任何人抄袭以及各类盈利性传播, 相关的代码部署论文ppt代码讲解答辩指导文件…

【C++】类的默认成员函数--构造,析构,拷贝,重载

文章目录 前言一、类的默认成员函数是什么?二、构造函数1.构造函数概述2.构造函数特点3.构造函数代码示例 三.析构函数1.析构函数概述2.析构函数特点3.析构函数代码示例 四.拷贝构造函数1.拷贝构造函数概述2.拷贝构造函数特点拷贝构造函数代码示例 五. 赋值运算符重…

学习008-01-03 Customize the Application UI and Behavior(自定义应用程序UI和行为)

Customize the Application UI and Behavior(自定义应用程序UI和行为) In XAF, the data model defines the database structure and UI. Changes to your entity classes affect the UI. For example, if you add a new property to an entity class, …

解决PDF文件无法打印的困扰:快速排查与修复指南

在日常工作和学习中,PDF文件因其跨平台兼容性和良好的格式保持特性而广受欢迎。然而,当我们急需打印一份重要的PDF文件时,却遇到了“PDF无法打印”的尴尬情况,这无疑会让人感到焦急。别担心,本文将为你提供一系列快速排…

摄像馆唯美结婚摄影团队网站模版源码 自适应网站源码系统 前后端分离 带完整的安装代码包以及搭建教程

系统概述 摄像馆唯美结婚摄影团队网站模版源码,是一款集美观性、功能性与易用性于一体的网站解决方案。该系统采用最新的前端技术栈,如HTML5、CSS3、JavaScript等,结合响应式设计理念,确保网站能够在不同尺寸的设备上&#xff08…

在 Apifox 中如何高效批量添加接口请求 Body 参数?

在使用 Apifox 进行 API 设计时,你可能会遇到需要添加大量请求参数的情况。想象一下,如果一个接口需要几十甚至上百个参数,若要在接口的「修改文档」里一个个手动添加这些参数,那未免也太麻烦了,耗时且易出错。这时候&…

Python实现人脸识别

直接上代码: import face_recognition import time from PIL import Image, ImageDraw def faceRecognition(fileName): # 加载图片image face_recognition.load_image_file(fileName)# 人脸定位beginTime time.time()face_locations face_recognition.face_lo…

Python酷库之旅-第三方库Pandas(024)

目录 一、用法精讲 61、pandas.to_numeric函数 61-1、语法 61-2、参数 61-3、功能 61-4、返回值 61-5、说明 61-6、用法 61-6-1、数据准备 61-6-2、代码示例 61-6-3、结果输出 62、pandas.to_datetime函数 62-1、语法 62-2、参数 62-3、功能 62-4、返回值 62-…

为ppt中的文字配色

文字的颜色来源于ppt不可删去的图像的颜色 从各类搜索网站中搜索ppt如何配色,有如下几点: 1.可以使用对比色,表示强调。 2.可以使用近似色,使得和谐统一。 3.最好一张ppt中,使用的颜色不超过三种主要颜色。 但我想强调…

hot100 | 十四、贪心

1-leetcode121. 买卖股票的最佳时机 注意&#xff1a; Labuladong的套路太厉害了&#xff0c;分析的很清晰状态转移方程 public int maxProfit(int[] prices) {int n prices.length;int[][] dp new int[n][2];for (int i 0; i < n; i) {if (i-1 -1){// base casedp[…

【C语言】结构体,枚举,联合超详解!!!

目录 结构体 结构体声明 结构体成员的访问 结构体自引用 结构体变量定义&#xff0c;初始化&#xff0c;传参 结构体内存对齐 位段 枚举 联合(共用体) 结构体 结构体声明 1. 概念 1. 结构体是一些值的集合&#xff0c;这些值称为成员变量。 2. 结构体的每个成员可…

基于SpringBoot+Vue的广场舞团系统(带1w+文档)

基于SpringBootVue的广场舞团系统(带1w文档) 基于SpringBootVue的广场舞团系统(带1w文档) 广场舞团&#xff0c;为用户随时随地查看广场舞团信息提供了便捷的方法&#xff0c;更重要的是大大的简化了管理员管理广场舞团信息的方式方法&#xff0c;更提供了其他想要了解广场舞团…

Java强软弱虚引用的特点以及应用场景(面试重点)

强&#xff1a;即使OOM也不回收软&#xff1a;内存溢出前回收弱&#xff1a;只要垃圾收集就死虚&#xff1a;对垃圾收集没关系&#xff0c;只有得到通知&#xff08;插眼&#xff0c;也操作不了对象、只能看到它还活着&#xff09; 一、软引用 代码示例&#xff1a; public cl…