假设你是一名业务分析师,正在分析公司上个季度销售额下降的原因。你输入一个自然语言问题到数据库中:“为什么上个季度的销售额下降了?” 你理想中的情况是,AI系统可以马上给出一个丰富、有价值的答案,将所有相关的数据点、趋势和市场洞察整合在一起。但现实情况却没有这么简单。
目前,用于数据库查询的AI技术,比如 Text2SQL 和 检索增强生成(RAG) ,在实际应用中存在很多不足。它们的设计本身就局限了能力:要么仅仅是将自然语言翻译成SQL查询,要么只是简单地查找数据,完全无法应对复杂的业务问题。
为什么这个问题值得关注?
自从大语言模型(LLM)流行起来之后,用自然语言查询SQL数据库逐渐成为一种趋势。然而,企业每天都在产生海量数据,但真正有价值的分析却很少。现有技术无法有效结合AI的语义理解能力和数据库的计算能力,严重限制了数据的价值转化。换句话说,能通过自然语言提问,但却无法得到有深度的回答,是企业数据应用的最大痛点之一。
自然语言查询中的主要挑战
-
Text2SQL 的局限性
Text2SQL的设计初衷是将自然语言问题转化为SQL查询。对于简单问题,比如“上个季度的总销售额是多少?”,它的表现不错。但如果问题需要复杂的逻辑推理或者涉及数据库中没有明确存储的信息,它就无法处理了。
例如,当你问“产品X的客户评价中哪些是正面的?”时,这需要情感分析能力,而这种能力SQL无法直接实现。
-
RAG 的局限性
RAG模型试图用AI找到数据库中与问题相关的记录,但它的能力仅限于简单的数据检索。当问题需要复杂的跨数据点推理,或者数据量特别大时,它往往会失败。例如,RAG无法高效整合“客户评价”“销售数据”“市场情绪”这些多维度的信息。另外,RAG的结果也容易出现不准确或不完整的问题,比如对目标数据库结构不熟悉或无法准确理解用户意图时。
实际业务中的困境
假如你需要同时分析客户评价中的趋势、销售数据的波动以及市场情绪的变化,Text2SQL根本无法处理自由文本数据,而RAG即使可以,也会因为效率低下和结果不准确让人难以信赖。这些技术的不足使得用户的问题无法得到有效解答,造成了大量潜在价值的浪费。
表增强生成(TAG) 是什么?如何解决这些问题?
TAG 是一种新的AI方法,旨在弥补现有技术的短板。它通过深度整合AI语义推理能力和数据库计算能力,能够理解并回答复杂的问题,为用户提供更全面、更可靠的数据洞察。
表增强生成(TAG)
TAG 是斯坦福大学和伯克利大学的研究人员提出的一种全新增强方法,用于解决 Text2SQL 方法的局限性。研究论文链接:arxiv.org/abs/2408.14…
以下是 TAG 的工作原理:
-
查询合成(Query Synthesis)
首先,用户的自然语言请求会被转化为可执行的数据库查询。
与 Text2SQL 不同,TAG 不仅仅生成 SQL 查询,还能够合成更复杂的查询,这些查询可以结合多个数据源和多种数据类型。
比如,研究人员提供的示例图片显示了 TAG 的强大之处——它可以整合结构化数据(如数字、表格)和非结构化数据(如文本、用户评论)。
请注意用户查询“总结被认为是‘经典’的最高票房浪漫电影的评论”是如何被翻译成以下内容的:
WITH CRM AS (
SELECT * FROM movies
WHERE genre = 'Romance'
AND LLM('{movie_title} is a classic') = 'True'
)
SELECT * FROM CRM
WHERE revenue = (SELECT MAX(revenue) FROM CRM);
TAG 引入了一个新的 LLM 调用,使用了这行代码 LLM(‘{movie_title} is a classic’) = ‘True’。这是“增强”步骤。SQL 查询,或更具体地说,表检索步骤通过这一步骤得到了增强,因为表本身并不提供电影何时被视为“经典”的上下文。
- 查询执行:一旦查询被合成,它就会在数据库上执行。TAG 利用数据库的计算能力来高效处理大规模数据检索和精确计算,这是语言模型难以执行的。
- 答案生成:在这最后一步中,AI 模型使用检索到的数据生成富有上下文的答案。模型结合了第一步中的增强信息,融合了世界知识、语义推理和特定领域的理解,以产生对用户问题的全面回应。
目前市场使用TAG最好的一个框架是LOTUS
LOTUS:赋能 TAG 功能的框架
正如我上面提到的,为了使 TAG 正常工作,我们需要一个强大的框架,能够将 AI 能力与传统数据库系统无缝集成。这就是 LOTUS(LLMs Over Tables of Unstructured and Structured Data,即在非结构化和结构化数据表上的大型语言模型)的用武之地。LOTUS 旨在弥合大型语言模型(LLMs)的推理能力与数据库的计算强度之间的差距,使得数据查询更加复杂和有意义。
什么是 LOTUS?
LOTUS 是一个新颖的框架,通过支持在包含结构化和非结构化数据的表上进行语义查询,赋能于 TAG。它将 LLMs 直接集成到数据库查询处理流程中,结合了数据库的高性能数据管理和 AI 模型的高级推理及自然语言理解的优势。
LOTUS 的关键特性:
- AI 增强查询的语义操作符:LOTUS 引入了一系列语义操作符——基于 AI 的函数,可以执行过滤、排名和聚合等任务,使用自然语言处理。例如,LOTUS 查询可能使用语言模型来确定哪些行包含积极情绪或相关实体,而不是传统的 SQL 过滤器,为查询带来全新的复杂度。
- 优化的查询执行:LOTUS 构建了一个优化的语义查询执行引擎,可以通过批处理 LLM 操作并将它们集成到数据库的本地查询处理中,更高效地处理复杂查询。这降低了延迟并提高了性能,使得能够快速回答更复杂的问题。
- 灵活性和定制性:该框架允许开发者构建自定义管道,将传统的 SQL 操作与先进的 AI 能力相结合。例如,在金融服务的用例中,LOTUS 可以启用一个查询,不仅检索历史股票数据,还分析最近的新闻情绪,提供对潜在未来动向的见解——一次性完成。
- 启用 TAG 框架:LOTUS 作为实施 TAG 模型的支柱,支持需要数据库计算和 LLM 推理的多步骤、复杂查询。它使 TAG 框架能够超越标准 SQL 或检索增强方法,提供更全面的答案,这些答案既基于数据,也基于外部知识。