EMNLP 2023精选:Text-to-SQL任务的前沿进展(上篇)——正会论文解读

导语

本文记录了今年的自然语言处理国际顶级会议EMNLP 2023中接收的所有与Text-to-SQL相关(通过搜索标题关键词查找得到,可能不全)的论文,共计12篇,包含5篇正会论文和7篇Findings论文,以下是对这些论文的略读,某几篇也有详细的笔记(见链接)。

序号类型标题
1MainBenchmarking and Improving Text-to-SQL Generation under Ambiguity
2MainEvaluating Cross-Domain Text-to-SQL Models and Benchmarks
3MainExploring Chain of Thought Style Prompting for Text-to-SQL
4MainInteractive Text-to-SQL Generation via Editable Step-by-Step Explanations
5MainNon-Programmers Can Label Programs Indirectly via Active Examples: A Case Study with Text-to-SQL
6FindingsBattle of the Large Language Models: Dolly vs LLaMA vs Vicuna vs Guanaco vs Bard vs ChatGPT - A Text-to-SQL Parsing Comparison
7FindingsEnhancing Few-shot Text-to-SQL Capabilities of Large Language Models: A Study on Prompt Design Strategies
8FindingsError Detection for Text-to-SQL Semantic Parsing
9FindingsReFSQL: A Retrieval-Augmentation Framework for Text-to-SQL Generation
10FindingsSelective Demonstrations for Cross-domain Text-to-SQL
11FindingsSemantic Decomposition of Question and SQL for Text-to-SQL Parsing
12FindingsSQLPrompt: In-Context Text-to-SQL with Minimal Labeled Data

由于篇数过多,分为两篇博客记录,本篇为第一篇,主要记录正会论文:

正会论文(Main Conference)

中稿的这5篇正会论文来看,主要还是围绕着Text-to-SQL的评测、实际系统交互和LLM在Text-to-SQL任务的应用为主。

Benchmarking and Improving Text-to-SQL Generation under Ambiguity

  • 链接:https://arxiv.org/pdf/2310.13659v1.pdf
  • 摘要:在文本到SQL转换的研究中,大多数基准测试都是针对每个文本查询对应一个正确的SQL的数据集。然而,现实生活中的数据库上的自然语言查询经常由于模式名称的重叠和多个令人困惑的关系路径,而涉及对预期SQL的显著歧义。为了弥合这一差距,我们开发了一个名为AmbiQT的新基准,其中包含超过3000个示例,每个文本都可以由于词汇和/或结构上的歧义而被解释为两个合理的SQL。 面对歧义时,理想的top-k解码器应该生成所有有效的解释,以便用户可能的消歧(Elgohary等,2021年;Zhong等,2022年)。我们评估了几个文本到SQL系统和解码算法,包括那些使用最先进的大型语言模型(LLMs)的系统,发现它们距离这一理想还很远。主要原因是流行的束搜索算法及其变体将SQL查询视为字符串,并在top-k中产生无益的令牌级别多样性。 我们提出了一种名为LogicalBeam的新解码算法,该算法使用基于计划的模板生成和受限填充的混合方法来导航SQL逻辑空间。逆向生成的计划使模板多样化,而仅在模式名称上分支的束搜索填充提供了值多样性。LogicalBeam在生成top-k排名输出中的所有候选SQL方面,比最先进的模型高出2.5倍的效果。它还提高了SPIDER和Kaggle DBQA上的前5名精确匹配和执行匹配准确率。

image.png

  • 要点:主要关注于自然语言到SQL转换时的歧义现象,作者先是自己设计了一个评测基准AmbiQT,然后针对性设计了一种LogicalBeam的新解码算法,改善原有的beam-search带来的token-level的beam差异。

