摘要
通过数据库解决自然语言问题的人工智能系统有望释放巨大的价值。这样的系统将允许用户利用语言模型 (LM) 强大的推理和知识能力以及数据管理系统的可扩展计算能力。这些组合功能将使用户能够通过自定义数据源提出任意的自然语言问题。然而,现有的方法和基准测试对这种设置探索不足。Text2SQL 方法仅关注可以用关系代数表达的自然语言问题,这仅代表了真实用户希望提出的一小部分问题。同样,检索增强生成 (RAG) 考虑了可以通过对数据库中的一条或几条数据记录进行点查找来回答的有限查询子集。我们提出了表增强生成 (TAG),这是一种统一的通用范式,用于回答数据库中的自然语言问题。TAG 模型代表了 LM 和数据库之间以前未探索过的广泛交互,并为利用 LM 对数据的世界知识和推理能力创造了令人兴奋的研究机会。我们系统地开发了基准来研究 TAG 问题,发现标准方法正确回答的查询不超过 20%,这证实了需要进一步研究这一领域。我们在 https://github.com/TAG-Research/TAG-Bench 上发布了基准代码。
1.介绍

语言模型有望通过让用户提出针对数据的自然语言问题来彻底改变数据管理,这导致了大量针对 Text2SQL 和检索增强生成 (RAG) 方法的研究。然而,根据我们的经验(包括来自 Databricks 的内部工作负载和客户的经验),用户的问题通常超出了这些框架的能力,因此需要对将数据库系统的逻辑推理能力与现代语言模型 (LM) 的自然语言推理能力相结合的系统进行新的研究投资。
具体来说,我们发现实际业务用户的问题通常需要复杂的领域知识、世界知识、精确计算和语义推理组合。数据库系统显然通过其存储的最新数据以及大规模精确计算(语言模型不擅长)提供了领域知识来源。
语言模型通过两种主要方式扩展了数据库的现有功能:
首先,语言模型具有对文本数据的语义推理能力,这是许多自然语言用户查询的核心元素。例如,Databricks 的一项客户调查显示,用户希望提出这样的问题:which customer reviews of product X are positive? 或者 why did my sales drop during this period?。这些问题代表了复杂的基于推理的任务,例如对文本字段的情绪分析或趋势总结。语言模型非常适合这些任务,而这些任务无法通过传统数据库系统中的精确计算或关系原语进行建模。
其次,LM 可以使用在模型训练期间学习到的知识,这些知识隐含在模型权重中,可以有力地增强用户的数据,使其具有数据库表模式未明确捕获的世界知识。例如,Databricks 内部 AI 用户在包含帐户名称、产品和收入属性的表格上询问:what are the QoQ trends for the “retail” vertical?。要回答这个问题,系统必须了解企业如何定义 QoQ(例如,从上一季度到本季度或从去年本季度到今年本季度的季度环比趋势),以及哪些公司被视为零售垂直行业。这项任务非常适合利用预训练或微调的 LM 所掌握的知识。
能够有效利用数据库和 LM 来处理自然语言问题的系统,在其全部通用性方面,具有改变用户理解数据的方式的潜力。不幸的是,这些问题目前无法通过常见方法(例如 Text2SQL 和 RAG)来回答。虽然 Text2SQL 方法适用于具有直接关系等价物的自然语言查询子集,但它们无法处理需要语义推理或世界知识的大量用户查询。例如,之前询问哪些客户评论是正面的用户问题可能需要对评论进行逻辑的逐行 LM 推理,以将每个评论分类为正面或负面。同样,询问销售额下降的原因的问题涉及一个必须跨许多表条目聚合信息的推理问题。
另一方面,RAG 模型仅限于对一些数据记录进行基于相关性的简单点查找,然后进行单个 LM 调用。该模型仅提供可通过点查找回答的问题子集,也无法利用许多数据库系统更丰富的查询执行功能,这使得计算任务(例如计数、数学和过滤)只能通过一次调用容易出错的 LM 来完成。除了在计算任务中容易出错和效率低下之外,LM 在长上下文提示上的表现也不佳,这限制了它们在 RAG 生成阶段大规模推理数据的能力。
我们提出 table-augmented generation (TAG) 作为通过数据库回答自然语言问题的统一框架。具体来说,TAG 定义了三个关键步骤,如图 1 所示。首先,问题合成步骤 syn:将用户的任意自然语言请求 R 转换为可执行的数据库查询 Q。然后,查询执行步骤 exec: 在数据库系统上执行 Q 以有效计算相关数据 T 。最后,答案生成步骤 gen:利用 R 和 T ,其中 LM 被设计(可能以迭代或递归模式对数据进行处理)来生成最终的自然语言答案 A。TAG 模型很简单,但功能强大:它由以下三个方程定义,但捕获了 LM 和数据库之间以前研究不足的广泛交互。
Q
u
e
r
y
S
y
n
t
h
e
s
i
s
:
s
y
n
(
R
)
→
Q
(1)
Query~Synthesis: syn(R)\rightarrow Q\tag{1}
Query Synthesis:syn(R)→Q(1)
Q
u
e
r
y
S
y
n
t
h
e
s
i
s
:
e
x
e
c
(
Q
)
→
T
(2)
Query~Synthesis: exec(Q)\rightarrow T\tag{2}
Query Synthesis:exec(Q)→T(2)
Q
u
e
r
y
S
y
n
t
h
e
s
i
s
:
g
e
n
(
R
,
T
)
→
A
(3)
Query~Synthesis: gen(R, T)\rightarrow A\tag{3}
Query Synthesis:gen(R,T)→A(3)
值得注意的是,TAG 模型统一了先前的方法,包括 Text2SQL 和 RAG,它们代表 TAG 的特殊情况,并且仅服务于有限的用户问题子集。
虽然先前的一些研究解决了 TAG 的这些特殊情况,但我们提供了第一个端到端 TAG 基准,该基准由需要 LM 推理和知识能力的广泛现实问题组成。我们展示了这些类型的问题所带来的重大研究挑战,以及高效 TAG 实现的前景。我们的评估分析了原始 Text2SQL 和 RAG 基线以及两个更强大的基线,即具有 LM 生成的 Text2SQL 和具有基于 LM 的重排名的检索。在各种查询类型中,我们发现每种基线方法始终无法实现高精度,基准上的精确匹配从未超过 20%。另一方面,我们在最近的 LOTUS 运行时之上实现了手写 TAG 管道,发现与基线相比,它们的精度提高了 20-65%。这一显著的性能差距表明,构建高效的 TAG 系统具有良好的前景。
2.THE TAG MODEL
我们现在描述 TAG 模型,该模型接受自然语言请求 R R R 并返回基于数据源的自然语言答案 A A A。我们概述了 TAG 系统实现的三个主要步骤:问题合成、查询执行和答案生成。我们将 TAG 定义为这些步骤的单次迭代,但可以考虑以多跳方式扩展 TAG。
2.1 Query Synthesis
syn 函数接受自然语言请求
R
R
R 并生成要由数据库系统执行的查询
Q
Q
Q。给定用户请求,此步骤负责 (a) 推断哪些数据与回答请求相关(例如,使用表架构),以及 (b) 执行语义解析以将用户请求转换为可由数据库系统执行的查询。此查询可以使用任何查询语言,但在我们的示例中,我们使用 SQL。
图 1 显示了用户问题的 TAG 实例示例,该问题询问“Summarize the reviews of the highest grossing romance movie considered a ‘classic’”。在这里,数据源包含有关每部电影的标题、收入、类型和相关评论的信息。在此步骤中,系统利用 LM 的语义推理能力来生成 SQL 查询,该查询使用来自数据源的 movie_title、review、revenue 和 types 上的属性。请注意,在此示例中,数据库 API 能够在 SQL 查询中执行 LM UDF,因此此步骤还引入了LM 对每一行电影信息的调用,以识别查询中的经典电影。
2.2 Query Execution
在查询执行步骤中,exec 函数在数据库系统中执行查询
Q
Q
Q 以获取表
T
T
T。此步骤利用数据库查询引擎对大量存储数据高效执行查询。数据库 API 可以由各种各样的系统提供服务,我们将在第 3 节中进行探讨。一些 API 可能允许基于 LM 的运算符,从而允许数据库引擎在 exec 中利用 LM 的世界知识和推理能力。
在图 1 所示的示例中,数据库查询是用 SQL 编写的选择和排名查询,它返回包含相关行的表。查询使用 LM 执行选择,根据电影标题评估哪些电影是经典电影,并使用标准类型过滤器查找爱情电影。查询还根据收入对结果进行排名,以查找票房最高的电影。如图所示,结果表包含电影“泰坦尼克号”的评论。
2.3 Answer Generation
TAG 中的答案生成步骤与 RAG 中的生成步骤相同。在此步骤中,gen 函数使用 LM 以及计算数据
T
T
T 生成对用户自然语言请求
R
R
R 的答案
A
A
A。
图 1 显示了示例 TAG 管道的最后阶段,该阶段输出了对“泰坦尼克号”评论的摘要作为对原始用户请求的答案。在此示例中,相关数据
T
T
T 被编码为字符串以供模型处理。编码表与原始用户请求
R
R
R 一起传递给 LM。为了获得答案,此步骤利用模型对评论列的语义推理能力来总结评论。
3.TAG DESIGN SPACE
在本节中,我们将探讨 TAG 模型的通用性并描述它产生的丰富的设计空间,并强调几个尚未得到充分研究的机会。
Query Types。TAG 模型具有足够的表达能力,可以满足各种自然语言用户问题。我们根据 (a) 回答问题所需的数据聚合级别和 (b) 回答问题所需的知识和能力,考虑两种重要的问题分类。首先,TAG 模型既捕获点查询(例如需要查找数据库一行或几行的基于检索的问题),也捕获聚合查询(例如需要对数据库多行进行逻辑推理的基于摘要或排名的问题)。其次,TAG 模型使对系统有不同要求的自然语言问题能够提供基于数据或推理的能力,包括情绪分析和分类等任务。
Data Model。底层数据模型可以采用多种形式。我们的实现使用关系数据库来存储和检索结构化属性,以便在下游问答任务中为知识打下基础。其他人可能会对更多非结构化数据(例如自由文本、图像、视频和音频)或半结构化数据进行操作,这些数据可能存储在各种数据模型中,例如键值、图形、向量、文档或对象存储。
Database Execution Engine and API。
LM Generation Patterns。
1735

被折叠的 条评论
为什么被折叠?



