AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


Dunamu提出MCS-SQL,提升大模型Text2SQL效果,执行准确率达到了89.6%
发布日期:2024-06-02 08:11:59 浏览次数: 3292


MCS-SQL: Leveraging Multiple Prompts and Multiple-Choice Selection For Text-to-SQL Generation


数据库管理员、数据分析师日常需要写大量的sql语句,这些sql语句对于专业的人员来说都需要精心设计。对于有分析需求的业务人员来说更是一大门槛。


现在大语言模型已经可以协助程序员编写代码,也可以编写简单的sql,但是生成的sql离实用还有一段距离。


近日,Dunamu提出了MCS-SQL,提升大模型Text2SQL效果,在BIRD和Spider基准测试中,该方法的执行准确率分别达到了65.5%和89.6%。


论文地址:https://arxiv.org/pdf/2405.07467


摘要


最近的大型语言模型(LLMs)在文本到SQL任务中表现出色,但仍然比人类专家的表现要低。本研究考虑了LLMs对提示的敏感性,并引入了一种新方法,利用多个提示来探索更广泛的搜索空间,并有效地聚合它们。我们通过使用多个提示来稳健地完善数据库模式。然后,我们基于完善的模式和多样的提示生成各种候选SQL查询。最后,根据置信度分数对候选查询进行过滤,并通过多项选择将最佳查询呈现给LLMs。在BIRD和Spider基准测试中,该方法的执行准确率分别达到了65.5%和89.6%,显著优于先前的ICL方法。此外,我们在BIRD基准测试中在生成查询的准确性和效率方面取得了新的SOTA表现。

简介

文本到SQL任务涉及将自然语言问题转换为SQL,对于数据库(NLIDB)系统的自然语言接口至关重要。随着大型语言模型(LLM)的进展,基于上下文学习(ICL)的文本到sql的方法已经证明了比传统的微调方法有显着的性能改进。然而,对于更具挑战性的BIRD 基准,由于其复杂的数据库(DB)模式和查询,基于icl的方法的准确率还没有超过60%,明显低于人类达到的93.0%。

LLM对提示的结构和内容的敏感性。即使对于语义相同的提示,由于句子顺序等因素,LLM也会产生截然不同的响应,示范实例的选择,以及这些例子呈现的顺序。我们的实验证实了在text-to-SQL上下文中的类似趋势。

为了提高文本到sql的LLM的准确性和鲁棒性,我们引入了一种新颖的方法,利用多个提示来生成各种候选答案并有效地聚合它们。我们利用LLM对提示的敏感性,探索更广泛的搜索空间,使用不同的提示来寻找答案。SQL生成过程包括三个步骤:模式链接、多个SQL生成和选择。首先,模式链接阶段使用多个提示从DB模式中健壮地选择与问题相关的表和列。随后,生成阶段使用各种提示来生成各种候选SQL查询,确保对潜在查询进行更广泛的探索。最后,选择阶段根据置信度对候选查询进行筛选,并通过多选题选择最优查询,并将其提交给LLM。

我们使用BIRD和Spider两个基准来评估我们的方法。对于BIRD,我们实现了65.5%的执行精度(EX)和71.4%的有效效率分数(VES),分别比之前的SOTA提高了5.9%和3.7%,创造了新的BIRD SOTA。对于Spider测试集,我们实现了89.6%的EX,比现有的SOTABIRD高出3.0%。

相关工作

由于基于ICL的方法在文本到sql任务中显示出卓越的性能,各种研究都集中在为文本到sql创建更好的提示上。一些研究侧重于将CoT或least-to-most等提示技术应用于文本到sql生成。然而,这些方法依赖于固定的手工制作的示例集,它们的性能可能会因这些示例的选择而有很大差异。在这项工作中,我们不是依赖于固定的人工标记样例,而是基于测试样例从训练数据中动态地选择少镜头样例。一些研究旨在确定文本到sql的更有效的少镜头选择策略。然而,与这些专注于确定单一最优选择策略的研究不同,我们采用了一种并行方法,采用了具有多个提示的各种少数选择策略,并有效地汇总了它们。

方法

本文提出了一种基于数据库模式的自然语言查询方法,包括三个步骤:模式链接、多个SQL生成和选择。其中,模式链接排除与问题无关的表和列,多个SQL生成基于不同提示生成多个候选SQL查询,选择最准确的SQL查询。

模式链接

模式链接包括表链接和列链接两个步骤,通过多个提示来提高召回率。模式链接的引入显著提高了细调整和基于ICL的方法的性能。

表链接

