从领域外到领域内:LLM在Text-to-SQL任务中的演进之路

导语

本文介绍了ODIS框架,这是一种新颖的Text-to-SQL方法,它结合了领域外示例和合成生成的领域内示例,以提升大型语言模型在In-context Learning中的性能。

  • 标题:Selective Demonstrations for Cross-domain Text-to-SQL
  • 会议:EMNLP 2023 Findings
  • 链接:https://arxiv.org/abs/2310.06302
  • 机构:The Ohio State University

1 引言

LLMs(如GPT-3、Codex、PaLM和LLaMA)在上下文学习(ICL)中展现了处理各种语言任务的强大能力。ICL依赖于包含任务指令和零或几个关于任务的示例演示的提示。近期研究已经评估了LLMs在跨领域文本到SQL任务上的性能,该任务将自然语言问题(NLQ)转换为新数据库的SQL查询。以往的工作让LLMs使用仅包含数据库信息而没有任何演示的提示,或利用与测试数据库不同的数据库相关联的领域外注释的NLQ-SQL对作为演示示例。

注意:这里的领域内就是指我们提供给LLM的Few-shot样例是和我们要解决的问题Question为同一个数据库的情形;领域外则是指使用的样例是其他数据库的情形。

然而,Rajkumar等人发现,使用领域内注释示例作为演示可以显著提升LLMs的性能,但获取此类数据可能成本较高,因为注释过程需要SQL专业人员。更重要的是,为每个新数据库注释示例会降低文本到SQL应用的泛化能力。这些观察自然引发了两个问题:

  1. 领域内注释示例中的哪些关键因素有助于性能提升?
  2. 我们能否在不依赖领域内注释的情况下利用领域内演示的好处?

本文首先研究领域内演示示例的作用,然后开发新技术在不利用领域内注释的情况下创建演示。作者评估了领域内注释中的三个方面:文本到SQL任务知识和格式、输入NLQ分布和输出SQL分布。实验表明,SQL分布在领域内演示中起着关键作用。这一发现启发作者通过生成采样SQL查询来合成领域内数据的想法。本文是首个利用合成示例进行文本到SQL的上下文学习的。此外,作者引入了一个新颖的演示选择框架ODIS,它利用领域外演示和领域内合成数据。通过自动从领域外和合成领域内数据中选择演示示例,并采用SQL引导的检索方法,该方法在两个跨领域文本到SQL数据集上一致优于微调和上下文学习的最先进模型。

总体而言,本文贡献包括三个方面:

  • 对领域内演示的不同方面对文本到SQL的影响进行了全面分析。
  • 提出了一个演示选择框架ODIS,它利用领域外和合成生成的领域内演示。
  • 通过采用SQL引导的检索方法来选择领域外和合成领域内演示,ODIS一致优于基线方法和最先进的方法。

2 领域内示例的分析

这部分分析了领域内注释演示的作用和贡献。

2.1 实验设置

使用Spider和KaggleDBQA数据集。采用留一法评估领域内演示。具体来说,对于给定的测试示例,从与同一数据库关联的其余示例中随机选择演示,条件是所选演示示例不与测试示例共享相同的SQL模板,遵循模板分割方法。还要求所选演示具有不同的模板。图1展示了一个包含Spider数据库concert_singer中两个领域内演示的提示示例。使用Codex的Code-davinci-002作为LLM。

image.png

image.png

2.2 领域内注释的有效性

图3展示了Codex在Spider和KaggleDBQA上的执行准确度。Zero-shot设置下,Codex在Spider和KaggleDBQA上分别达到了75.7%和26.8%的执行准确度。使用领域内示例显著提高了Codex的性能。值得注意的是,随着领域内演示示例数量的增加,Codex的性能持续提升。

为了了解领域内演示中的关键因素,本文进行实验分析领域内演示的三个方面:

  • 文本到SQL任务知识和格式、
  • 领域内NLQ分布
  • 领域内SQL查询分布。

