XiYan-SQL:一种用于文本到SQL的新型多生成器框架
本文提出了一种新颖的文本到SQL框架XiYan-SQL,通过生成和选择多样化SQL候选显著提升任务性能。该框架包含三部分:1)模式过滤模块通过多路径检索和迭代列选择获取多个相关模式;2)多生成器集成方法采用多任务微调策略增强SQL生成能力,并通过不同SQL格式微调构建多样化模型;3)选择模型通过候选重组策略选择最佳SQL。实验表明,XiYan-SQL在BIRD基准测试上取得75.63%的执行准确率
Yifu Liu, Yin Zhu, Yingqi Gao, Zhiling Luo, Xiaoxia Li, Xiaorong Shi, Yuntao Hong, Jinyang Gao, Yu Li, Bolin Ding, Jingren Zhou, Fellow, IEEE
摘要
为了利用大语言模型(LLM)在解决文本到SQL任务中的优势,我们提出了XiYan-SQL,这是一种能够有效生成和利用多个SQL候选方案的创新性框架。该框架由三个部分组成:1)一个模式过滤模块,用于过滤并获取多个相关模式;2)一种多生成器集成方法,用于生成多个高质量且多样化的SQL查询;3)一种选择模型,通过候选方案重组策略来获得最佳SQL查询。具体来说,对于多生成器集成,我们采用多任务微调策略以增强SQL生成模型在SQL与文本内在对齐方面的能力,并通过在不同SQL格式上的微调构建多个具有不同生成风格的生成模型。实验结果和全面分析表明了我们框架的有效性和鲁棒性。总体而言,XiYan-SQL在著名的BIRD基准测试中实现了75.63%\mathbf{7 5 . 6 3 \%}75.63%的新SOTA性能,超越了所有先前的方法。它在Spider测试集上也达到了89.65%\mathbf{8 9 . 6 5 \%}89.65%的SOTA性能。
关键词:生成,文本到SQL,多模型集成,LLM微调策略。
I. 引言
将自然语言(NL)查询转换为结构化查询语言(SQL)查询的任务被称为文本到SQL,或NL2SQL,是关系型数据库管理系统自然语言接口开发中的一个长期任务。这种能力显著降低了用户访问数据库系统的交互成本。最近的研究得益于大语言模型(LLMs)的进步,这些模型显著提高了NL2SQL解决方案的性能[1]。一系列基于上下文学习(ICL)的方法被开发出来,通过设计不同的提示(如思维链(CoT)[2]、问题分解[3]、演示示例的选择[4]),以增强这些模型的SQL生成性能。然而,这些方法高度受限于LLMs对提示结构和内容的敏感性。
因此,一种有效的策略是设计各种形式的提示以生成多个SQL候选方案,随后进行SQL选择过程。与单一SQL查询相比,这种方法[4],[5]利用多种提示形式增强了候选样本的多样性,并在具有挑战性的BIRD基准测试[6]上展示了良好的性能。然而,仅依赖于多种提示的设计并不能充分确保在提高候选多样性的同时SQL生成的质量和鲁棒性。并且利用自洽性作为选择标准并不总能产生最佳的SQL查询。
为了解决这些挑战,我们提出了XiYan-SQL,这是一种端到端的SQL生成框架,专注于生成具有高准确性和多样性的SQL候选方案,并有效选择最佳候选方案。我们首先引入了一个模式过滤模块,为SQL生成器提供多样化且高质量的数据库模式。该模块根据输入执行表格、列和值的多路径检索,随后采用一个模型进行迭代列选择。
在SQL候选方案的生成方面,我们提出了一种新颖的方法,整合多个生成器,利用各自的优势生成高质量和多样化的SQL查询。不同于设计不同形式的提示,我们利用监督微调(SFT)的高可控性来构建多个SQL生成模型。具体来说,受自然语言处理中多任务方法的启发,我们探索了一种针对SQL生成的多任务联合微调策略。该策略涉及各种SQL和自然语言转换任务的整合,以增强模型的语法对齐能力。此外,我们还研究了多格式SQL增强训练方法,旨在开发具有不同生成优势的生成器以提高候选的多样性。最终,这些策略显著提高了微调模型的性能。
在SQL候选方案选择阶段,我们采用一个选择模型,通过构建的对比样本来微调,以识别所有候选方案中的最佳答案。此外,我们还探索了一种基于一致性结果的候选重组策略,以提高选择模型对潜在正确结果的关注度,从而提高选择性能。
在实验中,我们在两个基准测试BIRD[6]和Spider[7]上评估了XiYan-SQL,以展示框架的优越性。对于众所周知且具有挑战性的BIRD基准测试,我们实现了75.63%的执行准确率,超越了所有其他方法,建立了新的SOTA性能。对于Spider测试集,我们实现了89.65%的执行准确率,达到SOTA性能。广泛的实验结果和全面的分析进一步确认了我们方法的有效性和鲁棒性。相关的代码和模型已逐步发布,以支持社区研究。
我们的主要贡献如下:
- 我们提出了XiYan-SQL,这是一种新颖的文本到SQL框架,有效整合了多个SQL生成器以生成高质量和多样化的SQL候选方案,在BIRD和Spider基准测试中均实现了新的SOTA性能。
-
- 我们引入了一个模式过滤模块,通过多路径检索和迭代列选择生成多个高质量模式。
-
- 我们实施了有效的微调方法来构建多个SQL生成器,包括通过多任务微调策略增强模型对任务复杂性的适应能力,从而开发高精度生成模型,并通过多格式SQL增强训练构建具有不同生成优势的多样化模型。
-
- 我们提出了一种候选重组策略,利用SQL选择模型从多个候选方案中识别最佳SQL。
-
- 综合实验结果展示了XiYan-SQL框架及其关键组件的有效性。
本文的组织如下。在第二部分,我们回顾了文本到SQL的发展及相关LLMs的工作。在第三部分,我们介绍了完整的XiYan-SQL框架,并详细解释了模式过滤、多SQL生成和SQL选择的方法。然后,在第四部分,我们进行了全面和详尽的实验评估。最后,在第五部分,我们提供了与XiYan-SQL技术相关的重要的实证见解,并在第六部分总结了全文。
- 综合实验结果展示了XiYan-SQL框架及其关键组件的有效性。
II. 相关工作
在本节中,我们讨论了文本到SQL相关工作的进展。由于文本到SQL系统在弥合自然语言处理和SQL执行之间的差距方面的潜力,近年来引起了广泛关注。该领域的早期工作主要依赖手工制作的模板[8]。随着变压器[9]在深度神经网络中的发展,典型模型采用了编码器-解码器架构,直接从自然语言输入生成SQL。一些预训练语言模型(PLMs),如BERT[10]、TaBERT[11]和GraPPa[12],已被开发用于有效编码结构化数据表示。然而,这些早期方法在应用于更复杂和多样的场景时表现出局限性。目前,大语言模型技术的快速发展在开发文本到SQL解决方案方面展示了独特的新能力。这包括提示工程技术[13] [14] [5]的进步,以及预训练或
大语言模型的微调方法[15] [16] [17]。在本文中,我们主要关注与LLMs相关技术。
提示工程技术。提示工程技术利用模型的固有能力,通过优化提示引导LLMs生成多样化的SQL查询[5],[13],[14],[18]。这些方法通常在闭源模型上即插即用,这些模型具有大量参数,例如GPT-4[19]和Gemini[20]。一些基于上下文学习的方法通过设计问题/任务分解[3]、演示选择[4]、思维链推理[2]和提示中的多代理处理,解决工作流程的各个阶段,包括模式链接[21],[22]、SQL生成[1]和SQL优化[3],[14],[23]。为了提高性能,一种有效的策略是通过不同的提示设计生成多个候选SQL查询,然后选择最佳的一个[4],[5]。然而,这些方法仅依赖于提示设计,这带来了LLMs对提示的敏感性相关挑战,可能影响SQL生成的质量和鲁棒性,并产生显著的推理开销。相比之下,我们的方法通过构建不同的高精度微调SQL生成模型有效缓解了这些问题。
微调方法。微调方法可以对参数较少的模型进行目标对齐,使微调模型在生成SQL查询时表现出更好的可控性[15]-[17],[24],[25]。此外,这种方法还提供了更低的推理开销和增强的数据隐私保护。最近,CodeS[16]在一个与SQL相关的大型语料库上进行了训练,旨在提高小型模型的通用文本到SQL性能。DTS-SQL[15]引入了一种两阶段监督微调方法,将任务分解为两个更简单的组成部分:模式链接和SQL生成。Yang等人[17]通过在合成的鲁棒数据上进行微调并应用直接偏好优化[26]在弱数据上构建了SENSE模型。尽管取得了这些进展,这些方法在性能上仍有限,并且在更具挑战性的场景或基准测试中常常难以应对。
本文专注于开发高精度SQL生成模型。通过利用提出的多任务微调策略和多格式数据方式,微调模型表现出优于基于ICL的闭源模型的性能。此外,据我们所知,这项工作代表了在该领域首次探索通过多生成器生成多个候选SQL查询。通过综合的XiYan-SQL框架,我们可以有效生成多个候选方案并选择最佳的一个。
III. 方法论
A. 整体框架
我们在图1中展示了XiYan-SQL框架,其中输入包括一个问题、证据(即外部知识)和数据库模式(即数据库中表格、列和值的整体组织)。该框架
*https://github.com/XGenerationLab/XiYan-SQL

