0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Text2SQL准确率暴涨22.6%!3大维度全拆

京东云 ? 来源:jf_75140285 ? 作者:jf_75140285 ? 2025-08-14 11:17 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

摘要

技术背景:Text2SQL 是将自然语言查询转为 SQL 的任务,经历了基于规则、神经网络、预训练语言模型、大语言模型四个阶段。当前面临提示优化、模型训练、推理时增强三大难题,研究基于 BIRD 数据集展开。

方法:提出 J-Schema 呈现数据库结构并合理提供示例值,结合思维链引导模型推理。采用 Iterative DPO 迭代训练,多轮迭代提升性能。用自洽性方法,通过硬 / 软投票从多个候选答案中选最优,软投票更优。

结果:解决 Text2SQL 性能提升的三大难题,将模型在 BIRD 数据集上的执行准确率从 56.6% 提升至 69.2%。

一、Text2SQL挑战

自然语言到 SQL(Text-to-SQL),也称为 NL2SQL,是将自然语言查询转换为可在关系数据库上执行的相应SQL查询的任务。具体来说,给定一个自然语言和一个关系数据库,Text-to-SQL 的目标是生成一个SQL,该SQL能够准确反映用户的意图,并在数据库上执行时返回适当的结果。通过将自然语言查询转换为结构化查询语言的能力,使复杂数据集更易于访问。它极大地促进了非专业用户和高级用户从大量数据存储中提取价值信息。

Text-to-SQL 解决方案的演进,经历了四个不同阶段:

1. 基于规则阶段:早期的Text2SQL方法主要依赖于基于规则的统计语言模型,主要聚焦于单表查询,理解能力仅限于词元阶段;

2. 基于神经网络阶段:神经网络模型(序列模型、图神经模型),提升了同义词处理和意图理解能力,使研究从单表扩展到多表场景。但其泛化能力仍受模型规模和训练数据量限制;

3. 预训练语言模型阶段:预训练语言模型(如BERT和T5)的引入显著提升了性能,极大增强了自然语言理解能力;

4. 大语言模型阶段:LLM凭借强大的涌现能力,成为当前Text2SQL领域的主流方案。研究重心转向优化提示工程和微调LLM。

?

wKgZPGidVU6AdOSMAAVZUPmSBvw938.png

??

?

Text2SQL性能的提升,面临着以下三个难题。

提示优化:怎么引导大模型给出明确的推理过程?数据库的Schema要怎么设计,才能让大模型更容易理解?

模型训练:如何通过训练方法提升模型的基础能力?

推理时增强:大模型生成答案时好时坏,有什么办法能让输出更加稳定可靠?

我们从这三个维度,分别给出了我们的答案。在本文中使用的数据集来自BIRD(BIg Bench for LaRge-scale Database Grounded Text-to-SQL Evaluation)。BIRD考察了大规模数据库内容对文本到 SQL 解析的影响。BIRD 包含超过12,751个独特的[问题-SQL]对,95 个大型数据库,还涵盖了超过 37 个专业领域,例如区块链、冰球、医疗保健和教育等。

wKgZO2idVU-AGvzSAAMZu4VNtr0261.png

??

二、Prompt & J-Schema

要让 LLM 理解数据库结构,需在提示中提供数据库模式。为此,我们提出一种名为 J-Schema 的新型数据库表达方式。J-Schema 以完全结构化的格式呈现数据、表与列之间的层次关系,并采用特殊标记进行识别:用 “#DB_ID” 标记数据库,“#Table” 表示表,“#Foreign keys” 表示外键。对于每个表,会给出表名;列信息则通过 “basic_info” 标识,其中包含列名、列描述、主键标识符,且为每个列提供示例值。

?

wKgZO2idVVCAH-A6AATonFFZKgY079.png

??

?

对于单一模型而言,在无法执行值检索的情况下,提供尽可能丰富的示例值有助于模型深化对列的理解。然而,示例值过多会受限于上下文长度。为平衡示例值数量与上下文长度之间的关系,我们为值建立了新的显示规则。

1.“DATE”、“TIME”、“DATETIME”、“TIMESTAMP”等表示时间的数据类型,只保留一个示例;

2.“REAL”浮点数据类型,保留两位小数一个示例;

3.针对“INTEGER”整型,保留一个示例;

4.针对“TEXT”文本类型,根据分词长度保留。小于10 token保留多个示例。

