悠扬随风 发表于 2024-9-25 21:41:57

【学习日志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%。但尽管如此,大模子仍然不能运用于现实生活,因为以往的基准测试都是在数据库模式上进行的,很少使用数据库的值,这使得学术研究和现实天下之间存在着巨大差异。
        首先,现在最先进的模子仍然难以将其推广到真实环境,因为现实环境下的数据库有规模大和有噪声值的特点。
https://i-blog.csdnimg.cn/direct/3f67875c431e4856903ca2e291c5c20b.png
           数据库含有噪声,如图salary中的值都是字符串且每个salary前面都有一个"$"符号,难以转换为我们结果需要的float格式。
        其次,数据库规模变大了,获取完整的上下文会变的非常困难,因此需要外部知识来进行推理才气全部明白。
https://i-blog.csdnimg.cn/direct/842aa209aea84681a7614a194b8748cb.png
           有些条件或者上下文,问题并不会明说。例如上图的权限问题(第二个),需要先判断账户的范例才行。 
        最后,现有的基准测试没有考虑SQL的执行服从,特殊是在大型数据库中,一个高效的SQL有紧张现实意义。
https://i-blog.csdnimg.cn/direct/1e31ea3075904dbda267b91f44e2021c.png
    即使能得到正确结果,但在现实中对于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 (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问题可以表现为:
https://i-blog.csdnimg.cn/direct/8716ee6b5ba04c95a4fa367e05b56078.png
        此中的https://latex.csdn.net/eq?%24f%28%5Ccdot%20%7C%20%5Ctheta%20%29%24)表现有参数https://latex.csdn.net/eq?%5Ctheta的模子或者神经网络。
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

        整体统计:
https://i-blog.csdnimg.cn/direct/59a08c6cd3e54cd8993e0907b482e722.png
            Function指SQL是否包含over、julianday,cast,round,substr等
         Knowledge指这个数据集是否需要使用模子外部的知识进行推理
         Efficiency指此数据集是否考虑了执行服从
        问题统计:问题被分为了两大类:基本范例和推理范例。每一类都包含4-5个微观类别。
                (1)基本类别:不需要明白数据库的值就可以答复。包括:匹配(83.9%) ,排名(20.3%) ,比力(16.7%) ,计数(30.4%) ,聚合(15.7%)。
https://i-blog.csdnimg.cn/direct/e8a0fbf7535a448c9cb91fdf7b003542.png
                (2)推理范例:需要知道值的外部知识才气答复。包括:领域知识(23.6%)、数值盘算(24.5%)、同义词(7.2%)、值说明(70.1%)
https://i-blog.csdnimg.cn/direct/ace45c83173b4effb9ac431b4db22c5f.png
        数据库统计:
https://i-blog.csdnimg.cn/direct/57fa5d32e8074f32952f3ef055def7e8.png
           颜色越深数据库大小越大,所以进行训练的时候可以有一些倾向。 

https://i-blog.csdnimg.cn/direct/f3d82dd96d444d028e24cfe4de5e4298.png       
           如图相当一部门数据包含与时间有关的值。是否可以将模子调教的对时间敏感?
SQL统计:
https://i-blog.csdnimg.cn/direct/2b933ac0735a4779816f705b9e2e9aae.png
            好像没有说纵坐标的意思
 5.Evaluation Metrics

        先容了BIRD的两个最紧张的评价指标EX指标(执行准确度)和VES指标(有效服从得分)
        EX指标:教唆用后的结果正确的预测的SQL占总体评估集的比例。假设预测的SQL的结果集合为https://latex.csdn.net/eq?V_%7Bn%7D,真实SQL的执行结果集合,则EX指标可以表现为:
https://latex.csdn.net/eq?EX%20%3D%20%5Cfrac%7B%5Csum%20_%7Bn%3D1%7D%5E%7BN%7D%5Cmathbb%7B1%7D%28V_%7Bn%7D%2C%5Ctilde%7BV%7D_%7Bn%7D%29%29%7D%7BN%7D
此中:
https://latex.csdn.net/eq?%5Cmathbb%7B1%7D%28V_%7Bn%7D%2C%5Ctilde%7BV%7D_%7Bn%7D%29%20%3D%20%5Cbegin%7Bcases%7D%20_%7B0%2CV%20%5Cneq%20%5Ctilde%7BV%7D_%7Bn%7D%7D%5E%7B1%2CV%20%3D%20%5Ctilde%7BV%7D_%7Bn%7D%7D%5Cend%7Bcases%7D        

        VES指标:指天生有效SQL的服从,此中有效SQL指的是预测的SQL中结果集合与真实SQL的结果集同等的那些SQL。在公式上VES可以表现为:
https://latex.csdn.net/eq?VES%20%3D%20%5Cfrac%7B%5Csum%20_%7Bn%3D1%7D%5E%7BN%7D%5Cmathbb%7B1%7D%28V_%7Bn%7D%2C%5Ctilde%7BV%7D_%7Bn%7D%29%20%5Ccdot%20R%28Y_%7Bn%7D%2C%5Ctilde%7BY%7D_%7Bn%7D%29%29%7D%7BN%7D%2CR%28Y_%7Bn%7D%2C%5Ctilde%7BY%7D_%7Bn%7D%29%3D%5Csqrt%7B%5Cfrac%7BE%28Y_%7Bn%7D%29%7D%7BE%28%5Ctilde%7BY%7D_%7Bn%7D%29%7D%7D
        此中https://latex.csdn.net/eq?Y_%7Bn%7D代表的是真实SQL,而https://latex.csdn.net/eq?%5Ctilde%7BY%7D_%7Bn%7D代表的是预测的SQL,https://latex.csdn.net/eq?R%28%5Ccdot%20%29是相对于真实SQL的相对执行服从,https://latex.csdn.net/eq?E%28%5Ccdot%20%29是一个用于度量给定环境中每个SQL的绝对执行服从的函数。在这里执行服从主要考虑的是运行时间。
           就现在的排行榜的环境来看,现在的准确率仍然不够高,EX指标现在更应该被关注
6.Experiments

6.1 Baseline Models

        先容了BIRD中两种基准模子的性能。
        第一种是基于微调技能的,它通过调整语言模子的所有参数来学习带解释的训练集,从而输出SQL。在BIrD中主要使用T5家属。
        第二种是基于上下文学习的,不需要额外的训练就能产生结果。这一类提供了CodeX,ChatGPT,GPT-4,Claude-2,Palm-2。
        此外还提供了一个最先进的SPIDER模子——DIN-SQL,来评估BIRD数据集提出的挑战。
https://i-blog.csdnimg.cn/direct/44300312d8554aeaab03914b3662e53b.png
           提供了几张对比图,对比了各种先进(之前先进)的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

https://i-blog.csdnimg.cn/direct/660533642dc84f0c9955416e8c4c831e.png
         Spider在之前是最普遍和最复杂的text-to-sql基准测试,它主要关注于评估于数据库模式相干的语义解析能力。为了说明BIRD的难度更大,如上图,在BIRD中和Spider中测试了雷同的基准模子的EX。此中,为了公平评估,所有模子都提供了关于值的知识,并在两个数据会合都为模子实现了雷同的编程提示。
6.4 Efficiency Analysis

        现在可以知道具有较高的EX模子更有大概实现较高的VES,可以明白为text-to-sql模子必须准确预测结果才气达到更高的VES从而实现现实目的。
        两阶段优化:text-to-sql的目标可以分为两个阶段,第一个阶段是天生正确的SQL语句,第二个阶段是优化上一个阶段的SQL查询。
https://i-blog.csdnimg.cn/direct/4448e9723c23470db5d220f03c8af073.png
        与数据库对话:BIRD 引入了“与数据库聊天”的新模式,通过天生与数据库交互的全局 SQL 查询,使模子可以或许了解数据范例和分布。这种方法为开发更有效的 SQL 查询奠定了基础。正如在实验中所观察到的,通过在数据库中配置索引,SQL 查询节省的时间百分比可以达到87.3% 的服从。
https://i-blog.csdnimg.cn/direct/41af927f62d243c78a74572fefb3fd77.png
6.5 Knowledge Evidence Analysis 

​​​​​​​https://i-blog.csdnimg.cn/direct/55c0d3a8e84b4783b2fd18fd1ebd9689.png                                                                
        上图表明 BIRD 中的外部知识证据(图中的KG就是)对于模子更好地明白数据库的值是非常有效的。此外,它还说明了数据库的值对于text-to-sql模子面临真实的数据库是非常紧张。        https://i-blog.csdnimg.cn/direct/3b9edc70403945978b5bb417d3271850.png
        在知识和数据资源较少的环境下,使用 COT(Chain-Of-Thought ) 进行多步推理,可以得到更好的推理效果。尽管如此,我们观察到 ChatGPT 模子在有外部知识根据的环境下使用COT性能有所降落。我们推测在有外部知识根据的环境下,LLM 的内部多步知识推理是不兼容的。因此,有效地将 LLM 强大的多步自推理能力与外部知识推理相结合的方法的发展提出了一个有希望的未来方向
6.6 More Analysis

        细粒度分类分析:
https://i-blog.csdnimg.cn/direct/001a150b71674028b7c7d03661da0295.png
        如上图,GPT-4全方面碾压了其他两个。尽管如此,在所有的模子中,排名和数值盘算的性能都较差。这种局限性表明,当代LLM对于深度数据科学使命是不敷以胜任的,因为这类使命总是在模糊用户查询的上下文包含的数学盘算和排名。相反,在领域知识,同义词检测和代价说明方面表现出相对较好的性能,这可以归因于它们在与训练阶段具有足够的语言训练和推理能力。
        人类表现:之前有提过
        错误分析:主要是对ChatGPT的错误分析,如下图:
https://i-blog.csdnimg.cn/direct/08e1d67f22d94f83a74a29814fa5ec08.png
        随机抽取了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)盘算关键字:•-•+•*•/


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 【学习日志2】BIRD数据集