BIRD训练集约六成有错,清洗后K2.6达人类级SQL

Human-Level Text-to-SQL via Reinforcement Learning on Verified Data, Without Pipeline Engineering

Yuxuan Zhu, Tengjun Jin, Yoojin Choi, Daniel Kang

cs.DB, cs.CL

2026-03-20

用2.5k条校正样本强化学习微调K2.6,校正集贪心解码91.4%至93.8%,十六路自洽跨过人类线92.96%。

这篇在解决什么

BIRD排行榜上的领先系统把schema linking、动态提示、迭代改写、候选选择一层层叠在LLM外面。流水线越来越重,和人类专家的差距仍超过10个百分点。伊利诺伊大学厄巴纳-香槟分校这组人的判断是:瓶颈不在再加一个模块,而在训练信号本身是脏的。

公开Text-to-SQL集里标注错误很密。前人审计给BIRD、Spider2的公开样本标出超过50%带错。拿这些gold SQL去做可验证奖励强化学习(RLVR,用执行对错当奖励),模型会把错误学进去。这篇从BIRD Train均匀抽2.5k条,多轮SQL专家校对,再针对两种奖励失效做塑形。单模型、不外挂schema linker和奖励模型选query,准确率推到人类代理线附近。

方法

先洗数据。BIRD-Platinum走五段:o3带SQL工具先标错(每条最多30次执行),专家在读LLM报告之前按清单独立改,第二名专家再核,分歧拉第三人,最后用「结果非空、且新SQL与原SQL结果不同」做自动门。原则是宁可漏错,也不引入新错。LLM审查精确率90.6%,召回只有24.5%;16.2%的第一轮修正过不了复核。最终61.1%的样本至少改过一处:gold SQL 52.1%,问题 26.2%,外部知识 18.2%,另有1.5%因问句在库里无解被丢掉。

洗完的gold更复杂:子查询从每条0.088升到0.26,CTE从0升到0.11。错误类型里最有传染性的一条是漏DISTINCT。对照实验里,用未校正数据训出的模型,在30道需要DISTINCT的题上只对了5道。

标准RLVR接着在两个地方失效。执行结果和gold一样,并不等于两条SQL语义等价。VeriEQL(有界输入下的SQL语义等价检查)指出,Kimi-K2.6训练过程里平均32.8%的正奖励是假阳性,区间28.8–38.4%,全程不随训练下降。结果奖励也不管模型有没有读BIRD的evidence;人工抽查33个失败里有8个(24.2%)走了evidence本该排除的读法。加上过程奖励后,同类失败降到23个里的1个(4.3%)。

ReViSQL-BIRD把奖励拆成两块:执行对了再过VeriEQL,被证伪就从1降到1-β(β=0.2),超时或不支持的算子(例如窗口函数)不当成错;再要求模型把每条外部知识翻成约束,交卷前自检,违规扣λ=0.1。训练用CISPO损失、LoRA rank 32、组大小16,一条轨迹最多5轮中间SQL,单轮3,072 token。数据按85:15切训练和验证。

结果

评测集是前人修好的Arcwise-Plat(498题),不是带噪声的官方Mini-Dev。Full版改问题、知识和gold SQL;SQL版只改gold,故意留脏问句。

设置Arcwise-Plat-SQLArcwise-Plat-Full
ReViSQL-BIRD-K2.6 greedy91.4%93.8%
同上,16路自洽93.0%94.2%
人类代理(BIRD Test)92.96%92.96%
OpenSearch(GPT-5.2)82.9%88.2%

Full上greedy的95%置信区间是[91.3, 95.6],SQL上16路自洽是[90.4, 94.9],人类线都落在区间内。OpenSearch每条0.056美元,K2.6 greedy便宜37%。4个候选已经超过各单模型基线用32个候选的成绩。

数据质量是主因。BIRD Train比Platinum多3.8倍样本,拿它训K2.6,比底座在SQL/Full上掉7.0和5.0个百分点;换成Platinum则升7.2和5.0。奖励塑形再加2.8和3.8,吃掉剩余错误的24.6%和38.0%。同一套ReViSQL(不做塑形)训Qwen3-235B-A22B,相对脏训练集在四个基准上高11.0–16.1%。Spider2-SQLite上greedy 37.04%、每条0.0077美元,比GenaSQL高2.2个百分点、成本约八分之一。Snowflake方言的Spider2-Snow上,128路自洽到55.58%。

为什么重要

这条路线把Text-to-SQL的投入从推理期堆模块,改到训练期洗标签、改奖励。对要落地的人,含义很具体:与其再接一个schema linker,不如先修gold SQL。脏标签上的RLVR会把漏DISTINCT这类错误固化进模型。单模型加最多5轮探库,已经够碰到人类代理线,候选选择器和多模型编排不是跨过那条线的必要条件。

Qwen3-235B那组说明,收益能搬到更难、另一套方言的Spider2,不是只在BIRD上刷分。

局限与存疑

「人类级」是原版BIRD Test上的92.96%代理,不是有人在Arcwise-Plat上重新测了一遍人类。数字来自498题的Mini-Dev变体,官方隐藏测试集没报。残留64个自洽失败里,69%被归为问句歧义,31%才是模型缺陷,其中六成是漏了schema里该有的过滤(比如NULL)。过程奖励查的是格式:轨迹里有没有把evidence写成约束块,不是语义上真用对了。VeriEQL对部分算子会超时或直接不支持,假阳性只能降权不能清零。实验底座是Kimi-K2.6和Qwen3-235B,小模型能否复现没有证据。生成过程仍允许最多5轮中间SQL,「去掉流水线」指的是不再外挂schema linking和选query的奖励模型,不是单次前向。

术语

原文与代码

社区讨论

相关论文

全部论文解读