Abstract
Text-to-SQL 转换是一项关键创新,简化了从复杂 SQL 语句到直观自然语言查询的转换,尤其在 SQL 在各类岗位中广泛应用的情况下,这一创新显得尤为重要。随着 GPT-3.5 和 GPT-4 等大型语言模型(LLMs)的兴起,这一领域得到了极大的推动,提供了更好的自然语言理解能力和生成细致入微的 SQL 语句的能力。然而,在 Text-to-SQL 应用中,开源 LLMs 的潜力尚未得到充分挖掘,许多框架未能充分利用其能力,特别是在处理复杂数据库查询和结合反馈进行迭代优化方面。为了解决这些限制,本文介绍了 SQLfuse,这是一套集成了开源 LLMs 和一系列工具的强大系统,用于提高 Text-to-SQL 转换的准确性和可用性。SQLfuse 包含四个模块:模式挖掘、模式链接、SQL 生成和 SQL 评审模块,不仅生成 SQL 查询,还能持续提升 SQL 查询质量。SQLfuse 在 Spider 排行榜上的领先表现以及在蚂蚁集团的实际部署,展示了开源 LLMs 在多样化商业环境中的实际应用价值。
GPT-4o翻译
1 INTRODUCTION
在 IEEE Spectrum 2023 年的年度报告“Top 10 Programming Languages”中,SQL 继续保持其在“工作列表”中的首位,这突显了 SQL 技能在就业市场中的持续需求。然而,精通 SQL 需要深入理解数据库结构及其语言本身,这对于没有技术背景的人来说是一个障碍。
Text-to-SQL 技术代表了一项重要突破,将复杂的 SQL 查询过程简化为更直观的自然语言格式。这一创新为用户提供了更友好的数据查询和分析方式,普及了对数据库系统的访问,从而提高了数据处理效率并拓宽了其应用范围。
随着 GPT-3.5 和 GPT-4 的问世,大型语言模型(LLMs)成为自然语言处理(NLP)任务中的一股变革力量,Text-to-SQL 也包括在内。这些模型庞大的参数和丰富的训练数据使其对自然语言有了更加细致的理解,能够更准确地解析用户意图,从而生成精确的 SQL 转换。尽管取得了这些进展,现有的基于 LLM 的 Text-to-SQL 框架仍未达到最优状态:它们并未充分利用开源 LLM 的潜力,也未能有效整合外部工具和知识来提升 Text-to-SQL 的性能。
如上图的分析表明,当前系统在方法上存在局限性。例如,它们通常忽视了构建聚合查询的复杂一对多关系。此外,它们通常未能利用执行错误反馈,而这反馈可以提供宝贵的见解来修正 SQL 的不准确之处。此外,这些系统缺乏专门用于评估和排名 LLM 输出的 SQL 结果的评论模块,这本可以显著提升结果的质量。
本文介绍了 SQLfuse,这是一个全面的系统,旨在充分利用开源大型语言模型(LLMs)的全部潜力,同时结合一套工具和所有外部知识。正如上图所示,SQLfuse 由四个协同工作的模块组成:模式挖掘、模式链接、SQL 生成(SQLgen)和 SQL评审模块。
1.模式挖掘模块深入数据库,提取重要的键和值以及它们在表格之间的复杂关系。
2.模式链接模块将这些发现与用户查询紧密结合,形成一个逻辑思维链。
3.SQLgen 利用经过微调的 LLMs 来生成准确反映用户意图的 SQL 查询。在生成查询后,系统会采用一个常量检查模块,并利用执行反馈进行逐步改进。
4.评审模块通过一个高质量查询的外部数据库来识别并选择 SQLgen 生成的最有效 SQL 输出。
SQLfuse 不仅在 Spider 排行榜上名列前茅——以 85.6% 的精度在开源 LLM 类别中排名第一,并在整体排名中位列第四。蚂蚁集团已在其平台上部署了 SQLfuse,并在一系列业务场景中使用了该系统,包括其主要的在线数据分析处理和事务处理平台。本文的贡献包括:
1.介绍了一个创新和全面的text-to-SQL 系统 SQLfuse。
2.SQLfuse 是围绕四个协同模块构建的架构: 模式挖掘、模式链接、 SQLgen 和SQL评审模块,每个模块都旨在利用和扩大 LLM 的能力,以提高准确率。
3.通过严格的消融研究,仔细演示了 SQLuse 中每个模块的作用,验证了它们在我们的系统架构中的组合有效性。
4.SQLfuse已经取得了显著的成功,在著名的Spider数据集上达到了85.6% 的执行准确率,它是迄今为止在text-to-SQL 领域排名最高的开源系统。SQLFusion 已成功纳入蚂蚁集团的业务框架,成为支持该公司最大的在线数据分析处理和交易处理平台。
2 RELATED WORK
略
3 METHODOLOGY
我们提出的 SQLfuse 框架,如上图所示,是一个专为 Text-to-SQL 任务设计的模块化系统。它主要由以下四个模块组成:1. 模式挖掘(schema mining),2. 模式链接(schema linking),3. SQL 生成(SQLgen),4. SQL 评审(SQL critic&