当LLM遇到Database:阿里达摩院联合HKU推出Text-to-SQL新基准
背景
大模型(LLM)为通用人工智能(AGI)的发展提供了新的方向,其通过海量的公开数据,如互联网、书籍等语料进行大规模自监督训练,获得了强大的语言理解、语言生成、推理等能力。然而,大模型对于私域数据的利用仍然面临一些挑战,私域数据是指由特定企业或个人所拥有的数据,通常包含了领域特定的知识,将大模型与私域知识进行结合,将会发挥巨大价值。
私域知识从数据形态上又可以分为非结构化与结构化数据。对于非结构化数据,例如文档,通常都通过检索的方式进行增强,可以利用 langchain 等工具可以快速实现问答系统。而结构化数据,如数据库(DB),则需要大模型与数据库进行交互,查询和分析来获取有用的信息。围绕大模型与数据库,近期也衍生出一系列的产品与应用,譬如利用 LLM 打造智能数据库、执行 BI 分析、完成自动表格构建等。其中,text-to-SQL 技术,即以自然语言的方式与数据库进行交互,一直以来都是一个备受期待的方向。
在学术界,过去的 text-to-SQL 基准仅关注小规模数据库,最先进的 LLM 已经可以达到 85.3% 的执行准确率,但这是否意味着 LLM 已经可以作为数据库的自然语言接口?
新一代数据集
最近,阿里巴巴联合香港大学等机构推出了面向大规模真实数据库的全新基准 BIRD (Can LLM Already Serve as A Database Interface? A BIg Bench for Large-Scale Database Grounded Text-to-SQLs), 包含 95 个大规模数据库及高质量的 Text-SQL pair,数据存储量高达 33.4 GB。之前最优的模型在 BIRD 上评估仅达到 40.08%,与人类 92.96% 的结果还有很大差距,这证明挑战仍然存在。除了评估 SQL 正确性外,作者还增加了 SQL 执行效率的评估,期待模型不仅可以写正确的 SQL,还能够写出高效的 SQL。
论文:https://arxiv.org/abs/2305.03111
主页:https://bird-bench.github.io
代码:https://github.com/AlibabaResearch/DAMO-ConvAI/tree/main/bird
目前,BIRD 的数据、代码、榜单都已经开源,在全球的下载量已超10000。BIRD在推出之始,就引发了 Twitter 上的广泛关注与讨论。
海外用户的评论也非常精彩:
不容错过的 LLM 项目
非常有用的检查点,提升的温床
AI 可以帮助你,但还不能取代你
我的工作暂时是安全的…
方法概述
新的挑战
该研究主要面向真实数据库的 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 技术提供了进步空间,有助于研究人员开发更先进、更实用的数据库应用。