第一个方面涉及领域无关的知识,而后两个方面特定于领域。

image.png

文本到SQL任务知识和格式

作者使用注释的领域外数据作为提供任务格式和知识的替代来源,让模型从与其他数据库相关联的注释NLQ和SQL对中学习正确的任务格式和知识。实验结果表明(图3中的OOD Examples),接触具有相同任务格式和知识的领域外示例确实可以提升模型的性能,但这种提升与领域内示例相比较小。此外,使用领域内演示实现的性能提升在一定数量的示例后趋于收敛,这与领域外示例所观察到的持续性能提升形成对比。另一个实验显示(图7),当使用不匹配的NLQs和SQLs作为演示时,模型的性能显著降低,强调了在演示中包含正确任务知识和格式的必要性。

image.png

领域内输入NLQ分布

除了任务知识,领域内示例还向LLMs展示了输入NLQ的分布。最近的研究表明,LLMs可以从了解输入分布中受益,特别是在分类任务中。为了评估输入分布的重要性,作者用Codex在Zero-shot设置下生成的预测替换演示示例中的gold SQL查询。这样,模型可以了解输入NLQ的分布,而不需要接触注释的SQL或超出其自身预测的任何额外知识。图3中的“ID NLQ分布”表明,对于Spider,提供领域内NLQ分布带来了一些好处,但与使用完整领域内数据相比不相上下。此外,对于KaggleDBQA数据集,提供领域内NLQ和自我预测的SQL查询并未显示出与不使用任何示例相比的任何优势,作者认为这是由于Codex在KaggleDBQA的零次示例设置下的准确度较低。

领域内输出SQL分布

领域内演示示例还具有向LLMs揭示输出SQL分布的作用。为了评估这一方面的重要性,使用相同的LLM(Codex)从oracle SQL查询生成合成NLQ。在演示示例中,用这些合成NLQ替换注释的NLQ,同时保持SQL查询不变。这种设置允许LLMs接触领域内SQL分布,同时不了解注释的领域内NLQ或超出其自身生成的NLQ的其他输入。图3中的“ID SQL分布”结果表明,提供带有合成NLQ的注释SQL查询可以大幅提升模型在Spider和KaggleDBQA数据集上的性能。此外,随着包含更多演示示例,性能提升继续增加,与使用实际领域内示例获得的结果一致。

3 方法

3.1 领域外演示创建

考虑到LLMs对演示示例选择的敏感性,作者提出了基于预测SQL查询相似性的检索策略SimSQL。该策略目标是从一组领域外注释示例中检索与测试数据库和问题相似的演示示例。

对于一个测试数据库d和一个问题x,目标是从一组领域外注释示例 e 1 , . . . , e N e_1 , ..., e_N e1,...,eN 中检索M个数据库,每个数据库包含K个NLQ和SQL对,其中 e i = ( d b i , x i , y i , y ^ i ) e_i = (db_i , x_i , y_i , \hat{y}_i ) ei=(dbi,xi,yi,y^i),分别代表数据库、输入NLQ、注释的SQL查询和LLM在零次示例场景下预测的SQL查询。所选的M个数据库及其相关示例将在测试数据库和问题之前展示,如图2所示。

算法1展示了整体过程:

  1. 首先在Zero-shot场景下生成一个初始SQL预测 y ^ i \hat{y}_i y^i(第1行);
  2. 根据它们的预测SQL查询 y ^ i \hat{y}_i y^i y ^ \hat{y} y^的相似性对领域外示例进行排序(第2行);
  3. 从高相似性到低相似性扫描领域外示例。一旦在数据库中找到K个示例,该数据库及其K个示例就被选为演示数据库和示例(第7-9行)。当选择M个数据库时,算法停止(第10-12行)。使用BM25对SQL查询中的SQL关键词和模式标记进行相似性度量。

3.2 领域内合成演示创建

领域内合成演示选择包括两个阶段:(1) 合成数据生成,和 (2) 合成数据检索。

