惊!小模型借 FEATHER-SQL,在 NL2SQL 领域掀翻天

发布于 2025-4-1 07:21
浏览
0收藏

技术背景

NL2SQL的发展与挑战

自然语言到SQL的转换任务,旨在让用户能够用日常的自然语言从数据库中获取所需数据,而无需掌握复杂的SQL语言。随着大语言模型(LLMs)的兴起,这一领域取得了显著进展。像GPT-4这样强大的LLMs出现后,催生出了CHASE-SQL 和 XiYan-SQL等先进框架,它们在性能上达到了新的高度。

但这些基于 LLMs 的方法存在明显的局限性。主流方法大多依赖闭源模型,并且需要调用外部 API,这在医疗、金融等对数据隐私极为敏感的领域,带来了巨大的数据隐私风险。很多开源研究聚焦于参数规模较大的模型,对参数4B或更少的小语言模型关注不足。而实际应用场景中,许多关系型数据库部署在高性能但GPU资源有限的系统上,LLMs对计算资源的高要求限制了其在这些场景中的广泛应用。

惊!小模型借 FEATHER-SQL,在 NL2SQL 领域掀翻天-AI.x社区

小模型在NL2SQL中的困境

小语言模型在处理NL2SQL任务时遇到了不少问题。与大型语言模型相比,小型模型在理解和处理复杂的数据库结构和长句子时显得力不从心。它们往往难以把握长段落中的关键信息,因此生成的SQL语句经常无法正常运行,有时候还会出现误解或产生错误的结果。现有的基于大模型设计的NL2SQL工具不适合小模型使用,因为这些工具需要很强的理解指令的能力来生成中间步骤,而这是小模型做不到的。如果强行把这些工具用在小模型上,只会让生成的SQL语句更难执行。

研究的核心贡献

为了解决小模型在NL2SQL任务中的难题,本文提出了 Feather-SQL 框架。这是一个专门为 SLMs 设计的轻量级框架,通过一系列创新技术,提升了SQL查询的可执行性和准确性。论文还提出了1+1模型协作范式,将通用聊天模型和微调的SQL专家模型相结合,有效避免了微调SLMs时出现的灾难性遗忘问题。通过在BIRD和Spider等数据集上的大量实验,验证了Feather-SQL框架和1+1模型协作范式的有效性,为小语言模型在NL2SQL领域的应用提供了新的解决方案。

惊!小模型借 FEATHER-SQL,在 NL2SQL 领域掀翻天-AI.x社区

新兴方案

模型/方法

方法特点

应用场景

DIN-SQL

将NL2SQL任务分解为模式链接、难度分类和SQL生成等子任务

提高查询结果的准确性

CHESS

采用多智能体框架,每个智能体专注于特定任务,并结合少量样本提示策略

提升任务处理效率

​CodeS​

利用增量预训练与双向数据增强技术对不同规模的模型进行微调

降低计算成本,提升效率

Prem-SQL

专为NL2SQL任务优化的模型

在NL2SQL任务中表现良好

SQLCoder

专为NL2SQL任务优化的模型

在NL2SQL任务中表现良好


方法论

Feather-SQL框架

惊!小模型借 FEATHER-SQL,在 NL2SQL 领域掀翻天-AI.x社区

Feather-SQL框架包含多个关键组件,旨在提升SLMs在NL2SQL任务中的性能。

模式修剪:模式修剪的核心功能在于动态简化数据库模式。通过评估语义相关性,它能够从所有表的定义语言(DDL)语句中筛选出与特定查询直接相关的表,并仅保留这些相关表的DDL用于后续处理步骤。例如,在一个集成了员工信息、部门详情及项目概况的数据库环境中,如果用户发起的查询请求是获取某位员工的具体薪资,则模式修剪机制将判定员工信息表为关联表,而认为部门信息表和项目信息表与此查询无关。这样做的目的是减少模型需处理的数据量,减轻处理大规模文本数据的压力,同时确保关键信息得到保留,从而显著提升后续处理流程的效率与精确度。

