【Text2SQL 论文】评估 ChatGPT 的 zero-shot Text2SQL 能力

论文:A comprehensive evaluation of ChatGPT’s zero-shot Text-to-SQL capability

⭐⭐⭐⭐

arXiv:2303.13547

这篇论文呢综合评估了 ChatGPT 在 zero-shot Text2SQL 任务上的表现。

dataset 使用了 Spider、Spider-SYN、Spider-DK、Spider-Realistic、Spider-CG、ADVETA、CSpider、DuSQL、SParC 以及 CoSQL。

由于 ChatGPT 生成的 SQL 多样性,所以这里主要使用了 execution accuracy 作为 metric。

一、使用的 Prompt

下图展示了使用 ChatGPT 来做 Text2SQL 的 prompts:

在这里插入图片描述

  • 上半的 prompt 是单轮对话的场景
  • 下半的 prompt 是多轮对话的场景

二、Evaluation Metrics

这里主要使用了三个 evaluation metric:

  • valid SQLVA):成功执行的 SQL 语句比例。
  • execution accuracyEX):执行结果与标准 SQL 匹配的比例
  • test-suite accuracyTS):测试套件是一组用于测试软件或系统特定部分的测试用例。在 Text2SQL 任务中,测试套件由一系列设计好的查询组成,这些查询旨在全面测试模型对不同 SQL 操作的理解和执行能力。这个指标通过执行测试套件中的所有测试用例,并根据执行准确性来评估模型的整体性能。它不仅考虑单个查询的成功执行,还考虑整个测试套件的覆盖率和成功率。

三、实验结果

整体上来说,ChatGPT 表现出很强的 Text2SQL 能力。

下面总结一些结论:

  • 在 Spider 数据集上,ChatGPT 的表现比 SOTA 低了 14%,但是 ChatGPT 是 zero-shot 的,且未在 training set 上做 fine-tune。
  • 在 Spider-SYN 和 Spider-Realistic 上,ChatGPT 表现也很不错,但与 SOTA 的差距稍大了一点,这也体现了当前的模型已经具备这两个场景的鲁棒性
  • 在多轮对话的场景和需要外部知识的场景下,ChatGPT 由于其强大的世界知识和上下文建模能力,表现特别好。
  • 在跨语言泛化的 Text2SQL 能力上,ChatGPT 的能力有待进一步改进。

做了一些 case study,发现 ChatGPT 总在一些小细节上犯错,论文给出了 4 个 error case:

  1. ChatGPT 倾向于使用 LEFT JOIN 来设计 JOIN,但这模式在 Spider 数据集上并不经常出现
  2. ChatGPT 经常对 database structure 产生迷惑性,导致找不到具体的 column
  3. 由于生成的 SQL 缺少正确的语义解释性,导致生成错误的带有嵌套 SQL 的 WHERE 子句
  4. 在 copy 特定 values 时出现错误,比如未保留大小写敏感性

四、总结

可以看出,ChatGPT 在 Text2SQL 任务上表现还不错,但仍然有不少的提高空间:

  • 与 ChatGPT 进行多轮交互,以解决生成不可执行的 SQL 语句的问题
  • 利用 DB 的报错来设计多轮对话,从而确保生成的 SQL 正确性
  • 引入 in-context learning

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

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

相关文章

拼多多(PDD)社招一面原题

未成年游戏退费 5 月 28 日,中国互联网协会发布《未成年人网络游戏服务消费管理要求(征求意见稿)》团体标准。 该标准是游戏行业首个完整的消费管理规范,可用于未成年人游戏消费退费纠纷解决,也可为相关行政部门、司法…

揭秘希喂、小米、安德迈宠物空气净化器的惊人效果,性价比爆表!

当谈及养猫,首先浮现在脑海中的烦恼无疑是猫咪的掉毛和便臭问题。这些问题对于我们这些爱宠人士来说,无疑是一种持续的挑战。特别是在炎热的夏季,高温本身就让人焦躁不安,而空气中飘散的猫浮毛和便臭更是加剧了这种不适感。 为了…

linux的磁盘分区与管理