合成数据生成:首先采样合成SQL查询{ y i y_i yi },然后将SQL查询转换为自然语言问题{ x i x_i xi }。使用SHiP来采样合成SQL查询,从领域外数据库中提取模板,并从测试数据库中采样列和值来填充这些模板。接着,使用Codex来生成相应的合成NLQ。为提高合成数据的质量,添加一个验证过程。使用Codex将合成NLQ x i x_i xi 反向转换为SQL y ^ i \hat{y}_i y^i,并过滤掉 y ^ i \hat{y}_i y^i y i y_i yi 执行结果不同的示例。

合成数据检索:考虑到oracle SQL分布通常依赖于领域特定的先验知识,因此,本文的重点不是寻找与测试问题高度相似的SQL查询,而是检索涵盖预期SQL查询不同方面的多个查询。采用了Levy等人(2022)提出的算法启发的贪婪算法。算法2概述了从合成领域内示例中检索演示的过程:

  1. 创建一个需要覆盖的标记集合 S u n c o v e r S_{uncover} Suncover ,它以测试问题的初始SQL预测中提到的SQL关键词和模式标记为初始化(第3行)。
  2. 检索与S uncover 相似度最高的合成SQL,相似度用BM25分数测量(第5行)。 S u n c o v e r S_{uncover} Suncover 将通过移除检索到的SQL查询中的标记和添加检索到的示例到演示列表来更新(第8 - 9行)。重复这个过程,直到 S u n c o v e r S_{uncover} Suncover 变为空(第17行)或无法检索到包含 S u n c o v e r S_{uncover} Suncover 中任何标记的合成SQL(第14行)。
  3. 如果选择的示例数量少于最大期望值,再次重复步骤(1)和(2)(第2行)。

4 实验

4.1 基准方法与前期工作

  • 基于微调的方法:SmBoP、T5+Picard、ShiP+Picard和RESDSQL。
  • 上下文学习方法:包括Rajkumar等人、Chang和Fosler-Lussier、Lan等人提出的方法,还包括了SYNCHROMESH和SKILLKNN、LEVER、Self-Debug和DIN-SQL。
  • 我们的方法:将其与仅使用领域外数据或合成领域内源的演示示例的基准方法进行比较。此外,通过将SimSQL和CovSQL与随机检索策略以及基于输入NLQ相似度的SimNLQ方法进行比较,以评估这些策略。使用SentenceBERT编码的句子嵌入的余弦距离来衡量相似度。

4.2 实验设置

使用Spider的训练集作为选择领域外演示示例的池,在最终预测中使用了闭源LLMs Codex和ChatGPT,以及开源LLM CodeLLama进行实验3。由于资源限制,仅使用Codex来检索演示示例。

5 结果

5.1 主要结果

表1和表2展示了ODIS在Spider和KaggleDBQA数据集上与最新方法的执行准确度。ODIS展示了比仅依赖领域外或合成领域内演示示例的基准方法更优越的性能,无论使用哪种LLM。这些结果强调了在ODIS框架中利用两种来源的演示示例的有效性。

5.2 分析

领域外检索:基于预测SQL查询相似性的检索方法优于随机选择和基于NLQ相似性的方法。使用oracle SQL查询进一步提高了性能。

领域内合成演示检索:检索覆盖初始SQL预测不同部分的合成SQL查询表现更优。CoverSQL和SimSQL方法在KaggleDBQA数据集上取得了相同的结果,超过随机选择和基于NLQ相似性的方法。

合成数据的影响:合成数据的质量对ODIS框架至关重要。使用不同的SQL合成方法(如SHiP和GAZP)对性能有显著影响。

鲁棒性评估:在Dr. Spider测试中,ODIS表现出较高的鲁棒性,尤其在NLQ扰动情况下,性能超过监督学习和其他上下文学习方法。

6 相关工作

7 总结和未来工作