模式链接:模式链接承担着将自然语言查询与数据库模式精准对齐的任务。通过深入的语义解析,该过程能够从整个数据库模式中筛选出与查询请求相关的特定字段。以员工薪酬查询为例,模式链接机制会准确识别并选取“员工”表中的“姓名”字段作为定位个体员工的依据,并选择“工资”字段来提取所需的薪酬信息。这种高度精确的映射不仅提升了SQL语句生成的质量,还保证了最终查询结果的准确性与可靠性。

多路径生成:多路径生成策略采用了四种不同的提示类型,分别为同时执行模式链接与修剪、仅执行模式链接、仅执行模式修剪以及不执行任何操作。此策略旨在减少因修剪错误及链接不准确所引发的风险。在模式修剪过程中若发生失误,导致关键信息被不当移除,则通过其他路径(例如仅执行链接的路径)仍有可能生成有效的查询结果。这种多路径设计显著提升了框架的整体鲁棒性,确保模型在处理各类复杂场景时具备更高的正确查询生成概率。

多候选生成:多候选生成方法通过并行生成多个SQL查询,显著提高了获得正确结果的概率。为了确保生成的查询具备多样性,该模型采用了束搜索(beam search)技术,并对温度(temperature)和top-p参数进行了精细调校。在每条路径上均会生成预定数量的候选查询,以全面探索潜在解决方案的空间。与大型语言模型(LLMs)相比,特定领域语言模型(SLMs)从这种多候选生成策略中获益更为明显,这不仅提升了生成查询的可执行性,还增强了其准确性。

校正:校正步骤旨在解决生成查询在执行过程中遇到的问题。针对每一个生成的查询,我们将在数据库中进行实际运行,并基于其执行结果采取相应措施。对于能够成功执行的查询,将直接将其纳入可执行SQL查询列表;而对于执行失败的情况,则会利用错误信息作为反馈,通过自我校正机制生成两个新的候选查询。如果这些新生成的查询能够正确执行,同样会被保存下来。这一流程为模型提供了一个动态调整与优化的框架,有助于持续提升所生成查询的质量。

选择:采用选择排序算法对所有可执行查询进行评估与排序。对于返回结果数量较少的查询,其评估过程将同时考量查询本身及其执行结果;而对于返回大量结果的查询,则主要侧重于查询本身的评估。此过程将迭代三次,最终选取出现频率最高的查询作为最优解。通过这种方法,可以最大化满足用户需求,并提升查询的准确度和可靠性。

提示策略

为了更好地发挥 Feather-SQL 框架的性能,论文还提出了两种提示策略。

提取:鉴于结构化语言模型(SLMs)在严格遵守结构约束方面面临挑战,采用提取策略可以为这些模型提供更大的自由度来生成响应,从而避免了受到固定结构输出格式的限制。这种策略主要由词汇匹配和模式匹配两种技术组成。其中,词汇匹配涉及将模型输出中明确提及的表名或列名与数据库模式进行对比验证,仅当这些名称确实存在于目标数据库中时才予以采纳;而模式匹配则专注于识别模型输出中的特定预定义模式,例如“answer is”之后的内容,并据此提取相关信息作为答案。通过运用这两种方法,不仅能够增强模型生成答案时的灵活性,还能够在一定程度上规避语法上的局限性,进而提升推理任务的整体准确性。

惊!小模型借 FEATHER-SQL,在 NL2SQL 领域掀翻天-AI.x社区

简化:简化策略的核心目标在于减少提示的长度,从而降低计算资源的需求。在Feather-SQL框架下,这一目标通过剔除不必要的细节、采用精炼的指令以及提供最少但足够有效的示例来达成。该方法不仅避免了序列学习模型(SLMs)处理冗长且复杂的输入信息,还确保了任务定义的清晰度与简洁性,进而显著提升了模型执行任务时的效率。

1+1协作范式