磁盘分区与管理 识别磁盘 一块硬盘的“艺术”之旅(硬盘空间使用,经历的步骤) •识别硬盘 > 分区规划 > 格式化 > 挂载使用 Unix/Linux的基本哲学理念:一切皆文件 /dev:存放设备(键盘、鼠标、光驱、硬盘……

<Transition> expects exactly one child element or component.

近日在vue中使用 Transition 标签是发生了如下报错: [plugin:vite:vue] expects exactly one child element or component. 原因: 仅支持单个元素或组件作为其插槽内容。如果内容是一个组件,这个组件必须仅有一个根元素。 原始代码&#xff1…

深入了解多维数组索引:以二维数组为例

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、二维数组的基础概念与重要性 二、二维数组的索引访问 1. 索引访问的基本方法 2. 切片…

斯坦福报告解读3:图解有趣的评估基准(上)

《人工智能指数报告》由斯坦福大学、AI指数指导委员会及业内众多大佬Raymond Perrault、Erik Brynjolfsson 、James Manyika等人员和组织合著,旨在追踪、整理、提炼并可视化与人工智能(AI)相关各类数据,该报告已被大多数媒体及机构…

2、C++简单程序设计:工具、数据类型与运算符

C简单编程 C编程工具程序开发基本概念程序工具VS界面简介项目创建项目调试帮助文档 C数据类型C程序基本结构C符号关键字标识符文字运算符分隔符空白 C数据类型基本数据类型常量变量符号常量 C运算符与表达式算术运算符关系运算符逻辑运算符位运算符赋值运算符杂项运算符C 中的运…

SpringBoot【注解 01】@Scheduled实现定时任务的串行和并行执行

在SpringBoot中,如果使用Scheduled注解来定义多个定时任务,默认情况下这些任务将会被安排在一个单线程的调度器中执行。这意味着,这些任务将会串行执行,而不是并行执行。当一个任务正在执行时,其他被触发的任务将会等待…

【Linux】Linux基本指令2

我们接着上一篇:http://t.csdnimg.cn/bSJx8 我们接着完善ls指令 我们可以直接匹配对应格式的文件匹配出来 1.man指令(重要): Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助…

2024成都化工装备展览会

2024中国化工展(成都)化工装备展 成都国际化工技术装备展览会将于2024年9月11-13日在成都世纪城新国际会展中心举办。展会设置石化装备、化工单元设备、化工环保设备、泵阀管道、自动化及仪器仪表、安全防护与应急消防、智慧化工园区等展区,汇…

java版CRM客户关系管理系统源码-CRM客户关系管理系统的技术架构与功能实现

CRM客户关系管理系统的技术架构与功能实现 一、引言 随着市场竞争的日益激烈,客户关系管理(CRM)已成为企业赢得市场、提升客户满意度、促 进业务增长的关键手段。本文旨在介绍一款先进的CRM客户关系管理系统的技术架构与功能实现&#xff0…

【credit_based 流控管理-2】

credit_based 流控管理-2 上篇文章是简要介绍一下基于credit的流控原理,和实现方法; 本篇序列是应对: when the design can send and return more than one credits at a time. 针对考虑解决: send and return credits > 1 at a time. no…

leetCode-hot100-数组专题之子数组+二维数组

数组专题之子数组二维数组 子数组238.除自身以外数组的乘积560.和为K的子数组 二维数组48.旋转图像 子数组 数组的子数组问题是算法中常见的一类问题,通常涉及到数组的连续元素。在解决这类问题时,常用的方法有前缀和、滑动窗口、双指针,分治…

了解VS安全编译选项GS

缓冲区溢出攻击的基本原理就是溢出时覆盖了函数返回地址,之后就会去执行攻击者自己的函数; 针对缓冲区溢出时覆盖函数返回地址这一特征,微软在编译程序时使用了安全编译选项-GS; 目前版本的Visual Studio中默认启用了这个编译选项…

IAR9.30安装和注册相关

下载解压licpatcher64工具,把licpatcher64.exe拷贝到IAR的安装目录中双击运行。 示例IAR9.30.1默认安装如下如下,一共三个分别拷贝运行,不要遗漏。 C:\Program Files\IAR Systems\Embedded Workbench 9.1\arm\bin C:\Program Files\IAR Syst…

结构体(自定义类型)

1.结构体 结构体这种自定义的数据类型,让程序员可以自己创造适合的类型 结构是一些值的集合,这些值称为成员变量,结构的每个成员可以是不同类型的变量,可以是标量,数组,指针甚至是其他结构体 1.1.1 结构…

OSPF扩展知识点1

OSPF 的扩展知识点 [1」附录E--- link-id 相同的问题 若一台 ABR 将两条3类LSA 导入其他区域:或者一台 ASBR 将两条5/7类导入 OSFP 域,同时这两条 LSA 的 link-id 会相同: 假设:短掩码网段先进入,link-id 正常显示; 长掩码进入时link-id…

2024最新 Jenkins + Docker实战教程(七)- Jenkins实现远程传输和自动部署

😄 19年之后由于某些原因断更了三年,23年重新扬帆起航,推出更多优质博文,希望大家多多支持~ 🌷 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志 🎐 个人CSND主页——Mi…

2024 五月份国内外CTF 散装re 部分wp

cr3CTF warmup 附件拖入ida main函数无法反汇编,仔细看,有花指令,jnz实际上必定跳转。有非常多处,可以写脚本patch程序去掉花指令,只要匹配指令,再获取跳转地址,nop掉中间的代码就行。但…

5.29_Java程序流程控制

CSDN 同C语言的流程同 1、补充: 1、switch使用时的注意事项 1、表达式只能是byte、short、int、char,JDK5开始支持枚举,JDK7开始支持String、不支持double、float、long switch里面是做分支匹配,也就是可以出现很多分支&am…