【学习日记2】BIRD数据集

PS:主要自用

abstract

        text-to-SQL 的解析,旨在将自然语言的问题转换成可执行的 SQL,近年来受到越来越多的关注,特别是,GPT-4和 Claude-2在这项任务中已经显示出令人印象深刻的成果。然而,目前大多数流行的基准测试,例如 Spider 和 WikiSQL,专注于具有少量数据库的值和数据库模式,这在学术研究与实际应用之间留下了差距。为了缩小这个差距,我们提出了 BIRD,一个基于text-to-SQL 任务的大型数据库的大型平台,包含12,751个文本到 SQL 对和95个数据库,总大小为33.4 GB,跨越37个专业领域。我们对数据库值的强调突出了肮脏和嘈杂的数据库值、 NL 问题和数据库值之间的外部知识基础以及 SQL 效率(尤其是在大规模数据库环境中)的新挑战。为了解决这些问题,text-to-SQL 模型除了语义解析之外,还必须具有数据库值理解的特征。实验结果表明,数据库值对于大型数据库生成准确的text-to-SQL 语句具有重要意义。此外,即使是最有效的text-to-SQL 模型,即 GPT-4,也只能达到54.89% 的执行准确率,与人类92.96% 的结果相差甚远,这证明了挑战仍然存在。我们还提供了一项效率分析,以提供有关生成对行业有益的高效SQL文本的见解。我们相信,BIRD将有助于推动文本到SQL研究在现实世界应用中的发展。排行榜和源代码: https://bird-bench.github.io/。

摘要是用机器翻译的,存在一定的语句问题。其中的重点在于:1.相比于Spider数据集,BIRD数据集更加注重数据库的值,有着对数据库中值的理解;2.BIRD还提供了效率分析。

 1.Introduction

        text-to-sql近几年发展很快,已经有了很大的性能提升,例如:三年内,在Spider数据集上的最佳表现就从原来的53.5% 准确率提升到了85.3%。但尽管如此,大模型仍然不能运用于现实生活,因为以往的基准测试都是在数据库模式上进行的,很少使用数据库的值,这使得学术研究和现实世界之间存在着巨大差异。

        首先,目前最先进的模型仍然难以将其推广到真实情况,因为现实情况下的数据库有规模大和有噪声值的特点。

        数据库含有噪声,如图salary中的值都是字符串且每个salary前面都有一个"$"符号,难以转换为我们结果需要的float格式。

        其次,数据库规模变大了,获取完整的上下文会变的非常困难,因此需要外部知识来进行推理才能全部理解。

        有些条件或者上下文,问题并不会明说。例如上图的权限问题(第二个),需要先判断账户的类型才行。 

        最后,现有的基准测试没有考虑SQL的执行效率,特别是在大型数据库中,一个高效的SQL有重要实际意义。

 即使能得到正确结果,但在现实中对于SQL语句的优化也同样非常重要。

        在这项工作中,我们提出了 BIRD,一个基于text-to-SQL 的大规模数据库大平台,用于实际应用。BIRD 包含复杂的12,751个查询信息的例子,涉及95个大型数据库,总大小为33.4 GB,跨越37个专业领域。为了培训和开发,我们从实际的分析平台(Kaggle,Relations. vit)收集并修改了80个开源关系数据库。为了进一步避免数据泄漏,我们为一个隐藏的测试集设计了15个额外的关系数据库。此外,我们提出了一个新的评估指标有效效率得分(VES) ,以评估生成的 SQL 的效率。据我们所知,BIRD 是第一个结合效率的text-to-SQL 的基准测试,它推动了更多在大量数据和嘈杂的数据库值的情况下的高效查询方法的产生。

        本文使用两种流行的方法评估最先进的文本到 SQL 解析器的性能: 使用 T5的微调(FT)和使用高级大语言模型(LLM)的上下文学习(ICL) ,如 ChatGPT [33](gpt-3.5-turbo) 。我们的实验结果表明,目前的模型很难在 BIRD 上得到很好的推广。具体来说,即使是 GPT-4也只能达到54.89% 的执行准确率。相比之下,人类的表现仍然远远落后于人类92.96% 的表现,证明挑战依然存在。

2.Task Formulation & Annotations

        Text-to-SQL 指的是将自然语言问题 Q 转换为能够从数据库中检索相关数据的 SQL 查询 Y 的过程。

        数据库可以表示为D=<C,T>,其中的C表示列,T表示表。当处理复杂的数据库值当时候,结合外部的知识evidence非常关键,这能改进模型对于数据库值的理解,我们将外部知识定义为K。最后text-to-SQL问题可以表示为:

        其中的$f(\cdot | \theta )$)表示有参数\theta的模型或者神经网络。

3.Dataset Construction

