【Text2SQL】DAIL-SQL阿里推出,在Spider取得了SOTA

news/2024/12/22 19:17:38/

论文解读:Text-to-SQL Empowered by Large Language Models: A Benchmark Evaluation

论文详细介绍了DAIL-SQL方法,这是一个针对Text-to-SQL任务的提示工程方法。这个方法旨在通过精心设计的提示(prompt engineering)来优化大型语言模型(LLMs)的性能。通过这种细致入微的策略选择和优化,DAIL-SQL在Spider数据集上取得了86.6%的执行精度,当时取得了SOTA,显著提高了Text-to-SQL任务的性能,并在效率上也表现出色。

1. 问题表示(Question Representation)

问题表示是在零样本(zero-shot)场景下,如何有效地将自然语言问题和数据库模式表示给LLM,以便生成正确的SQL查询。论文中提到了几种不同的问题表示方法,并分析了它们的优缺点。这些方法包括:

  • 基本提示(Basic Prompt):直接提供表结构和问题,不包含额外的指令。
  • 文本表示提示(Text Representation Prompt):在基本提示的基础上添加了任务指令。
  • OpenAI演示提示(OpenAI Demostration Prompt):使用特定的规则(如“无需解释”)来指导LLM生成SQL。
  • 代码表示提示(Code Representation Prompt):以SQL语句的形式呈现表结构,将问题放在注释中。
  • Alpaca SFT提示(Alpaca SFT Prompt):为监督式微调(Supervised Fine-Tuning, SFT)设计的提示格式。

2. 上下文学习(In-Context Learning)

上下文学习是在少样本(few-shot)场景下,如何通过提供一些示例来帮助LLM更好地理解和生成SQL查询。这包括示例选择(example selection)和示例组织(example organization)两个方面:

  • 示例选择(Example Selection):选择与目标问题最相关的示例。论文提出了DAIL选择方法,它同时考虑问题和查询的相似性来选择最有帮助的示例。
  • 示例组织(Example Organization):决定如何在提示中组织选定的示例。论文提出了DAIL组织方法,它在保留问题到SQL映射的同时,通过去除数据库模式来减少令牌数量,提高效率。

3. DAIL-SQL方法

DAIL-SQL方法是一个综合性的解决方案,旨在通过优化问题表示、示例选择和组织策略来提升大型语言模型(LLMs)在Text-to-SQL任务上的性能。以下是DAIL-SQL方法在这三个关键方面的具体实施细节:

1. 问题表示(Question Representation)

问题表示是将自然语言问题和数据库模式有效地传递给LLMs的过程。DAIL-SQL选择了代码表示提示作为其问题表示方法。这种方法直接使用SQL语句来描述数据库表结构,并在注释中提出问题。这样做的优势在于:

  • 全面性:提供了数据库创建所需的全面信息,例如列类型、主键/外键等。
  • 针对性:针对LLMs在编程语言理解上的优势,使其更容易理解和处理问题。
2. 示例选择(Example Selection)

示例选择是决定哪些示例对于LLMs生成正确SQL查询最有帮助的过程。DAIL-SQL采用了一种新颖的示例选择策略,称为DAIL选择(DAIL Selection, DAIL𝐴?)。这种方法同时考虑问题和查询的相似性:

  • 掩码处理:首先对目标问题和候选示例问题中的数据库特定词汇进行掩码处理,以消除领域特定信息的干扰。
  • 相似性计算:计算掩码后的问题之间的相似性,并预测目标问题的SQL查询,然后计算这个预测查询与候选示例查询之间的相似性。
  • 选择标准:优先选择那些在问题和查询相似性上都较高的示例。
3. 示例组织(Example Organization)

示例组织是决定如何在提示中展示选定示例的过程。DAIL-SQL提出了一种新的组织策略,称为DAIL组织

  • 保留映射信息:与仅展示SQL查询的策略不同,DAIL组织同时展示问题和对应的SQL查询,保留了问题到SQL的映射信息。
  • 减少令牌消耗:通过去除示例中的数据库模式信息,减少了提示的长度,提高了令牌效率。
