XiYan-SQL:一种多生成器集成的Text-to-SQL框架

简介: XiYan-SQL 是一种创新的多生成器集成Text-to-SQL框架,通过M-Schema增强模型对数据库结构的理解,结合ICL与SFT方法提升SQL生成质量和多样性,经实验证明在多个数据集上表现优异,特别是在Spider和SQL-Eval上取得了领先成绩。

😎一种多生成器集成的Text-to-SQL框架


为了应对大型语言模型在Text-to-SQL任务中的挑战,我们引入了XiYan-SQL,这是一个全新的框架,采用多生成器集成的策略来提高候选SQL的质量。为此,我们提出了M-Schema,一种半结构化的数据库schema表示方法,旨在增强模型对于数据库结构的理解能力


然后,为了提高生成的候选SQL查询的质量和多样性,XiYan-SQL结合了ICL方法的巨大潜力和SFT方法的高可控性。一方面,我们提出了一系列训练策略,以微调模型生成高质量且具有不同偏好的候选。

另一方面,我们采用ICL的方法来提示LLM,并提出了一种基于命名实体识别的方法来选择ICL的样例,从而防止过度强调实体。


Refiner通过纠正逻辑或语法错误来进一步优化每个候选。为了应对识别最佳候选的挑战,我们微调了一个选择模型,用来区分候选SQL查询之间的细微差别。在多个方言的数据集上的实验结果表明,XiYan-SQL在不同场景中均具有鲁棒性。


总体而言,我们提出的XiYan-SQL在Spider测试集上达到了89.65%的执行准确率,在SQL-Eval上达到了69.86%,在NL2GQL上达到了41.20%,在Bird development基准上达到了72.23%的分数。该结果是1st on spider,1st on SQL_EVAL,3rd on bird dev。该框架不仅提高了生成SQL查询的质量和多样性,端到端的效果也优于以前的方法。



关键词:LLM,Text-to-SQL,NL2SQL


阿里云百炼官网网址

阿里云百炼控制台

阿里云百炼/析言官网网址

阿里云百炼/析言控制台

相关实践学习
如何快速体验知识检索增强应用
在应用广场中您可以挑选智能体API应用、官方预置完整工程链路的知识检索增强(RAG)应用、流程编排应用,以及官方最佳实践的写作应用妙笔等,通过应用快速将通义千问系列等大语言模型能力接入到业务解决方案中。
相关文章
|
6月前
|
SQL Java 编译器
SQL 语言:嵌入式 SQL 和动态 SQL
SQL 语言:嵌入式 SQL 和动态 SQL
85 4
|
5月前
|
SQL 人工智能 关系型数据库
SQL Chat:从SQL到SPEAKL的数据库操作新纪元​
SQL Chat:从SQL到SPEAKL的数据库操作新纪元​
96 0
|
7月前
|
SQL 自然语言处理 测试技术
NL2SQL进阶系列(4):ConvAI、DIN-SQL等16个业界开源应用实践详解[Text2SQL]
NL2SQL进阶系列(4):ConvAI、DIN-SQL等16个业界开源应用实践详解[Text2SQL]
NL2SQL进阶系列(4):ConvAI、DIN-SQL等16个业界开源应用实践详解[Text2SQL]
|
7月前
|
SQL 自然语言处理 关系型数据库
NL2SQL进阶系列(3):Data-Copilot、Chat2DB、Vanna Text2SQL优化框架开源应用实践详解[Text2SQL]
NL2SQL进阶系列(3):Data-Copilot、Chat2DB、Vanna Text2SQL优化框架开源应用实践详解[Text2SQL]
NL2SQL进阶系列(3):Data-Copilot、Chat2DB、Vanna Text2SQL优化框架开源应用实践详解[Text2SQL]
|
7月前
|
SQL 人工智能 自然语言处理
NL2SQL进阶系列(2):DAIL-SQL、DB-GPT开源应用实践详解Text2SQL
NL2SQL进阶系列(2):DAIL-SQL、DB-GPT开源应用实践详解Text2SQL
NL2SQL进阶系列(2):DAIL-SQL、DB-GPT开源应用实践详解Text2SQL
|
7月前
|
SQL 人工智能 编解码
NL2SQL实践系列(1):深入解析Prompt工程在text2sql中的应用技巧
NL2SQL实践系列(1):深入解析Prompt工程在text2sql中的应用技巧
NL2SQL实践系列(1):深入解析Prompt工程在text2sql中的应用技巧
|
7月前
|
SQL 存储 关系型数据库
SQL(Structured Query Language)简介和常见 SQL 命令示例
SQL(Structured Query Language)是一种用于访问和操作关系型数据库的标准语言。它是一个功能强大的语言,用于执行各种数据库操作,包括检索数据、插入新记录、更新记录、删除记录、创建数据库、创建新表、设置权限以及执行存储过程和视图等。以下是 SQL 的一些重要方面:
82 0
|
SQL Oracle Java
使用 SQL NOWAIT 的最佳方式
由于所有的主要数据库都支持此功能,Hibernate提供了一个NOWAIT选项,可以在不同数据库上调用这个功能,而且不影响代码的数据库可移植性。
354 0
|
SQL 分布式计算 Oracle
【SQL开发实战技巧】系列(一):关于SQL不得不说的那些事
复合索引的字段顺序,会影响查询速度,创建复合索引做SQL优化的一般原则是,如果两个字段在WHERE子句中使用频率相同,则将最具选择性的字段排在最前面,以下是分析结果: 原SQL进行了两次全表扫描,优化后的SQL减少一次全表扫描,提高了查询效率。cusomer和customer_detail两个表的cust_id字段经常出现在where子句中,
【SQL开发实战技巧】系列(一):关于SQL不得不说的那些事
|
SQL 关系型数据库 MySQL
七种 JOIN 的 SQL 编写|学习笔记
快速学习七种 JOIN 的 SQL 编写
151 0
七种 JOIN 的 SQL 编写|学习笔记