3.1 Annotation Entrance

        对申请人进行了考核,标注入口要求高,标注质量高。

3.2 Database Source 

        从三个不同来源获取和处理数据库,以丰富现实世界的属性。有32%对数据来自Kaggle(其数值和模式复杂,嘈杂);有48%来自CTU布拉格关系学习知识库;剩下的20%是通过获取打开的表、合成和标准化模式以及生成数据库的约束来构建的。所有这些数据库都包含真实的、大型的值分布,并且可以通过适当的许可证轻松访问。最后,BIRD数据库提供了95个数据库,分别由69个、11个和15个数据库组成,用于培训、开发和测试。

3.3 Question Annotation

        数据库描述文件:数据库描述文件是一个重要的资源,旨在帮助标注者理解数据库值,从而允许他们提出有见地的问题。它提供了关于数据库的两个主要信息。(1)完整的模式名称: 数据库表和列的名称经常被缩写,这是难以理解的。(2)值描述: 当问题中的短语或标记与数据库中的值不直接匹配时,这个信息特别有用。

        外部知识根据(evidence,感觉翻译为根据更好):在我们对专业数据分析的研究中,我们发现将自然语言指令映射到对应的数据库值需要外部知识根据。因此,我们收集和分类这些证据分为四类:

        (1)数字推理知识: 这一类是指数学计算所需的某些 SQL 操作。在我们的基准测试中,我们提出了8个基本的数学操作,包括4个复杂的操作,如: 负、加、除、乘。BIRD 还包含基本操作的复合操作,例如百分比、公式等

        (2)领域知识: 这个类别包含用于生成 SQL 操作的特定领域知识。例如,银行业务中的业务分析师需要了解诸如投资回报率和净收入等财务指标,以便生成有效的 SQL 查询。

        (3)同义词知识: 这一范畴包括具有相同或相似意义的词或表达方式,而不管它们措辞不同。

        (4)值说明: 这一类别是指数据库值的详细描述,包括值类型,值类别,以及对应于实体的列和值的映射组合,例如: “中心”可以在数据库职业篮球中用“ pos = C”表示。

3.4 SQL Annotation

        这里介绍了两种保证数据高质量的标注方法:

        1.双盲方法:两个独立的SQL标注者,不经过讨论,为同一个问题生成一个SQL。如果他们两个SQL在数据库中执行结果相同,则收集起来,否则将与专家一起检查SQL,直到达成共识。之后专家针对每个问题记录语义等价性更强、效率更高的SQL语句作为基本事实语句。如果使用外部知识根据,则两个语句都要记录。

        2.测试:分为两个维度:(1)测试SQL的可执行性,并且结果不是空。(2)文本-知识-SQL对齐,确保根据evidence和给定的文本可以生成正确的SQL。

确实BIRD数据集中产生的结果不能为空,如果大模型产生的SQL结果为空,那一定要纠正

 4. Data Statistics

        整体统计:

         Function指SQL是否包含over、julianday,cast,round,substr等

         Knowledge指这个数据集是否需要使用模型外部的知识进行推理

         Efficiency指此数据集是否考虑了执行效率

        问题统计:问题被分为了两大类:基本类型和推理类型。每一类都包含4-5个微观类别。

                (1)基本类别:不需要理解数据库的值就可以回答。包括:匹配(83.9%) ,排名(20.3%) ,比较(16.7%) ,计数(30.4%) ,聚合(15.7%)。

                (2)推理类型:需要知道值的外部知识才能回答。包括:领域知识(23.6%)、数值计算(24.5%)、同义词(7.2%)、值说明(70.1%)

        数据库统计:

        颜色越深数据库大小越大,所以进行训练的时候可以有一些倾向。 

       

        如图相当一部分数据包含与时间有关的值。是否可以将模型调教的对时间敏感?

SQL统计:

         似乎没有说纵坐标的意思

 5.Evaluation Metrics

        介绍了BIRD的两个最重要的评价指标EX指标(执行准确度)和VES指标(有效效率得分)

        EX指标:指使用后的结果正确的预测的SQL占总体评估集的比例。假设预测的SQL的结果集合为V_{n},真实SQL的执行结果集合,则EX指标可以表示为:

EX = \frac{\sum _{n=1}^{N}\mathbb{1}(V_{n},\tilde{V}_{n}))}{N}

其中:

\mathbb{1}(V_{n},\tilde{V}_{n}) = \begin{cases} _{0,V \neq \tilde{V}_{n}}^{1,V = \tilde{V}_{n}}\end{cases}        

        VES指标:指生成有效SQL的效率,其中有效SQL指的是预测的SQL中结果集合与真实SQL的结果集一致的那些SQL。在公式上VES可以表示为:

