【text2sql】基于上下文文学习的MCS-SQL框架在Spider和BIRD取得了新SOTA

论文标题 "MCS-SQL: Leveraging Multiple Prompts and Multiple-Choice Selection For Text-to-SQL Generation" ,发表于2024.5的arXiv。

1.摘要解读

研究背景 :大型语言模型(LLMs)在文本到SQL(Text-to-SQL)任务中,通过上下文学习(ICL)方法取得了显著的性能提升,但与人类专家相比,性能仍有较大差距,尤其是在处理复杂数据库模式和查询的基准测试中。 研究方法 :本研究提出了一种新方法,利用多个提示(multiple prompts)来探索更广泛的可能答案空间,并有效聚合这些答案。通过多提示强化数据库模式链接,生成多样化的候选SQL查询,并基于置信度分数过滤这些查询,最后通过多项选择(multiple-choice selection)获取最优查询。研究成果:在BIRD和Spider基准测试中,该方法分别取得了65.5%和89.6%的执行准确率,显著优于以往的ICL方法,并在BIRD基准测试中建立了新的性能标准。

2.主要贡献

作者提出的 MCS-SQL 方法,该方法通过利用多个提示(Multiple Prompts)和多项选择(Multiple-Choice Selection)来增强文本到SQL生成的准确性和鲁棒性。在BIRD和Spider这两个包含复杂数据库模式和查询的基准测试中,该方法实现了显著的性能提升,特别是在BIRD基准测试中,该方法取得了65.5%的执行准确率,超过了之前的最佳方法,并在效率上也有所提高。

3. 方法论解读

3.1 Schema Linking

模式链接的目的是将自然语言问题中的实体与数据库模式中的表格和列关联起来。这个过程分为两步:

  1. 表格链接(Table Linking):确定与自然语言查询相关的数据库表。作者使用多个提示来增加召回率,即确保所有相关表格都被选中。为了减少表格顺序的影响,作者随机打乱表格顺序,生成多个不同的提示。对于每个提示,使用高采样温度从LLM获得多个响应,最终结果是所有响应的并集。

  2. 列链接(Column Linking):在确定了相关表格后,下一步是确定这些表格中需要的列。与表格链接类似,这个过程也使用多个提示,并且只包括在表格链接阶段选择的表格的模式。

3.2 Multiple SQL Generation

多SQL生成阶段的目标是生成多个候选SQL查询。作者通过以下步骤实现:

  1. 少量示例选择(Few-Shot Examples Selection):对于每个测试样本,从训练集中选择少量示例。作者使用了两种不同的选择策略:基于问题相似度的方法和基于掩蔽问题相似度的方法。掩蔽问题是指将问题中特定于数据库模式的标记(如表名、列名和值)替换为特殊标记。

  2. SQL生成:使用少量示例、数据库模式、样本表内容和自然语言问题构造提示。每个提示都旨在生成一个SQL查询,并要求LLM解释生成该查询的推理步骤。对于每个提示,使用高采样温度从LLM获得多个响应。

3.3 Selection

选择阶段的目标是从候选查询中选择最准确的一个。选择过程包括两个步骤:

  1. 候选过滤(Candidate Filtering):基于置信度分数过滤候选查询。首先,执行所有候选查询并移除那些由于语法错误或超时而失败的查询。然后,计算每个查询的置信度分数,即产生相同执行结果的查询数量。选择每个执行结果组中执行时间最短的查询,并移除置信度分数低于某个阈值的查询。

  2. 多项选择(Multiple-Choice Selection, MCS):过滤后,使用LLM通过多项选择问题来选择最准确的查询。给定一组候选SQL查询,LLM需要选择最合适的查询并提供选择的理由。对于每个多项选择问题,从LLM采样多个响应,并通过多数投票确定最终的SQL查询。

工作流程总结
  1. 模式链接:使用多个提示来确定与问题相关的数据库表格和列。
  2. 多SQL生成:基于上一步确定的模式和多个不同的提示生成多个候选SQL查询。
  3. 选择:首先基于置信度过滤候选查询,然后通过LLM的多项选择来确定最终的查询。
相关推荐
路人蛃8 小时前
通过国内扣子(Coze)搭建智能体并接入discord机器人
人工智能·python·ubuntu·ai·aigc·个人开发
scheduleTTe8 小时前
SQL增查
数据库·sql
CV-杨帆8 小时前
论文阅读:arxiv 2025 A Survey of Large Language Model Agents for Question Answering
论文阅读·人工智能·语言模型
板板正9 小时前
SpringAI——提示词(Prompt)、提示词模板(PromptTemplate)
java·spring boot·ai·prompt
晨欣9 小时前
大型语言模型(LLM)在网络安全中最具商业价值的应用场景(Grok3 回答 DeepSearch模式)
网络·web安全·语言模型
墨风如雪10 小时前
告别“听指令”,AI要“自己动手”了!ChatGPT Agent,AI界的“全能选手”已上线!
aigc
Xyz_Overlord12 小时前
NLP——迁移学习
人工智能·自然语言处理·迁移学习
靴子学长13 小时前
Lotus-基于大模型的查询引擎 -开源学习整理
python·学习·自然语言处理
算家计算14 小时前
今天,OpenAI彻底颠覆AI助手!ChatGPT智能体上线,融合三大AI
人工智能·chatgpt·agent
机器之心17 小时前
刚刚,OpenAI通用智能体ChatGPT Agent正式登场
chatgpt