Evaluating Cross-Domain Text-to-SQL Models and Benchmarks

  • 链接:https://arxiv.org/pdf/2310.18538v1.pdf
  • 摘要:文本到SQL的基准测试在评估该领域的进展和不同模型的排名方面起着关键作用。然而,由于各种原因,比如自然语言查询的不明确、模型生成的查询和参考查询中固有的假设、以及在某些条件下SQL输出的非确定性特性,导致基准测试中模型生成的SQL查询与参考SQL查询的准确匹配失败。在本文中,我们对几个著名的跨领域文本到SQL基准测试进行了广泛的研究,并对这些基准测试中表现最佳的一些模型进行了重新评估,包括手动评估SQL查询和用等效表达式重写它们。我们的评估揭示,由于可以从提供的样本中得出多种解释,所以在这些基准测试中达到完美表现是不可行的。此外,我们发现这些模型的真实性能被低估了,而且在重新评估后它们的相对性能发生了变化。最值得注意的是,我们的评估揭示了一个令人惊讶的发现:在我们的人类评估中,一种基于最新GPT4模型的模型超越了Spider基准测试中的金标准参考查询。这一发现突显了谨慎解读基准测试评估的重要性,同时也认识到进行额外独立评估在推动该领域进步中的关键作用。

image.png

  • 要点:主要讨论了现有Text-to-SQL评测基准中存在的语言不明确、数据值不明确等导致的评估标准失真的现象,作者对部分存在上述问题的Question-SQL Pair进行重写后对现有的一些SOTA模型进行了再评估。

Exploring Chain of Thought Style Prompting for Text-to-SQL

  • 链接:https://arxiv.org/abs/2305.14215
  • 摘要:使用大型语言模型(LLMs)进行上下文学习由于在各种任务上的卓越的少样本表现,近来引起了越来越多的关注。然而,其在文本到SQL解析上的表现仍有很大的提升空间。在本文中,我们假设改善LLMs在文本到SQL解析上的一个关键方面是其多步推理能力。因此,我们系统地研究了如何通过思维链(CoT)风格的提示来增强LLMs的推理能力,包括原始的思维链提示(Wei等,2022b)和最少到最多提示(Zhou等,2023)。我们的实验表明,像Zhou等(2023)中的迭代提示可能对文本到SQL解析来说并不必要,而使用详细的推理步骤往往会有更多的错误传播问题。基于这些发现,我们提出了一种新的CoT风格的提示方法,用于文本到SQL解析。与不带推理步骤的标准提示方法相比,它在Spider开发集和Spider真实集上分别带来了5.2和6.5点的绝对提升;与最少到最多提示方法相比,分别带来了2.4和1.5点的绝对提升。
  • 要点:本文探索了应用LLM解决Text-to-SQL任务时的Prompt Engineering。作者设计了一种“问题分解”的Prompt格式并结合每个子问题中的表列名进行融合,实现了与RASAT+PICARD模型相当的表现。

image.png

  • 笔记:Text-to-SQL任务中的思维链(Chain-of-thought)探索

Interactive Text-to-SQL Generation via Editable Step-by-Step Explanations

  • 链接:https://arxiv.org/abs/2305.07372
  • 摘要:关系数据库在这个大数据时代扮演着重要角色。然而,对于非专家来说,由于他们不熟悉SQL等数据库语言,充分释放关系数据库的分析能力是具有挑战性的。虽然已经提出了许多技术来自动从自然语言生成SQL,但它们存在两个问题:(1)特别是对于复杂查询,它们仍然会犯许多错误,(2)它们没有为非专家用户提供一种灵活的方式来验证和修正错误的查询。为了解决这些问题,我们引入了一种新的交互机制,允许用户直接编辑不正确的SQL的逐步解释来修复SQL错误。在Spider基准测试上的实验表明,我们的方法在执行准确性方面至少比三种最先进的方法高出31.6%。另外,一项包括24名参与者的用户研究进一步表明,我们的方法帮助用户在更少的时间内以更高的信心解决了更多的SQL任务,展示了其拓宽数据库访问,特别是对于非专家的潜力。

image.png

  • 要点:提出了一个名为STEPS的交互式文本到SQL系统,允许用户通过直接编辑逐步解释来修正错误的SQL查询。Spider上实验显示,STEPS在提高任务完成速度、准确性和用户自信度方面相比现有方法有显著优势。

