【Text2SQL 论文】How to prompt LLMs for Text2SQL

2024-06-07 01:36
文章标签 text2sql prompt llms 论文

本文主要是介绍【Text2SQL 论文】How to prompt LLMs for Text2SQL,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

论文:How to Prompt LLMs for Text-to-SQL: A Study in Zero-shot, Single-domain, and Cross-domain Settings

⭐⭐⭐⭐

arXiv:2305.11853, NeurlPS 2023

Code: GitHub

一、论文速读

本文主要是在三种常见的 Text2SQL ICL settings 评估不同的 prompt construction strategies。

二、Text2SQL ICL settings

论文在下面三种 Text2SQL settings 下来做的评估:

  • Zero-shot Text2SQL:输入一个 task instruction、一个 test question 以及相应的 DB,在没有任何 demonstrations 情况下让 LLM 直接推理出 SQL
  • Single-domain Few-shot Text2SQL:ICL 的 demonstrations 是构造自与 test question 相同的 database。这个 setting 的目标是评估 LLM 在最小的域内训练数据下执行 Text2SQL 的能力。
  • Cross-domain Few-shot Text2SQL:ICL 的 demonstrations 是构造自与 test question 的不同的 database 中。这个 setting 的目标是评估 LLM 通过 out-of-domain demonstrations 中来学习的泛化能力。

三、Prompt Construction

论文在每个 Text2SQL setting 中测试了不同的 prompt construction 的效果。

一个 prompt 中包含 Database Prompt 和 Demonstration Prompt。

3.1 Database Prompt

一个关系型 DB 包含 database schema 和 database content:

  • database schema 由 table headers 和 tables 之间的 relationships 组成。
  • database content 指的是存储在 tables 中的 data
3.1.1 Database Schema 的 prompt 结构

下图展示了之前的研究中使用的 database schema 的各种 prompt 结构:

在这里插入图片描述

同时为了保证文本的一致性,论文对 db schema 和 SQL 做了规范化:将 SQL 中除了数据库内容之外的所有单词转换为小写,并统一文本中的空格和换行符。如下图就是规范化前后的示例:

在这里插入图片描述

3.1.2 Database Content 的 prompt 结构

之前的研究内容也表示,了解数据库的内容示例可以提高模型的性能。

下图展示了 Database Content 部分的 prompt style:

在这里插入图片描述

  • InsertRow:通过 INSERT INTO 语句显示每个 table 的几行数据
  • SelectRow:显示 SELECT * FROM T LIMIT X 的查询结果
  • SelectCol:按照列式的格式显示多行数据

本文提出使用 SELECT DISTINCT [Column] FROM [Table] LIMIT R 去列出 R 行数据,从而避免重复。

3.2 Demonstration Prompt

在 few-shots settings 中,demonstrations 被放入 prompt text 来输入给 LLM。

在 single-domain few-shot setting 中,这里融入了一些 question-SQL 的 pairs 作为 demonstrations。

在 cross-domain few-shot setting 中,以往的研究都是:

  • 要么 N 个 examples 都来自于一个相同的 db
  • 要么 N 个 examples 的每一个来自于不同的 db

本文考虑了更泛用的场景:N 个 examples 是由 M 个 db 组成,每个 db 由 K 个 question-SQL pairs,由此 M × K = N M \times K = N M×K=N

四、实验

本文在 Spider 数据集的 dev split 上实验,采用执行精度(EX)来评估 predicted SQL 和 gold SQL。

这里论文指出,在选择 few-shots 的 demonstrations 时,由于少数 db 包含长模式,这有可能导致 prompt token 数量超过 LLM 限制,所以在构造 CreateTable prompt 时,这里只使用 token 少于 1000 的 db。

具体的实验细节可以参考原论文。

五、实验结果

这一章介绍了在 zero-shot、single-domain 和 cross-domain 的三种 settings 下 Text2SQL 的经验发现。

5.1 zero-shot 的 Text2SQL

zero-shot setting 中重点关注于比较不同的 database prompt construction。下图展示了多种 database prompt 的 Codex 和 ChatGPT 的表现:

在这里插入图片描述

实验发现:

  • 规范化后的 db schema 和 SQL 可以有更好的表现
  • db table 的 relationship 和 content 是很重要的,有效地提高了 LLM 的表现
  • Codex 在 zero-shot Text2SQL 任务上始终优于 ChatGPT

基于以上发现,论文建议将 Codex 与规范化后的 CreateTable-SelectCol prompt construction 结合起来使用,来实现 zero-shot 的 Text2SQL。

5.2 single-domain 的 Text2SQL

下图展示了在 Codex 和 ChatGPT 上做 single-domain Text2SQL 任务时,不同的 in-domain examples 的执行精确度的实验结果:

在这里插入图片描述

得出以下结论:

  • in-domain 的 demonstrations 能有效提升 LLM 的表现,并随着示例数量的提高,LLM 的效果也在逐渐变好
  • LLM 能够从 in-domain demonstrations 中快速学习到 table relationship,但难以从中学习到 table content 的知识,因此 table content 的 prompt 是重要的

5.3 cross-domain 的 Text2SQL

ICL 的 demonstrations 中使用了 M 的 demonstration databases,每一个包含 K 个 NLQ-SQL pairs。

下面这个热力图展示了 M 和 K 的个数对精确度的影响(横轴是 M,纵轴是 K,颜色越深,精确度越高):

在这里插入图片描述

这里对实验的分析可以参考原论文。

总之,out-of-domain 的 demonstrations 增强了 LLM 在 Text2SQL 中的能力,但这些示例并没有提供特定于 DB 的知识,因此,仔细构建 Database Prompt 仍然至关重要,这也与在 zero-shot setting 中所做的观察是一致的。