4.综合应用

DAIL-SQL将上述策略综合应用于Text-to-SQL任务中,具体步骤如下:

  1. 预处理:对目标问题和候选示例进行掩码处理,移除数据库特定词汇。
  2. 预测与选择:使用预训练模型预测目标问题的SQL查询,选择与该预测查询相似性高的示例。
  3. 组织与提示:将选定的示例以DAIL组织策略组织,并结合问题表示,形成最终的提示输入给LLMs。
  4. 生成与优化:LLMs根据提示生成SQL查询,并通过后处理(如自我一致性投票)进一步提高结果的准确性。

4. 效率考量

论文还强调了在提示工程中考虑令牌效率的重要性,尤其是在调用API成本较高的情况下。DAIL-SQL在设计时考虑了这一点,力求在保持高性能的同时减少令牌的使用,从而降低成本。


http://www.ppmy.cn/news/1529741.html

相关文章

Linux 基础入门操作 第九章 进程间通信之管道

第九章 进程间通信 进程通信有如下一些目的: A、数据传输:一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几 M 字节之间 B、共享数据:多个进程想要操作共享数据,一个进程对共享数据的修改&#xf…

【通信基础】精讲通信天线种类及CAN总线和集群关系

前言 在通信行业中,天线的种类非常多,涵盖了从简单的无线电天线到复杂的相控阵天线。这些天线的种类和形态各异,以满足不同频率、应用场景和通信需求。以下是一些主要的天线种类: 1. 通信天线种类 1.1 偶极子天线 (Dipole Ant…

切换到WDDM模式,Tesla M4可以用于本地显示输出了!

正文共:1333 字 21 图,预估阅读时间:2 分钟 上次安装完Tesla M4显卡之后(HPE服务器通过显卡直通安装Tesla M4,这算亮机成功了吗?),系统识别正常,但是不能用于显示&#x…

Nginx基础详解1(单体部署与集群部署、负载均衡、正反代理、nginx安装)

本阶段的任务 1.学会集群的操作概念 2.完成对Nginx的入门操作 3.使用Nginx实现集群和负载均衡 4.使用Nginx实现高可用的方案 目录 1.单体部署与集群部署 1.1单体部署的概念 1.2单体部署的优缺点 1.3集群部署的概念 1.4集群部署的优缺点 1.5集群部署需要注意的点 1.…

BOE(京东方)携故宫博物院举办2024“照亮成长路”公益项目落地仪式以创新科技赋能教育可持续发展

2024年9月20日,BOE(京东方)“照亮成长路”智慧教室落成暨百堂故宫传统文化公益课山西活动落地仪式在山西省太原市娄烦县实验小学隆重举行。自“照亮成长路”教育公益项目正式设立以来,BOE(京东方)持续以创新…

ES6中迭代器与生成器知识浅析

ES5及以下版本对JS几种集合,要存取数据一般需要用循环语句来遍历,就要初始化一个或多个变量来记录每一次循环在数据集合中的位置或数据值。这里容易出现超出边界问题,造成程序出错。另外,对于多次循环也需要跟踪理清各个变量关系及…

MySQL关卡任务书

基础任务 1. MySQL中char和varchar的区别,varchar(100)中的一百的含义,能存放多少汉字? CHAR类型用于固定长度的字符串。当存储数据时,会自动填充到指定长度,即使实际内容没有达到该长度。 VA…

Android中如何调用DLL文件

在 Android 设备上直接调用 DLL(动态链接库)文件是不可行的,因为 DLL 文件是 Windows 操作系统下的一种可执行文件格式,而 Android 操作系统基于 Linux 内核,两者在底层架构和 API 支持上存在根本差异。不过&#xff0…