Non-Programmers Can Label Programs Indirectly via Active Examples: A Case Study with Text-to-SQL

  • 链接:https://arxiv.org/abs/2205.12422
  • 摘要:非程序员能否通过自然语言标注来间接地表示其含义的复杂程序?我们介绍了APEL框架,其中非程序员通过选择由种子语义解析器(例如Codex)生成的候选程序来进行标注。由于他们无法理解这些候选程序,我们要求他们通过检查程序的输入输出示例来间接选择。对于每个表达,APEL会主动搜索一个简单的输入,在此输入上候选程序倾向于产生不同的输出。然后,我们仅要求非程序员选择合适的输出,从而推断出哪个程序是正确的,并可以用来微调解析器。作为一个案例研究,我们招募了非程序员人类使用APEL重新标注SPIDER,一个文本到SQL数据集。我们的方法达到了与原始专家标注者相同的标注准确率(75%),并揭露了原始标注中的许多微妙错误。

image.png

  • 要点:本文提出了APEL框架,使非程序员能通过选择候选程序的示例输出来注释文本到SQL的语义。这一方法在文本到SQL数据集SPIDER上达到了与专家相当的注释准确性,并揭示了原始注释中的一些错误。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

打印文件pdf怎么转换成word文档?pdf转换工具推荐

有时候我们可能需要重用PDF文件中的文本内容,比如引用某些段落、复制粘贴特定文字或提取数据,通过将pdf文件转换成word,可以轻松地提取和重用其中的文本,节省时间和努力,那么pdf怎么转word呢?可以试试本文推…

React 中实现拖拽功能-插件 react-beautiful-dnd

拖拽功能在平时开发中是很常见的,这篇文章主要使用react-beautiful-dnd插件实现此功能。 非常好用,附上GitHub地址:https://github.com/atlassian/react-beautiful-dnd 安装及引入 // 1.引入 # yarn yarn add react-beautiful-dnd# npm npm…

左旋字符串的三种方法,并判断一个字符串是否为另外一个字符串旋转之后的字符串。(strcpy,strncat,strcmp,strstr函数的介绍)

一. 实现一个函数,可以左旋字符串中的k个字符。 例如: ABCD左旋一个字符得到BCDA ABCD左旋两个字符得到CDAB 通过分析,可以知道实际的旋转次数,其实是k%(字符串长度)。假设一个字…

小白水平理解面试经典题目_数组类LeetCode 118 Pascal‘s Triangle【回归解法】

LeetCode 118 生成杨辉三角(Pascal’s Triangle) 小白渣翻译 给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。 在杨辉三角中,每个数是它左上方和右上方的数的和。 例子 这里是小白理解 那么这种题目一上来看&#xf…

利用视图实现复杂查询

💗wei_shuo的个人主页 💫wei_shuo的学习社区 🌐Hello World ! 利用视图实现复杂查询 需求:需要对Excel表中导入的四列进行,精准查询(搜索符合这四列的数据),并提供预览后…

c#cad 创建-文本(一)

运行环境 vs2022 c# cad2016 调试成功 一、代码说明 该代码是一个用于在AutoCAD中创建文本的命令。 首先,通过添加using语句引用了需要使用的Autodesk.AutoCAD命名空间。 然后,在命名空间CreateTextInCad下定义了一个名为CreateTextCommand的类&…

C# CAD交互界面-自定义窗体(三)

运行环境 vs2022 c# cad2016 调试成功 一、引用 二、开发代码进行详细的说明 初始化与获取AutoCAD核心对象: Database db HostApplicationServices.WorkingDatabase;:这行代码获取当前工作中的AutoCAD数据库对象。在AutoCAD中,所有图形数…

《动手学深度学习(PyTorch版)》笔记7.1

注:书中对代码的讲解并不详细,本文对很多细节做了详细注释。另外,书上的源代码是在Jupyter Notebook上运行的,较为分散,本文将代码集中起来,并加以完善,全部用vscode在python 3.9.18下测试通过&…

数据库学习笔记2024/2/5

