【NL2SQL(text2sql) 到底准不准】智能BI中生成sql模块的评测数据构造 + 评测办法
写在前面
自然语言转 SQL (NL2SQL, 或 Text-to-SQL) 技术旨在将用户的自然语言问题自动转换为可在数据库上执行的 SQL 查询语句。 这项技术是 GenBI (生成式商业智能) 的核心,也是连接自然语言处理 (NLP) 和数据库领域的一座桥梁。
然而,NL2SQL 模型的效果如何? 它们生成的 SQL 查询到底准不准? 为了回答这些问题,我们需要构建高质量的评测数据集,并采用科学的评测方法。
本文将深入探讨 NL2SQL 评测数据的构造方法 (包括收集、预处理) 以及常用的评测指标和计算方法,并提供丰富的代码示例,帮助读者全面了解 NL2SQL 模型的评估过程。
1. 评测数据构造
高质量的评测数据是客观评估 NL2SQL 模型性能的基础。 评测数据的构造主要包括以下几个步骤:
1.1. 数据来源
-
公开数据集:
- Spider: 目前最常用的 NL2SQL 基准数据集,包含 10,181 个问题和 5,693 个独特的复杂 SQL 查询,涵盖 200 个不同领域的数据库。
- WikiSQL: 包含 80,654 个手工标注的自然语言问题、SQL 查询和表格数据,SQL 查询相对简单,主要涉及单表查询