本研究深入分析了领域内演示示例的关键方面,并确定SQL分布为关键因素。本文提出了一个新颖的演示选择框架ODIS,它利用基于SQL的检索方法结合领域外演示和领域内合成示例的优势。在不同的大型语言模型上取得的显著性能表明,与基线和最新方法相比,本文的框架非常有效。

未来工作方面,计划从以下方向考虑:

  • 统一检索策略:将探索一个统一的检索策略,打破领域外和领域内合成数据之间的界限,实现它们之间的自动选择。
  • 提升初始模型性能:考虑使用更高性能的初始文本到SQL模型以进一步提高性能,如第5.2节通过使用oracle SQL查询所展示的。
  • 参数高效微调:考虑将ODIS扩展到Few-shot Learning,通过利用这些混合数据源(领域外示例和领域内合成示例)进行参数高效微调,留待未来研究探索。

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

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

相关文章

Jenkins任意文件读取漏洞(CVE-2024-23897)复现

Jenkins 有一个内置的命令行界面CLI,在处理 CLI 命令时Jenkins 使用args4j 库解析 Jenkins 控制器上的命令参数和选项。此命令解析器具有一个功能,可以将参数中后跟文件路径的字符替换为文件内容 ( expandAtFiles)。具有Overall/Read权限的攻击者可以读取…

成都爱尔林江院长解读儿童青少年为什么一定要进行医学验光配镜

根据国家卫健委数据显示:我国青少年儿童总体近视率为52.7%、高度近视人口超3000万。近视学生中,有10%为高度近视,且占比随年级升高而增长。 近视孩子之多,孩子视力发展备受关注。戴镜进行近视防控十分必要,且眼镜不可随意验配! 成…

PAT-Apat甲级题1007(python和c++实现)

PTA | 1007 Maximum Subsequence Sum 1007 Maximum Subsequence Sum 作者 CHEN, Yue 单位 浙江大学 Given a sequence of K integers { N1​, N2​, ..., NK​ }. A continuous subsequence is defined to be { Ni​, Ni1​, ..., Nj​ } where 1≤i≤j≤K. The Maximum Su…

论文阅读-MapReduce

论文名称:MapReduce: Simplified Data Processing on Large Clusters 翻译的效果不是很好,有空再看一遍,参照一下别人翻译的。 MapReduce:Simplified Data Processing on Large Clusters 中文翻译版(转) - 阿洒 - 博客园 (cnblogs.com) 概…

仰暮计划|“如果你想看到世界上最完美的笑容,你就要多一点儿时间跟老人在一起,老人笑了,你就看到了。”

敬老从心开始,助老从我做起 时值假期,我们有了时间,决定好好践行孝亲敬老的传统美德。会计学院红心使者敬老院访问团在7月6日上午在河南省郑州市新郑市“华信老年公寓”进行实践活动。 一早来到敬老院,老人们都已经开始择菜&…

某赛通电子文档安全管理系统 PolicyAjax SQL注入漏洞复现

0x01 产品简介 某赛通电子文档安全管理系统(简称:CDG)是一款电子文档安全加密软件,该系统利用驱动层透明加密技术,通过对电子文档的加密保护,防止内部员工泄密和外部人员非法窃取企业核心重要数据资产,对电子文档进行全生命周期防护,系统具有透明加密、主动加密、智能…

Redis核心技术与实战【学习笔记】 - 19.Pika:基于SSD实现大容量“Redis”

前言 随着业务数据的增加(比如电商业务中,随着用户规模和商品数量的增加),就需要 Redis 能保存更多的数据。你可能会想到使用 Redis 切片集群,把数据分散保存到不同的实例上。但是这样做的话,如果要保存的…

【鸿蒙】大模型对话应用(三):跨Ability跳转页面

Demo介绍 本demo对接阿里云和百度的大模型API,实现一个简单的对话应用。 DecEco Studio版本:DevEco Studio 3.1.1 Release HarmonyOS SDK版本:API9 关键点:ArkTS、ArkUI、UIAbility、网络http请求、列表布局、层叠布局 页面跳…

