【学习笔记5】MCS-SQL: Leveraging Multiple Prompts and Multiple-Choice Selection For Text-to-SQL Generation

Abstract

        最近在大型语言模型(LLMs)方面的进展使基于上下文学习(ICL)的方法在Text-to-SQL任务中显著优于微调方法。然而,在包含复杂模式和查询的基准测试中,例如BIRD,它们的性能仍然远低于人类专家。本研究考虑了LLMs对提示的敏感性,并提出了一种新方法,该方法利用多个提示来探索更广泛的可能答案搜索空间并有效地汇总它们。具体而言,我们通过使用多个提示的模式链接稳健地优化数据库模式。随后,我们根据优化后的模式和多样化的提示生成各种候选SQL查询。最后,候选查询根据其置信度评分进行筛选,并通过向LLM展示的多项选择获得最佳查询。在BIRD和Spider基准测试中评估时,所提出的方法分别达到了65.5%和89.6%的执行准确率,显著优于之前基于ICL的方法。此外,我们在BIRD上在生成查询的准确性和效率方面确立了新的最先进性能。

        GPT翻译

1 Introduction

        现有的text-to-sql模型BIRD的性能仍旧远低于人类的93%,这一差距表明需要进一步改进上下文学习(ICL)的方法,使之成为NLIDB系统。

        LLM 跨不同任务的一个重要限制是它们对提示的结构和内容的敏感性。即使对于语义相同的提示,LLM 也可能由于句子的顺序,示例的选择以及这些例子呈现的顺序。在本文的5.3节有测试模式表示的变化,5.4节有介绍few-shot示例变化的影响。

        为了提高基于LLM的text-to-sql的准确性和鲁棒性,本文引入了一种新的方法,利用多个提示生成各种候选答案,并有效地聚合它们。利用LLM对于提示词的敏感性,使用不同的提示,在更广阔的搜索空间中搜索答案。如图1所示,SQL 生成过程包括三个步骤: schema linking(模式链接)、multiple SQL generation(多个SQL生成)和selection(选择)。模式链接阶段使用多个提示从 DB 模式中稳健地选择与问题相关的表和列;生成阶段使用各种提示来生成不同的候选 SQL 查询,从而确保能查询到广泛的有潜力的查询;选择阶段基于置信度分数筛选候选查询,并通过多重选择来选择最优查询。

2 Related Work

        略

3 Methodology

        上面那一张图展现了整个MCS-SQL的流程,下面将分别介绍这些模块。

3.1 Schema Linking

        模式链接涉及到从数据库中识别相关的表和列,以便将自然语言问题转换为 SQL 查询。模式链接的引入显着改善了基于微调和基于 ICL方法的性能。我们通过两个步骤执行模式链接: 首先,提取与自然语言查询相关的表(表链接)。然后,提取这些表中必需的列(列链接)。我们在两个阶段都使用了多种提示,目的是提高召回率。

3.1.1 Table Linking

        在表链接中,数据库模式和问题被输入到 LLM 中,LLM 提取引用表列表以生成 SQL 查询。我们要求 LLM 解释为什么每个表都是必需的,而不是仅仅选择一个表列表。为了方便地解析 LLM 的答案,我们要求它以 JSON 格式进行响应。为了增强表链接的健壮性,我们使用了多个提示符。各种研究表明,LLM 输出受输入句子序列的显着影响。类似地,我们的实验(5.3)揭示了 LLM 的模式链接的输出也依赖于提示符中表和列的排列顺序。为了最小化表顺序的影响,我们随机改变表的顺序,生成 p_{t}个不同的提示符。对于每个提示,我们使用高temperature从 LLM 获得 n 个响应。最后的表链接输出来自所有响应的联合,相当于p_{t}\cdot n表列表。我们使用联合操作是因为在表链接中包含不必要的表并不会显著影响后续的 SQL 生成过程,但省略必要的表会阻止生成正确的 SQL 查询。prompt如下图:

3.1.2 Column Linking

        对于列链接,我们要求 LLM 使用类似于表链接中使用的提示来提取SQL 查询所需的列。提示符只包括在表链接期间选择的表的模式,因为相同的列名可以存在于不同的表中,所以我们指示 LLM 在[ table _ name ][ column _ name ] 中提供答案。
        与表链接类似,表和列的顺序也是随机改变的,以生成 pc 个提示词。随后,为每个提示生成 n 个 LLM 响应,其中每个响应表示一个选定的列列表。列连接输出是所有 pc * n 响应的联合。在随后的 SQL 生成步骤中,当需要向 LLM 提供 DB 模式时,应只提供通过模式链接选择的表和列,而不提供完整的模式。        

3.2 Multiple SQL Generation

        为了解决 LLM 对提示的敏感性,我们基于多个不同的提示生成各种 SQL 查询,我们通过改变few-shot示例的选择方法和它们的呈现顺序来生成多个提示,从而确保更广泛地探索潜在的 SQL 查询。

3.2.1 Few-Shot Examples Selection

        对于每个测试样本,从训练数据集中选择一组few-shot样本。为了使用不同的例子生成多个提示,使用两种不同的选择策略:

        (1)利用问题相似性:在基于问题相似性的方法中,从训练数据集中选择与测试样本的自然语言问题最接近的句子嵌入问题。
        (2)利用掩盖问题相似性:基于掩蔽问题相似性的方法考虑掩蔽问题的嵌入相似性,其中问题中特定于 DB 模式的标记被掩蔽。这种屏蔽允许通过忽略特定于模式的内容来生成类似的查询,从而确定问题的相似性。这个策略的例子如下图:

