假如咱们要满意数据库的普通用户的需求,咱们有必要打破目前阻碍这些用户自由运用他们的母语的妨碍。——Ted Codd

这段评论是在议论1974年的情境下提出的,其时Ted Codd构想了一种名为Rendezvous的依据对话的体系,旨在让普通用户能够有效地与结构化数据库进行交流。这个项目是在他提出关系模型用于数据库管理之后开端的,这也为他赢得了图灵奖。然而,其时这个项目缺少彻底的资源支撑,自然言语处理范畴处于萌芽阶段,数字化文本和计算资源也十分匮乏。在曩昔的50年里取得了巨大前进,特别是在自然言语处理范畴,计算资源的本钱也显著下降。这样的前进将Codd对Rendezvous的愿景推到了当前研讨和开展的前沿。

本章经过与ChatGPT进行的短期会话介绍了这个主题,展现了该范畴取得的开展。介绍之后将评论在实际布置自然言语界面到数据库时面对的应战,以及本书将包含的内容。

一个与ChatGPT的对话


ChatGPT是由OpenAI开发的谈天机器人,建立在一系列大型言语模型(LLMs)之上,包含GPT-3.5和GPT-4。该谈天机器人运用一组大型言语模型来模仿人类对话,每个模型都针对一些特定使命进行练习。运用这些言语模型使得谈天机器人能够撰写文章、回答问题、创造音乐和编写代码。ChatGPT能够记住同一对话中的从前提示,使对话愈加自然。

数据库的自然言语接口——概览

考虑一个包含在图1.1中显现的方式的数据库。数据库有一个名为teams的表,记录了团队称号及其所在城市,还有一个名为games的表,记录了不同团队之间的竞赛状况。每场竞赛都有一个主队和一个客队,对于每场竞赛,主队和客队的得分分别用hscore和vscore表示。

假定咱们想找出一切与Oilers进行竞赛的团队,而且咱们想要用SQL来表达这个查询。有了ChatGPT的协助,咱们将表界说和查询作为提示供给给ChatGPT。表1.1显现了给出的提示,而谈天机器人的响应显现在赤色字体中。在没有供给任何额外信息的状况下,谈天机器人确定hscore指的是主队的得分,vscore指的是客队的得分,并生成了一个正确的SQL查询。咱们的提示以冒号而不是分号结束第一个表界说,但谈天机器人简略地忽略了这个拼写错误。咱们在提示中进一步输入了别的三个查询,谈天机器人在每种状况下都回来了正确的SQL查询,如表1.2所示。这里能够做出几点调查。首先,谈天机器人记住了上下文,并假定这是前一个会话的连续,因而运用了从前给出的表来编写查询。其次,在输入中对拼写错误不太灵敏。例如,查询“Write a SQLite query to teams.. . .”缺少了“find”一词,但谈天机器人仍然给出了正确的SQL查询。第三,谈天机器人对提示格局不太灵敏。咱们的最终一个查询以英语中的查询最初,没有前面查询中给出的前缀。谈天机器人从上下文中知道需求一个SQL查询,并供给了该查询。最终,一切生成的SQL查询将计算出正确的成果,尽管有些生成的SQL查询会给出额外的未被要求的信息。例如,最终两个查询只询问了团队称号,但生成的SQL查询不只会给出团队的称号,还会给出他们的胜负次数。此外,对于最终一个查询,条件“losses = 0”是多余的。

数据库的自然言语接口——概览

ChatGPT并非孤立开发的。它建立在自然言语处理和代码生成范畴许多从前模型和技能的基础上,包含对数据库的自然言语接口(NLIDBs)的曩昔作业。对ChatGPT开展做出奉献的一些要害立异包含神经网络架构的前进,比如Transformer模型,以及运用大量的练习数据来改进言语了解能力。此外,诸如迁移学习和微调等技能已协助模型习惯更广泛的范畴和使命。

NLIDBs in the Wild


跟着咱们目睹的NLIDB模型,特别是依据LLM的谈天机器人如ChatGPT的重大开展,预计这些新模型将被纳入许多商业产品和数据库接口中。微软现已开端将ChatGPT添加到其Office 365产品中,包含Word和Powerpoint,以及其Bing搜索引擎。没有理由不将ChatGPT添加到Microsoft SQL Server和其他商业数据库体系中。

数据库的自然言语接口——概览

甚至在强壮的依据LLM的谈天机器人呈现之前,越来越多的商业产品以某种方式支撑自然言语查询,以便业务用户以自然言语发问并查询数据。例如,在2022年Gartner Analytics和BI平台法力象限报告中提到的20家供货商中,超过一半在某种程度上供给NLIDB支撑。在本节中,咱们将从现有商业产品中供给详细示例,评论NLIDB支撑的要害方面。咱们的目标是协助读者全面了解户外NLIDB的要害设计决议计划,并取得评价和比较此类产品所需的必要常识和框架

言语支撑

咱们能够将一个NLIDB分为支撑受控自然言语(CNLs)和支撑(任意)自然言语两种类型,假如它束缚了输入的语法和词汇,则属于支撑CNLs;假如没有束缚,则属于支撑(任意)自然言语。运用CNLs的优点在于经过语法上的束缚削减或消除歧义,并削减了解完整自然言语的复杂性。表1.3展现了对CNL的要害词汇和格局的部分全面文档。许多商业产品没有清晰强加这种束缚,并挑选协助体系能够了解的查询输入。