图1. 提出的XiYan-SQL框架概述,包括三个步骤:模式过滤、多SQL生成和SQL选择。
包括三个步骤:模式过滤、多SQL生成和SQL选择。模式过滤模块首先生成多个过滤后的模式。随后,通过各种SQL生成器生成多个候选SQL查询。最后,选择模型基于候选重组选择最准确的SQL查询。每个步骤的详细信息如下所述。
B. 模式过滤
我们的模式过滤模块由多路径检索和列选择组成,旨在有效地实现大型数据库的模式链接并生成多个过滤后的模式。
多路径检索。多路径检索是一种用于大型数据库的修剪机制,使用所有表格、列和值的嵌入的余弦相似度。最初,我们使用即插即用的LLM Ms从问题Q和证据E中提取关键字,表示为K = fMs(Q, E)。这些关键字表示为K = {k1, k2, . . .},在数据库中识别相关列和值时起着关键作用。在表格和列检索阶段,我们计算关键字K与原始模式S之间的分数,该模式S可以表示为一组列,{c1, c2, . . .}。此过程计算为两个不同分数的乘积,如下所示:
Score(ki,cj)=⟨VQ∣∣E,VTab(cj)⟩⋅⟨Vki,Vcj⟩(1) \text{Score}(k_i, c_j) = \left\langle \mathbf{V}_{Q| |E}, \mathbf{V}_{Tab(c_j)} \right\rangle \cdot \left\langle \mathbf{V}_{k_i}, \mathbf{V}_{c_j} \right\rangle \tag{1} Score(ki,cj)=⟨VQ∣∣E,VTab(cj)⟩⋅⟨Vki,Vcj⟩(1)
一部分是关键字嵌入Vki和列元数据嵌入Vcj之间的余弦相似度。另一部分是输入文本和表格元数据之间的计算。具体来说,我们将查询和证据连接起来,以获得嵌入表示VQ| |E。列cj所属的表格可以通过投影Tab确定,该表格的嵌入表示为VTab(cj)。通过此过程,我们确定了与每个关键字最相关的前k列。
对于值的检索,我们首先使用编辑距离来定位每个列中与每个关键字相似的前k值。随后,我们使用RoBERTa分词器唯一地对值文本和列元数据进行分词。这一步骤提高了局部敏感哈希[27]在过滤与值相关的文本时的效率。然后应用嵌入余弦相似度,使用阈值来精炼检索到的值。通过多路径检索器,我们从原始模式S中过滤出一个模式Srtrv = {cr1, cr2, . . .}。
列选择。列选择为检索到的模式引入了多样性,促进了后续的多SQL生成。此过程在算法1中详细说明,该算法通过多次迭代输出ps个不同的模式。在每次迭代中,我们提示一个LLM Ms选择与问题和证据相关的列,保存为Sslict。函数PFKeyIdentifier然后根据Sslict中的列识别主键和外键。通过将之前的模式与选定的列统一生成一个新模式。在此迭代中选定的列从Srtrv中移除,同时保留主键等必要列。随着迭代次数的增加,选定模式的精确度趋于下降而召回率提高,从而导致过滤模式的多样性。
| 算法1 列选择算法 | |
|---|---|
| 输入: 列集合 Srtrv = {cr1, cr2, . . .}, 问题 Q, 证据 E, 最大迭代次数 ps | |
| 输出: 模式集合 S = {S1, . . . , Sps} | |
| 1: 初始化列表 S ← [ ] | |
| 2: for i = 1 to ps do | |
| 3: Sslet ← fMs(Srtrv, Q, E) {从 Srtrv 中选择} | |
| 4: Pi ← PFKeyIdentifier(Sslet) | |
| 5: Si ← (↓ | −1k=1 Sk) ∪ Sslet ∪ Pi {统一并生成 Si} |
| 6: 将 Si 添加到 S | |
| 7: Srtrv ← Srtrv \ (Sslet \ Pi) {移除选定的} | |
| 8: 返回 S |
C. 多SQL生成
生成多个候选SQL查询以探索更广泛的搜索空间以提高性能,在之前的研究中已被证明是一种合理的方法[4],[5]。然而,基于提示的方法受到模型对提示格式敏感性的限制,这在提高多样性的同时确保SQL质量方面提出了挑战。考虑到监督微调可以更好地使模型与期望行为对齐[28],[29],我们探索了一种专门的训练
图2. 多相关任务过程的示意图。
策略来开发生成高质量和多样化候选的SQL生成模型。
作为一项翻译任务,文本到SQL旨在实现结构化表示和自然语言之间的语义对齐[30]。受之前多任务方法[31],[32]的启发,这些方法利用辅助任务进行学习,我们探索了一种利用相关任务增强信息对齐的多任务微调方法。将文本转换为SQL的标准任务过程,给定问题、数据库模式和证据的输入,如图2(a)所示。
由于自然语言形式的固有灵活性,这种单向转换方法不足以充分利用模型的语义链接能力。为了解决这个问题并增强LLM在该任务中的语义对齐能力,我们进一步设计了辅助对齐任务,并明确对SQL生成模型进行微调以执行。针对自然语言问题,我们设计了一个反向推理任务,如图2(b)所示,旨在鼓励模型基于SQL和相关信息推断一组潜在的问题。对于自然语言证据知识,我们建立了一个专注于证据反向推理的任务,如图2©所示。该任务涉及模型从一组候选证据中识别出与SQL生成过程最相关的证据。此外,对于SQL查询,我们为模型开发了一个自我精炼任务,如图2(d)所示,该任务涉及基于之前的SQL生成过程和执行结果进行精炼后重新生成SQL。通过利用一系列专门任务联合微调模型,我们开发的单一生成器超越了基于ICL的闭源模型,如GPT-4o和Gemini,从而生成了更高品质的SQL查询。
我们进一步从单一生成器扩展到多个生成器,以增强生成候选的多样性。对于单一用户问题,可以有多个SQL查询对应满足意图。因此,我们旨在开发具有不同生成方式的额外模型,以增加通过多样化输出获得正确答案的可能性。为此,我们重构了SQL格式变化以在模型构建期间引入更大的多样性。一个关键方面是SQL编写模式的变化,鼓励模型尝试使用更复杂的SQL结构,从而增强其覆盖更广泛挑战场景的能力(如图3左侧的SQL1所示,其显示了对高级查询的偏好)。此外,我们

