微信扫码
添加专属顾问
METASQL 采用生成-排序的统一框架,可与现有 NLIDBs 结合提升翻译准确性。其核心在于引入查询元数据和学习排序算法。在查询元数据方面,设计了包括操作符标签、硬度值和正确性指示符等类型,通过多标签分类器将自然语言查询语义映射到这些元数据,以此作为生成 SQL 查询的约束条件。在生成阶段,对于 Seq2seq 模型利用元数据增强训练,并在推理时基于分类器获取的元数据组合生成多样候选 SQL 查询,而 LLM 则借助自身能力结合元数据引导生成。在排序阶段,采用两阶段排序管道,第一阶段用双塔架构粗筛,第二阶段利用多粒度监督信号精筛,综合考量 NL 和 SQL 的语义相似性确定最佳查询结果。
01
—
在当今数字化时代,数据库的应用极为广泛,但传统的数据库查询语言(如 SQL)对于非技术人员来说学习成本较高。自然语言接口到数据库(NLIDB)技术的出现,旨在让普通用户也能轻松访问数据库。过去几十年间,研究人员探索了多种方法,其中利用神经序列到序列(Seq2seq)模型或大规模语言模型(LLMs)的方法较为常见,它们通常采用自回归解码方式逐一生成 SQL 查询。
尽管这些方法在翻译准确性上取得了一定进展,如在 NLIDB 基准测试中准确率超过 70%,但仍存在明显缺陷。以常用的 SPIDER 基准测试为例,当前最先进的模型在语法等价翻译的测试集上准确率仅为 74.0%。问题主要体现在两个方面:一是输出多样性不足,自回归解码在生成候选序列时往往缺乏变化,容易产生重复结果。例如,LGESQL 模型使用束搜索时,其生成的 top - K 候选结果相似度较高,可能导致最终的错误翻译。二是缺乏全局上下文感知能力,由于是逐个生成输出标记,仅考虑部分上下文,容易陷入局部最优,无法找到正确的翻译。
为了改进现有方法,一些研究进行了尝试。如多任务生成框架虽在对话翻译场景取得一定成果,但仍依赖标准自回归解码获取最终结果,并非最优。还有研究提出新的生成方法,但需要基于一组代表性样本查询假设。在此背景下,METASQL 框架应运而生,它旨在增强 NL2SQL 翻译中的自回归解码过程,通过引入控制信号来提升 SQL 生成的质量。
02
—
这是一种模型逐个生成输出序列元素的解码策略,每个元素的生成依赖于之前生成的元素。在自回归模型中,解码涉及学习一个评分模型 ,其基于从左到右的分解方式,目标是在给定输入序列 A 时找到高分输出序列 P。但传统的单向解码算法(如贪婪搜索和束搜索)在生成高分输出序列方面效果不佳,因为解码历史中的错误可能会对后续结果产生负面影响。
主要分为两类,Seq2seq 模型和基于 LLM 的模型。Seq2seq 模型遵循特定学习框架,先将自然语言查询和数据库模式联合编码,再通过自回归解码器生成 SQL 程序的分布。其解码器的学习目标可以是原始 SQL 标记、SQL 语言的中间表示或 SQL 抽象语法树等。LLM 作为 NL2SQL 模型时,在给定自然语言查询和提示的情况下,可以自动回归生成相应 SQL 查询,提示技术包括零样本、少样本提示或上下文学习等,提示内容可以是文本指令、翻译示例或推理链等。
如图 2 的第一步,将自然语言查询的语义解析重新定义为分类问题,利用多标签分类器将自然语言语义映射到一组相关的查询元数据。这些元数据是与底层数据库相关的类别标签,能够捕捉自然语言查询的上下文信息。例如,对于“查询不说英语的国家代码”这样的查询,可能会选择“project”和“except”等操作符标签以及表示查询难度的“400”作为元数据。
如图 2 的第二部分,对于 Seq2seq 模型,通过在训练数据中添加元数据作为前缀语言提示来增强模型。训练数据由自然语言查询、对应的 SQL 查询和相关元数据组成,收集方式基于弱监督原则。例如,对于操作符标签类型的元数据,直接从 SQL 查询中获取;硬度值类型的元数据根据 SPIDER 基准的定义计算;正确性指示符类型的元数据根据数据来源确定。在推理阶段,利用多标签分类器获取查询元数据,然后基于这些元数据组合操纵翻译模型生成一组候选 SQL 查询。例如,对于上述查询示例,可能会基于“where”标签和“200”的评级值生成类似下面的候选查询。
SELECT countrycode FROM CountryLanguage WHERE language!='English'
如图 2 的第三部分,采用两阶段排序流程确定最佳翻译结果。第一阶段使用双塔架构构建粗粒度排序模型,通过两个 BERT 类似的双向文本编码器和余弦相似度函数,快速从大量候选 SQL 查询中筛选出较小的潜在候选集。其训练数据由自然语言查询、SQL 查询和语义相似度分数组成,通过比较 SQL 查询与“黄金”SQL 查询的条款来计算分数。第二阶段使用多粒度监督信号构建细粒度排序模型,对第一阶段的结果进一步排序,以找到最匹配的 SQL 查询。该模型包括上下两个编码器用于捕获多粒度语义,通过多种损失函数(全局、局部和短语损失)计算匹配分数,并在推理时综合考虑各分数对候选 SQL 查询进行排序。
SELECT countrycode FROM CountryLanguageEXCEPT SELECT countrycode FROMCountryLanguage WHERE language='English'
03
—
METASQL 设计了三种类型的元数据,包括操作符标签、硬度值和正确性指示符。操作符标签对应于单个逻辑运算符,指示 SQL 组件用于翻译。例如,对于特定查询,“project”标签表示选择操作,“except”标签表示排除操作。硬度值根据 SQL 组件的数量和类型量化查询的潜在复杂性,通过为每个 SQL 组件分配难度分数并求和得到。正确性指示符用于区分正确和错误的查询,在推理时通常为真,但在训练时可变化以帮助模型学习。
将自然语言到元数据的映射视为分类问题,利用多标签分类模型实现。该模型与底层 NL2SQL 翻译模型共享编码器,通过将解码器替换为分类层来输出标量值。在推理阶段,设置分类阈值 选择概率较高的元数据标签,从而将自然语言查询的语义分解为对应的元数据,有助于发现更多语义等价的 SQL 查询。
在模型训练中,将查询元数据作为前缀添加到自然语言查询中,遵循传统的 seq2seq 范式。收集训练数据时,确保每个样本包含自然语言查询、对应的 SQL 查询和相关元数据。同时,为了让模型更好地区分正确和错误的目标序列,还收集了 SPIDER 基准训练集中现有翻译模型的错误翻译作为负样本,并为其分配“incorrect”的正确性指示符作为元数据。模型输入时,将元数据扁平化为序列并与自然语言查询连接,例如“correct | rating : 400 | tags : project, except”这样的形式。
在推理阶段,由于查询元数据未知,首先使用多标签分类模型获取初始元数据标签。然后,考虑训练数据中的组合情况,选择性地组合这些标签,以基于元数据条件生成一组候选 SQL 查询。这类似于 LLM 中的提示方法,通过不同的元数据条件引导模型生成多样化的翻译结果。
采用双塔架构,包括 NL 查询编码器和 SQL 编码器以及余弦相似度函数。通过在大量自然语言查询和 SQL 查询对上进行训练,学习如何快速筛选出与给定自然语言查询语义相关的候选 SQL 查询。训练数据中的语义相似度分数根据 SQL 查询与“黄金”SQL 查询的匹配程度计算,若完全匹配则为 1,否则根据条款差异进行扣分。
鉴于第一阶段模型在精确排序上的局限性,该阶段旨在利用多粒度监督信号更准确地找到最佳 SQL 查询。模型架构包括粗粒度和细粒度编码器,通过引入额外的短语级语义信息,并采用列表式方法进行训练。在训练过程中,使用多种损失函数(全局、局部和短语损失)来综合衡量 NL-SQL 对的匹配程度,以提高排序的准确性。例如,全局损失衡量句子级别的跨模态匹配相似性,局部损失增强细粒度的跨模态匹配,短语三元组损失则用于最大化正对内的细粒度相似性并最小化负对内的相似性。在推理时,综合考虑各部分得分对候选 SQL 查询进行最终排序。
04
—
在具有挑战性的 NLIDB 基准测试 SPIDER 和 SCIENCEBENCHMARK 上进行实验。SPIDER 是大规模跨域基准,包含大量自然语言查询和 SQL 查询以及多个数据库,其数据根据 SQL 难度分为不同类型。由于 SPIDER 测试集难以获取,实验主要关注验证集,并通过提交给作者获取测试集结果。SCIENCEBENCHMARK 则是针对三个真实世界科学数据库的复杂基准,包含领域专家制作的高质量 NL-SQL 对以及合成数据。
多标签分类模型基于 LGESQL 模型替换顶层为分类层实现。第一阶段排序模型的嵌入层使用预训练的 STSB-MPNET- BASE-v2 模型初始化,采用 Adam 优化器进行训练。第二阶段排序模型基于 ROBERTA-LARGE,同样使用 Adam 优化器,并根据学习停滞情况调整学习率,同时配置相关参数以生成合适数量的 SQL 查询用于训练。
多标签分类模型的分类阈值 设置为 0,以选择所有可能的元数据标签。第一阶段排序模型选择排名前十的候选 SQL 查询子集传递给第二阶段排序模型进行最终推理。
采用翻译准确率(EM)、执行匹配(EX)、翻译精度(Precision@K)和平均倒数排名(MRR)等指标评估模型性能。翻译准确率判断生成的 top-1 SQL 查询是否与“黄金”SQL 匹配;执行准确率通过在数据库上执行 SQL 查询并与真实结果比较;翻译精度评估前 K 个翻译结果中包含“黄金”SQL 查询的自然语言查询数量占比;MRR 则衡量模型将“黄金”SQL 查询排在前列的能力。
在两个基准测试上,METASQL 均能有效提升所有模型的性能。对于 Seq2seq 模型,在 SCIENCEBENCHMARK 上的提升更为显著。特别是 LGESQL 模型,在应用 METASQL 后,在 SCIENCEBENCHMARK 的 SDSS 数据库上提升了 8.0%,在 SPIDER 验证集和测试集上分别达到 77.4%和 72.3%的翻译准确率,且执行准确率也有大幅提高。对于基于 LLM 的模型(如 CHATGPT 和 GPT-4),METASQL 同样显著提升了其性能,这得益于 LLM 强大的生成能力以及 METASQL 对其生成的引导作用。
按 SQL 难度级别分析,随着难度增加,所有模型性能下降,但 METASQL 能在“Medium”和“Hard”查询上显著提升模型性能,不过在“Easy”和“Extra Hard”查询上可能出现不稳定情况。对于“Easy”查询,可能是由于 METASQL 对语义等价查询的排序导致评估失败;对于“Extra Hard”查询,可能是复杂查询中多粒度信号不准确导致排名错误。按 SQL 语句类型分析,METASQL 对涉及 ORDER BY 和 GROUP BY 子句的查询翻译提升明显,这得益于排序过程;但对于嵌套类型的复杂查询,Seq2seq 模型结合 METASQL 可能会出现性能下降。
METASQL 在排序方面表现出色,例如 RESDSQLLARGE + METASQL 达到 78.8%的翻译 MRR,LGESQL + METASQL 等在 top-5 检索结果中也有较高的翻译精度。这表明 METASQL 能够在多数情况下正确选择目标 SQL 查询,优于传统的自回归解码技术。
对 METASQL 各阶段性能分析发现,三个阶段(元数据选择、元数据条件生成、排序)整体性能较为稳定。其中,元数据条件生成阶段相对波动较大,这与底层翻译模型的局限性有关。但总体而言,METASQL 有效优化了各阶段性能,促进了整体性能的提升。
通过降低多标签分类器的分类阈值 引入更多“噪声”元数据,发现 METASQL 的性能对元数据质量有很强的依赖性。当
低于 - 10 时,性能显著下降,因为过多的“噪声”元数据干扰了模型的判断。
实验表明 METASQL 对正确性指示符的变化较为敏感,提供错误的指示符会导致性能下降,且比不提供指示符的情况更差,说明正确的元数据对于模型性能至关重要。
METASQL 的性能对硬度值变化相对稳定,这是因为多标签分类器获取的硬度值通常与真实值接近,且模型会综合考虑多种元数据。同时,设置较容易的硬度值往往比困难的硬度值能带来更好的结果。
METASQL 对操作符标签类型的元数据较为敏感,使用正确的操作符标签能显著提高性能,因为它为模型提供了有效的生成约束,减少了搜索空间。
通过在 SPIDER 验证集上对 LGESQL 进行消融实验,发现去除多标签分类器或第二阶段排序模型会导致性能大幅下降。这表明多标签分类器在获取相关元数据方面以及第二阶段排序模型在精确排序方面都起着关键作用,再次强调了 METASQL 各组件的重要性。
对 METASQL 翻译错误进行分析,主要存在以下三类问题:一是自回归解码问题,即使有准确的元数据,底层翻译模型在处理复杂查询时仍可能产生错误翻译,如在嵌套查询中生成错误的连接路径。二是元数据不匹配问题,多标签分类器提取的不准确元数据会导致翻译错误,因此需要更可靠的元数据选择方法。三是排序问题,在第二阶段排序中,即使“黄金”查询在候选集中,也可能无法排在首位,尤其是涉及连接操作的查询,这需要在排序模型训练中更好地捕获数据库的特定语义。
# 自然语言查询:每个没有把猫作为宠物的学生是什么专业?# 以及他们的年龄是多少?# 黄金 SQL 查询:SELECT major, age FROM studentWHERE stuid NOT IN (SELECT T1.stuid FROM student AS T1JOIN has pet AS T2 JOIN pets AS T3WHERE T3.pettype = 'cat')# 不正确的生成 SQL 查询:SELECT major, age FROM studentWHERE stuid NOT IN (SELECT has pet.stuid FROM has pet JOIN petsWHERE pets.pettype = 'cat')
# 自然语言查询:有多少个国家有超过两个制造商?# Oracle 相关的元数据 200, group, join# 预测元数据 350, group, subquery# 黄金 SQL 查询:SELECT count(*) FROMcountries AS T1 JOIN car makers AS T2GROUP BY T1.countryid HAVING count(*)>2# 不正确的生成 SQL 查询:SELECT count(*) FROM (SELECT country FROM car makersGROUP BY country HAVING count(*)>2)
# 自然语言查询:哪些汽车型号是在 1980 年之后生产的?# 黄金 SQL 查询:SELECT T1.model FROM model list AS T1JOIN car names AS T JOIN car data AS T3WHERE T3.year > 1980# 排名最高的 SQL 查询语句Top-ranked SQL Query:SELECT T2.model FROM cars data AS T1JOIN car names AS T2 WHERE T1.year > 1980
05
—
在 NLIDB 领域,早期研究主要采用基于规则的方法,通过手工制作语法将自然语言查询映射到 SQL 查询,但这种方法效率较低且灵活性差。随着深度学习的发展,Seq2seq 模型成为主流方法,但自回归解码的本质使其在处理复杂查询时面临挑战。近年来,LLMs 在 NL2SQL 任务中得到应用,但仍需要进一步优化。与这些现有方法不同,METASQL 引入了统一框架,结合了现有方法的优势并进一步提升了翻译性能。
06
—
本文提出的 METASQL 框架为 NL2SQL 问题提供了一种有效的解决方案,通过引入查询元数据和学习排序算法,显著提升了现有翻译模型的性能。实验结果充分证明了其有效性。然而,仍有一些方面需要进一步研究。例如,探索如何突破现有自回归解码范式的限制,开发更精确的多粒度语义标注方法,以及整合更多类型的元数据等。这些研究方向有望进一步提升 METASQL 的性能,推动 NL2SQL 技术的发展,使其在数据库自然语言接口领域发挥更大的作用,为实现更智能、便捷的数据库交互提供有力支持。
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2026-06-03
2026-05-13
2026-05-26
2026-04-14
2026-04-20
2026-04-16
2026-05-21
2026-06-10
2026-04-27
2026-06-02
2026-07-08
2026-07-07
2026-07-07
2026-07-02
2026-06-29
2026-06-18
2026-06-11
2026-06-05
欢迎您使用【53AI 官方网站】(以下简称“本网站”或“我们”)。本《会员服务协议》(以下简称“本协议”)是您(以下简称“会员”或“用户”)与【深圳市博思协创网络科技有限公司】之间关于注册、登录及使用本网站会员服务所订立的法律协议。
在您注册或登录前,请务必审慎阅读、充分理解各条款内容,特别是免除或限制责任的条款、知识产权条款、争议解决条款等。此类条款将以加粗形式提示您注意。 当您通过微信公众号授权、手机验证码验证或其他方式成功登录本网站时,即视为您已完全理解并同意接受本协议的全部内容。
一、 定义
本网站:指由【深圳市博思协创网络科技有限公司】运营的,域名为【53ai.com】的网站及相关移动端页面。
会员服务:指本网站向注册会员提供的知识库文章查阅、内容检索及其他相关增值服务。
知识库内容:指本网站发布的包括但不限于文字、图表、数据、研究报告、行业分析等数字化内容资源。
二、 账号注册与登录
登录方式:本网站支持以下登录方式,您可根据实际情况选择:
微信公众号授权登录:您同意将您的微信OpenID信息授权给本网站,用于创建或关联会员账号。
手机验证码登录:您需提供真实有效的手机号码,并通过短信验证码完成身份验证与登录/注册。
账号安全:您的账号仅限您本人使用,禁止赠与、借用、租用、转让或售卖。因您保管不善导致的账号被盗、密码泄露等损失,由您自行承担。
实名认证:根据相关法律法规要求,我们可能要求您在特定功能下完成实名认证。如您拒绝提供,可能无法使用部分或全部服务。
未成年人保护:若您未满18周岁,请在法定监护人的陪同下阅读本协议,并在征得监护人同意后使用本服务。
三、 服务内容与规范
知识库查阅权限:会员登录后,有权按照其会员等级对应的权限范围,在线浏览、检索本网站知识库中的相关文章及内容。
服务变更:我们有权根据业务发展需要,调整、变更或终止部分服务内容,并将以网站公告、公众号消息等方式提前通知。
禁止行为:您在使用服务时不得实施以下行为:
利用技术手段批量爬取、下载、转存知识库内容;
将知识库内容用于商业目的或未经授权地向第三方传播;
干扰本网站正常运行或侵犯其他用户合法权益;
发布违法违规信息或从事违反公序良俗的活动。
四、 知识产权声明
权利归属:本网站知识库中的排版设计、软件代码等内容的知识产权均归【公司全称】或原权利人所有,受《中华人民共和国著作权法》等法律保护。
有限许可:本网站授予会员一项非独占、不可转让、不可转授权的普通许可,仅限于个人学习、研究之目的在线查阅知识库内容。
侵权追责:未经书面许可,任何单位或个人不得以任何形式复制、转载、摘编、镜像、汇编或以其他方式使用上述内容。一经发现,我们保留追究其法律责任的权利。
五、 个人信息保护
我们重视对您个人信息的保护。关于我们如何收集、使用、存储和保护您的个人信息,请单独阅读 《隐私政策》。
您通过微信公众号授权或手机号验证所提供的信息,我们将严格按照《个人信息保护法》的规定处理,仅用于身份识别、服务提供及安全验证等必要用途。
您可以随时通过网站设置或联系客服行使查阅、更正、删除个人信息及撤回授权同意的权利。
六、 免责声明
内容准确性:知识库内容仅供参考,不构成专业建议。我们不对其完整性、准确性、时效性作任何明示或暗示的保证,您应自行判断并承担使用风险。
不可抗力:因自然灾害、政策法规变化、网络故障、第三方平台接口异常(如微信接口维护、运营商短信通道故障)等不可抗力导致的服务中断或延迟,我们不承担违约责任。
第三方链接:本网站可能包含指向第三方网站的链接,该等网站的内容和服务不受我们控制,请您自行甄别风险。
七、 违约责任
如您违反本协议约定,我们有权视情节采取警告、限制功能、暂停服务、注销账号等措施,并保留要求赔偿损失的权利。
如因您的违约行为导致我们遭受行政处罚、第三方索赔或商誉损失,您应承担全部赔偿责任(包括但不限于罚款、赔偿金、律师费、公证费等)。
八、 法律适用与争议解决
本协议的订立、执行和解释均适用中华人民共和国大陆地区法律。
因本协议产生的或与本协议有关的任何争议,双方应友好协商解决;协商不成的,任何一方均可向【公司所在地】有管辖权的人民法院提起诉讼。
九、 其他
本协议构成双方就本服务达成的完整协议,取代此前任何口头或书面约定。
本协议任一条款被认定为无效或不可执行的,不影响其他条款的效力。
我们对本协议享有最终解释权,并在法律允许的范围内保留随时修改的权利。修改后的协议一经公布即生效,继续使用服务即视为同意修订内容。