2. SQL 全称 Structured Query Language,结构化查询语言。操作关系型数据库的编程语言,定义了 一套操作关系型数据库统一标准 2.1 SQL通用语法 在学习具体的SQL语句之前,先来了解一下SQL语言的通用语法。 1). SQL语句可以单行或多行书写&…

C语言中10种常见的字符串函数你都掌握了吗?

目录 ​编辑 1.strlen(字符串长度计算函数) 2.strcpy(字符串拷贝函数) 3.strcat(字符串追加函数) 4.strcmp(字符串大小比较函数) 5.strncpy(有限制的字符串拷贝函数) 6.strnca…

DevOps落地笔记-15|混沌工程:通过问题注入提高系统可靠性

上一课时介绍了通过搭建一套部署流水线,高效、可靠的将软件部署到测试环境以及生产环境。到目前为止,我们学习了从用户需求到软件部署到生产环境交付给用户的全过程。随着软件工程不断发展,近几年,出现了一种新的实践,…

[Angular 基础] - 指令(directives)

[Angular 基础] - 指令(directives) 这里假设已经知道如何创建 Angular 组件以及数据绑定,不然可以参考前两篇笔记: [Angular 基础] - Angular 渲染过程 & 组件的创建 [Angular 基础] - 数据绑定(databinding) 就像中文翻译一样,dire…

一文讲透ast.literal_eval() eval() json.loads()

文章目录 一文讲透ast.literal_eval() eval() json.loads()1. ast.literal_eval()2. eval()3. json.loads()4. 总结 一文讲透ast.literal_eval() eval() json.loads() 在Python库中,我们经常会遇到需要将字符串转换为相应对象或数据结构的情况。在这种情况下&#…

研究表明:论文被大V宣传后,引用次数暴涨2~3倍!

随着AI领域的迅猛发展,学术成果的传播方式发生了显著转变。 期刊审稿周期长,当你还在和审稿人battle时,方法先过时了。而会议虽然没有期刊长,但也有几个月的时间差,为了保护成果的创新性并扩大影响力,很多…

mysql-FIND_IN_SET查询优化

优化前 SELECTuser_id,user_name,real_name,PASSWORD,real_org_id,real_org_name,real_dept_id,real_dept_name, STATUS FROMsys_user WHEREis_del 0 AND find_in_set( lilong, login_user_account ) 优化后 SELECTuser_id,user_name,real_name,PASSWORD,real_org_id,real…

必须了解的mysql三大日志-binlog、redo log和undo log

背景 日志是 mysql 数据库的重要组成部分,记录着数据库运行期间各种状态信息。mysql日志主要包括错误日志、查询日志、慢查询日志、事务日志、二进制日志几大类。 作为开发,我们重点需要关注的是二进制日志( binlog )和事务日志(包括redo log 和 undo …

Linux应用开发---网络通信

Linux应用开发—网络通信 1 网络通信概述 Linux下的网络编程,我们一般称为 socket 编程,socket 是内核向应用层提供的一套网络编程接口,我们可以基于socket接口开发自己的网络相关应用程序。 1.1 socket 简介 套接字(socket&…

ReentrantLock源码分析、LockSuppor、ReentrantReadWriteLock、锁优化的方法

ReentrantLock类图 我们看一下重入锁ReentrantLock类关系图,它是实现了Lock接口的类。NonfairSync和FairSync都继承 自抽象类Sync,在ReentrantLock中有非公平锁NonfairSync和公平锁FairSync的实现。 在重入锁ReentrantLock类关系图中,我们可以…

Rust-获取随机数练习案例

文章目录 前言一、取官网示例猜数字游戏玩一玩cargo checkTOML文件 二、完整代码总结 前言 Rust学习系列-获取随机数练习案例,基于cargo 进行案例练习,过程中会使用cargo check; cargo run;等命名,同时了解基础的let …

flask_django_python五金电商网络营销的可视化分析研究

前面部分完成了系统需求分析,了解到新闻数据业务方面的需求,系统主要分为用户管理、五金信息管理、在线留言、系统管理等功能。销的可视化研究,并对这些数据进行处理, 然后对这些数据进行可视化分析和统计。 Python 爬虫技术目前来…