六、总结

整的来说,论文在三种 Text2SQL ICL settings 中比较了各种 prompt constructions 的效果,为未来的研究提供了指导。

这篇关于【Text2SQL 论文】How to prompt LLMs for Text2SQL的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1037815

相关文章

大语言模型(LLMs)能够进行推理和规划吗?

大语言模型(LLMs),基本上是经过强化训练的 n-gram 模型,它们在网络规模的语言语料库(实际上,可以说是我们文明的知识库)上进行了训练,展现出了一种超乎预期的语言行为,引发了我们的广泛关注。从训练和操作的角度来看,LLMs 可以被认为是一种巨大的、非真实的记忆库,相当于为我们所有人提供了一个外部的系统 1(见图 1)。然而,它们表面上的多功能性让许多研究者好奇,这些模型是否也能在通常需要系

康奈尔大学之论文审稿模型Reviewer2及我司七月对其的实现(含PeerRead)

前言 自从我司于23年7月开始涉足论文审稿领域之后「截止到24年6月份,我司的七月论文审稿GPT已经迭代到了第五版,详见此文的8.1 七月论文审稿GPT(从第1版到第5版)」,在业界的影响力越来越大,所以身边朋友如发现业界有相似的工作,一般都会第一时间发给我,比如本部分要介绍的康奈尔大学的reviewer2 当然,我自己也会各种看类似工作的论文,毕竟同行之间的工作一定会互相借鉴的,我们会学他们

【论文精读】分类扩散模型:重振密度比估计(Revitalizing Density Ratio Estimation)

文章目录 一、文章概览(一)问题的提出(二)文章工作 二、理论背景(一)密度比估计DRE(二)去噪扩散模型 三、方法(一)推导分类和去噪之间的关系(二)组合训练方法(三)一步精确的似然计算 四、实验(一)使用两种损失对于实现最佳分类器的重要性(二)去噪结果、图像质量和负对数似然 论文:Classification Diffusion Models: Revitalizing

【python】python葡萄酒国家分布情况数据分析pyecharts可视化(源码+数据集+论文)【独一无二】

👉博__主👈:米码收割机 👉技__能👈:C++/Python语言 👉公众号👈:测试开发自动化【获取源码+商业合作】 👉荣__誉👈:阿里云博客专家博主、51CTO技术博主 👉专__注👈:专注主流机器人、人工智能等相关领域的开发、测试技术。 python葡萄酒国家分布情况数据分析pyecharts可视化(源码+数据集+论文)【独一无二】 目录 python葡

论文阅读--Efficient Hybrid Zoom using Camera Fusion on Mobile Phones

这是谷歌影像团队 2023 年发表在 Siggraph Asia 上的一篇文章,主要介绍的是利用多摄融合的思路进行变焦。 单反相机因为卓越的硬件性能,可以非常方便的实现光学变焦。不过目前的智能手机,受制于物理空间的限制,还不能做到像单反一样的光学变焦。目前主流的智能手机,都是采用多摄的设计,一般来说一个主摄搭配一个长焦,为了实现主摄与长焦之间的变焦,目前都是采用数字变焦的方式,数字变焦相比于光学

【LLM之KG】CoK论文阅读笔记

研究背景 大规模语言模型(LLMs)在许多自然语言处理(NLP)任务中取得了显著进展,特别是在零样本/少样本学习(In-Context Learning, ICL)方面。ICL不需要更新模型参数,只需利用几个标注示例就可以生成预测。然而,现有的ICL和链式思维(Chain-of-Thought, CoT)方法在复杂推理任务上仍存在生成的推理链常常伴随错误的问题,导致不真实和不可靠的推理结果。

【python】python基于akshare企业财务数据对比分析可视化(源码+数据集+论文)【独一无二】

👉博__主👈:米码收割机 👉技__能👈:C++/Python语言 👉公众号👈:测试开发自动化【获取源码+商业合作】 👉荣__誉👈:阿里云博客专家博主、51CTO技术博主 👉专__注👈:专注主流机器人、人工智能等相关领域的开发、测试技术。 系列文章目录 目录 系列文章目录一、设计要求二、设计思路三、可视化分析 一、设计要求 选取中铁和贵州茅

AIGC-Animate Anyone阿里的图像到视频 角色合成的框架-论文解读

Animate Anyone: Consistent and Controllable Image-to-Video Synthesis for Character Animation 论文:https://arxiv.org/pdf/2311.17117 网页:https://humanaigc.github.io/animate-anyone/ MOTIVATION 角色动画的

【python】python股票量化交易策略分析可视化(源码+数据集+论文)【独一无二】

👉博__主👈:米码收割机 👉技__能👈:C++/Python语言 👉公众号👈:测试开发自动化【获取源码+商业合作】 👉荣__誉👈:阿里云博客专家博主、51CTO技术博主 👉专__注👈:专注主流机器人、人工智能等相关领域的开发、测试技术。 【python】python股票量化交易策略分析可视化(源码+数据集+论文)【独一无二】 目录 【python】pyt

springboot+vue+mybatis旅游管理+PPT+论文+讲解+售后

随着人民生活水平的提高,旅游业已经越来越大众化,而旅游业的核心是信息,不论是对旅游管理部门、对旅游企业,或是对旅游者而言,有效的获取旅游信息,都显得特别重要.旅游管理系统将使旅游相关信息管理工作规范化、信息化、程序化,提供旅游景点、旅游线路,旅游新闻等服务本文以jsp为开发技术,实现了一个旅游网站系统。旅游网站系统的主要使用者分为管理员和用户,管理员权限如下;主页、个人中心、景点分类管理、景点信息