当LLM遇到Database:阿里达摩院联合HKU推出Text-to-SQL新基准​(2)

简介: 当LLM遇到Database:阿里达摩院联合HKU推出Text-to-SQL新基准​

方法概述


新的挑战


该研究主要面向真实数据库的 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 技术提供了进步空间,有助于研究人员开发更先进、更实用的数据库应用。

相关文章
|
1月前
|
SQL druid Java
springboot +logback+阿里数据源(druid)打印sql日志以及简化日志输出方式
springboot +logback+阿里数据源(druid)打印sql日志以及简化日志输出方式
539 0
|
9月前
|
SQL 数据库 索引
阿里P8整理出SQL笔记:收获不止SOL优化抓住SQL的本质
开头我先说: 有人就有江湖,有江湖就有IT系统,有IT系统就有数据库,有数据库就有SQL,SQL应用可一字概括:“"广"。加之其简单易学,SQL实现也可一字概括:“乐”。
|
20天前
|
SQL 关系型数据库 MySQL
怎么通过第三方库实现标准库`database/sql`的驱动注入?
在Go语言中,数据库驱动通过注入`database/sql`标准库实现,允许统一接口操作不同数据库。本文聚焦于`github.com/go-sql-driver/mysql`如何实现MySQL驱动。`database/sql`提供通用接口和驱动注册机制,全局变量管理驱动注册,`Register`函数负责添加驱动,而MySQL驱动在`init`函数中注册自身。通过这个机制,开发者能以一致的方式处理多种数据库。
|
13天前
|
SQL 数据库
SQL CREATE DATABASE 语句
SQL CREATE DATABASE 语句
32 4
|
24天前
|
SQL 数据库
SQL CREATE DATABASE 语句
SQL CREATE DATABASE 语句
17 2
|
26天前
|
SQL 机器学习/深度学习 人工智能
Web LLM 实验:利用 LLM API 实现 SQL 注入
Web LLM 实验:利用 LLM API 实现 SQL 注入
|
1月前
|
SQL 运维 Linux
SQL基础(1),从三流Linux运维外包到秒杀阿里P7,
SQL基础(1),从三流Linux运维外包到秒杀阿里P7,
|
1月前
|
SQL 自然语言处理 算法
NL2SQL基础系列(1):业界顶尖排行榜、权威测评数据集及LLM大模型(Spider vs BIRD)全面对比优劣分析[Text2SQL、Text2DSL]
NL2SQL基础系列(1):业界顶尖排行榜、权威测评数据集及LLM大模型(Spider vs BIRD)全面对比优劣分析[Text2SQL、Text2DSL]
NL2SQL基础系列(1):业界顶尖排行榜、权威测评数据集及LLM大模型(Spider vs BIRD)全面对比优劣分析[Text2SQL、Text2DSL]
|
1月前
|
SQL 监控 Oracle
SAP ABAP 系统错误 Return value of the database layer SQL dbsl rc 99
SAP ABAP 系统错误 Return value of the database layer SQL dbsl rc 99