1+1协作范式将 NL2SQL 任务流程中的任务分为推理密集型任务和 SQL 生成任务。推理任务,如模式链接和候选评估,需要强大的上下文理解和适应能力;SQL生成任务则要求在查询合成时具备高精度。为了优化性能,该范式采用两个专门的模型:通用聊天模型负责推理密集型任务,利用其广泛的语言和上下文理解能力,避免灾难性遗忘;SQL微调模型专注于SQL生成,通过在大规模NL2SQL数据集上的训练,在SQL特定任务中表现出色,减少幻觉,提高查询的可执行性和准确性。

通用聊天模型在处理模式链接和候选评估等任务时,能够利用其丰富的语言知识和上下文理解能力,提供准确的推理结果,为 SQL 生成提供可靠的基础。而 SQL 微调模型则在生成 SQL 查询时,凭借其在大量数据上训练得到的专业能力,生成高质量的查询语句。两者相互协作,发挥各自的优势,有效提升了整体的 NL2SQL 性能。


实验

实验设置

数据集:实验选用了 BIRD 和 Spider 这两个具有代表性的数据集。BIRD 数据集涵盖 37 个专业领域的数据库,数据专业性强、复杂度高,是一个极具挑战性的数据集。由于其 TEST 数据集的专有性,实验使用公开的 DEV 子集,包含 1534 个独特的问题-SQL对。Spider 数据集覆盖 138 个不同领域,与 BIRD 相比,其 SQL 结构和模式相对简单。实验使用 Spider 的 TEST 集,包含 2147 个问题-SQL对。

评估指标:采用执行准确率(衡量生成查询的执行结果与正确答案是否一致)和执行比例(评估生成的SQL查询能在相应数据库中无语法错误执行的比例)作为评估指标。这两个指标能够全面地评估模型在NL2SQL任务中的性能表现,执行准确率反映了查询结果的正确性,执行比例则体现了查询的可执行性。

基线方法:对比的基线方法包括直接响应(直接从自然语言问题生成SQL查询,不进行任何优化)、第一个可执行查询(利用模型生成多个SQL候选,选择第一个可执行的查询)、MAC-SQL(基于LLMs的多阶段框架,利用辅助智能体和少样本思维链推理)和CHESS(包含四个专门智能体的多智能体框架,利用局部敏感哈希和向量数据库检索数据)。这些基线方法代表了当前NL2SQL领域的不同技术路线,通过与它们对比,可以更直观地评估Feather-SQL框架的性能优势。

实现细节:实验使用了多种通用聊天模型和SQL微调模型,如 Qwen2.5 系列、Yi-Coder-1.5B 等聊天模型,以及Prem-SQL-1.3B 和 CodeS-3B 等 SQL 微调模型。在多候选生成阶段,每条路径生成4个候选查询,共生成16个候选;校正阶段候选数量减少到2个。选择阶段进行3轮选择,最终通过多数投票确定候选。这样的设置在保证模型探索多种可能性的同时,也确保了最终结果的可靠性。

主要结果

Feather-SQL的性能表现:在BIRD数据集上,Feather-SQL 在所有通用聊天模型上均展现出卓越性能,执行准确率平均提升约10%,执行比例提升超过20%。这表明Feather-SQL能够有效提升SLMs在处理复杂领域数据库查询时的能力。在SQL微调模型方面,与CodeS结合时在执行准确率和执行比例上都有显著提高,Prem-SQL在执行比例上也有明显进步。在Spider数据集上,Feather-SQL同样显著提升了SLMs的NL2SQL性能。这进一步验证了Feather-SQL框架在不同复杂度数据集上的有效性和通用性。

惊!小模型借 FEATHER-SQL,在 NL2SQL 领域掀翻天-AI.x社区