在这套规则背后,包含了我们对大量错误样本的分析。对于日期、浮点数、整数这些数据类型,大模型往往是根据问题中的日期、时间要求来取值,因此增加这些数据类型的示例对最终的结果影响不大。而针对文本数据类型,往往涉及到用户查询和数据库中值格式不统一问题。例如问题询问的关键字是大写的“North Bohemia”,而数据库中的值为小写的“north Bohemia”,若给出的示例中包含“north Bohemia”,则可以正确检索。实验验证J-Schema在多个模型上均有执行准确率较大提升

?

问题 正确答案 错误答案 原因分析
What is the city location of the high school level school with Lunch Provision 2 whose lowest grade is 9 and the highest grade is 12 in the county of Merced? SELECT T2.City FROM frpm AS T1 INNER JOIN schools AS T2 ON T1.CDSCode = T2.CDSCode WHERE T1.`NSLP Provision Status` = 'Lunch Provision 2' AND T2.County = 'Merced' AND T1.`Low Grade` = 9 AND T1.`High Grade` = 12 AND T2.EILCode = 'HS' SELECT T2.City FROM main.frpm AS T1 INNER JOIN main.schools AS T2 ON T1.CDSCode = T2.CDSCode WHERE T1."NSLP Provision Status" = 'Breakfast Provision 2' AND T1."Low Grade" = '9' AND T1."High Grade" = '12' AND T1."County Name" = 'Merced'; 要求检索的是“Lunch Provision 2”,因为示例值只给出了“Breakfast Provision 2”,导致检索错误。可以通过增加示例解决。
How many accounts who choose issuance after transaction are staying in East Bohemia region? SELECT COUNT(T2.account_id) FROM district AS T1 INNER JOIN account AS T2 ON T1.district_id = T2.district_id WHERE T1.A3 = 'east Bohemia' AND T2.frequency = 'POPLATEK PO OBRATU' SELECT COUNT(T1.account_id) FROM main.account AS T1 INNER JOIN main.district AS T2 ON T1.district_id = T2.district_id WHERE T1.frequency = 'POPLATEK PO OBRATU' AND T2.A3 = 'East Bohemia' 问题的格式“East Bohemia”与示例值“east Bohemia”的格式不统一,增加示例值,让模型学习到标准的值格式。

?

思维链(Chain of Thought, CoT)是一种提升大语言模型复杂推理能力的提示工程技术,核心是引导模型在输出最终答案前,先生成连贯的中间推理步骤,模拟人类逐步思考的过程。在我们的提示中首先给出完整的数据库信息,然后添加用户查询和外部知识,并给出引导大模型分步进行推理的提示,将推理过程输出在和标记内,将最终的SQL答案输出在和标记内。

?

三、训练方法

Iterative DPO

偏好优化已被证明,在将预训练语言模型与人类需求对齐时,相较于单独的监督微调能带来巨大的收益。DPO等离线方法因其简单性和效率而越来越受欢迎。最近的研究结果表明,迭代应用这种离线流程是有益的,其中更新后的模型被用来构建更具有信息量的新偏好关系,从而进一步改善结果。为了提高模型的基础能力,我们采用迭代式的DPO训练方法

具体而言,在每次迭代中,我们从训练提示中采样多个思维链推理步骤和最终答案,通过验证最终答案,构建正例池和负例池,在正、负例池根据距离挑选来构建偏好对,然后进行DPO训练。在训练新模型后,我们通过生成新偏好对并重新训练来迭代该过程。我们发现推理性能在多次迭代后逐渐提高,最终达到饱和。

?

wKgZPGidVVGALorkAAHylCOq-Vo363.png

??

?

每一轮迭代中Text2SQL准确率提升如下表所示。在第三轮迭代中执行准确率达到最高,并饱和,继续迭代执行准确率下降。并且随着迭代轮次的增加,思维链的长度也在不断增加。

模型 平均CoT token长度 执行准确率EX
Qwen2.5-Coder-32B 334 63.69%
iterative stage1 377 65.78%
iterative stage2 377 67.08%
iterative stage3 380 67.60%
iterative stage4 384 67.40%

?

超参数扫描

我们通过DPO方法进行训练, beta是DPO Loss中的权重系数,数值越小越忽略参考模型,通常取0.1~0.5。因为我们观察到DPO对齐算法对这一参数特别敏感。我们设置了beta从0.1、0.2 、...、0.6变化。所有实验均训练两个 epoch。每次运行时,其他超参数保持不变,包括随机种子。不同beta值对应的执行准确率如下图所示。当beta取0.5时,达到最高的执行准确率,后续的DPO迭代中我们都延续使用该beta值。