3.2.2 SQL Generation

        如清上图所示,SQL 生成提示包括少量示例、一个 DB 模式、示例表内容和一个自然语言问题。少量的示例包括问题和相应的gold SQL 。为了减少提示符长度,我们为每个问题删去了目标 DB 的模式。关于 DB 模式,我们只选择在模式链接过程中选择的表和列,以避免给 LLM 带来不相关信息的负担。此外,我们在提示符内嵌入 CSV 格式的样本表内容。最后,指示 LLM 不仅生成 SQL 查询,而且解释其生成背后的推理,从而提高模型的可解释性和准确性。
        对于每个提示符,我们使用高采样温度从 LLM 生成 n 个响应,导致生成 p_{q}\cdot n个候选 SQL 查询。

3.3 Selection

        选择步骤旨在从候选查询中选择最准确的查询。先根据置信度分数过滤候选池,然后让 LLM 从候选池中选择最准确的查询。

3.3.1 Candidate Filtering

        为了在候选者中选择最准确的查询,首先缩小候选者池的范围。具有相同执行结果的查询被分组在一起,并且只保留每个组中最快的查询。此外,低置信度分数的查询被排除。

3.3.2 Multiple-Choice Selection (MCS)

        在过滤过程之后,我们利用 LLM 通过一个多项选择在候选者中选择最准确的查询。

 

        如上图所示,我们向 LLM 提供一组候选 SQL 查询,并请求它为给定的 DB 模式和问题选择最准确的查询。考虑到 LLM 倾向于出现较早的选项,候选人查询应该按照置信度分数的降序排列。LLM 不仅需要选择一个 SQL 查询,而且还要提供选择它的原因。我们从 LLM 中抽样 n 个响应,并通过多数票决定最终的 SQL 查询。

4 Experimental Setup

4.1 Datasets

        Spider、BIRD

4.2 Evaluation Metrics

        EX、VES

4.3 Implementation Details

        在四个实验中,使用 GPT-48K 作为 LLM,使用text-embedding-ada-002作为文本嵌入模型,该模型通过 Azure OpenAI API 进行访问。此外,使用了 FAISS库来进行相似性搜索。在模式链接中,表链接使用 pt = 3提示,列链接使用 pc = 3提示。为了生成多个候选 SQL 查询,我们使用 pq = 5个不同的提示符。对于每个 GPT API 调用,我们使用1.0的temperature并生成 n = 20个响应。在 SQL 生成和 MCS 步骤中,我们使用 k = 20个问题-SQL 对作为少数例子。我们以180秒的超时时间执行所有候选 SQL 查询,并以低于阈值 T = 0.2的置信度分数筛选出查询。

4.4 Baselines

        GPT-4、DIN-SQL、DAIL-SQL、MAC-SQL

5 Results and Analysis

5.1 Main Results

        BIRD:

 

        Spider: 

        

5.2 Ablation Study

        BIRD:

        增加模式链接到baseline有了2.1% 的改进。这强调了在 SQL 生成之前优化模式的重要性,并表明所提出的模式链接过程有效地选择了相关的表和列。将样本表内容纳入提示进一步扩大了这一收益 + 2.4% 。引入基于掩盖问题相似性选择的动态few-shot示例,性能提高最大,为 + 4.8% 。此外,当使用相同的提示从 LLM 抽取多个答案并采用所提出的 MCS 方法时,性能进一步提高了2.1% 。这说明了所提出的 SQL 选择方法能够从一组候选查询中识别和选择最准确的查询。最后,引入多个提示导致了 + 1.3% 的进一步增强,特别是在具有挑战性的查询上显示出显著的性能改进。这一改进表明使用各种提示扩大搜索空间显著提高了 SQL 生成的准确性。 

        Spider: 

5.3 Impact of Using Multiple Prompts in Schema Linking

        本节对三个案例进行比较分析,以研究在模式链接中使用多个提示符的影响:

        (1)贪婪的单个提示符解码。

        (2)从单个提示符生成的多个答案的联合。

        (3)从多个提示符生成的多个答案的联合。

        下图的计算比例是结果中是否包含Gold query而计算出来的百分比。

        上图结果表明,提示符中表和列的顺序影响 LLM 的模式链接结果,并且提出的多提示符方法有效地减轻了这种敏感性。这种改进在 BIRD 中尤其明显,这意味着对于更大和更复杂的 DB 模式,使用多个提示会更有效。
        如果在模式链接中省略了必要的表或列,就不可能在后续过程中生成准确的 SQL 查询,因此我们提出的使用来自多个提示的各种响应的联合的建议对于提高 SQL 生成性能是至关重要的。

5.4 Impacts of Different Few-shot Selection Strategies        

5.5 Impact of MCS        

        对于 BIRD 和 Spider,MCS 方法的表现分别比多数投票方法高出0.6% 和0.3% 。值得注意的是,在没有基于置信度的过滤的情况下,MCS 方法的准确率明显下降。这个结果强调了在使用 MCS 时,使用基于置信度的过滤来有效地缩小候选人范围的重要性。 

6 Conclusion

        略

  • 11
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值