1+1协作范式的效果:在 Feather-SQL 框架下,1+1协作范式使 Prem-SQL 和 CodeS 的执行准确率提高了3- 6%,Prem-SQL 达到了现有 SLMs 中的最优性能。这充分展示了1+1协作范式的优势,通过合理分工,让不同的模型发挥各自的专长,从而提升整体性能。不过,与聊天模型搭配时,执行比例有所下降,这是由于 SQL 模型在模式修剪时返回查询而非预期答案,导致模式过度修剪。但总体而言,该范式显著提高了不同框架下的准确性,为小语言模型在NL2SQL任务中的应用提供了更强大的支持。

惊!小模型借 FEATHER-SQL,在 NL2SQL 领域掀翻天-AI.x社区

惊!小模型借 FEATHER-SQL,在 NL2SQL 领域掀翻天-AI.x社区

惊!小模型借 FEATHER-SQL,在 NL2SQL 领域掀翻天-AI.x社区

消融实验

组件贡献分析:通过一系列的消融实验,我们系统地移除了框架中的各个组件,并在BIRD DEV数据集上评估了执行准确率和比例的变化。实验结果表明,任一组件的缺失均会导致上述两个性能指标的下降,这证实了每个组件对于整体框架性能的重要性。特别值得注意的是,模式修剪组件的去除对执行准确率的影响最为显著,凸显了识别并聚焦于相关表格及列在生成精确SQL查询过程中的关键作用。此外,尽管校正步骤的移除对整体效果的影响相对较小,但其仍为提升系统性能贡献了一定程度的优化。

惊!小模型借 FEATHER-SQL,在 NL2SQL 领域掀翻天-AI.x社区


路径贡献分析:分析四种模型中SQL答案的来源,发现“Full Schema & Linking”路径贡献最大,其次是“Pruned Schema & Linking”路径。这表明链接在生成正确查询中起着核心作用,无论模式是否修剪。模式修剪的总贡献超过25%,进一步证明了各组件在提升查询准确性和可执行性方面的重要性。

惊!小模型借 FEATHER-SQL,在 NL2SQL 领域掀翻天-AI.x社区

候选大小的影响:研究显示,随着候选大小从4增加到16,执行准确率逐渐提高,但超过16后提升不明显。因此,选择候选大小为16可以在保证性能的同时平衡计算效率和资源消耗。

惊!小模型借 FEATHER-SQL,在 NL2SQL 领域掀翻天-AI.x社区

总结

本文提出的 Feather-SQL 框架为小型语言模型(SLMs)在 NL2SQL 任务中提供了一种创新且高效的解决方案。该框架的核心技术包括精心设计的组件,如模式修剪、模式链接、多路径与多候选生成、校正及选择机制,以及配套的提取和简化提示策略。此外,Feather-SQL 还引入了一种独特的 1+1 模型协作范式。这些技术相互配合,显著提升了 SLMs 在执行 NL2SQL 任务时的准确性和可执行性。尽管如此,本研究仍面临若干挑战。特别是在实际应用中,由于数据库结构和数据特征存在极大的多样性,因此Feather-SQL 框架需要进一步优化以更好地适应更加复杂多变的数据库环境。虽然 1+1 模型协作范式提高了系统性能,但同时也增加了系统的复杂度。如何在保持高性能的同时简化模型间的协作流程,将是未来研究的一个重要方向。同时,Feather-SQL 框架也带来了许多潜在的机会。它为资源受限条件下的高效数据库交互提供了一个可行方案,并有望在智能数据分析、智能客户服务等多个领域得到广泛应用。随着持续不断的优化和完善,预计 Feather-SQL 将促进自然语言处理与数据库交互技术的进步,从而推动人工智能在数据管理和交互方面取得新的突破。可以预见,在未来的研究工作中,当前所面临的挑战将会逐渐被克服,而Feather-SQL框架也将继续演进,为相关领域的技术进步做出更大的贡献。

结语:

Feather-SQL 又一个 yyds 的 nl2sql 新思路,你学废了吗?



·

················END·················


论文地址:​https://arxiv.org/pdf/2503.17811​

Feather-SQL: A Lightweight NL2SQL Framework with Dual-Model Collaboration Paradigm for Small Language Models 

收藏
回复
举报
回复
相关推荐