【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

最近更新

  1. TCP协议是安全的吗?

    2024-06-05 20:56:02       14 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-05 20:56:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-05 20:56:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-05 20:56:02       18 阅读

热门阅读

  1. iOS Hittest 机制和实际应用之一 hittest方法

    2024-06-05 20:56:02       8 阅读
  2. iOS object-c 常用API汇总

    2024-06-05 20:56:02       6 阅读
  3. iOS内购欺诈漏洞

    2024-06-05 20:56:02       8 阅读
  4. #媒体#知识分享#职场发展

    2024-06-05 20:56:02       10 阅读
  5. 如何使用 Vue CLI 创建和管理一个 Vue 项目

    2024-06-05 20:56:02       8 阅读
  6. SD-WAN怎样提升企业办公效率

    2024-06-05 20:56:02       8 阅读
  7. 使用Node.js搭建服务器

    2024-06-05 20:56:02       7 阅读
  8. flask的一些简要基础问答

    2024-06-05 20:56:02       9 阅读
  9. React@16.x(16)Render Props

    2024-06-05 20:56:02       9 阅读
  10. React 中图片请求失败使用裂图

    2024-06-05 20:56:02       8 阅读
  11. React@16.x(15)PureComponent 和 memo

    2024-06-05 20:56:02       9 阅读
  12. react的hooks是什么意思

    2024-06-05 20:56:02       7 阅读
  13. 【Python】使用flask作为web服务器

    2024-06-05 20:56:02       9 阅读
  14. Python Flask是什么:深入解析与实用指南

    2024-06-05 20:56:02       9 阅读
  15. 前端面试题大合集7----模块化/工程化/ES6+标准

    2024-06-05 20:56:02       7 阅读