图3. 对应相同输入的不同格式的多个SQL查询示例。中间的SQL查询是典型响应。相反,左侧的SQL采用分块编写模式,其结构比中间的更复杂;右侧的SQL在表现风格上与中间的不同。
还对SQL写作风格方面进行了一定的修改,允许模型采用变化的写作惯例以增加生成输出的多样性(如图3右侧所示,SQL3展示了一种更标准化的输出表示)。在实践中,我们对一部分具有挑战性的查询进行多种方面的重构,以补充多样化的训练数据。通过利用这些格式化和多任务数据进行联合微调,我们获得了具有多样化SQL生成偏好的高精度模型。
如图1所示,我们为生成模型提供了在模式过滤阶段生成的psp_sps个不同模式,以扩展候选池。为进一步增强候选的多样性,我们的框架不仅集成了多个微调模型,还结合了一个基于ICL的模型,共同生成plp_lpl个候选SQL查询,其中pl=ps∗pmp_l = p_s * p_mpl=ps∗pm,pmp_mpm表示生成器的数量。此外,对于每次生成,如果生成的SQL执行遇到语法错误或异常值,相应的生成器将利用执行反馈通过其固有的自我精炼能力重新生成SQL查询。多SQL生成的完整过程如算法2所示。有关基于ICL的生成器的详细信息,请参见附录I。
D. SQL选择
在获得多个SQL候选方案后,剩下的挑战是从这些候选方案中选择最准确和合理的SQL查询。大多数候选选择方法[4],[21]采用自洽性[33]来选择在多个候选样本中出现最一致的SQL查询。然而,存在一些限制:它无法充分处理缺乏多数共识的情况,即使是最一致的结果也不总是正确的
算法2 多SQL生成算法
输入:问题 QQQ,证据 EEE,过滤模式集 S=\mathcal{S}=S= {S1,…,Sps}\left\{S_{1}, \ldots, S_{p_{s}}\right\}{S1,…,Sps},SQL生成器列表 M\mathcal{M}M,数据库 DDD
输出:候选SQL列表 L={l1,…,lpl}L=\left\{l_{1}, \ldots, l_{p_{l}}\right\}L={l1,…,lpl}
1: 初始化候选SQL L←∅L \leftarrow \emptysetL←∅
2: for i=1i=1i=1 to psp_{s}ps do
3: for j=1j=1j=1 to pmp_{m}pm do
4: \quad 预测SQL lij←fMj(Q,E,Si)l_{i j} \leftarrow f_{\mathcal{M}_{j}}\left(Q, E, S_{i}\right)lij←fMj(Q,E,Si)
5: \quad 执行结果 r←execute(l,D)r \leftarrow \operatorname{execute}(l, D)r←execute(l,D)
6: if 没有异常 rrr then
7: \quad 将 lijl_{i j}lij 追加到 LLL
8: else
9: 重试1次
10: l^ij←fMj(Q,E,Si,l,r){\quad \hat{l}_{i j} \leftarrow f_{\mathcal{M}_{j}}\left(Q, E, S_{i}, l, r\right)\{l^ij←fMj(Q,E,Si,l,r){ 自我精炼 }\}}
11: \quad 将 l^ij\hat{l}_{i j}l^ij 追加到 LLL
12: return LLL
情况。为此,我们提出了一种增强的选择策略,利用选择模型基于一致结果进行决策。
为了开发选择模型,我们专注于构建增强的合成训练数据。一方面,我们使用各种具有不同输入的生成器生成多个候选SQL查询。通过基于执行结果对样本进行分组和聚类,我们能够构建正负对比样本。此外,为了考虑候选结果的复杂性,我们利用LLM对正确查询进行少量受控修改以补充数据集。另一方面,当将候选结果组织成训练提示时,我们首先对样本进行去形式化处理,以减少SQL风格方面引起的干扰。对于构建的数据集,我们确保正负样本组合的分布平衡,所选候选来源的生成器均匀分布,并且候选的顺序均匀分布。
由于在模型选择过程中存在大量候选信息,我们进一步提出了一种候选重组策略以增强模型的注意力。完整的选过程如算法3所示。首先,我们获得候选SQL查询L={l1,…,ln}L=\left\{l_{1}, \ldots, l_{n}\right\}L={l1,…,ln}在数据库上的执行结果R={r1,…,rn}R=\left\{r_{1}, \ldots, r_{n}\right\}R={r1,…,rn},确保任何具有执行错误的候选都已被排除。我们根据执行结果的一致性对候选进行分组,以获得集群集合C={C1,…,Cm}\mathcal{C}=\left\{C_{1}, \ldots, C_{m}\right\}C={C1,…,Cm}。随后,我们进行组间和组内排序。组间排序按每个组的大小降序进行,得到C′\mathcal{C}^{\prime}C′。组内排序根据与候选对应的生成器顺序O\mathcal{O}O执行,得到C′′\mathcal{C}^{\prime \prime}C′′,其中序列O\mathcal{O}O按生成器的性能评估降序排列。
如果存在在集群中占主导地位的一致结果,即∣C1′′∣≥⌈∣L∣/2⌉\left|C_{1}^{\prime \prime}\right| \geq\lceil|L| / 2\rceil∣C1′′∣≥⌈∣L∣/2⌉,我们按照顺序C′′\mathcal{C}^{\prime \prime}C′′依次组织所有候选,并将它们呈现给选择模型Mc\mathcal{M}_{c}Mc。否则,我们从
算法3 SQL选择算法
输入:候选SQL查询 LLL,问题 QQQ,证据 EEE,过滤模式集 S={S1,…,}\mathcal{S}=\left\{S_{1}, \ldots,\right\}S={S1,…,},选择模型 Mc\mathcal{M}_{c}Mc,SQL执行结果 RRR,生成器顺序 O\mathcal{O}O
输出:选择的SQL l∗l^{*}l∗
1: 聚类 C={C1,…,Cm}←groupby(L,R)\mathcal{C}=\left\{C_{1}, \ldots, C_{m}\right\} \leftarrow \operatorname{groupby}(L, R)C={C1,…,Cm}←groupby(L,R)
2: 模式 Sun←\mathcal{S}^{u n} \leftarrowSun← schema_union (S)(\mathcal{S})(S)
3: if ∣C∣=1|\mathcal{C}|=1∣C∣=1 then
4: return l∗←argl∈Lmin∣l∣l^{*} \leftarrow \arg _{l \in L} \min |l|l∗←argl∈Lmin∣l∣ {所有都一致;选择最短的。}
5: else
6: 集群 C′←sort(C)\mathcal{C}^{\prime} \leftarrow \operatorname{sort}(\mathcal{C})C′←sort(C) 按大小降序排列 {组间排序}
7: 初始化集群 C′′←∅\mathcal{C}^{\prime \prime} \leftarrow \emptysetC′′←∅
8: for each cluster Ci′∈C′C_{i}^{\prime} \in \mathcal{C}^{\prime}Ci′∈C′ do
9: \quad Append Ci′′←sort(Ci′)C_{i}^{\prime \prime} \leftarrow \operatorname{sort}\left(C_{i}^{\prime}\right)Ci′′←sort(Ci′) 按照 O\mathcal{O}O 排序 {组内排序}
10: 初始化候选 L′←∅L^{\prime} \leftarrow \emptysetL′←∅, 指标 j←0j \leftarrow 0j←0
11: if ∣C1′′∣≥⌈∣L∣/2⌉\left|C_{1}^{\prime \prime}\right| \geq\lceil|L| / 2\rceil∣C1′′∣≥⌈∣L∣/2⌉ then
12: for each Cluster Ci′′∈C′′C_{i}^{\prime \prime} \in \mathcal{C}^{\prime \prime}Ci′′∈C′′ do
13: for each SQL l∈Ci′′l \in C_{i}^{\prime \prime}l∈Ci′′ do
14: \quad Append Lj′←l,j←j+1L_{j}^{\prime} \leftarrow l, j \leftarrow j+1Lj′←l,j←j+1
15: else
16: for each Cluster Ci′′∈C′′C_{i}^{\prime \prime} \in \mathcal{C}^{\prime \prime}Ci′′∈C′′ do
17: \quad Append Lj′←argl∈Ci′′min∣l∣,j←j+1L_{j}^{\prime} \leftarrow \arg _{l \in C_{i}^{\prime \prime}} \min |l|, j \leftarrow j+1Lj′←argl∈Ci′′min∣l∣,j←j+1
18: return l∗←fMc(Q,Sun,E,L′){l^{*} \leftarrow f_{\mathcal{M}_{c}}\left(Q, \mathcal{S}^{u n}, E, L^{\prime}\right)\{l∗←fMc(Q,Sun,E,L′){ 选择模型预测 }\}}
每个组内的C′′\mathcal{C}^{\prime \prime}C′′中选择一个候选,并按照组间排序组装结果呈现给Mc\mathcal{M}_{c}Mc。模型Mc\mathcal{M}_{c}Mc考虑问题、所有过滤模式的联合、证据和重组候选来做出决策。由于LLM倾向于选择较早出现的选项[34],采用这种聚类和排序方法组织候选使我们能够有效利用强一致性先验,同时减轻干扰信息的影响。这使得模型的注意力得以集中,从而增强其理解能力。
IV. 实验
在本节中,我们旨在提供对XiYan-SQL的详细评估。我们首先介绍实验设置,随后展示XiYan-SQL在重要基准测试中的SOTA性能。接着,我们对整体框架进行消融实验,并对每个组件进行全面分析。为了确保实验的公平性,用于比较分析的先前方法的结果均来自公开的基准测试,通常代表它们最强大的实现。此外,我们为全面比较而复制的结果是使用与XiYan-SQL相同的配置(例如,基础模型等)获得的。
A. 实验设置
数据集。我们进行了实验,以评估XiYan-SQL框架在近年来文本到SQL研究中最具认可度和挑战性的两个基准测试中的性能。
BIRD[6],专注于复杂的真实世界数据库,是最大的跨领域文本到SQL基准测试。它包含12,751个唯一的问答对和95个大数据库,总大小为33.4 GB。训练集、开发集和未发布的测试集分别包含9,428、1,534和1,789对。我们使用其开发集进行本地评估,并提交我们在未发布测试集上的性能结果以进行公平评估。
Spider[7],广泛用于文本到SQL评估,是一个大规模、复杂、跨领域的基准测试。它包含10,181个问题和5,693个不同的SQL查询,分布在200个数据库中,涵盖138个不同的领域。该数据集分为训练集、开发集和测试集,分别包含8,659、1,034和2,147个样本,主要关注测试集上的结果评估。
指标。遵循先前的研究,我们使用执行准确性(EX)来评估文本到SQL方法的性能。由于SQL查询可以以多种形式表达,EX用于评估预测SQL查询的有效性,并确定执行结果是否与真实SQL查询一致。需要注意的是,BIRD和Spider基准测试在执行准确性计算上存在细微差异;然而,它们的整体目标保持一致。
除了EX之外,BIRD基准测试的最新版本引入了基于奖励的有效效率评分(R-VES),以评估正确预测SQL查询的执行效率。R-VES是先前VES的调整版本,通过同时考虑SQL查询的准确性和运行时性能来评估模型[6]。我们在主要结果中也展示了该指标在BIRD基准测试上的评估。
实现。在提出的框架中,所有数据库模式均以M-schema[35]的形式表示。对于模式过滤,我们使用GPT-4o †{ }^{\dagger}† [36]作为Ms\mathcal{M}_{s}Ms模型进行关键词提取和列选择。我们将最大迭代次数psp_{s}ps设置为2以获得过滤模式集S={S1,S2}\mathcal{S}=\left\{S_{1}, S_{2}\right\}S={S1,S2}。对于多SQL生成部分,我们首先利用GPT-4o和Qwen-Max ‡{ }^{\ddagger}‡ [37]协助构建相关的多任务和多格式SQL数据。我们在多个不同大小的模型上进行实验,以充分展示我们微调方法的优越性。为了在XiYanSQL上实现最佳性能,我们选择广泛使用的Qwen2.5-Coder-32B [38]作为基础,构建最终的多个微调SQL生成器。我们总共使用了pm=5p_{m}=5pm=5个生成器,其中包括一个基于ICL的生成器,最终生成了pl=10p_{l}=10pl=10个SQL候选。由于成本和资源有限,我们没有增加模型或候选的数量。对于SQL选择部分,我们也利用GPT-4o来扩充训练数据。鉴于选择任务相对比生成任务简单,我们选择Qwen2.5-Coder-7B来开发SQL选择模型。所有基
表I
不同文本到SQL方法在BIRD基准测试中的性能比较。
| 方法 | EX(Dev) | EX(Test) | R-VES(%) |
|---|---|---|---|
| GPT-4o | 58.47 | - | 51.75 |
| TA-SQL + GPT-4 [39] | 56.19 | 59.14 | - |
| DAIL-SQL [13] | 54.76 | 57.41 | 54.02 |
| SFT CodeS-15B [16] | 58.47 | 60.37 | 61.37 |
| SuperSQL [1] | 58.50 | 62.66 | - |
| MCS-SQL [4] | 63.36 | 65.45 | 61.23 |
| PURPLE + RED + GPT-4o | 68.12 | 70.21 | 65.62 |
| Insights AI | 72.16 | 70.26 | 66.39 |
| CHESS [21] | 68.31 | 71.10 | 66.53 |
| Distillery + GPT-4o [22] | 67.21 | 71.83 | 67.41 |
| OpenSearch-SQL, v2 + GPT-4o | 69.30 | 72.28 | 69.36 |
| ExSL + granite-34b-code | 72.43 | 73.17 | 71.37 |
| DSAIR + GPT-4o | 74.32 | 74.12 | 70.13 |
| CHASE-SQL+Gemini [5] | 74.46 | 74.79 | 70.57 |
| XiYan-SQL | 73.34 | 75.63\mathbf{7 5 . 6 3}75.63 | 71.41\mathbf{7 1 . 4 1}71.41 |
在以下实验中,用于微调的所有模型都是其各自的指令版本。有关更多实现细节,请参见附录II。
B. 主要结果
BIRD结果。我们基于官方基准页面展示了XiYan-SQL在BIRD基准测试中的端到端性能。除了从GPT40和XiYan-SQL获得的结果外,所有其他结果均来自各自的原始出版物。如表I所示,我们的方法达到了75.63%的EX分数,超过了所有先前的工作,并领先第二名0.84%,建立了新的SOTA性能。这为XiYan-SQL作为先进多候选生成和选择技术的有效性提供了强有力的证据。
我们进一步展示了基于R-VES指标的XiYan-SQL与其他方法的比较,结果来自官方基准网页。如表I所示,我们达到了71.41%的R-VES分数,保持了BIRD排行榜上的SOTA性能,与EX相当。
Spider结果。为了进一步评估XiYan-SQL的泛化能力,我们在Spider测试集上进行了实验,结果如表II所示。与在BIRD基准测试中获得的结果类似,XiYan-SQL达到了89.65%的EX分数,超过了先前的方法并建立了新的SOTA性能。值得注意的是,Spider上的测试不涉及任何特定调整;相反,我们直接使用在BIRD上评估的模型和配置策略。这突出了我们方法的稳健泛化能力,在各种文本到SQL场景中表现出一致的性能。
C. 消融研究
为了研究完整流程中每个组件的重要性,我们进行了消融研究以评估每个组件对EX的增量影响。BIRD开发集的端到端消融结果如下所示
†{ }^{\dagger}† gpt-40-0806 for all GPT-40 (https://openai.com/index/gpt-4/)
‡{ }^{\ddagger}‡ https://qwenlm.github.io/zh/blog/qwen2.5-max/
表II
不同文本到SQL方法在Spider测试基准测试中的性能比较。
| 方法 | EX(%) |
|---|---|
| MCS-SQL + GPT-4 [4] | 89.60 |
| CHASE-SQL + Gemini 1.5 [5] | 87.60 |
| PET-SQL [40] | 87.60 |
| SuperSQL [1] | 87.00 |
| DAIL-SQL + GPT-4 [13] | 86.60 |
| DPG-SQL + GPT-4 | 85.60 |
| Tool-SQL + GPT-4 [41] | 85.60 |
| DIN-SQL + GPT-4 [14] | 85.30 |
| GPT-4o | 83.54 |
| C3 + ChatGPT + Zero-Shot [18] | 82.30 |
| XiYan-SQL | 89.65\mathbf{8 9 . 6 5}89.65 |
表III
BIRD开发集上XiYan-SQL每个组件的消融研究。
| 方法 | EX(%) | ΔEX(%)\Delta \mathrm{EX}(\%)ΔEX(%) |
|---|---|---|
| XiYan-SQL (完整流程) | 73.34 | - |
| w/o Schema Filter | 72.10 | -1.24 |
| w 只有一个SFT生成器 | 69.30 | -4.04 |
| w 只有多数投票 | 70.21 | -3.13 |
表IV
BIRD开发集上不同文本到SQL方法的模式过滤比较。
| 方法 | P(%)P(\%)P(%) | Rc(%)R_{c}(\%)Rc(%) | Rv(%)R_{v}(\%)Rv(%) |
|---|---|---|---|
| 全模式 | 10.14 | 100 | - |
| CHESS [21] | 85.90 | 74.77 | 63.71 |
| TA-SQL [39] | 82.50 | 76.83 | - |
| 我们的模式过滤器(模式 S1S_{1}S1 ) | 74.89 | 83.64 | 91.31 |
| 我们的模式过滤器(模式 S2S_{2}S2 ) | 54.90 | 89.77 | 93.63 |
表V
BIRD开发集上不同模式过滤方法的最终结果比较。
| 方法 | EX(%) | ΔEX(%)\Delta \mathrm{EX}(\%)ΔEX(%) |
|---|---|---|
| 全模式 | 61.57 | - |
| CHESS [21] | 63.30 | +1.73 |
| 我们的模式过滤器(模式 S1S_{1}S1 ) | 63.75\mathbf{6 3 . 7 5}63.75 | +2.18 |
| 我们的模式过滤器(模式 S2S_{2}S2 ) | 62.97 | +1.40 |
如表III所示。首先,当移除模式过滤模块,仅保留全模式时,它显著影响了生成的SQL候选方案的质量,导致整体性能下降约1.24%。这一结果强调了所提出的模式过滤方法在生成高质量模式方面的重要性,从而提升了SQL生成器的性能。当我们通过使用单一微调生成模型生成一个SQL查询来进行多SQL生成的消融时,我们观察到约4%的显著性能下降。这一结果强烈强调了我们多SQL生成技术的卓越性能。此外,如果单一生成模型不是来自我们提出的先进训练策略,而是来自传统的微调模型或基于ICL的模型,性能下降会更加明显。我们将在下一节进一步讨论这一点。最后,当我们移除提出的SQL选择方法,仅依赖于候选SQL执行结果的一致性进行多数投票时,我们观察到性能显著下降。这强烈支持了该特定技术在整体框架中的重要性。总体而言,我们的消融实验表明,XiYanSQL的每个组件在实现高准确性方面都发挥了关键作用。
D. 模式过滤研究
我们首先评估了我们的模式过滤模块在过滤数据库模式方面的性能。表IV展示了BIRD上不同模式过滤方法的结果。我们采用模式链接[22]中提出的评估指标,其中PPP表示过滤模式中列的精度,而RcR_{c}Rc和RvR_{v}Rv分别表示列和值的召回率。与我们复制的先进模式链接方法相比,我们的模式过滤器在保持精度的同时实现了更高的列和值的召回率。此外,随着迭代次数的增加,它能有效调整模式的精度和召回率,从而生成多样化的模式。
我们进一步补充了不同模式链接方法下最终生成的SQL查询的性能。由于不同生成器之间的性能差异,我们平均了三个不同模型的结果:基于Qwen2.5-Coder-32B的微调模型、GPT-4o和Gemini-1.5pro §{ }^{\S}§。值得注意的是,我们强调ΔEX\Delta \mathrm{EX}ΔEX指标,该指标表示相比全模式方法的改进。如表V所示,我们的方法展示了显著的提升。此外,我们发现选择单次迭代(即ps=1p_{s}=1ps=1)比第二次迭代产生更好的结果。在整个流程中,我们通过多次迭代引入了更大的模式多样性。有关模式过滤的更多实验,请参见附录III。
E. 单一SQL生成研究
我们首先研究了基于所提出的微调策略,单一微调生成器在生成单一SQL查询方面的性能。表VI展示了在不同模型大小下通过多任务微调策略实现的一致性改进,并将这些结果与直接使用GPT-4o作为SQL生成器的结果进行了比较。对于基于ICL的方法,通过引入有效的演示示例,我们观察到相比直接使用强大的GPT4o,大约有4%的提升。此外,无论模型类型或大小如何,基于我们多任务训练策略的SQL生成模型都表现出显著的提升,提升范围从8.3%到15.3%不等。与传统微调相比,我们的联合多任务训练方法显著增强了模型对自然语言到SQL转换的理解能力,从而提高了模型对任务复杂性的适应能力。这体现在五个广泛选择的基本微调模型的性能提升上,分别为4.5%、4.04%、2.9%、2.9%和2.2%。我们14B及以上大小的微调模型性能超过了使用GPT4o的少样本方法。当我们使用Qwen2.5-Coder-32B作为基础模型时,微调的SQL生成性能可以达到66.88%,这也是单一SQL模型的SOTA性能。
我们进一步对训练阶段的各种辅助任务进行了详细研究。表VII报告了两个模型的消融结果,以探索每个辅助任务的影响,其中编号1编号5表示基于Codestral-22B模型的微调结果,编号6编号10表示基于Qwen2.5-Code-32B模型的微调结果。我们观察到,问题推理任务在所有辅助任务中带来了最大的相对改进。然而,没有完整的多任务微调策略,它无法达到最佳性能,这进一步说明了多个任务之间的互补性。此外,在推理阶段,除了主要的文本到SQL生成任务外,我们还选择性地进行自我精炼过程,这使性能提升了约1%,并有助于提高最终候选池的质量。
F. 多SQL生成研究
我们继续评估利用多个SQL生成器获取多个候选SQL查询的性能。图4(a)展示了各种候选生成方法的比较,以突出我们多个微调模型和多生成器集成方法的优越性。
表VII
BIRD开发集上多辅助任务的EX性能消融结果。
| 编号 | 问题 推理任务 |
证据 推理任务 |
自我精炼任务 | EX(%) |
|---|---|---|---|---|
| 1 | ✓\checkmark✓ | ✓\checkmark✓ | ✓\checkmark✓ | 65.25 |
| 2 | ✓\checkmark✓ | 64.21 | ||
| 3 | ✓\checkmark✓ | 63.10 | ||
| 4 | ✓\checkmark✓ | 63.56 | ||
| 5 | 62.23 | |||
| 6 | ✓\checkmark✓ | ✓\checkmark✓ | ✓\checkmark✓ | 66.88 |
| 7 | ✓\checkmark✓ | 65.84 | ||
| 8 | ✓\checkmark✓ | 64.99 | ||
| 9 | ✓\checkmark✓ | 65.97 | ||
| 10 | 64.67 |
在这里,我们遵循[5]中描述的上限和下限性能的计算方法。ICL-Temp表示使用GPT-4o在不同采样温度下的结果,如预期的那样,表现出较低的候选多样性和所选输出的准确性。FT-Temp指的是我们的微调生成器在不同采样温度下生成的候选,其准确性高于ICL-Temp,但同样缺乏良好的多样性。ICL-Prompt表示使用GPT-4o通过不同示例选择提示生成的候选。与前两种方法相比,ICL-Prompt在上限和选择准确性上都有所改进;然而,模型对提示的敏感性导致了较低的下限性能。Multi-FT指的是我们多个微调模型生成的候选,这些模型具有不同的生成优势。该方法中使用的微调生成模型实现了高准确性,生成的SQL查询也表现出相当大的多样性,有效平衡了下限和上限之间的关系。这使得准确性比ICL-Prompt提高了约2%。此外,我们探索的最佳方法(即最后一个)结合了基于ICL的生成方法和我们的多个微调模型。这种集成使我们能够在保持高质量生成的同时进一步增强多样性。
图4(b)展示了我们的多生成器集成方法在不同候选数量下的性能。不同数量的候选结果是通过从五个SQL生成器的候选池中进行多次随机抽样获得的。随着候选数量的增加,候选空间表现出更大的多样性,导致上限提高;当pl=10p_{l}=10pl=10时,这个上限达到了82.2%,显示出显著的潜力。然而,下限也显著下降,这表明选择过程变得至关重要。因此,我们探索了一种专为涉及多个候选的情景设计的增强SQL选择方法。
G. SQL选择研究
在获得多个候选SQL查询后,我们引入了一种结合候选重组和SQL选择模型的策略来选择最佳候选SQL。接下来,我们通过详细的对比分析探讨选择策略。表VIII展示了不同SQL选择方法的EX性能比较。
图4. (a) 不同多候选方法在五个候选时的EX比较(上图)。(b) 不同候选数量下多生成器方法的性能(下图)。
表VIII 不同SQL选择方法在BIRD开发集上的EX性能比较。
| 方法 | pl=5(%)p_{l}=5(\%)pl=5(%) | pl=10(%)p_{l}=10(\%)pl=10(%) |
|---|---|---|
| 多数投票 | 69.94 | 70.21 |
| 我们的选择模型 (+ s1\mathrm{s}_{1}s1 ) | 69.69 | 68.19 |
| 我们的选择模型 (+ s2\mathrm{s}_{2}s2 ) | 71.45 | 71.84 |
| 我们的选择模型 (+ s3\mathrm{s}_{3}s3 ) | 72.29\mathbf{7 2 . 2 9}72.29 | 73.34\mathbf{7 3 . 3 4}73.34 |
选择方法。我们观察到,基于一致性的多数投票策略达到了69.82%的EX。此外,利用我们微调的选择模型,我们比较了几种不同的选择策略。这里,s∗1\mathrm{s}*{1}s∗1 表示以随机顺序将候选样本呈现给选择模型,s∗2\mathrm{s}*{2}s∗2 表示根据相应模型性能降序组织候选SQL样本,而s∗3\mathrm{s}*{3}s∗3 使用提出的候选重组来增强模型的注意力。我们的选择策略(即 s∗3\mathrm{s}*{3}s∗3 )比多数投票方法高出约3%,并且显著优于其他选择策略。随着候选数量的增加,选择任务变得更加复杂,我们的当前方法的优势变得更加明显。
在上述实验中,我们已经证明了基于所提出的候选重组策略的选择模型,其性能显著超过了多数投票方法。这种改进不仅归功于我们的选择策略,还归功于我们选择模型的强大辨别能力。我们进一步评估了选择模型的性能。为了尽量减少候选数量和顺序对模型的影响,我们从BIRD开发数据集中随机抽取三种不同的候选数量(2、6和10)并
表IX 不同选择模型的独立SQL选择判断能力评估。
| 方法 | EX(%) |
|---|---|
| Qwen2.5-Coder-7B | 62.84 |
| Gemini-1.5-pro | 66.30 |
| GPT-4o | 67.47 |
| 我们的微调选择模型 | 69.56\mathbf{6 9 . 5 6}69.56 |
以随机顺序组织候选以呈现给模型。如表IX所示,我们的微调选择模型优于基线模型,并且也超过了先进即插即用模型(如GPT40和Gemini)的性能。此外,由于我们的微调模型体积较小,它表现出更快的响应时间和改进的指令遵循能力。
H. 不同SQL生成器结果的分析
在本节中,我们展示了对XiYan-SQL最终性能有贡献的不同生成器的结果。如前所述,我们最终使用了五个不同的生成器,每个生成器生成两个对应于两个模式的候选。我们在表X中提供了所有不同生成器的个别评估结果及其对整体性能的贡献。具体来说,生成器SQLG∗1\mathrm{SQLG}*{1}SQLG∗1 是基于多任务训练的微调模型,没有任何特殊格式;生成器SQLG∗2\mathrm{SQLG}*{2}SQLG∗2 是结合了多任务数据和复杂写入模式格式的微调模型;生成器SQLG∗3\mathrm{SQLG}*{3}SQLG∗3 是利用多任务数据和标准化表现风格的微调模型。写入模式和表现风格的变化如图3所示。生成器SQLG∗4\mathrm{SQLG}*{4}SQLG∗4 是结合了所有多任务数据和各种格式数据的微调模型;生成器SQLG∗5\mathrm{SQLG}*{5}SQLG∗5 基于使用GPT-4o模型的多示例ICL方法。
为清晰起见,“平均EX”在此表示单个生成器基于两个模式生成的两次生成的平均值。“贡献率(CR)”指去除所有一致候选(约占45%,其中选择最短候选查询)后,每个生成器的候选所占比例。需要注意的是,这个比例最终来自于后续SQL选择过程的输出。
如观察所示,生成器SQLG∗1\mathrm{SQLG}*{1}SQLG∗1 表现出最佳性能并贡献最大,代表了我们多任务策略中单一微调生成模型的最佳性能。生成器SQLG∗4\mathrm{SQLG}*{4}SQLG∗4 作为综合混合数据模型,也表现出良好的性能。生成器SQLG∗2\mathrm{SQLG}*{2}SQLG∗2 和SQLG∗3\mathrm{SQLG}*{3}SQLG∗3 通过引入新格式数据专注于多样化生成路径。同时,生成器SQLG∗5\mathrm{SQLG}*{5}SQLG∗5 利用GPT-4o的ICL能力进一步提升候选池的上限。
我们进一步展示了每个SQL生成器在整体候选池中的结果分布,如表XI所示。这里,“RnR_{n}Rn”指的是特定生成器生成的正确查询数与总正确样本数的比例,当所有样本中只有nnn个生成器生成正确输出时。例如,SQLG1\mathrm{SQLG}_{1}SQLG1的R1R_{1}R1值为1.42%,意味着所有正确结果中有1.42%是由该生成器单独生成的。作为准确率最高的模型,SQLG1\mathrm{SQLG}_{1}SQLG1在R3R_{3}R3和R4R_{4}R4上表现出较高的值,表明其生成更加稳健且整体质量更高。相比之下,SQLG3\mathrm{SQLG}_{3}SQLG3和SQLG4\mathrm{SQLG}_{4}SQLG4在中等范围内的分布更加集中,使其能够在保持质量的同时探索多样化生成。另一方面,SQLG2\mathrm{SQLG}_{2}SQLG2和SQLG5\mathrm{SQLG}_{5}SQLG5表现出较高的R1R_{1}R1值,表明其具有更高的多样性,并且也能够生成一些独特且正确的SQL查询。
此外,这两个表还表明,与其他微调生成器相比,具有最高准确率的生成器SQLG1\mathrm{SQLG}_{1}SQLG1在引入多样性时牺牲了一定的精度。这代表了多候选方法中质量与多样性之间的权衡。总之,每个生成器都扮演着重要的角色,它们的性能及其对候选池的贡献与我们为XiYan-SQL多生成器框架设计的目标一致。由于资源有限,对更多训练任务和方法的进一步研究将在未来的研究中进行。
I. 成本效率分析
XiYan-SQL框架的主要优势在于其独特的多生成器集成方法,该方法能够生成和利用多个候选SQL查询,从而实现最佳性能。然而,这可能会引发在处理单个用户查询时需要多次访问模型以及相关的推理延迟的担忧。为了解决这个问题,我们进行了
表XII XiYan-SQL框架在BIRD开发集上的平均推理成本。
| 阶段 | 基础模型 | 输入/输出 (tokens) |
推理 延迟(s) |
|---|---|---|---|
| 模式过滤(检索) | GPT-4o | 413.9/37 | 11.8 |
| 模式过滤(选择) | GPT-4o | 3791.5/63.1 | 6.8 |
| 多SQL生成 | Qwen2.5-Coder-32B | 582.5/47.8 | 2.3 |
| 多SQL生成 | GPT-4o | 763.2/54.7 | 2.8 |
| SQL选择 | Qwen2.5-Coder-7B | 1052.3/1 | 0.8 |
| 整个流程 | 多个模型 | 6700/205 | 40.5 |
关于XiYanSQL操作成本的全面讨论。
在训练阶段,微调Qwen2.5-Coder32B以获得SQL生成模型需要大约45个GPU小时(使用NVIDIA A100 80G GPU),消耗总共约1.8亿个token。微调Qwen2.5Coder-7B以获得选择模型需要大约15个GPU小时,总共消耗约5000万个token。训练阶段成本的详细信息在附录II中报告。
在推理阶段,表XII总结了XiYan-SQL的推理成本。需要注意的是,上述结果反映了XiYan-SQL在BIRD开发集上的平均每样本统计。SQL生成过程可能包括某些自我优化操作,这些操作已被考虑在内。我们使用官方API调用GPT40,而所有其他微调模型均使用最小资源部署。此外,由于网络条件和部署环境等因素,结果可能会有一些正常波动。在模式过滤模块中,大部分时间成本发生在检索阶段的模型调用和多路径相似性检索,而选择阶段的时间成本来自于两次迭代的列选择。在多SQL生成阶段,主要时间消耗是生成多个候选SQL查询,而SQL选择阶段仅需要选择最终结果。最终,生成10个候选SQL查询的端到端推理延迟大约为40.5秒。
J. 泛化能力研究
XiYan-SQL是一个多步骤的文本到SQL框架,必须讨论其在更广泛领域外数据集上的泛化性能,因为这是衡量其解决SQL生成挑战能力的重要指标。在本节中,我们从两个角度详细阐述这一方面。
首先,从BIRD基准测试的角度来看,如表I所示,XiYan-SQL在黑盒测试集上的表现比公开的开发集提高了2.3%。特别是,这一提升超过了所有先前SOTA方法,这些方法的提升均未超过2%,许多甚至低于1%。
其次,为了进一步说明我们微调模型和框架的泛化性能,我们展示了两个由我们内部数据团队基于真实场景构建的具有挑战性的多方言评估集。这两个
表XIII 两个领域外评估集上的执行准确性性能比较。
| 方法 | PG-Set(%) | MYSQL-Set(%) |
|---|---|---|
| GPT-4o | 45.93 | 55.87 |
| Gemini-1.5-pro | 45.07 | 51.33 |
| Qwen2.5-Coder-32B | 40.38 | 46.59 |
| SFT生成器(Qwen2.5-Coder-32B) | 45.31 | 52.18 |
| XiYan-SQL(完整流程) | 50.04\mathbf{5 0 . 0 4}50.04 | 58.05\mathbf{5 8 . 0 5}58.05 |
评估集用于在产品发布前严格测试XiYan-SQL在领域外数据上的性能。我们展示了评估结果,如表XIII所示。PG-Set是一个动态维护的PostgreSQL方言测试集,目前包含1,051个问答对和四个大型数据库。相比之下,MYSQL-Set测试集包含1,068个MySQL方言的问答对,以及四个数据库。这些用于评估的样本与真实用户业务场景非常相似,涵盖了SQL编写容易出错的多个维度,包括日期和时间计算(例如,同比、环比和趋势相关问题)、高级函数、指标统计等。
我们的单一微调模型在两个不同测试集上分别比基线(Qwen2.5Coder-32B)高出5%和5.6%,同时达到了与闭源LLM(如GPT和Gemini)相当的性能。完整的XiYan-SQL框架在PG-Set上达到了50.04%的性能,在MYSQL-Set上达到了58.05%的性能,这是最高性能,从而展示了强大的泛化能力。我们还将发布这些评估数据集的去标识化版本,以促进该领域的未来研究。总体而言,XiYan-SQL不仅关注SQL生成领域的学术研究,还为行业中的众多客户提供产品服务。
V. 讨论
作为一个全面的文本到SQL解决方案,XiYan-SQL基于我们的实验提供了几个实证见解,如下所示:
- 对于模式链接,平衡精度和召回率至关重要。通过确保召回率达到一定阈值(例如,80%),提高精度对整体结果有显著益处。这由我们的模式过滤器的多次迭代得到证实。
-
- 对于SQL生成器,整合相关多任务可以显著提高微调模型的性能。这些任务可以根据主题进行调整。此外,对于多候选方法,无论是通过多生成器还是单生成器的多路径生成,都应在增加输出多样性之前优先考虑单个生成的质量。
-
- 对于SQL选择,类似于之前的研究[34],[42],我们还发现,无论是微调还是未微调的LLM,都对候选的顺序和组织方式敏感。因此,补充额外的先验知识可以帮助提高性能。
VI. 结论
本研究提出了一种新颖的文本到SQL框架XiYanSQL,该框架专注于生成高质量和多样化的候选SQL查询,并有效地选择最佳候选。具体而言,我们引入了一个模式过滤模块,通过多路径检索和迭代选择获得多个高质量模式。然后,我们利用提出的多任务和多格式微调策略开发了多种SQL生成器,每个生成器都有各自的优势,能够生成高质量和多样化的SQL候选。最后,我们采用基于模型注意力策略增强的选择模型来识别最佳SQL。XiYan-SQL框架在著名的文本到SQL基准测试(包括BIRD和Spider)上实现了SOTA性能。
未来对XiYan-SQL框架的研究有许多机会。尽管通过这种方法构建的多个微调模型有效缓解了传统微调方法中存在的候选多样性问题,但固有的限制意味着其能达到的多样性仍然有限。因此,我们还引入了一种基于上下文学习的生成方法。未来,我们计划通过引入更多的微调策略来增强微调模型的认知能力,从而进一步解决这一问题。此外,我们目前正在研究将更广泛的任务整合到一个一体化的SQL模型中,旨在扩展XiYanSQL模型以涵盖SQL生成之外的更多相关场景。
参考文献
[1] B. Li, Y. Luo, C. Chai, G. Li, 和 N. Tang, “The dawn of natural language to sql: Are we fully ready?” arXiv preprint arXiv:2406.01265, 2024.
[2] J. Wei, X. Wang, D. Schuurmans, M. Bosma, B. lchter, F. Xia, E. H. Chi, Q. V. Le, 和 D. Zhou, “Chain-of-thought prompting elicits reasoning in large language models,” in Proceedings of the 36th International Conference on Neural Information Processing Systems, ser. NIPS '22, Red Hook, NY, USA: Curran Associates Inc., 2024.
[3] B. Wang, C. Ren, J. Yang, X. Liang, J. Bai, L. Chai, Z. Yan, Q.-W. Zhang, D. Yin, X. Sun et al., “Mac-sql: A multi-agent collaborative framework for text-to-sql,” arXiv preprint arXiv:2312.11242, 2024.
[4] D. Lee, C. Park, J. Kim, 和 H. Park, “Mcs-sql: Leveraging multiple prompts and multiple-choice selection for text-to-sql generation,” arXiv preprint arXiv:2405.07467, 2024.
[5] M. Pourreza, H. Li, R. Sun, Y. Chung, S. Talaei, G. T. Kakkar, Y. Gan, A. Saberi, F. Ozcan, 和 S. O. Arik, “Chase-sql: Multi-path reasoning and preference optimized candidate selection in text-to-sql,” arXiv preprint arXiv:2410.01943, 2024.
[6] J. Li, B. Hui, G. Qu, J. Yang, B. Li, B. Li, B. Wang, B. Qin, R. Geng, N. Huo et al., “Can Ilm already serve as a database interface? a big bench for large-scale database grounded text-to-sqls,” Advances in Neural Information Processing Systems, vol. 36, 2024.
[7] T. Yu, R. Zhang, K. Yang, M. Yasunaga, D. Wang, Z. Li, J. Ma, I. Li, Q. Yao, S. Roman et al., “Spider: A large-scale human-labeled dataset for complex and cross-domain semantic parsing and text-to-sql task,” arXiv preprint arXiv:1809.08887, 2018.
[8] J. M. Zelle 和 R. J. Mooney, “Learning to parse database queries using inductive logic programming,” in Proceedings of the Thirteenth National Conference on Artificial Intelligence - Volume 2, ser. AAAI’96. AAAI Press, 1996, p. 1050-1055.
[9] A. Vaswani, N. Shazeer, N. Parmar, J. Uszkoreit, L. Jones, A. N. Gomez, L. Kaiser, 和 I. Polosukhin, “Attention is all you need,” in Proceedings of the 31st International Conference on Neural Information Processing Systems, ser. NIPS’17. Red Hook, NY, USA: Curran Associates Inc., 2017, p. 6000-6010.
[10] J. Devlin, M.-W. Chang, K. Lee, 和 K. Toutanova, “Bert: Pre-training of deep bidirectional transformers for language understanding,” in Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, Volume 1 (Long and Short Papers), 2019, pp. 4171-4186.
[11] P. Yin, G. Neubig, W.-t. Yih, 和 S. Riedel, “TaBERT: Pretraining for Joint Understanding of Textual and Tabular Data,” arXiv e-prints, p. arXiv:2005.08314, May 2020.
[12] T. Yu, C.-S. Wu, X. V. Lin, B. Wang, Y. C. Tan, X. Yang, D. Radev, R. Socher, 和 C. Xiong, “Grappa: Grammar-augmented pre-training for table semantic parsing,” in International Conference on Learning Representations, 2021. [Online]. Available: https: //arxiv.org/abs/2009.13845
[13] D. Gao, H. Wang, Y. Li, X. Sun, Y. Qian, B. Ding, 和 J. Zhou, “Text-to-sql empowered by large language models: A benchmark evaluation,” arXiv preprint arXiv:2308.15363, 2023.
[14] M. Pourreza 和 D. Rafiei, “Din-sql: Decomposed in-context learning of text-to-sql with self-correction,” Advances in Neural Information Processing Systems, vol. 36, 2024.
[15] , “Dts-sql: Decomposed text-to-sql with small large language models,” arXiv preprint arXiv:2402.01117, 2024.
[16] H. Li, J. Zhang, H. Liu, J. Fan, X. Zhang, J. Zhu, R. Wei, H. Pan, C. Li, 和 H. Chen, “Codes: Towards building open-source language models for text-to-sql,” Proceedings of the ACM on Management of Data, vol. 2, no. 3, pp. 1-28, 2024.
[17] J. Yang, B. Hui, M. Yang, J. Yang, J. Lin, 和 C. Zhou, “Synthesizing text-to-sql data from weak and strong llms,” in Proceedings of the 62nd Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers), 2024, pp. 7864-7875.
[18] X. Dong, C. Zhang, Y. Ge, Y. Mao, Y. Gao, J. Lin, D. Lou et al., “C3: Zero-shot text-to-sql with chatgpt,” arXiv preprint arXiv:2307.07306, 2023.
[19] J. Achiam, S. Adler, S. Agarwal, L. Ahmad, I. Akkaya, F. L. Aleman, D. Almeida, J. Altenschmidt, S. Altman, S. Anadkat et al., “Gpt-4 technical report,” arXiv preprint arXiv:2303.08774, 2023.
[20] G. Team, P. Georgiev, V. I. Lei, R. Burnell, L. Bai, A. Gulati, G. Tanzer, D. Vincent, Z. Pan, S. Wang et al., “Gemini 1.5: Unlocking multimodal understanding across millions of tokens of context,” arXiv preprint arXiv:2403.05530, 2024.
[21] S. Talaei, M. Pourreza, Y.-C. Chang, A. Mirhoseini, 和 A. Saberi, “Chess: Contextual harnessing for efficient sql synthesis,” arXiv preprint arXiv:2405.16755, 2024.
[22] K. Maamari, F. Abubaker, D. Jaroslawicz, 和 A. Mhedhbi, “The death of schema linking? text-to-sql in the age of well-reasoned language models,” arXiv preprint arXiv:2408.07702, 2024.
[23] Y. Xie, X. Jin, T. Xie, M. Lin, L. Chen, C. Yu, L. Cheng, C. Zhuo, B. Hu, 和 Z. Li, “Decomposition for enhancing attention: Improving llm-based text-to-sql through workflow paradigm,” arXiv preprint arXiv:2402.10671, 2024.
[24] Z. Lin, Y. Liu, Z. Luo, J. Gao, 和 Y. Li, “Momq: Mixture-of-experts enhances multi-dialect query generation across relational and non-relational databases,” 2024. [Online]. Available: https: //arxiv.org/abs/2410.18406
[25] J. Li, J. Ye, Y. Mao, Y. Gao, 和 L. Chen, “Loftune: A low-overhead and flexible approach for spark sql configuration tuning,” IEEE Transactions on Knowledge and Data Engineering, pp. 1-14, 2025.
[26] R. Rafailov, A. Sharma, E. Mitchell, S. Ermon, C. D. Manning, 和 C. Finn, “Direct preference optimization: your language model is secretly a reward model,” in Proceedings of the 37th International Conference on Neural Information Processing Systems, ser. NIPS '23. Red Hook, NY, USA: Curran Associates Inc., 2023.
[27] M. Datar, N. Immorlica, P. Indyk, 和 V. S. Mirrokni, “Locality-sensitive hashing scheme based on p-stable distributions,” in Proceedings of the twentieth annual symposium on Computational geometry, 2004, pp. 253262.
[28] C. Zhou, P. Liu, P. Xu, S. Iyer, J. Sun, Y. Mao, X. Ma, A. Efrat, P. Yu, L. Yu et al., “Lima: Less is more for alignment,” Advances in Neural Information Processing Systems, vol. 36, 2024.
[29] L. Tunstall, E. E. Beeching, N. Lambert, N. Rajani, K. Rasul, Y. Belkada, S. Huang, L. V. Werra, C. Fourrier, N. Habib, N. Sarrazin, O. Sanseviero, A. M. Rush, 和 T. Wolf, “Zephyr: Direct distillation
of LM alignment,” in First Conference on Language Modeling, 2024. [Online]. Available: https://openreview.net/forum?id=aKkAwZB6JV
[30] X. Liu, S. Shen, B. Li, P. Ma, R. Jiang, Y. Luo, Y. Zhang, J. Fan, G. Li, 和 N. Tang, “A survey of nf2sql with large language models: Where are we, and where are we going?” arXiv preprint arXiv:2408.05109, 2024.
[31] Y. Zhang 和 Q. Yang, “A survey on multi-task learning,” IEEE Transactions on Knowledge and Data Engineering, vol. 34, no. 12, pp. 5586-5609, 2022.
[32] T. Standley, A. Zamir, D. Chen, L. Guibas, J. Malik, 和 S. Savarese, “Which tasks should be learned together in multi-task learning?” in Proceedings of the 37th International Conference on Machine Learning, ser. Proceedings of Machine Learning Research, H. D. III 和 A. Singh, Eds., vol. 119. PMLR, 13-18 Jul 2020, pp. 9120-9132. [Online]. Available: https://proceedings.mlr.press/v119/standley20a.html
[33] X. Wang, J. Wei, D. Schuurmans, Q. V. Le, E. H. Chi, S. Narang, A. Chowdhery, 和 D. Zhou, “Self-consistency improves chain of thought reasoning in language models,” in The Eleventh International Conference on Learning Representations, 2023. [Online]. Available: https://openreview.net/forum?id=1PL1NIMMrw
[34] C. Zheng, H. Zhou, F. Meng, J. Zhou, 和 M. Huang, “Large language models are not robust multiple choice selectors,” in The Twelfth International Conference on Learning Representations, 2024. [Online]. Available: https://openreview.net/forum?id=thr9PXs7T0
[35] Y. Gao, Y. Liu, X. Li, X. Shi, Y. Zhu, Y. Wang, S. Li, W. Li, Y. Hong, Z. Luo, J. Gao, L. Mou, 和 Y. Li, “A preview of xiyan-sql: A multi-generator ensemble framework for text-to-sql,” 2024. [Online]. Available: https://arxiv.org/abs/2411.08599
[36] OpenAI, “Gpt-4 technical report,” CoRR, vol. abs/2303.08774, 2023. [Online]. Available: https://arxiv.org/abs/2303.08774
[37] Q. Team, “Qwen2.5 technical report,” arXiv preprint arXiv:2412.15115, 2024.
[38] B. Hui, J. Yang, Z. Cui, J. Yang, D. Liu, L. Zhang, T. Liu, J. Zhang, B. Yu, K. Dang 等人,“Qwen2.5-coder 技术报告”,arXiv 预印本 arXiv:2409.12186,2024 年。
[39] G. Qu, J. Li, B. Li, B. Qin, N. Huo, C. Ma, 和 R. Cheng, “Before generation, align it! 一种用于缓解文本到SQL生成中幻觉的新且有效的策略”,arXiv 预印本 arXiv:2405.15307,2024 年。
[40] Z. Li, X. Wang, J. Zhao, S. Yang, G. Du, X. Hu, B. Zhang, Y. Ye, Z. Li, R. Zhao 等人,“Pet-sql: 一种带有跨一致性提示增强的两阶段文本到SQL框架”,arXiv 预印本 arXiv:2403.09732,2024 年。
[41] Z. Wang, R. Zhang, Z. Nie, 和 J. Kim,“现实场景中SQL检查和优化的工具辅助代理”,arXiv 预印本 arXiv:2408.16991,2024 年。
[42] N. F. Liu, K. Lin, J. Hewitt, A. Paranjape, M. Bevilacqua, F. Petroni, 和 P. Liang,“中间迷失:语言模型如何使用长上下文”,《计算语言学协会汇刊》,第 12 卷,第 157-173 页,2024 年。
参考论文:https://arxiv.org/pdf/2507.04701
更多推荐


所有评论(0)