BIRD:划定text-to-sql的基准

发布时间 2023-08-23 16:53:50作者: 辛几何旋律

Abstarct

存在的问题:在Text-to-SQL问题中,之前的基准(Spider和WikiSQL)聚焦于数据库中较少的行,学术研究和现实应用的距离较大。

BIRD主要重视dirty content,external knowledge和SQL的效率三方面。
对比了human和ChatGPT生成语句的精度,发现chatgpt和人类仍存在很大的差距。

1.Introduction

Text-to-SQL: NL用于SQL询问

LLM 可以用于数据库的接口吗?No,下面这个图很好的解释了原因
image

  1. 现实生活中数据库容量大以及噪声文本
  2. 需要赋予额外知识和推断能力
  3. 效率低下需要优化

怎么做?
image

提出BIRD(A Big Bench for Large-Scale DataBase)去代表真实世界的情况。采用95个关系型数据库,80个用于训练,15个用于评价。

  1. 列提出列名、列的类型、额外的知识等方面帮助annotators更好理解数据库中的内容。
  2. 训练native speaker提问,数据工程师和学生解答
  3. 提出VES评估生成SQL语句的效率,同时兼顾执行的准确度。

采用了两种方法去评价:fine-tuning with T5和ICL方法(基于LLM)

2 Task Formulation & Annotations2

\(Y = f(Q,D,k|\theta)\)
Q代表问题,Y代表答案,k代表额外的知识提升大模型的理解程度
\(f(.|\theta)\)代表模型(基于\(\theta\)参数)
额外的知识可具有结构,如json/csv files
也可以无结构,如evidence texts
也可以是空的。

3 Dataset Construction

3.1 Dataset Source

69个training,11个development,15个testing
同时划分为37个领域,涵盖健康关照、运动、政治

3.2 Question Annotation

Entrance
  1. ER图和数据库文件去帮助annotators理解数据库
  2. 每位annotators提供3个数据库(不同领域),每个生成10个问题
  3. 专家评价,保留有价值的annotators
Database Description File
  1. Full schema names:表和列的名字难以理解
  2. Value description:主要针对问题和数据库中的value难以匹配的问题。
    比如“POJISTNE”代表insurance payment
External Knowledge

主要针对四个方面

  1. 数值推理知识:比如加、减、乘、取最小值等操作
  2. 领域知识:比如银行的交易需要金融领域的知识,计算投资收入等
  3. 同义词知识:不同的词可能有相同的含义,保证问题可以正确的转化为SQL语句。
  4. 具体值的说明:比如"pos = C"会和center等价

3.3 SQL Annotation

Entrance

选拔经过训练的数据工程师和学生。
被询问10个问题,只有能够回答9个或10个才能进入后续环节

Double-Blind Annotation

image
表现最好的SQL语句进入语料库,并且额外的知识语句也会记录下来

Examination

主要检查两方面。

  1. 生成的SQL语句是可执行的,可以返回数据库中有效的结果
  2. 生成的SQL语句是可以由问题和额外的已给定知识生成

4 Data Statistics

4.1 Overall Statistics