我正在参加「掘金·启航计划」
导语
随着像ChatGPT之类的大语言模型的迅速发展,NLP中许多的研究领域受到冲击,之前的一篇博客看看ChatGPT对Text-to-SQL任务的冲击介绍了清华大学团队使用ChatGPT在三大经典Text-to-SQL数据集Spider、SParC和CoSQL上进行了性能评估,评估显示尽管ChatGPT无法与专门的特定模型(如RASAT:Text-to-SQL学习整理(二十八):RASAT–将关系结构集成到T5模型中)等相比,但其性能已经非常接近。
本文介绍了最新的Text-to-SQL评测基准BRID,该基准由香港大学、阿里巴巴达摩院和清华大学等机构提出。研究者发现,即使是最优的LLM模型和ChatGPT,仍未达到作为数据库自然语言接口的标准,最优模型在BIRD上的评估结果仅达到40.08%,与人类92.96%的结果相差甚远。这说明Text-to-SQL领域的研究远未结束,反而在LLM时代对研究者提出了更高的要求。以下将详细介绍这篇论文。
- 会议:Arxiv 2023
- 标题:Can LLM Already Serve as A Database Interface? A BIg Bench for Large-Scale Database Grounded Text-to-SQLs
- 链接:arxiv.org/pdf/2305.03…
1 简介
Text-to-SQL解析是一项将自然语言转化为SQL查询的技术,引起了学术界和工业界的广泛兴趣。大型语言模型(LLMs)在现有基准测试中取得了令人印象深刻的成果。然而,这些模型在面对大型数据库和嘈杂内容时仍然存在挑战,而且巨大的数据库价值背后的奥秘需要外部知识和推理来揭示。因此,需要一个更贴近实际情景的文本到SQL基准测试,以缩小实验和实际应用之间的差距。
为此,研究人员提出了一种名为BIRD的新Text-to-SQL基准测试。其包含了大规模数据库和真实应用场景中的复杂查询示例。通过收集自然语言指令和相应的SQL语句,并结合数据库专家和SQL注释团队的协作,BIRD试图更好地代表真实情景。同时,该基准测试还引入了一个新的度量标准——有效性评分(Valid Efficiency Score,VES),以评估生成的SQL语句的执行效率。这是首个将效率纳入考虑的文本到SQL基准测试,为在大规模和嘈杂数据库背景下实现更高效的查询方法提供推动。
通过评估最先进的Text-to-SQL解析器,研究人员发现目前的模型在推广能力方面仍存在挑战。最先进的模型执行准确率仍远远落后于人类的表现。因此,亟需进一步研究,以应对基准测试中更贴近实际情景的设置,提升文本到SQL解析的性能,使其能够在面对更现实的大型和嘈杂数据库时表现更出色。
2 任务定义和标记
单轮Text-to-SQL任务的目标是在输入问句QQ和数据库schema SS的前提下,生成对应于该问句的SQL语句YY。
而对于多轮Text-to-SQL任务,输入的问句变为当前轮次问句QtQ_t和历史上下文问句Q≤tQ_{le t}。数据库schema则定义为表列的集合S=<T,C>S=<T,C>。
3 数据集构建
3.1 数据库来源
本文从三个不同的来源获取数据库。所有这些数据库都包含真实且大规模的数据值分布,并且可以在适当许可下轻松获取。
- Kaggle:Kaggle是一个以数据科学竞赛著称的平台,提供了具有困难和嘈杂内容和模式的数据库。
- CTU Prague Relational Learning Repository:CTU Prague Relational Learning Repository是一个开放平台,用于机器学习研究,提供了多关系数据的数据库。
- DuSQL:DuSQL是一个类似的数据库来源,采用了获取开放表格、合成和标准化模式,以及生成数据库约束的过程来构建数据库。
3.2 问题标注
作者雇佣了一组具备数据库知识和高于学士学位水平的英语母语人员,通过数据库描述文件和外部知识的支持,他们提出了关于数据库内容的自然语言问题。数据库描述文件为注释者提供了数据库的结构和值的详细信息。外部知识包括数值推理知识、领域知识、同义词知识和值说明,帮助注释者理解和映射自然语言指令到数据库元素。这些资源为BIRD提供了丰富的问题注释,并为研究人员在语义解析任务中探索大型数据库内容的领域泛化提供了重要的支持。
3.3 SQL标注
作者组建了由数据工程师和学生组成的团队,通过严格的评估和双盲标注,标注者生成了高质量的SQL查询。标注过程包括对SQL的有效性和文本-知识-SQL对齐性进行检查,以确保结果的质量。此外,团队对问题的难度进行了评估,考虑了SQL的复杂性以及问题理解、模式链接、外部知识获取和推理等因素。这些策略和流程有助于提供准确和高效的SQL查询,并为文本到SQL任务的难度分析提供了全面的支持。
4 数据统计
表1展示了BIRD和其他Text-to-SQL测试基准的对比情况。图3展示了BIRD中的问题类型的统计情况。
图4展示了在BIRD中对数据库领域、大小和值类型的分布进行的统计。通过太阳图和颜色深浅的表示,展示了不同领域和数据库在训练集和开发集中的分布情况,以及数据库大小的分布情况。此外,还强调了BIRD数据集中涉及日期相关值的比例较高,这与现实世界中对时间敏感数据的需求密切相关。
图5则对比了BIRD和其它Text-to-SQL数据集在每个SQL语句的平均Tok数目、关键词数目、每个SQL中的平均3-gram数目、每个SQL中的JOIN数目的对比。可以看出,BRID是最复杂的数据集。
5 评估指标
在BIRD中提供了两个评估指标,执行准确率(EX)和有效性评分(VES),用于评估文本到SQL解析器在面对具有大型数据库内容的真实场景时的性能。
(1)执行准确率。其定义与之前Spider等数据集上的EX定义一致,即评估预测的SQL语句执行后得到的结果与gold SQL执行后得到的结果是否相同。
(2)有效性能分(Valid Efficiency Score (VES))。VES旨在衡量模型生成的有效SQL查询的效率。值得注意的是,“有效SQL查询”一词指的是预测的SQL查询与基准SQL查询的结果集一致的查询。任何不能正确执行的SQL查询都将被声明为无效,因为如果它们无法满足用户请求,无论其效率如何,它们都是完全无用的。在这种情况下,VES指标可以同时考虑执行结果的效率和准确性,为模型的性能提供全面的评估。其正式定义如下:
6 实验
6.1 Baseline
本文介绍了在BIRD中两种基准模型的性能。第一种模型使用微调技术(fine-tuning (FT)),通过调整语言模型的参数来生成SQL查询。第二种模型采用上下文学习(in-context learning (ICL))方法。
对于微调模型,作者选择了T5作为主要的基准模型。而针对上下文学习模型,提供了Codex、ChatGPT和Chain-Of-Thought演示的Zero-shot结果,它们能够实现Zero-shot的Text-to-SQL生成。文章还介绍了基于FT的模型和基于ICL的模型的具体实现方法。此外,作者还提到了知识融合的策略,通过连接知识证据句子(knowledge evidence sentences)与问题和数据库模式来改进模型性能。
6.2 执行准确率分析
本文通过在两种情景下实验Baseline模型,展示了它们的性能(表2)。第一种情景是在没有提供基准知识证据的情况下,FT模型(如T5)的性能明显较差,而基于ICL的LLM模型表现更好。然而,当为模型提供外部知识证据时,所有模型在不同难度级别上都有明显的提升。尽管如此,对于一种特定的模型,即ChatGPT + knowledge grounding,它在使用人类专家注释的数据库内容时性能可能下降或改善有限。因此,未来的研究方向是有效结合LLM的多步自我推理能力和外部知识推理,以实现更可靠的结果。
6.3 效率分析
本节介绍了在BIRD中关于文本到高效SQL的新子任务,并提出了VES指标进行评估。在整体结果中(表3),作者观察到具有更高执行准确性(EX)的文本到SQL模型更有可能实现更高的有效性评分(VES)。
本文探讨了两种提高文本到SQL系统生成更高效SQL查询的方法:两阶段优化和具身化数据库。
- 两阶段优化,将文本到高效SQL的目标分解为语义解析和SQL优化两个子过程;
- 具身化数据库(Embodied Database),使模型能够通过生成与数据库交互的SQL查询来了解数据类型和分布(如图7)。
具身化数据库的一个示例如图7,这里展示了两种可能的解决方案和解释来提高效率。第一批示例展示了通过根据规则重写SQL来优化SQL效率的方法。最后一个示例表明,向数据库添加索引也可以在不重写SQL的情况下提高SQL效率。这些方法为生成更有效和高效的SQL查询提供了基础,并强调了查询优化和数据库索引设置在提高SQL效率方面的重要性。
6.4 人类表现
为了推动文本到SQL研究在挑战性但更接近实际场景中实现应用级性能,BIRD提供了人类表现结果(表2,表3)。收集人类表现数据的过程非常严格,将数据分为多个批次进行注释和测试。通过人类表现结果与最先进的文本到SQL模型的对比,发现它们之间存在较大差距。这些人类表现数据可用作性能评估的基准,并为改进文本到SQL模型提供参考。
6.5 误差分析
作者针对ChatGPT模型的性能进行了评估。观察了500个随机抽样的错误案例,主要涉及到三个类别:模式连接错误、对数据库内容的误解和对知识证据的误解。模式连接错误是指ChatGPT能够理解数据库结构,但错误地将其与错误的列和表相关联。对数据库内容的误解是指ChatGPT无法正确回忆数据库结构或生成错误的模式项,特别是在数据库非常大时。对知识证据的误解是指ChatGPT不能准确解释人工注释的证据。此外,还观察到语法错误的情况,但占比较小。这些错误表明,在处理复杂的文本到SQL任务时,模型在模式连接、数据库内容理解和知识应用方面仍存在困难和不足之处。
7 相关工作
略
8 总结
本文介绍了BIRD,这是一个英语的大规模跨领域文本到SQL基准测试,特别关注大型数据库内容。BIRD通过探索三个额外的挑战,即处理大规模和混乱的数据库值、外部知识推理和优化SQL执行效率,缩小了文本到SQL研究与实际应用之间的差距。实验结果表明,与现有基准相比,BIRD提出了更具挑战性的任务,即使是最强大的代码型语言模型ChatGPT也远远达不到人类的表现水平。这为文本到SQL任务的改进和创新提供了充足的空间。此外,作者对效率和错误进行了彻底的分析,为未来的研究提供了宝贵的见解和方向,为在实际场景中开发更先进、更实用的文本到SQL解决方案铺平了道路。