VES = \frac{\sum _{n=1}^{N}\mathbb{1}(V_{n},\tilde{V}_{n}) \cdot R(Y_{n},\tilde{Y}_{n}))}{N},R(Y_{n},\tilde{Y}_{n})=\sqrt{\frac{E(Y_{n})}{E(\tilde{Y}_{n})}}

        其中Y_{n}代表的是真实SQL,而\tilde{Y}_{n}代表的是预测的SQL,R(\cdot )是相对于真实SQL的相对执行效率,E(\cdot )是一个用于度量给定环境中每个SQL的绝对执行效率的函数。在这里执行效率主要考虑的是运行时间。

        就目前的排行榜的情况来看,现在的准确率仍然不够高,EX指标现在更应该被关注

6.Experiments

6.1 Baseline Models

        介绍了BIRD中两种基准模型的性能。

        第一种是基于微调技术的,它通过调整语言模型的所有参数来学习带注释的训练集,从而输出SQL。在BIrD中主要使用T5家族。

        第二种是基于上下文学习的,不需要额外的训练就能产生结果。这一类提供了CodeX,ChatGPT,GPT-4,Claude-2,Palm-2。

        此外还提供了一个最先进的SPIDER模型——DIN-SQL,来评估BIRD数据集提出的挑战。

        提供了几张对比图,对比了各种先进(之前先进)的text-to-SQL模型在BIRD中的表现,值得注意的是人类在无外部知识的情况下,EX是72.37%,有外部知识的情况下,EX是92.26% 。

 6.2 Execution Accuracy Analysis

        GPT-4超越了所有基准大语言模型,Claude-2紧随其后。DIN-SQL+GPT-4实现了一个新的先进的结果。虽然结果有了很大进步进步了,但还是明显落后于人类,这种差距不仅突出了 BIRD 的复杂性,而且也为发现更有能力的模型或适用于真实世界的text-to-SQL 场景的高级推理提示方法提供了机会。

6.3 Baseline Performance on Spider

         Spider在之前是最普遍和最复杂的text-to-sql基准测试,它主要关注于评估于数据库模式相关的语义解析能力。为了说明BIRD的难度更大,如上图,在BIRD中和Spider中测试了相同的基准模型的EX。其中,为了公平评估,所有模型都提供了关于值的知识,并在两个数据集中都为模型实现了相同的编程提示。

6.4 Efficiency Analysis

        现在可以知道具有较高的EX模型更有可能实现较高的VES,可以理解为text-to-sql模型必须准确预测结果才能达到更高的VES从而实现现实目的。

        两阶段优化:text-to-sql的目标可以分为两个阶段,第一个阶段是生成正确的SQL语句,第二个阶段是优化上一个阶段的SQL查询。

        与数据库对话:BIRD 引入了“与数据库聊天”的新模式,通过生成与数据库交互的全局 SQL 查询,使模型能够了解数据类型和分布。这种方法为开发更有效的 SQL 查询奠定了基础。正如在实验中所观察到的,通过在数据库中配置索引,SQL 查询节省的时间百分比可以达到87.3% 的效率。

6.5 Knowledge Evidence Analysis 

​​​​​​​                                                                

        上图表明 BIRD 中的外部知识证据(图中的KG就是)对于模型更好地理解数据库的值是非常有效的。此外,它还说明了数据库的值对于text-to-sql模型面对真实的数据库是非常重要。        

        在知识和数据资源较少的情况下,使用 COT(Chain-Of-Thought ) 进行多步推理,可以获得更好的推理效果。尽管如此,我们观察到 ChatGPT 模型在有外部知识根据的情况下使用COT性能有所下降。我们推测在有外部知识根据的情况下,LLM 的内部多步知识推理是不兼容的。因此,有效地将 LLM 强大的多步自推理能力与外部知识推理相结合的方法的发展提出了一个有希望的未来方向

6.6 More Analysis

        细粒度分类分析:

        如上图,GPT-4全方面碾压了其他两个。尽管如此,在所有的模型中,排名和数值计算的性能都较差。这种局限性表明,当代LLM对于深度数据科学任务是不足以胜任的,因为这类任务总是在模糊用户查询的上下文包含的数学计算和排名。相反,在领域知识,同义词检测和价值说明方面表现出相对较好的性能,这可以归因于它们在与训练阶段具有足够的语言训练和推理能力。

        人类表现:之前有提过

        错误分析:主要是对ChatGPT的错误分析,如下图:

        随机抽取了500个错误,错误分类如下:

                (1)错误的Schema Linking(41.6%):ChatGPT可以准确理解数据库结构,但错误地关联了表和列

                (2)误解数据库内容(40.8%):无法回忆起正确的数据库结构或生成了假的模式项

                (3)误解evidence(17.6%):不能准确理解人类提供的evidence

                (4)语法错误(3%)

7. Related Work