wKgZO2idVVGABFfRAAKFOP09A4M183.png

?

四、自洽性(Self-consistency)

自一致性的核心思想是:让模型对同一问题生成多个候选答案,然后通过投票机制选择最优解,而不是只依赖单次生成结果。在单训练模型赛道自洽性是被允许的,因为它反映了模型自身的性能。

在实现自洽性的过程中,我们使用了硬投票和软投票两种方式。硬投票直接根据模型生成结果的最终表现(如执行结果是否正确,二元判断)进行投票,不考虑结果之间的相似程度。软投票的决策依据是根据结果之间的相似程度(连续值)。如下图所示。

?

wKgZPGidVVKAM9drAANU_DWzOno264.png

??

?

在某些场景下,硬投票可能过于严格:

?语义等价但结果有细微差异:例如 SQL 查询结果的顺序不同,但逻辑上是等价的。

?近似正确的结果:例如模型生成了一个接近正确答案的解,但存在小误差。软投票通过相似度计算,可以将这些 “近似正确” 的结果纳入考虑,从而提高最终答案的可靠性。

不同的checkpoint模型使用自洽性均获得了1%以上的执行准确率提升,其中软投票方法要优于硬投票方法。

模型 无自洽性 硬投票 软投票
iterative stage3 67.60% 67.93% 68.97%
iterative stage4 67.40% 67.40% 68.45%

五、未来探索

1.数据构造

SynSQL-2.5M是百万规模的文本到 SQL 数据集,包含超过250万份多样且高质量的数据样本,涵盖来自不同领域的 16000 多个数据库。如何从250万份样本中筛选出对于BIRD有益的数据将会是未来的重点尝试方向。

2. 其他训练方法

?GRPO通过组内相对奖励来优化策略模型,在Text2SQL任务中,只需要定义奖励函数(例如执行正确奖励为1,执行错误奖励为0),而不需要预先构建偏好数据对。9N LLM的新镜像中提供了提交GRPO的训练任务可作尝试。在目前的尝试中,GRPO的训练时长主要受到reward验证的影响,采样n次时,每一个SQL样本都需要连接数据库执行验证来获取奖励。为了缩短训练时间,可以事先删除执行时长过长的样本。

?在BIRD训练集中,针对多轮DPO后的模型,进行多次采样时,仍然全错的样本,经过检查有很大部分是自身标签错误,使用LLM-as-Judge训练方法,使模型能够具备判断正负样本的能力,并且进一步删除标签错误的样本,保留正确样本。

3. 增加测试该优化方法的数据集和真实场景