数据库的自然言语接口——概览

咱们还能够依据是否支撑一个自然言语来将NLIDB分为单言语或多言语。许多商业产品中的NLIDB是单言语的(通常是英语)。与此同时,少量产品供给多言语支撑:例如,Oracle Analytics支撑多达28种言语。

辅佐查询输入

在商业产品中,NLIDB支撑通常供给以下常见的辅佐功用,以加快查询的拟定进程并削减输入错误:

  1. 主动完结(Autocomplete):主动完结(也称为输入提示)在用户输入时预测其余部分。它引导用户供给体系现已了解的要害词和术语。例如,当用户在查询中输入“sales”时,NLIDB或许会供给几种或许的办法来完结查询,都以字符串“sales”最初。

  2. 主动更正(Autocorrect):主动更正会主动纠正常见的拼写或打字错误,并供给首字母缩写和近义词匹配。例如,NLIDB能够将拼写错误的“cafilornia”主动更正为“california”,并将“revenue”匹配到其近义词“sales”。

  3. 查询主张(Query Suggestion):查询主张供给用户在输入进程中能够从中挑选的或许查询列表,以削减查询输入的作业量,并协助用户找到体系能够了解的查询。

  4. 查询推荐(Query Recommendation):查询推荐主张依据预先确定的数据集主动确定或手动指定的查询。它经过引导用户提出哪些类型的查询,以及为有限了解体系或数据的用户供给更风趣的成果或难以表述的查询方向,来促进数据探究进程。

咱们将在第7章中更详细地评论这些功用。

表达能力

咱们能够依照以下维度对NLIDB的表达能力进行分类:

  1. 查询复杂度:NLIDB支撑的查询复杂度取决于它能够将问题转化为的查询言语类型和特定子集。最流行的底层查询言语包含SQL和SPARQL。一些体系支撑特定于底层数据存储的自界说查询言语(例如,阿里云TableStore)。一些体系或许支撑跨多个具有不同查询言语的数据存储的问题。简直一切体系都支撑简略的挑选(例如,“显现收入”)、过滤(例如,“在美国”)、聚合(例如,“曩昔5年”)、以及排名/排序(例如,“按金额排序”)。然而,通常不支撑需求嵌套查询的更复杂状况(例如,“显现按销售总额排序的国家”)。
  2. 数据功用:NLIDB能够答应用户指定除了查询之外的其他类型的数据功用。数据功用能够是内置函数或用户界说的函数。图1.2显现了一个示例问题“未来6周的本钱”,对应于内置的预测函数。
  3. 可视化控制:NLIDB能够答应用户在问题中指定用于成果显现的可视化办法。

数据库的自然言语接口——概览
数据库的自然言语接口——概览

定制性

为了确保NLIDB支撑能够在特定客户数据上正常作业,NLIDB需求运用户能够经过定制或经过与用户交互学习隐式地进行支撑定制化。支撑定制性的常见功用包含:

  1. 近义词:近义词支撑是完成定制性的最常见功用。它答应底层NLIDB扩展其词汇容量并了解更多术语。NLIDB能够答应用户显式地指定近义词,从用户交互(例如查询重构)中学习,并运用外部常识库(如WordNet)。

  2. 范畴支撑:NLIDB也能够事先定制以了解其客户重要范畴中的言语。例如,图1.3中所示的NLIDB了解“best-selling”在“加利福尼亚州的畅销类别是什么?”中意味着最高收入,并具有对销售、营销和零售范畴的内置支撑。

未来展望


本书全面审视了自然言语与数据库接口的要害概念,包含查询了解和意义表示、将查询转化为结构化方式、数据模型和查询言语、评价指标和基准、将结构化数据转化为文本以及与交互性相关的问题。相关主题分布在多个研讨范畴,包含数据库体系、自然言语处理、机器学习、人机交互和可视化,咱们的目标是充沛包含这些主题,或许填补一些或许阻碍进一步开展的距离和脱节。本书包含了导致更强壮NLIDB接口的一些技能开展。它还突出了要害的根本概念和一些应战与研讨机会。本书的其余部分分为以下三个部分。

第一部分由第2章和第3章组成,介绍了NLIDB和数据库的要害概念。详细而言,第2章介绍了NLIDB的解剖,评论了传统依据管道的办法的要害组件以及构建根本管道的一些常见办法。第3章介绍了数据模型和查询言语,要点介绍了在职业和研讨社区中占主导地位的关系模型。它突出了SQL的要害组件,从功用和引进的难度级别的视点,以及优化和评价查询时的一些问题。

本书的第二部分包含了NLIDB的核心部分:从文本到数据和从数据到文本。第4章介绍了第一部分-从文本到数据。这个组件将自然言语表达映射到诸如SQL之类的方式查询言语。咱们全面审视了相关概念和要害组件。评价预期能够跨范畴和不同数据库方案作业的文本到数据模型一直是一个应战。第5章回忆了一些现已开展的评价办法,包含新式的评价指标和基准。一个NLIDB不只局限于将自然言语表达映射到能够履行以从数据库中提取数据的方式言语。它通常包含将以表格方式回来的成果转化或描述为自然言语。第6章全面审视了数据到文本生成的这一主题。

最终,第7章介绍了交互性,这是NLIDB的一个要害方面,影响其有效性和实用性。在本章中,咱们介绍了交互的不同维度,并评论了从拼写纠正到会话式NLIDB等相关的适用技能。