这项由香港科技大学(广州)与新加坡国立大学共同主导的研究,发表于2026年4月,论文预印本编号为arXiv:2604.12988,研究方向隶属于计算机数据库领域(cs.DB)。
你有没有遇到过这样的情况:你问一个人"帮我从账本里找出上个月花了多少钱",他转身给你写下的算式和你心里想的不完全一样,但算出来的答案却是对的。这时候,你会说他答错了吗?大多数人会说,答对了,毕竟你要的就是那个数字。
然而,现在主流的AI评估体系,却偏偏会说他"错了"。
这正是这篇论文试图解决的核心问题。研究的主角,是一种叫做"NL2SQL"的技术——全名是Natural Language to SQL,简单说就是"把人类说的话翻译成数据库能读懂的查询语言"。当你对一个智能系统说"帮我找出销售额最高的三个月",背后的AI需要把这句话翻译成一串结构化的数据库指令(SQL语句),才能真正去数据库里"取货"。
这项技术在大量数据分析、企业报表、智能客服等场景里极为常见。而如何判断AI翻译得好不好,一直是个让研究者头疼的难题。研究团队给出的答案叫做**ROSE**,全名是ReasOning ScorE(推理评分),并配套构建了一个由专家共识标注的验证数据集ROSE-VEC。
一、旧裁判犯了什么错
先从"老裁判"说起。现有的主流评估标准叫做执行准确率(Execution Accuracy,简称EX)。它的工作原理非常直白:把AI写的SQL和人工标注的"标准答案SQL"各自跑一遍,如果两边跑出来的数据结果一模一样,就算对;不一样,就算错。
这听起来很合理,但研究团队通过大量实测发现,这位"老裁判"在至少三种常见情况下会判错。
第一种情况,叫做"写法不同,答案相同"。数据库查询就像做数学题,同一道题可以有多种解法,比如先排序再取第一名,和直接取最大值,最后都能得到同一个冠军。但EX只认识"标准答案写法",一旦AI用了另一种合法但不同的写法,它就判"错"。研究发现,这类误判带来的假阴性比例高达28.9%,也就是说将近三成正确答案被冤枉成错误答案。
第二种情况,叫做"问题本身有歧义"。比如"上个季度表现最好的产品是哪个",有人理解为销量最多,有人理解为收入最高——两种理解都合理,写出来的SQL自然不同。EX只认识那一份标注好的标准答案,其他合理解读一律判错。一项专门研究歧义问题的基准测试Ambrosia发现,超过一半的"失败案例"其实都源于这类歧义。
第三种情况更麻烦,叫做"标准答案本身就写错了"。大规模数据集里,标注员也会犯错。研究者审查了BIRD Dev这个知名数据集,发现标准答案SQL的错误率高达6.91%,而在他们自己抽样核查时,竟有约25%的样本被至少一位专家标记为有问题。用一个错误的标准答案去评判AI,等于用一把弯曲的尺子量东西,量出来的数字能信吗?
由此可见,EX这位"老裁判"的问题,不是偶发性的小失误,而是系统性的结构缺陷——它太执着于"和标准答案长得像",而忘记了评判的真正目标:AI写的SQL,到底有没有回答用户的问题?
二、新裁判是怎么工作的
ROSE的核心设计哲学,可以用"先独立判断,再接受质疑"来理解。
整个评判流程分成两个角色,一个叫"证明者"(SQL Prover),另一个叫"反驳者"(Adversarial Refuter),两者串联构成一个审查流水线。
证明者的工作原则是完全独立。它拿到一条AI写的SQL,同时拿到用户的原始问题和数据库的结构信息,然后在完全不看标准答案的情况下,自行判断这条SQL有没有正确回答用户的意图。它就像一位考官,只看学生的答题纸和原题,不参考"标准解析",纯粹从逻辑和语义上评判答案合不合理。
然而,仅靠证明者还不够,因为它有时会"过于宽松"。假设AI碰巧写了一条逻辑有缺陷的SQL,但恰好在这个数据库状态下跑出了正确结果,证明者可能会被结果迷惑,误判为正确。这就是所谓的"巧合正确"——好比一个学生答错了解题过程,却蒙对了最终答案,如果只看答案就会错误地表扬他。
反驳者就是专门对付这种情况的。它在拿到标准答案SQL之后,并不是简单地拿来"比对",而是把它当作一件"有力但不可盲信的证据",专门用来挑战证明者的判断。具体来说,在两边SQL执行结果相同的情况下,反驳者会深入比对两条SQL的逻辑,看看AI的那条是否只是碰巧答对,还是真的理解了问题。而在两边结果不同、但证明者已经判AI为"正确"的情况下,反驳者会进一步分析:到底是AI的逻辑更贴合用户意图,还是标准答案更准确,抑或这道题本身就有歧义,两种写法都合理?
反驳者还有一个额外的能力:打"诊断标签"。当它判断某个案例的问题来自问题歧义时,它会打上"AmbQ"(Ambiguous Question,问题歧义)的标签;当它发现标准答案SQL本身存在错误时,会打上"GoldX"(Gold Error,标准答案错误)的标签。这让ROSE不仅仅是一个打分工具,同时也是一个数据集质量审查工具。
在整个流水线中,只有通过了语法检查、经证明者独立确认、并最终抵御了反驳者挑战的SQL,才能获得满分1分;任何一关没过,都是0分。
三、用专家打分来检验裁判是否可靠
光是设计出一套新评判体系还不够,还得证明它比旧体系更靠谱。为此,研究团队专门构建了一个验证数据集,叫做ROSE-VEC。
这个数据集包含585个"问题-SQL预测"对,来自多个主流NL2SQL系统在Spider和BIRD两大权威数据集上的真实输出。每一个案例都由五位专家中的两位独立打分,只保留两人意见完全一致的案例。这五位专家都是计算机科学专业的研究生,在参与标注前已各自积累了至少两个NL2SQL相关项目的研究经验,并经过专门的标注培训。
有了这个"专家共识"数据集,研究团队就能客观衡量:各种评估指标的判断,到底有多接近专家的判断。衡量方式采用了多个统计指标,其中最核心的是Cohen's Kappa(κ),这是一个专门用来衡量"超出随机猜测之上的一致性"的指标,越高代表越可靠。
结果非常清晰。EX的κ值只有25.56%,意味着它和专家判断的一致性勉强高于瞎猜的水平。同类的LLM裁判工具FLEX(一种同样用大语言模型打分的评估方法)在最强的OpenAI o3模型支撑下达到了56.70%。而ROSE在同样的模型支撑下,达到了80.43%,比FLEX高出将近24个百分点。
准确率(ACC)同样说明问题:EX只有55.90%,FLEX达到78.97%,ROSE则达到了91.79%。
研究团队还测试了"如果去掉反驳者,只用证明者"会怎样,结果是κ值降到60.74%——依然超过FLEX,但明显低于完整版ROSE。这说明反驳者这个"挑剔的质疑者"确实发挥了不可替代的作用。
除了使用OpenAI o3,研究团队还测试了Google Gemini-2.5 Pro和开源的DeepSeek-R1。三款模型下,ROSE都稳定超越了同模型下的其他评估方式,只是绝对数值有所差异——例如DeepSeek-R1驱动的ROSE达到了64.49%的κ值,Gemini-2.5 Pro驱动的ROSE为69.68%。这说明ROSE的优势在于方法设计本身,而非依赖于某款特定模型。
四、诊断能力:顺手抓出数据集的漏洞
ROSE的诊断标签功能在验证中也获得了量化证明。
研究团队将反驳者标记为"标准答案有错"(GoldX)或"问题有歧义"(AmbQ)的案例,交给人工二次核验,计算"打对了多少"(精确率)。
在OpenAI o3驱动下,GoldX标签的精确率达到84.32%,AmbQ标签的精确率达到91.23%。换句话说,ROSE每标记100个"标准答案可能有问题"的案例,有84个经人工确认确实有问题;每标记100个"这道题有歧义"的案例,有91个被人工认同。这个准确率已经足以支撑自动化的数据集质量审查。
不同底层模型下的表现差异也很有规律:OpenAI o3最强,Gemini-2.5 Pro居中,DeepSeek-R1较弱——特别是在AmbQ标签上,DeepSeek-R1的精确率只有51.85%,说明歧义识别对模型的推理能力要求更高。
五、大规模重新评估19个NL2SQL系统后发现了什么
有了ROSE这把新尺子,研究团队重新测量了19个主流NL2SQL系统在BIRD Mini-Dev数据集(500道题,11个数据库)上的表现,并将结果与EX对比。这次大规模复测带来了四个值得关注的发现。
**第一个发现:是底层模型的能力决定了上限,而不是系统设计的精妙程度。**
研究者发现,所有NL2SQL系统可以按使用的基础语言模型分层聚类——GPT-3.5时代的系统聚在低分区,GPT-4时代的聚在中分区,GPT-4o和GPT-5时代的聚在高分区。同一时代内,无论系统用了多少精心设计的多步骤流水线和提示工程技巧,表现都被基础模型的天花板牢牢压住。比如基于GPT-4o的RSL-SQL(ROSE得分81.92)全面超越基于GPT-3.5的C3-SQL(46.29),而GPT-4直接在零样本下(66.53)甚至超过了同时代精心打磨的DAIL-SQL(55.60)——因为后者用的是更早版本的GPT-4,而基线使用的是更新的版本。这意味着,近年来许多被归功于"系统设计创新"的性能提升,实际上很大程度上是基础模型升级带来的,研究者应该更谨慎地将系统贡献与模型贡献区分开来。
**第二个发现:随着模型越来越强,EX和ROSE之间的分差越来越大,这是一场评估危机的信号。**
在2023年中的早期系统(如CoT、C3-SQL)上,EX和ROSE的差距还不到5个百分点。但到了2025年中期的最新系统,差距已经扩大到超过20个百分点。以GPT-5为例,EX只给它打了55.74分,而ROSE给出了88.93分——差了33分。这种发散趋势不是偶然,背后有两层原因。一方面,早期模型犯的错误往往是真正的语义错误,EX和专家都会判错,两者一致;而如今的模型越来越少犯真正的逻辑错误,更多的情况是写了"正确但与标准答案写法不同"的SQL,EX判错而专家认为是对的。另一方面,更强的模型生成的SQL在写法上更为多样,更富有创造性表达,但EX的严格比对机制恰恰对这类"创意写法"最不友好。EX越来越像是在惩罚模型的进步,而不是准确反映它。
**第三个发现:EX和ROSE之间的分歧,主要来源是数据集本身的缺陷。**
研究团队利用ROSE的诊断标签,专门统计了在"标准答案有错"(GoldX)和"问题有歧义"(AmbQ)这两类样本上,EX和ROSE的不一致比例。结果极为显著:在GoldX样本上,不一致率超过80%(对所有被测系统均如此);在AmbQ样本上,不一致率维持在60%左右。相比之下,整体数据集的平均不一致率不到20%。这意味着,EX和ROSE之间超过一半的分歧,可以归因于数据集中标准答案错误和问题歧义这两类可以被修复的缺陷——如果未来的数据集能减少这类问题,EX的可靠性也会相应提升。
**第四个发现:微调(Fine-tuning)会缩小EX和ROSE之间的差距,但这未必是好事。**
对比提示工程型系统和微调型系统,前者的EX与ROSE差距明显更大(平均约12.9分),后者则小得多(平均约3.4分)。但研究团队的分析显示,这种差距缩小并非来自微调系统真的更好地理解了语义——而是因为微调让模型"学会了"数据集里标准答案的写作风格,让预测的SQL在表面形式上更接近标准答案,从而获得更高的EX分数。一个有趣的反例是OmniSQL,它主要在大规模合成语料(SynSQL)上训练,没有深度适应BIRD数据集的写作风格,结果EX与ROSE之间的差距反而比其他微调方法大。而反过来,像CodeS和CHESS这类可能对训练数据过拟合的模型,EX甚至比ROSE还高——意味着它们靠风格拟合把EX刷高了,却并没有真正更好地理解用户意图。微调可能只是在教模型"写得像答案",而不是"想清楚问题"。
六、系统的效率和长期维护机制
一个实用的评估工具,还需要在效率和成本上经得起推敲。研究团队在时间效率方面做了专项测试,结果显示:ROSE在单线程下平均每题需要22.48秒,明显高于EX的1.22秒。但通过8线程并行,每题时间降到了3.35秒,整个322题的BIRD验证集跑完只需18分钟。
在成本上,ROSE反而有意外的优势。由于整个流程设计了"按需调用"机制——只有当证明者判为"正确"时才触发反驳者,因此实际上只有约45%的案例需要两次LLM调用,另外55%只需要一次。最终测算下来,ROSE在BIRD验证集上的平均每题成本为0.007美元,反而比FLEX的0.0118美元更低。
研究团队还为ROSE设计了一套版本管理机制。每个ROSE实例都标注了底层模型和版本时间,例如ROSEo3-2504代表使用2025年4月版o3的ROSE。当有更新的模型出现时,团队会在ROSE-VEC上重新验证,只有在准确率、κ、MCC、F1四个指标全部不低于前任模型的前提下,才会正式切换为新的"官方版本",以避免版本迭代导致历史分数不可比。
七、ROSE还会犯哪些错
研究团队对ROSE在BIRD验证集上的所有判断错误进行了逐案人工分析,共发现29个失误,其中26个是"漏判"(明明正确却打了低分),3个是"误判"(明明有问题却放行了)。这说明ROSE整体上偏保守,宁可错判正确为错误,也不轻易把错误放过。
漏判主要集中在三类场景。最多的是"逻辑健壮性"问题:AI写的SQL恰好在当前数据库状态下跑出了正确结果,但如果数据变化(比如一个账户有了多条记录),答案就会出错。ROSE会发现这种潜在的逻辑漏洞并判为错误,但专家有时接受"当前答案是对的"这一事实而给出正确判断。其次是单位和格式问题:比如题目问"百分之几",但AI给的是0到1之间的小数比例,专家可能接受这是等价表达,而ROSE会认为语义上确实有差异。第三类则是世界知识和模式解读的歧义:比如"最高经度的学校",专家认为用绝对值取最大经度是合理解读,而ROSE坚持按字面意思取数值最大的经度。这些错误揭示了ROSE作为一个基于语言模型的评估器,在一些需要常识灵活性的细节判断上,仍然可能比真实专家更"刻板"。
说到底,这项研究做的事情,是给AI翻译数据库语言这件事配上一位"更懂人意"的裁判。
过去我们用的裁判太死板,只认标准答案的长相,不管答案的意思。ROSE的出现,相当于把裁判从"死记硬背型"换成了"理解题意型"——先独立看你答得对不对,再用参考答案来质疑你有没有偷懒取巧。
从实验结果来看,这位新裁判和真实专家的判断一致性高出旧裁判整整三倍,而且还顺带帮研究者发现了现有数据集里大量积累的错误和歧义问题。这对整个领域都有价值:不仅让现有AI系统的能力被更准确地衡量,也指出了未来数据集建设应该更注重标注质量和问题清晰度。
这项工作也提出了一个让人深思的问题:当AI越来越聪明,能用多种正确方式完成任务时,我们的评判标准是不是也应该跟着进化?还是说,我们会继续用一把弯曲的旧尺子,得出一个"AI没什么长进"的错误结论?
对这个问题感兴趣的读者,可以通过论文编号arXiv:2604.12988查阅完整原文,相关代码和ROSE-VEC数据集也已在GitHub上公开发布。
Q&A
Q1:ROSE评估指标和传统EX评估指标的根本区别是什么?
A:传统EX只比较AI写的SQL和标准答案SQL执行结果是否完全相同,答案只要不一致就判错,完全不管AI的写法是否合理。ROSE则不同,它先让"证明者"独立判断AI的SQL有没有正确理解用户的提问意图,再用"反驳者"拿标准答案来挑战这个判断,最终目标是评估AI有没有真正回答了用户的问题,而非是否和标准答案写法一致。在专家验证集上,ROSE与专家判断的一致性达到80.43%,而EX只有25.56%。
Q2:ROSE发现现有NL2SQL数据集最主要的质量问题是什么?
A:研究发现两类主要问题:一是标准答案SQL本身写错了,被标记为GoldX;二是问题本身存在多种合理解读,被标记为AmbQ。在标准答案有错的样本上,ROSE和EX的判断不一致率超过80%;在有歧义的问题上,不一致率约为60%。这两类问题合计解释了超过一半的指标差异,说明数据集质量是评估可靠性的关键瓶颈。
Q3:NL2SQL系统靠微调来提高分数是真的变厉害了吗?
A:不一定。研究发现,微调系统的EX分数和ROSE分数之间差距更小,但这主要是因为微调让模型学会了模仿训练数据集里标准答案的书写风格,导致EX分数虚高,而不代表真正提升了语义理解能力。一些在专有数据上深度微调的模型,EX甚至比ROSE高,说明它们是在"写得像答案"而非"真正理解问题"。