BIRD 基准测试:大语言模型 Text-to-SQL 在真实数据库中的差距
BIRD 基准测试(NeurIPS 2023 Spotlight)是每当有人争论 GPT-4 可以“用纯英文查询数据库”时,我一直想读的那篇论文。它提出了一个尖锐的问题:大语言模型(LLM)是否真的可以作为真实数据库的接口,而不仅仅是学术性的玩具模式?答案是令人清醒的,其结论几乎可以直接对应到 Beancount 账本自然语言查询层所面临的挑战。
论文介绍
由 Jinyang Li 及其来自达摩院、香港大学、伊利诺伊大学厄巴纳-香槟分校(UIUC)等机构的庞大团队发表的《大语言模型是否已经可以作为数据库接口?大规模跨领域文本到 SQL 语言的基准测试》(Can LLM Already Serve as A Database Interface? A BIg Bench for Large-Scale Database Grounded Text-to-SQLs)介绍了 BIRD:包含分布在 37 个专业领域的 95 个真实数据库、总计 33.4 GB 数据的 12,751 个“问题-SQL”对。这种规模正是重 点所在。在 BIRD 之前主导 Text-to-SQL 研究的 Spider 和 WikiSQL 使用的是小型且干净的数据库,最多只有几百行。BIRD 使用的则是从真实机构提取的数据库——金融记录、毒理学报告、政府数据集——这些数据的值是杂乱的,列语义需要领域知识,且查询效率至关重要。论文还引入了两个指标:执行准确率(EX),检查 SQL 结果是否与标准答案匹配;以及有效效率得分(VES),对正确但缓慢的查询进行惩罚。
核心观点
- 在提供精选外部知识证据的情况下,GPT-4 在测试集上的执行准确率仅为 54.89%。如果没有这些证据,准确率会降至 34.88%——这 20 个百分点的差距揭示了模型在多大程度上依赖于提供的提示,而不是其自身的通用知识。
- 人类在开发集上的表现为 92.96%,即使在给 GPT-4 提供了答案的领域背景后,仍然存在 38 个百分点的差距。
- 外部知识以针对每个问题的“证据句子”形式提供(例如,“account.type = 'OWNER' 表示账户持有人是主要所有者”)。无法自行检索或推断这种背景的模型从一开始就处于劣势。
- 与 Beancount 最相关的金融领域拥有最高的标注噪声率:随后的审计发现,大约 49% 的金融领域数据点包含某种错误——拼写错误、歧义问题或错误的标注 SQL 查询。
- 自论文发表以来,排行榜发生了巨大变化。截至 2026 年,领先的系统(AskData + GPT-4o)在测试集上达到了 81.95%,而人类表现仍维持在约 92.96%,但差距的缩小主要源于精细的多步流水线,而非模型基础能力的提升。
哪些观点站得住脚,哪些站不住
核心贡献是成立的:Spider 风格的基准测试通过使用经过清洗的模式,确实低估了 Text-to-SQL 的难度。BIRD 对真实数据库值和外部知识的坚持,揭示了在干净数据上从未出现过的失效模式,而添加知识证据带来的 20 个百分点的波动是一个可复现且重要的发现。
但该基准测试存在一个设计缺陷,其后续研究也承认了这一点。外部知识证据是由具有领域专长的标注员针对每个查询手工编写的。这并不是一个现实的部署场景。一个真实的“自然语言到 SQL”智能体不会为每个问题获得预先写好的提示;它必须自己检索或推断相关的领域背景。2025 年的 SEED 论文表明,在某些环境下,自动生成的证据可以达到或超过手工编写的证据,这削弱了 BIRD 关于知识瓶颈是难点的隐含假设。
噪声审计的影响则更具破坏性。数据集中的 22 个标注 SQL 查询完全是错误的。当这些错误被纠正后,模型排名发生了变化:零样本(zero-shot)GPT-3.5 的表现优于 DIN-SQL 和 MAC-SQL,而后者是为了在未纠正的基准测试上击败 GPT-3.5 而设计的。这是一个警示。一个在清理后排名发生逆转的基准测试,教给我们的不仅是模型能力,还有标注瑕疵。特别是金融领域 49% 的噪声率,使得该领域的结论变得不可靠。
VES 还有一个微妙的问题。奖励查询效率是一个合理的现实目标,但要根据效率进行基准测试训练和评估,你需要关于特定数据库引擎和数据分布下“高效”含义的基准真相。VES 在这 里有效是因为 BIRD 控制了执行环境。但对于一个在异构硬件上针对用户个人账本运行 beanquery 的 Beancount 智能体来说,这一条件并不成立。
为什么这对金融 AI 至关重要
Beancount 的查询语言 BQL(通过 bean-query 命令行工具和 beanquery 库公开)在语法上接近 SQL:它支持 SELECT、WHERE、GROUP BY、聚合函数,以及在内置的分录(posting)和余额(balance)表之间进行连接。将用户问题转化为 BQL 的自然语言接口是非技术用户最自然的入门路径,而 BIRD 的发现直接勾勒出了这一挑战。
BIRD 中的外部知识问题可以完美映射到 Beancount。用户可能会问“去年我在医疗费用上花了多少钱?”,智能体需要知道用户的医疗支出是记录在 Expenses:Health:* 还是 Expenses:Medical 下,这取决于他们如何组织账户。这种映射是高度个性化的,不存在于任何训练语料库中。BIRD 发现 GPT-4 在没有证据的情况下会损失 20 个百分点,这表明任何 BQL 生成智能体都需要一个学习用户自身账户分类体系的检索步骤——本质上是针对每个用户的知识库。
脏数据问题也直接对应。导入的银行交易通常具有不一致的商户名称、OCR 伪影和混合编码。BIRD 量化了这种问题在 SQL 正确性方面的代价,其数值大到足以让预处理成为首要考虑的问题,而非事后才想到的补救措施。
BIRD 未涵盖的内容:账本特有的构造,如余额断言(balance assertions)、填充指令(pad directives)或多币种分录(multi-currency postings),在标准 SQL 中没有等价物,因此任何 BQL 智能体都将面临 BIRD 未衡量的复杂性。该基准测试是一个有用的下限,而非上限。
延伸阅读
- Spider 2.0: Evaluating Language Models on Real-World Enterprise Text-to-SQL Workflows (arXiv:2502.04306, ICLR 2025 Oral) —— 将 BIRD 扩展到具有云数据库和多文件工作流的企业环境;是理解现实部署差距的自然下一步。
- SEED: Enhancing Text-to-SQL Performance and Practical Usability Through Automatic Evidence Generation (arXiv:2506.07423) —— 通过自动化流水线直接解决了 BIRD 手工编写证据的假设。
- DIN-SQL: Decomposed In-Context Learning of Text-to-SQL with Self-Correction (arXiv:2304.11015, NeurIPS 2023) —— BIRD 最顶尖的基准方案之一;展示了将复杂的 SQL 查询分解为子问题如何提高准确率,这一技术可直接应用于针对 Beancount 账本的多步 BQL 查询。