表链接是指将数据库模式和问题输入到LLM中,LLM提取出一系列参考表来生成SQL查询。为了方便解析LLM的答案,我们要求它以JSON格式回答,并解释每个表的必要性。为了增强表链接的鲁棒性,我们使用多个提示。我们的实验表明,LLM的输出受到输入句子顺序的显著影响。为了减小表顺序的影响,我们随机打乱表的顺序,生成多个不同的提示。对于每个提示,我们使用较高的采样温度从LLM中获取n个响应。最终的表链接输出是所有响应的并集,总共有pt·n个表列表。我们使用并集操作是因为在表链接中包含不必要的表不会对后续的SQL生成过程产生显著影响,但是省略必要的表会阻止生成正确的SQL查询。

### For a given DB schema and question,extract the list of tables requiredto write the SQL query.### DB schema: ...### Question: ..Your answer should be in the json format:{"reasoning": "..." # The reason forselecting each table."answer": [...] # List of selectedtables.}### Your answer:

列链接

在列链接中,LLM被要求提取用于将问题转换为SQL查询所需的列,并使用与表链接类似的提示。提示只包括在表链接过程中选择的表的模式,而不是整个数据库模式。由于相同的列名可能存在于不同的表中,我们指示LLM以[table_name].[column_name]的格式提供答案。表和列的顺序是随机排列的,以生成pc个唯一的提示。随后,为每个提示生成n个LLM响应,其中每个响应表示一个选定的列列表。列链接的输出是所有pc * n个响应的并集。在后续的SQL生成步骤中,当向LLM提供数据库模式时,只提供通过模式链接选择的表和列,而不是完整的模式。

生成多个SQL查询

为了解决LLM对提示的敏感性问题,研究人员通过多个不同的提示生成多个SQL查询,以确保更广泛的探索潜在的SQL查询。多项研究表明,LLM的输出结果会受到提供的few-shot示例的影响,甚至受到这些示例呈现顺序的影响。因此,通过改变few-shot示例的选择方法和呈现顺序,可以更有效地利用这种变化性。

few-shot样例选择

本文介绍了一种基于few-shot学习的自然语言到SQL查询的生成方法。为了生成多个不同的提示,作者使用了两种不同的选择策略:一种是基于问题相似性的,另一种是基于掩码问题相似性的。通过这两种few-shot选择策略,可以生成多个提示,包括仅从问题相似性中派生的提示,仅从掩码问题相似性中派生的提示,以及通过不同顺序集成两种策略的其他提示。

SQL生成

LLM是一个SQL生成模型,它可以根据给定的数据库模式和问题生成正确的SQL查询。为了提高模型的可解释性和准确性,我们在每个问题的提示中包含了少量的示例和数据库模式。模型不仅要生成SQL查询,还要解释生成的过程。我们使用高采样温度生成多个候选SQL查询。

### Generate the correct SQL query for agiven DB schema and question.### Gold Examples:- Question: ...- Gold SQL: ......### DB Schema: ...### Sample Table Contents: ...### Question: ...Your answer should be in the json format:{"reasoning": ".." # The reasoningsteps behind the generated SQL query"sql": ".." # The generated SQL query.}### Your answer:

选择

选择步骤旨在从候选查询中选择最准确的查询。首先,根据置信度分数对候选池进行筛选,然后由LLM负责从精炼的池中选择最准确的查询。

候选结果过滤

为了选择最准确的查询,首先需要缩小候选池。将执行结果相同的查询分组,并只保留每组中最快的查询。此外,将信心分数较低的查询从候选池中排除。具体而言,所有候选查询在数据库上执行,将导致语法错误或超时的查询从候选池中移除。然后,计算候选池中每个查询的信心分数,该分数基于产生相同执行结果的查询数量。最后,在具有相同执行结果的候选池中,只选择执行时间最短的查询。最后,将信心分数低于阈值的查询从候选池中排除,得到精炼的候选池。

多项选择决策

首先,通过过滤过程筛选出候选查询,然后将这些查询按置信度得分从高到低排列,提供给LLM进行多项选择。LLM不仅需要选择SQL查询,还需要提供选择的原因。最终的SQL查询通过多数投票确定。

### For a given DB schema and question,select the most accurate query amongthe candidate SQL queries.### DB schema: ...### Question: ...### Candidate SQLs:1. SQL12. SQL23. SQL3Your answer should be in the json format:{"reasoning": ".." # The reasoningsteps for selecting the correct SQLquery."sql": ".." # The selected SQL query.}### Your answer:

实验

数据集

