总览 · 2024 年 2 月 10 日 · 16 分钟
Text-to-SQL 只是中间一截,不是整套软件
Text-to-SQL 的学术定义很窄:自然语言问题 → 可执行 SQL。Awesome-Text2SQL 开篇就是这句。评测集也按这个切:给问题、给库结构,收一条语句,比执行结果。
做软件时,这个定义不够用。业务问「华东为什么掉了」,需要的是分析链:先给出本期和对照期的数,再按省拆,再看品类,每一步都可能换表、换口径。BIRD 论文自己也说:只在「小库、干净值、没有外部知识」上把执行准确率做高,回答不了「能不能当数据库接口」。他们给的 GPT-4 数字是:带知识证据时测试集执行准确率 54.89%,人类 92.96%。差距在脏值、知识和效率,不在会不会写 SELECT。
所以方案里要把 Text-to-SQL 收成一个模块,上下游还要有:
- 上游:意图是否属于问数;时间/指标/筛选是否齐;该不该澄清。
- 中游:结构链接、语义层编译、只读执行、报错回写。
- 下游:表格/图/口径名;追问继承过滤;审计。
Spider 2.0 把企业现实写得更狠:平均约 812 列、方言、嵌套转换、外部文档。即便 Spider 1.0 上已经有 90%+ 的执行准确率,lite 设置里最强解析器也只能做对约 5.7%。这说明「整套软件」必须包含文档、方言和多步工作流,不能只买一个翻译器。
出处
- Awesome-Text2SQL README.zh.md
- Li et al., Can LLM Already Serve as A Database Interface? BIRD, arXiv:2305.03111
- Lei et al., Spider 2.0, arXiv:2411.07763