【学习笔记6】论文SQLfuse: Enhancing Text-to-SQL Performance through Comprehensive LLM Synergy

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&

要通过问题重写技术和Dochero工具来增强Text-to-SQL解析能力,可以从以下几个方面入手: ### 1. 文本预处理与语义理解 在自然语言查询转化为SQL的过程中,文本预处理是一个重要的环节。这一步骤通常涉及去除停用词、标准化拼写错误以及识别实体名称等操作[^2]。 ```python import re def preprocess_text(text): # 去除特殊字符并转换为小写 cleaned_text = re.sub(r'\W+', ' ', text).lower() return cleaned_text.strip() query = "What is the total sales of product A?" print(preprocess_text(query)) ``` ### 2. 使用问题重写技术优化输入质量 问题重写旨在改善原始用户的提问方式以便于机器更好地理解和翻译成结构化查询语言(SQL)[^3]。这种方法可以通过同义替换、句法调整等方式实现更精确的目标表达形式。 例如,“Find all students who are older than 20 years old.”可以被改写为“Retrieve every student record where age exceeds twenty.” ### 3. 应用Dochero作为辅助工具 虽然没有具体说明什么是"Dochero",假设它是一种能够帮助分析文档或者提供额外训练数据集的软件/服务,则其可能用于扩展模型的知识库从而提高准确性。如果确实存在这样一个特定用途的应用程序或框架,则应该查阅官方文档获取详细的集成指南[^4]。 ### 4. 结合深度学习方法提升性能 现代text-to-sql系统往往依赖神经网络架构比如seq2seq models或者其他先进的NLP算法来进行端到端的学习过程。这些模型经过大量标注好的样本训练之后具备较强泛化能力和适应不同领域的能力[^5]。 ```python from transformers import pipeline nlp = pipeline('question-answering') result = nlp({ 'question': 'How many employees work at company X?', 'context': 'Company X has approximately 789 workers.' }) print(result['answer']) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值