8.Limitation and Future work

        尽管双盲注释产生了高质量的 SQL 注释,但是这个过程是资源密集型的。未来的研究可能会探索一种基于人机交互的方法,结合先进的人工智能系统,如 GPT-4,用于执行部分注释任务,以保持数据质量,同时减少人工劳动。此外,SQLite 被选为text-to-SQL基准测试和本研究的主要 SQL 代码基础,因为它对用户友好。但它在获取查询执行计划(QEP)以进行精确的效率计算时和适应不同的 SQL语法方面存在一定困难。未来将实现BIRD的PostgreSQL和MySQL版本,以解决这些限制,并为 NLP 和 DB 专家提供更健壮的研究环境。

9.Conclusion

        在本文中,我们介绍了 BIRD,一个大规模的text-to-SQL 的基准测试,特别关注大型数据库的值。BIRD 通过探索三个额外的挑战来缩小text-to-SQL 研究和现实世界应用程序之间的差距: 1)处理庞大而嘈杂的数据库的值,2)外部知识根据,3)优化 SQL 执行效率。我们的实验结果表明,与现有的基准测试相比,BIRD 提出了更为严峻的挑战,因为即使是最流行和功能最强大的 LLM——ChatGPT,也远远不能满足人类的性能要求。这为text-to-SQL 的任务留下了很大的改进和创新空间。此外,我们彻底的效率和错误分析为未来的研究提供了有价值的见解和方向,为在真实场景中开发更高级和更实用的文本到 SQL 解决方案铺平了道路。

10.我认为的其他的值得注意的

        1. BIRD 中确定了三种“ ORDER BY”使用场景: 1)基于排名的问题(例如,“根据他们的数学成绩给我看前5名的学生”) : 只要结果包含正确的学生,排名就不那么重要。2)最高级的问题: (例如,“列出美国最长的河流”) : 答案通常只包含一个项目(或者结果) ,所以影响是最小的。3)需要特定顺序的问题(例如,“根据学生的数学成绩以降序排列给我看前五名”) : 这个场景明确要求正确的顺序,可能导致误判。然而,这种情况并不常见,只占 BIRD 的不到1% 。

        2.关键字分为了7类:

                (1)主体关键字:•SELECT•FROM•WHERE•AND•OR•NOT•IN•EXISTS•IS•NULL

•IIF•CASE•CASE WHEN.

                (2)join关键字:• INNER JOIN • LEFT JOIN • ON • AS.

                (3)子句关键字:• BETWEEN • LIKE • LIMIT • ORDER BY • ASC • DESC • GROUP BY •HAVING•UNION•ALL•EXCEPT•PARTITION BY.

                (4)聚合函数关键字:• AVG • COUNT • MAX • MIN • ROUND • SUM.

                (5)标量关键字:• ABS • LENGTH • STRFTIME • JULIADAY • NOW • CAST • SUBSTR • INSTR.

                (6)比较关键字:•=•>•<•>=•<=•!=

                (7)计算关键字:•-•+•*•/

YOLOv5是一种用于目标检测的深度学习算法,能够在图像中准确识别和定位多个不同种类的物体。"yolov5 鸟类检测 bird鸟类检测数据集.rar"是一个用于训练和测试鸟类检测模型的数据集。该数据集通常包含大量的鸟类图像,每个图像都标注了鸟类物体的边界框和类别标签。 使用YOLOv5进行鸟类检测的过程通常包括以下步骤: 1. 数据准备:将鸟类检测数据集解压缩后,需要将数据集划分为训练集和测试集两部分。通常采用80%的数据作为训练集,20%的数据作为测试集。 2. 数据标注:使用专业的图像标注工具,如LabelImg,对训练集中的鸟类图像标注边界框和类别标签。边界框表示鸟类物体在图像中的位置,类别标签表示该物体属于哪个鸟类别。 3. 模型训练:使用标注好边界框和类别标签的训练集数据,通过训练YOLOv5模型来学习鸟类物体的特征。在训练过程中,可以调整模型的超参数和训练轮数,以获得更好的模型性能。 4. 模型测试:使用测试集数据对已经训练好的模型进行性能评估。将测试集中的图像输入到YOLOv5模型中,模型会输出识别和定位的鸟类物体的边界框和类别标签。通过计算模型的准确率、召回率等指标来评估模型的性能。 5. 模型应用:训练好的YOLOv5模型可以用于鸟类物体的实时检测和定位。将图像输入模型,模型会返回识别和定位的鸟类物体信息,从而帮助人们进行鸟类监测、环境保护等工作。 通过使用"yolov5 鸟类检测 bird鸟类检测数据集.rar"进行训练,我们可以得到一个准确识别鸟类物体的YOLOv5模型,从而在鸟类检测任务中取得良好的性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值