AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


Text2SQL还不够: 用TAG统一人工智能和数据库
发布日期:2024-10-15 19:51:38 浏览次数: 1529 来源:AI 搜索引擎


今天分享的文章来自于伯克利和斯坦福大学,题目:
Text2SQL is Not Enough: Unifying AI and Databases with TAG
仅仅使用Text2SQL是不够的:用TAG统一人工智能和数据库

文章链接:https://arxiv.org/pdf/2408.14717
代码链接:https://github.com/TAG-Research/TAG-Bench

摘要

目前主流的Text2SQL方法,通常局限于能够用关系代数表达的问题上,这仅覆盖了实际用户可能询问的一小部分问题。而检索增强生成(RAG)虽然能处理通过查找数据库中的单个或少数数据记录就能回答的问题,但其能力仍然有限。

为了克服现有方法和基准测试的局限性,本文提出了TAG这一统一且通用的方法论,旨在涵盖语言模型(LMs)与数据库之间未被探索的交互方式。TAG模型旨在利用语言模型的知识和推理能力来处理数据,并为研究如何更好地利用这些能力提供了新的机会。

为了研究TAG问题,作者还系统性地开发了一系列benchmark,并发现现有的标准方法在正确回答查询方面的能力非常有限,仅有不到20%的查询可以被正确回答。这一发现进一步证实了在这个领域进行更多研究的必要性。

主要方法

表增强生成(TAG)方法首先定义了三个关键步骤,如下图所示。

  1. 查询合成(Query Synthesis):在这个阶段,系统的任务是从用户的自然语言请求 合成出一个可以在数据库上执行的查询语句 。这个过程需要理解用户意图并将其转换为合适的数据库查询格式。表示为:
  2. 查询执行(Query Execution):查询合成完成后,下一步是执行查询 ,以从数据库中高效地获取相关数据 。这一步骤依赖于后端数据库管理系统来完成。表示为:
  3. 答案生成(Answer Generation):最后一步是生成最终的答案 。在这一步,语言模型(LM)将利用原始请求 和查询结果 ,可能会迭代或递归地处理数据,以生成自然语言形式的答案。表示为:

查询合成

在TAG框架中,syn 函数接收用户的自然语言请求 ,并生成一个可由数据库系统执行的查询 。给定用户请求后,此步骤负责以下两个方面的工作:
1. 推断哪些数据与回答请求相关(使用表结构)。在示意图这个例子中,系统需要识别出哪些表或列包含了电影名称(movie_title)、收入(revenue)、类型(genre)以及相关的评论(review)等信息。这是为了确定哪些数据字段对回答用户的问题是必要的。
2. 进行语义解析,将用户的请求翻译成可以由数据库系统执行的查询。这个查询可以是任何查询语言的形式。例如,如果用户请求“总结票房最高的被认为是‘经典’的爱情电影的评论”,那么系统需要运用语言模型的语义推理能力来生成一个SQL查询,这个查询会涉及到数据源中的电影标题、评论、收入和类型等属性。

查询执行

在查询执行步骤中,exec 函数负责在数据库系统中执行查询 ,以获取表格数据
在示意图中是一个用SQL编写的选取和排序查询,这个查询使用了语言模型来确定哪些电影根据其电影名称应被视为“经典”,并且使用过滤器来找到爱情类型的电影。查询还会根据收入对结果进行排序,以找出票房最高的电影。如图所示,最终的结果表格包含了电影《泰坦尼克号》的评论。
为了支持SQL查询和LLM运算符(如基于LLM的过滤、排名和聚合),论文使用了Lotus API来支持查询执行。

答案生成

在TAG框架中的答案生成步骤类似于RAG中的生成步骤。在这个步骤中,gen 函数利用语言模型(LM)根据计算得到的数据   来生成对用户自然语言请求 的回答
如图1所示,示例TAG管道的最后阶段输出了对电影《泰坦尼克号》评论的总结,作为对最初用户请求的回答。在这个例子中,相关的数据 被编码成字符串格式,以便模型能够对其进行处理。编码后的表格连同最初的用户请求 一起传递给语言模型。

实验

TAG在精确匹配准确率方面表现优异,达到了40%的准确率,而所有其他基线均未能超过20%的准确率。这表明TAG模型在处理自然语言查询到数据库的问题上具有明显的优势。

Text2SQL基线:表现较差,精确匹配准确率不超过20%,特别是在需要排序的查询上,准确率仅为10%,因为很多排序查询需要对文本进行推理。

Text2SQL + LM生成基线:表现同样不佳,尤其在基于匹配和比较的查询上准确率只有10%,原因是执行SQL后将许多行数据输入模型时出现了上下文长度错误。

RAG基线:未能正确回答任何查询,凸显了其在处理此类查询时的不足。

Retrieval + LM Rank基线:仅在一个比较查询中正确回答了一个问题,总体表现仍然不如其他基线。

TAG:整体上正确回答了55%的查询,在比较查询上达到了65%的精确匹配准确率。除排序查询外,该基线在所有查询类型上都保持了超过50%的准确率。

除了提供更高的准确率,TAG方法还在执行时间上表现出优势,平均每个查询的执行时间为2.94秒,比其他基线快最多3.1倍。对于聚合查询,TAG提供了从1999年至2017年在Sepang国际赛道举行的全部比赛的详尽总结。相比之下,RAG基线只能提供部分相关比赛的信息,而Text2SQL + LM基线则无法利用数据库管理系统中的信息,仅依靠参数知识而不提供进一步的分析。

这里使用了手写TAG,即通过Lotus框架人工写查询进行实验。笔者认为其他方法在复杂问题的准确率较低仍然和Text2SQL准确性有关。所以LLM4DB相关任务中虽然不只Text2SQL,但Text2SQL的准确性仍然是核心问题。

编者简介

李剑楠:华东师范大学硕士研究生,研究方向为向量检索。作为核心研发工程师参与向量数据库、RAG等产品的研发。代表公司参加DTCC、WAIM等会议进行主题分享。


53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询