用多个测试数据集有助于鲁棒性,能够更加全面的检验模型的性能。其中知名的数据集还有SPIDER、ScienceBenchmark、EHRSQL等。我们将在这些测试集验证我们的优化方案。并且我们会逐步推广到DataAgent的真实应用中。对于企业级的大型数据库来说,还会有哪些新的挑战?我们会持续关注,不断探索和改进!

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • SQL
    SQL
    +关注

    关注

    1

    文章

    785

    浏览量

    45477
  • 数据库
    +关注

    关注

    7

    文章

    3948

    浏览量

    66813
  • LLM
    LLM
    +关注

    关注

    1

    文章

    329

    浏览量

    931
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    负氧离子监测系统:从原理到应用的维度突破

    负氧离子监测系统:从原理到应用的维度突破 柏峰 【BF-FLZ】负氧离子作为衡量空气质量与生态环境的关键指标,其精准监测已成为环保、文旅、健康等领域的核心需求。负氧离子监测系统通过融合传感技术、物联网传输与数据处理算法,实现了对空气中 “隐形维生素” 的量化捕捉。
    的头像 发表于 08-15 14:25 ?67次阅读
    负氧离子监测系统:从原理到应用的<b class='flag-5'>全</b><b class='flag-5'>维度</b>突破

    触摸芯片全面选型指南:从功能到场景的维度考量

    触摸芯片全面选型指南:从功能到场景的维度考量
    的头像 发表于 07-17 17:54 ?134次阅读

    Gems维度传感器方案在液冷数据中心的应用

    中心案例中,Gems维度传感器方案使CDU系统的PUE优化至1.08,设备故障有效下降,验证了 "精密感知即能效革命" 的行业共识。其中,传感器作为 CDU 的 "神经末梢",它的技术演进正推动液冷系统向更细微的级别突破。
    的头像 发表于 07-14 15:51 ?362次阅读

    海思SD3403边缘计算AI数据训练概述

    模型,将模型转化为嵌入式AI模型,模型升级AI摄像机,进行AI识别应用。 AI训练模型是不断迭代优化过程,譬如,100个数据样本模型的识别准确率和10万个数据样本的识别准确率,不一样,AI模型理论上是客户采集训练样本越多,准确率
    发表于 04-28 11:11

    快速部署!米尔志T527开发板的OpenCV行人检测方案指南

    :使用测试数据集评估训练后的模型。计算模型的准确率、召回和F1分数等指标。 三、代码实现import cv2 import time def detect(image,scale
    发表于 04-11 18:14

    浪潮信息:元脑EPAI已接入DeepSeek,大幅提升DeepSeek企业应用准确率

    结合,深度开发模型潜力,快速实现本地化部署DeepSeek,构建准确率高、安全稳定的专属智能应用。实测数据显示,DeepSeek在元脑企智EPAI上开发的企业应用回答准确率达到95%。 ? 企业落地
    的头像 发表于 02-23 07:32 ?677次阅读
    浪潮信息:元脑EPAI已接入DeepSeek,大幅提升DeepSeek企业应用<b class='flag-5'>准确率</b>

    Meta非入侵式脑机技术:AI读取大脑信号打字准确率80%

    脑机技术主要通过AI模型与特定硬件的结合,将用户的大脑信号映射成具体的键盘字符。该技术的准确率高达约80%,能够准确判断用户在“敲击”的按键,从而实现文字输入。 值得注意的是,这项设备完全依靠外部脑机读取用户的大脑信号,无需进行植
    的头像 发表于 02-11 15:45 ?773次阅读

    Devart: dbForge Compare Bundle for SQL Server—比较SQL数据库最简单、最准确的方法

    ? dbForge Compare Bundle For SQL Server:包含两个工具,可帮助您节省用于手动数据库比较的 70% 的时间 dbForge数据比较 帮助检测和分析实时SQL数据库
    的头像 发表于 01-17 11:35 ?612次阅读

    请问AFE4400 SPO2精度和准确率如何?

    请问用TI 的AFE4400 EVM 测量SPO2 的值,有没有详细的说明其测量的准确率和精度,抗弱灌注等。谢谢! 比如如下类似: SpO2 测量范围 0~100% 分辨 1% 精
    发表于 01-15 07:02

    如何提升人脸门禁一体机的识别准确率

    人脸门禁一体机作为现代安全管理的重要设备,广泛应用于企业、学校、社区等多个场所。其高效便捷的特性让人们可以快速通过门禁,然而,识别准确率的高低直接影响到使用体验与安全性。为了提高人脸门禁一体机的识别
    的头像 发表于 12-10 15:05 ?1119次阅读
    如何提升人脸门禁一体机的识别<b class='flag-5'>准确率</b>?

    电导测定仪:功能全面,准确测量

    在当今的水质监测领域,电导测定仪作为一款高效、准确的测量设备,正发挥着越来越重要的作用。它不仅能够准确测量溶液的电导值,还具备自动温度补偿、一体式设计以及防水性能等特点,成为水质监
    的头像 发表于 11-28 13:41 ?1069次阅读

    SQL与NoSQL的区别

    在信息技术领域,数据库是存储和管理数据的核心组件。随着互联网的发展和大数据时代的到来,对数据库的需求也在不断变化。SQL和NoSQL作为两种主流的数据库管理系统,各自有着独特的优势和应用场
    的头像 发表于 11-19 10:15 ?715次阅读

    微机保护装置预警功能的准确率

    异常状态。 微机保护装置的预警功能准确率是衡量其性能的重要指标,它直接关系到装置能否及时准确地检测潜在的故障或异常情况,从而预防事故的发生。 准确率影响因素: 1.硬件性能:高精度的传感器和强大的数据处理单元直
    的头像 发表于 11-03 16:10 ?599次阅读

    ai人工智能回答准确率高吗

    人工智能(AI)回答的准确率是一个相对的概念,会受到多个因素的影响,因此不能一概而论地说其准确率高或低。以下是对AI回答准确率及其影响因素的分析: 一、AI回答准确率的现状 在某些特定
    的头像 发表于 10-17 16:30 ?7631次阅读

    NIUSB6009 采集准确率的问题?

    NIUSB6009 采集准确率的问题? 一、本人做一个中间继电器电性能实验的装置 1、PLC带动中间继电器吸合和释放,(吸合用时1.5秒,释放用时1.5秒)周而复始的运动。 2、中间继电器的触头负载
    发表于 09-23 15:59