方法概述
新的挑战
该研究主要面向真实数据库的 Text-to-SQL 评估,过去流行的测试基准,比如 Spider 和 WikiSQL,仅关注具有少量数据库内容的数据库 schema,导致学术研究与实际应用之间存在鸿沟。BIRD 重点关注海量且真实的数据库内容、自然语言问题与数据库内容之间的外部知识推理以及在处理大型数据库时 SQL 的效率等新三个挑战。
首先,数据库包含海量且嘈杂数据的值。在左侧示例中,平均工资的计算需要通过将数据库中的字符串(String)转化为浮点值 (Float) 之后再进行聚合计算(Aggregation);
其次,外部知识推断是很必要的,在中间示例中,为了能准确地为用户返回答案,模型必须先知道有贷款资格的账户类型一定是 “拥有者”(“OWNER”),这代表巨大的数据库内容背后隐藏的奥秘有时需要外部知识和推理来揭示;
最后,需要考虑查询执行效率。在右侧示例中,采用更高效的 SQL 查询可以显著提高速度,这对于工业界来讲具有很大价值,因为用户不仅期待写出正确的 SQL,还期待 SQL 执行的高效,尤其是在大型数据库的情况下;
数据标注
BIRD 在标注的过程中解耦了问题生成和 SQL 标注。同时加入专家来撰写数据库描述文件,以此帮助问题和 SQL 标注人员更好的理解数据库。
1. 数据库采集:作者从开源数据平台(如 Kaggle 和 CTU Prague Relational Learning Repository)收集并处理了 80 个数据库。通过收集真实表格数据、构建 ER 图以及设置数据库约束等手动创建了 15 个数据库作为黑盒测试,来避免当前数据库被当前的大模型学习过。BIRD 的数据库包含了多个领域的模式和值, 37 个领域,涵盖区块链、体育、医疗、游戏等。
2. 问题收集:首先作者雇佣专家先为数据库撰写描述文件,该描述文件包括完整的表明列名、数据库值的描述,以及理解值所用到的外部知识等。然后招募了 11 个来自美国,英国,加拿大,新加坡等国家的 native speaker 为 BIRD 产生问题。每一位 speaker 都至少具备本科及以上的学历。
3.SQL 生成:面向全球招募了由数据工程师和数据库课程学生组成的标注团队为 BIRD 生成 SQL。在给定数据库和参考数据库描述文件的情况下,标注人员需生成 SQL 以正确回答问题。采用双盲(Double-Blind)标注方法,要求两位标注人员对同一个问题进行标注。双盲标注可以最大程度减少单一标注人员所带来的错误。
4. 质量检测:质量检测分为结果执行的有效性和一致性两部分。有效性不仅要求执行的正确性,还要求执行结果不能是空值(NULL)。专家将逐步修改问题条件,直至 SQL 执行结果有效。
5. 难度划分:text-to-SQL 的难度指标可以为研究人员提供优化算法的参考。Text-to-SQL 的难度不仅取决于 SQL 的复杂程度,还与问题难度、额外知识易理解程度以及数据库复杂程度等因素有关。因此作者要求 SQL 标注人员在标注过程中对难易程度进行评分,并将难度分为三类:简单、适中和具有挑战性。
数据统计
1. 问题类型统计:问题分为两大类,基础问题类型(Fundamental Type)和推理问题类型(Reasoning Type)。基础问题类型包括传统 Text-to-SQL 数据集中涵盖的问题类型,而推理问题类型则包括需要外部知识来理解值的问题:
2. 数据库分布:作者用 sunburst 图显示了数据库 domain 及其数据量大小之间的关系。越大的半径意味着,基于该数据库的 text-SQL 较多,反之亦然。越深的颜色则是指该数据库 size 越大,比如 donor 是该 benchmark 中最大的数据库,所占空间: 4.5GB。
3.SQL 分布:作者通过 SQL 的 token 数量,关键词数量,n-gram 类型数量,JOIN 的数量等 4 个维度来证明 BIRD 的 SQL 是迄今为止最多样最复杂的。
评价指标
1. 执行准确率:对比模型预测的 SQL 执行结果与真实标注 SQL 执行结果的差异;
2. 有效效率分数:同时考虑 SQL 的准确性与高效性,对比模型预测的 SQL 执行速度与真实标注 SQL 执行速度的相对差异,将运行时间视为效率的主要指标。
实验分析
作者选择了在之前基准测试中,表现突出的训练式 T5 模型和大型语言模型(LLM)作为基线模型:Codex(code-davinci-002)和 ChatGPT(gpt-3.5-turbo)。为了更好地理解多步推理是否能激发大型语言模型在真实数据库环境下的推理能力,还提供了它们的思考链版本(Chain-of-Thought)。并在两种设置下测试基线模型:一种是完全的 schema 信息输入,另一种是人类对涉及问题的数据库值的理解,总结成自然语言描述(knowledge evidence)辅助模型理解数据库。
作者给出了一些结论:
1. 额外知识的增益:增加对数据库值理解的知识(knowledge evidence)有明显的效果提升,这证明在真实的数据库场景中,仅依赖语义解析能力是不够的,对数据库值的理解会帮助用户更准确地找到答案。
2. 思维链不一定完全有益:在模型没有给定数据库值描述和零样本(zero-shot)情况下,模型自身的 COT 推理可以更准确地生成答案。然而,当给定额外的知识(knowledge evidence)后,让 LLM 进行 COT,发现效果并不显著,甚至会下降。因此在这个场景中, LLM 可能会产生知识冲突。如何解决这种冲突,使模型既能接受外部知识,又能从自身强大的多步推理中受益,将是未来重点的研究方向。
3. 与人类的差距:BIRD 还提供了人类指标,作者以考试的形式测试标注人员在第一次面对测试集的表现,并将其作为人类指标的依据。实验发现,目前最好的 LLM 距离人类仍有较大的差距,证明挑战仍然存在。作者执行了详细的错误分析,给未来的研究提供了一些潜在的方向。
结论
LLM 在数据库领域的应用将为用户提供更智能、更便捷的数据库交互体验。BIRD 的出现将推动自然语言与真实数据库交互的智能化发展,为面向真实数据库场景的 text-to-SQL 技术提供了进步空间,有助于研究人员开发更先进、更实用的数据库应用。