Text-to-SQL 准确性应如何评测,并通过反馈持续改进?
未标记
考查重点:执行正确性与误差反馈。问题绑定数据快照与期望业务结果,分别测语法、执行与语义正确;允许等价 SQL,失败按 Schema、口径或生成归因,修后跑独立回归
本题目录
参考答案
核心回答
把自然语言问题绑定到明确业务口径和固定数据快照,分别评估语法能否通过、执行是否成功、结果是否符合业务语义。SQL 字符串相同不是必要条件,执行成功也不是语义正确的充分条件。 持续改进时,要先定位错误发生在哪个环节,再用独立样本验证修复。
怎样判断结果正确
每题保存问题、结构和规则版本、参考 SQL、数据快照,以及预期结果或明确的判定规则。指标公式、时间范围、单位、连接粒度和权限范围都属于题目条件。
先检查能否解析、对象是否存在和能否在预算内执行,再比较结果。比较规则要区分无序行的多重集合与有序结果,保留重复行、空值及列含义;金额或浮点容差由业务要求事先定义,不能为通过测试临时放宽。用户要求排名时,顺序和并列规则也要检查。
两条 SQL 在单个快照上返回相同结果,可能只是碰巧相同。对关键逻辑增加针对性数据:让退款和支付额不同、让一对多连接产生重复、让时间边界有记录,才能检出错误口径。人工核对和反例数据很重要,不能让生成 SQL 的同一个模型独自给自己判满分。
还要单独看哪些指标
越权或危险操作应按硬性失败处理,并单独统计阻断情况;歧义问题看是否恰当澄清。延迟、超时、资源成本和重试次数与准确率分别报告。既可以看任务级最终成功,也应保留解析、召回、生成和执行各环节的失败分布。
固定模型、提示词、检索配置与知识版本;存在随机生成时可以重复试验,不能只挑成功的一次展示。公开基准用于补充能力对照,不能替代本产品的字段、口径和权限测试。
反馈如何进入改进
收集经授权、脱敏的失败问题,结合检索上下文、候选 SQL、校验和结果定位原因。结构缺失就补元数据,业务口径错误就修指标定义,生成错误再调整示例或模型;数据库慢查询不能只靠改提示词解决。
用户点赞只能提供线索,经过核对才能成为正确标签。把修复案例加入开发与回归集,同时保留独立测试集;修改后同时检查原问题是否解决、其他指标是否退化,并更新对应版本记录。
对应教程
- 《32-微调效果评估与模型部署》:第4.7—4.8节展示固定规则比较、错误归因和新留出数据验收;本文补充
SQL结果语义与数据快照的判定。
参考资料
- 国内:香港大学等/BIRD团队:Can LLM Already Serve as A Database Interface? BIRD:采用执行结果比较与业务证据的评测维度,并保留一次结果相同的局限。
- 国内:Snailclimb:AI应用评测体系:采用分层指标、场景覆盖与独立回归的评测思路。
- 国内:飞致云:SQL示例库:采用问句、
SQL、解释及数据源绑定,组织可追溯样本而非孤立SQL字符串。 - 国内:飞致云:术语配置:采用术语和业务背景的显式定义,把指标口径纳入正确性判定。
- 国外:Yale University:Spider: A Large-Scale Human-Labeled Dataset:参考复杂
SQL与跨结构测试,区分查询模板记忆和真实泛化。 - 国外:Anthropic:Demystifying evals for AI agents:采用最终结果与运行轨迹分开评判、多种判定器互补和重复试验的方式。