excel统计分析——卡方适合性检验

参考资料:生物统计学 适合性检验是卡方检验应用的一种类型,检验实际的观测数与通过某一理论模型计算所得理论数是否相符,相当于1c列联表的卡方检验,也成为单因素离散型数据的卡方检验。 对参数的建设检验总是假定对照总体的分布数…

Linux 网络编程 + 笔记

协议:一组规则 分层模型结构: OSI七层模型:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层TCP/IP 4层模型:链路层/网络接口层、网络层、传输层、应用层 应用层:http、ftp、nfs、ssh、telnet、传输层&am…

C++ 动态规划 线性DP 数字三角形

给定一个如下图所示的数字三角形,从顶部出发,在每一结点可以选择移动至其左下方的结点或移动至其右下方的结点,一直走到底层,要求找出一条路径,使路径上的数字的和最大。 73 8 8 1 02 7 4 4 4 5 2 6 5 输入格式 …

Qt/C++音视频开发66-音频变速不变调/重采样/提高音量/变速变调/倍速播放/sonic库使用

一、前言 之前在做倍速这个功能的时候,发现快速播放会有滴滴滴的破音出现,正常1倍速没有这个问题,尽管这个破音间隔很短,要放大音量才能听到,但是总归是不完美的,后面发现,通过修改qaudiooutpu…

Postman-接口测试教程

接口是软件开发中常用的概念,是软件生产过程中比较核心的任务。对于接口开发者,调试接口是一件较为繁琐的事情,很多时候需要线上线下来回切换。在这里,我就跟大家介绍一个只需要在本地就可以调试接口的方法,即使用post…

node.js与express.js创建项目以及连接数据库

搭建项目 一、技术准备 node版本:16.16.0 二、安装node成功后,安装express,命令如下: npm install -g express 或者: npm install --locationglobal express 再安装express的命令工具: npm install --location…

嵌入式学习第三篇——51单片机

目录 1,嵌入式系统 1,嵌入式系统的定义 2,单片机的定义 2,51单片机 1,开发环境 2,开发板使用的基本思路 1,查看原理图,查看芯片手册 2,获得调用硬件的管…

AI的安全应答之道

作者:统信UOS技术团队 2023,随着各种大语言模型的爆发,整个AI生态正处于从决策式AI进化到生成式AI的进程中。各类AI模型和AI应用层出不穷,也随之带来了与AI相关的各类潜在风险。AI开发和使用过程中的风险防范和治理,成为了不可忽…

SD-WAN的安全性体现在哪里?

SD-WAN技术以其高度灵活、网络自动配置和低成本等优势,将多个物理WAN链接整合为一个逻辑网络,推动网络从“连通驱动”向“服务驱动”导向的转变。同时,企业在追求高效网络时,SD-WAN的安全性也成为一个重要的考量因素。 SD-WAN采用…

OpenCV 8 - 模糊处理(均值滤波,高斯滤波,中值滤波,双边滤波)

模糊处理原理: Blur是图像处理中最简单和常用的操作之一,使用该操作的原因为了给图像预处理时候减低噪声使用,Blur操作其背后是数学的卷积计算, 通常这些卷积算子计算都是线性操作,所以又出线性虑波。 假设有6x6的图像像素点矩阵。卷积过程:6x6上面是个3x3的窗口,从左向右,…

c语言面向过程编码方式

使用模块化编程的方式实现c语言面向过程编码:将main文件,Util文件,头文件分开进行处理 c语言程序头文件 c语言头文件代码 #ifndef __Object_H_ #define __Object_H_// 这个位置编写头文件的代码 int markStudentId(int year, int classNum, …

Hive 主要内容一览

Hive架构 用户接口:Client CLI(command-line interface)、JDBC/ODBC(jdbc访问hive) 元数据:Metastore 元数据包括:表名、表所属的数据库(默认是default)、表的拥有者、列/分区字段、表的类型&am…