Text-to-SQL Empowered by Large Language Models: A Benchmark Evaluation 论文总结

论文摘要

  LLM逐渐成为了Text-to-SQL任务中的新范式。但过去由于缺乏较为系统的benchmark,人们难以设计有效、高效和经济的基于LLM的Text-to-SQL解决方案。为了应对这一挑战,本文首先对现有的prompt工程方法(包括问题表示、示例选择和示例组织)进行了系统而广泛的比较,并根据这些实验结果阐述了它们的优缺点。基于这些发现,作者的团队提出了一种新的集成解决方案, 称为DAIL-SQL,该解决方案以86.6%的执行准确率刷新了Spider排行榜,并设置了新的标准。作者的团队强调了prompt工程中的token efficiency,并在此指标下比较了先前的研究。此外,作者的团队还研究了开源LLM在上下文学习中的应用,并通过特定任务的监督微调进一步提高了它们的性能。他们探讨了开源LLM在Text-to-SQL方面的潜力,以及特定于任务的监督微调的优点和缺点。

Summary:问题表示(Question representation)

  论文中给出了主流的五种问题表示方法。

1. Basic Prompt( B S   P BS\ _P BS P

  Basic Prompt是最基础的问题表示,连Instruction都不包含,它主要由三部分组成:
  ①table schemas;
  ②natural language question prefixed by "Q: ";
  ③response prefix "A: SELECT ";
  论文中给出了一个例子:
example1

2. Text Representation Prompt ( T R   P TR\ _P TR P )

  Text Representation Prompt是在Basic Prompt的基础上取消了问答前缀,在开头增加了Instruction,进行了简单的任务描述来引导LLM完成任务,示例如下:
example2

3. OpenAI Demostration Prompt ( O D   P OD\ _P OD P

  这个问题表示方法出现在OpenAI官方关于Text-to-SQL任务的demo。相比 Text Representation Prompt ,它多了一条规则指示,“Complete sqlite SQL query only and with no explanation”,并且除了response的前缀,其他信息都用"#"注释。示例为:
example3

4. Code Representation Prompt( C R   P CR \ _P CR P

   Code Representation Prompt的思路较为不同,它用SQL的语法来全面地描述Database,也就是使用"CREAT TABLE" SQLs,涵盖了列的类型、主键、外键等信息,其余信息(如自然语言问题)都包在注释格式里,例子如下:
example4

5. Alpaca SFT Prompt( A S   P AS\ _P AS P

  Alpaca SFT Prompt是针对有监督微调的LLM设计的。它的Prompt主要哦有三部分:Instruction(任务描述加自然语言问题)Input(数据库模式)和Response(生成回答的提示前缀),文本基于Markdown的语法,示例如下:
example5

  对于上述的几种表示方法,论文中用一张表列出了它们的执行准确率,并讨论了它们在INS(Instruction)、RI(Rule Implication)、FK(Foreign Key)这些 Promp 组成成分上的区别。
Comparison_1

Summary:示例选择(Example Selection)

  论文中,作者和他的团队主要研究的是跨域的Text-to-SQL任务,总结了四种示例选择的方法。

1. Random:随机挑选,示例选择的baselin

2. Question Similarity Selection ( Q T S   S QTS\ _S QTS S )

  这个方法是要选择k个和目标问题最为相似的问题。首先,使用预训练的语言模型对示例库Q中的问题和目标问题做embedding,然后预定义一个距离度量(例如欧几里得距离或负余弦相似度),应用于每个示例-目标对。最后,利用 KNN 算法从 Q 中选择与目标问题最相似的k个问题对应的示例。

3. Masked Question Similarity Selection ( M Q S   _ S MQS \ \_S MQS _S)

  对于跨域的Text-to-SQL任务,文本中会含有大量的某领域特有的信息,为了消除这些信息带来的负面影响,可以把所有问题中的表名称、列名称和值都替换为mask token ,然后再计算embedding后的问题相似度。

4. Query Similarity Selection ( Q R S   _ S QRS\ \_S QRS _S)

  在这个方法中,关注的相似度是SQL查询语句的相似度。第一步是使用一个初始模型,基于目标问题和数据库生成SQL查询语句,用这个语句来近似目标希望得到的SQL查询语句。第二步是根据关键词,将生成的Query编码成二进制的离散语法向量。最后,同时基于SQL查询语句的相似性和示例的多样性来选择k个示例。

Summary:示例组织(Example Organization)

Full-Information Organization ( F I   O FI\ _O FI O).

   F I   O FI\ _O FI O指的是在组织示例时,使用和目标问题的问题表示一样的表示方法,将原本的response前缀(“SELECT” token)换成了完整的SQL语句。在罗列完所有示例后,就描述目标问题。例子如图所示:
example N

SQL-Only Organization ( S O   O SO\ _O SO O)

  这个组织方法仅仅使用一段前缀的说明和各个示例的SQL查询语句,目的是在有限token数量内给出尽量多的示例,但是会造成信息缺失的不良影响,示例如下:
在这里插入图片描述

Key Point:DAIL-SQL

  基于对这些已有的方法的比较和分析,作者和他的团队提出了一种新的Text-to-SQL方法,称为DAIL-SQL。首先摆出论文中对于上下文学习在Text-to-SQL任务中的目标:
   max ⁡ Q ′ , σ P M ( s ∗ ∣ σ ( q , D , Q ′ ) ) \max _{Q^{\prime}, \sigma} \quad \mathbb{P}_{\mathcal{M}}\left(s^{*} \mid \sigma\left(q, \mathcal{D}, Q^{\prime}\right)\right) maxQ,σPM(sσ(q,D,Q))
    s.t.     ∣ Q ′ ∣ = k  and  Q ′ ⊂ Q ,  \text { s.t.\ \ \ \ }\left|Q^{\prime}\right|=k \text { and } Q^{\prime} \subset Q \text {, }  s.t.    Q=k and QQ
  其中, Q = { ( q i , s i , D i ) } Q=\left\{\left(q_{i}, s_{i}, \mathcal{D}_{i}\right)\right\} Q={(qi,si,Di)},是一个由示例(自然语言问题 q i q_i qi和对应的SQL查询语句 s i s_i si)和数据库组成的三元组的集合, M \mathcal{M} M是我们使用的LLM, σ \sigma σ函数代表着我们选择的问题表示 q q q、数据库 D \mathcal{D} D和从 Q Q Q中挑选出来的k个示例选出的k个示例 Q ′ Q^{\prime} Q。也就是说,我们需要通过上下文学习的方法让LLM生成正确的SQL查询语句 s ∗ s^{*} s的可能性最大。

示例选择方法:提出DAIL Selection( D A I L   S DAIL\ _S DAIL S)

  在示例选择方面,论文提出了结合 M Q S   _ S MQS \ \_S MQS _S方法和 Q R S   _ S QRS\ \_S QRS _S方法的DAIL Selection(( D A I L   S DAIL\ _S DAIL S),同时关注问题和查询语句的相似度。
  首先,把目标问题 q q q和候选集 Q Q Q中的示例问题 q i q_i qi中的领域专有词汇都进行mask,然后embedding再计算欧几里得距离,进行相似度排序;同时,计算pre-predicted 的SQL查询语句 s ′ s^{\prime} s和候选集 Q Q Q中的示例 s i s_i si的相似度。然后,筛选出查询语句相似度大于预设阈值的示例,按照之前问题相似度排好的顺序取k个示例。

示例组织方法:提出DAIL Organization ( D A I L   O DAIL\ _O DAIL O )

  在示例组织方面,论文结合了 F I   O FI\ _O FI O S O   O SO\ _O SO O两种方法的优点,提出了 D A I L   O DAIL\ _O DAIL O组织方法,关键点如下:
(1)既包含自然语言问题,又包含对应的SQL查询语句;
(2)为了节省token以表示更多的示例,去除了对数据库模式的表示。

问题表示方法:选择 C R   P CR \ _P CR P

实验的一些发现

(1)关于问题表示,实验发现,外键和"无解释"的规则暗示都可能对Text-to-SQL任务有极大的益处,更多的规则暗示(Rule Implication)还有待探索;
(2)关于示例选择,实验发现,同时关注问题的相似度和查询语句的相似度是非常重要的。不过还存在查询语句相似度过低的情况,因为SQL查询语句的ground truth和用初始模型生成的查询语句存在较大差距。
(3)对于开源LLM,未经过微调的开源LLM的表现都逊色于OpenAI,且模型规模和模型表现呈正相关。不过,我们可以通过有监督微调来大大提升开源LLM在Text-to-SQL任务上的表现性能。但有一点需要注意,实验发现,经过微调后的LLM如果再使用上下文学习,反而会使精确匹配率和执行准确率下降。所以,微调后如何保留LLM的上下文学习能力有待探索。

Text-to-SQL任务的评价方法

  Text-to-SQL任务的评价方法主要包含两种,一个是精确匹配率(exact match ),另一个是执行准确率(execution accuracy)。精确匹配率指预测得到的SQL查询语句与正确的SQL查询语句在SELECT、WHERE等模块上的字符串完全匹配程度;执行准确率的正确执行是指在执行预测得到的SQL语句后,数据库能够返回正确答案。

  • 31
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Recently, the renowned actor Zhang Songwen has sparked a fascinating phenomenon known as "two-way rejection", which has captured the attention of many and inspired the masses. The roots of this phenomenon are complex, with one of the fundamental causes being the fear of failure that plagues most of us. Rejection can instill a sense of inadequacy and a fear of being perceived as a failure, which can be challenging to overcome. However, the concept of "two-way rejection" teaches us that rejection is a natural part of life, and it's acceptable to reject and be rejected in return. This empowers us to recognize that life is not just about failures, but also about perseverance, and striving to achieve our aspirations, which may include fame and fortune. Despite the distractions we may encounter, the concept of "two-way rejection" reminds us to turn away from erroneous opportunities and remain steadfast in our principles and moral compass. While there are both advantages and drawbacks to this approach, "two-way rejection" ultimately inspires us to embrace rejection, learn from it, and emerge stronger and more self-assured. However, it is essential to distinguish between a sound and an unsound opportunity to avoid blindly rejecting the right ones. In conclusion, the concept of "two-way rejection" should be approached with discretion, but it can prove to be a valuable tool in enabling us to adhere to our goals and persevere through rejection. It teaches us to embrace rejection, learn from it, and move forward with confidence, ultimately empowering us to achieve our dreams and aspirations.结合双向拒绝进行内容补充
05-10

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值