【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的多项选择来确定最终的查询。
相关推荐
小虚竹几秒前
用AI辅导侄女大学物理的质点运动学问题
人工智能·chatgpt
寻道码路3 分钟前
探秘 Docling:多格式文档解析转换大揭秘,赋能 AI 应用新生态
人工智能·aigc·ai编程
健忘的派大星3 分钟前
【AI大模型】根据官方案例使用milvus向量数据库打造问答RAG系统
人工智能·ai·语言模型·llm·milvus·agi·rag
摘星怪sec27 分钟前
【漏洞复现】|方正畅享全媒体新闻采编系统reportCenter.do/screen.do存在SQL注入
数据库·sql·web安全·媒体·漏洞复现
十二同学啊41 分钟前
JSqlParser:Java SQL 解析利器
java·开发语言·sql
莫名有雪43 分钟前
BUUCTF_Web([RCTF2015]EasySQL)二次注入+报错注入
sql
Daphnis_z3 小时前
大模型应用编排工具Dify之常用编排组件
人工智能·chatgpt·prompt
m0_748237054 小时前
sql实战解析-sum()over(partition by xx order by xx)
数据库·sql
羊小猪~~7 小时前
MYSQL学习笔记(四):多表关系、多表查询(交叉连接、内连接、外连接、自连接)、七种JSONS、集合
数据库·笔记·后端·sql·学习·mysql·考研
好评笔记9 小时前
AIGC视频生成模型:Stability AI的SVD(Stable Video Diffusion)模型
论文阅读·人工智能·深度学习·机器学习·计算机视觉·面试·aigc