Spider是一个大规模、复杂的跨领域文本到SQL基准测试,包括10,181个问题和5,693个不同的查询,涵盖200个数据库。BIRD是一个新的大规模、跨领域的文本到SQL基准测试,包括12,751个问题-SQL对,涵盖95个大型真实世界数据库。与Spider相比,BIRD包含更复杂的SQL查询,需要使用外部知识进行推理以生成准确的SQL查询。

评估指标

EX评估模型的SQL执行准确性,不仅仅是基于字符串匹配,还考虑了SQL的不同形式。

VES是一个额外的评估指标,考虑了模型生成的SQL的执行效率和准确性,通过执行时间来评估。如果执行结果与标准SQL不同,则得分为零。

实现细节

本文使用了GPT-4 8K作为LLM和text-embedding-ada-002作为句子嵌入模型,使用FAISS库进行嵌入相似度搜索。在模式链接中,使用了3个提示进行表链接和列链接。为了生成多个候选SQL查询,使用了5个不同的提示。在SQL生成和MCS步骤中,使用了k=20个问题-SQL对作为少量样本。筛选掉置信度低于阈值T=0.2的查询。

基线

本文比较了MCS-SQL方法与基于ICL的GPT-4、DIN-SQL、DAIL-SQL和MAC-SQL方法。这些方法都使用了few-shot学习和prompt技术来生成SQL查询语句。其中,DIN-SQL和DAIL-SQL使用了不同的prompt策略,而MAC-SQL则将问题分解为子问题并逐步生成SQL查询语句。MCS-SQL方法通过多次迭代来生成SQL查询语句,同时使用了自适应的few-shot学习和prompt技术。

结果和分析

结果

BIRD数据集中,提出的方法在EX和VES指标上都显著优于现有的基于ICL的方法,超过了之前的SOTA方法。在Spider数据集中,提出的方法在EX指标上也显著优于现有的基于ICL的方法,超过了之前的SOTA方法。

消融分析

在BIRD开发集上的消融结果表明,将模式链接添加到基线零样本设置中可以提高2.1%。这凸显了在SQL生成之前对模式进行细化的重要性,并表明所提出的模式链接过程有效地选择了相关的表和列。在提示中包含示例表内容进一步增强了这一收益,提高了2.4%。根据掩码问题相似性选择动态fewshot示例的引入导致了最大的性能提升,提高了4.8%。此外,当我们使用相同的提示从LLM中采样多个答案并使用所提出的MCS方法时,性能进一步提高了2.1%。这表明所提出的SQL选择方法能够从候选集中辨别和选择最准确的查询。最后,引入多个提示进一步提高了1.3%的性能,特别是在具有挑战性的查询上显示出显著的性能改进。这一改进表明使用各种提示扩大搜索空间显著提高了SQL生成的准确性。在Spider开发集上的消融结果列在表4中,可以看出所提出方法的每个组成部分都对性能提升做出了显著贡献,与BIRD的结果类似。

在模式链接中使用多个提示的影响

使用同一提示符采样多个响应并聚合它们可以显著提高性能,而使用多个提示符进一步提高了性能。这种方法可以有效地缓解LMM对提示符中表和列顺序的敏感性。在BIRD中,这种改进尤为明显,这表明使用多个提示符的效果对于更大和更复杂的数据库模式更为有效。使用多个提示符的联合响应对于提高SQL生成性能至关重要。

few-shot选择策略的影响

通过选择相似的问题作为few-shot示例,而不是随机选择,可以显著提高性能,BIRD和Spider的提高分别为2.3%和4.2%。此外,通过基于掩码问题的相似性而不是原始问题进行选择,还可以进一步提高性能,BIRD和Spider的提高分别为0.7%和0.5%。

多项选择决策的影响

对于BIRD和Spider,MCS方法的效果分别比得票率高0.6%和0.3%。同时,本文还强调了在使用MCS时,采用基于置信度的过滤方法可以有效缩小候选池。

总结

本研究提出了一种新方法,利用多个提示来增强ICL文本到SQL生成的准确性和鲁棒性。本方法使用不同的提示进行强大的模式链接。此外,我们采用不同的少量选择策略来生成多个查询生成提示,产生各种候选SQL查询。这些候选项随后根据其置信度得分进行过滤,并使用LLM和MCS选择最佳查询。在BIRD和Spider基准测试中的评估表明,该方法显著优于现有的ICL方法,并在BIRD上实现了新的SOTA性能。

▌关于我们

我们致力于提供优质的AI服务,涵盖人工智能、数据分析、深度学习、机器学习、计算机视觉、自然语言处理、语音处理等领域。如有相关需求,请私信与我们联系。



53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询