自然语言到 SQL(NL2SQL)技术正在快速发展,成为自然语言处理(NLP)领域的一项重要创新。该技术使得用户能够将自然语言查询转化为结构化查询语言(SQL)语句,这一进步极大地方便了缺乏技术背景的用户与复杂数据库之间的交互,从而获取有价值的信息。NL2SQL 技术不仅为各行业的大型数据库探索打开了新大门,还提升了工作效率和决策能力。

然而,NL2SQL 的实现过程中,查询准确性与适应性之间存在一定的权衡。一些方法在生成 SQL 查询时,既无法保证准确性,也难以适应不同类型的数据库。现有的一些解决方案多依赖于大型语言模型(LLMs),通过提示工程生成多个输出并选择最佳查询,但这种方式增加了计算负担,不适合实时应用。同时,监督微调(SFT)虽然能实现针对性 SQL 生成,但在跨领域应用和复杂数据库操作中却面临困难,因此亟需创新的框架。

阿里巴巴的研究团队推出了 XiYan-SQL,一个突破性的 NL2SQL 框架。它融合了多生成器集成策略,将提示工程和 SFT 的优势结合起来。XiYan-SQL 的一个关键创新在于引入了 M-Schema,这是一种半结构化的架构表示方法,能够增强系统对数据库层次结构的理解,包括数据类型、主键和示例值,从而提高生成准确且符合上下文的 SQL 查询的能力。

XiYan-SQL 采用三阶段的流程生成和优化 SQL 查询。

首先,系统通过架构链接识别相关数据库元素,从而减少冗余信息,聚焦于关键结构。接着,利用基于示例学习(ICL)和 SFT 的生成器生成 SQL 候选。最后,系统运用纠错模型和选择模型对生成的 SQL 进行优化和筛选,从而确保选择出最佳查询。XiYan-SQL 将这些步骤整合成一个高效的管道,超越了传统方法。

经过严格的基准测试,XiYan-SQL 在多个标准测试集中表现出色,例如在 Spider 测试集中实现了89.65% 的执行准确率,明显领先于以往的顶尖模型。

此外,在非关系型数据集的适应性方面,XiYan-SQL 也取得了优异的成绩,在 NL2GQL 测试集中达到了41.20% 的准确率。这些结果表明,XiYan-SQL 在多种场景下都具备卓越的灵活性和准确性。

github:https://github.com/XGenerationLab/XiYan-SQL

划重点:

🌟 创新架构表示:M-Schema 增强了对数据库层次结构的理解,提高了查询准确性。

📊 高级候选生成:XiYan-SQL 利用多种生成器产生多样化的 SQL 候选,提高了查询质量。

✅ 优越的适应性:通过基准测试,XiYan-SQL 展示了其在多种数据库中的卓越表现,设定了新的 NL2SQL 框架标准。