Zilliz 01月16日
向量数据库如何助力Text2SQL处理高基数类别数据
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文探讨了如何利用向量数据库解决Text2SQL系统在处理高基数类别数据时遇到的挑战。传统方法如数据预处理和基于LLM的翻译在处理高基数数据时存在局限性,而向量数据库通过语义搜索能够更准确地理解用户查询意图。文章以Waii和Zilliz Cloud的集成为例,展示了如何通过创建embedding、向量索引和语义搜索来优化高基数类别数据的查询。这种方法不仅提高了查询的准确性和可扩展性,还降低了对预训练数据的依赖,为Text2SQL系统处理复杂查询提供了新的解决方案。

💡 **Text2SQL的挑战**:传统Text2SQL系统在处理高基数类别数据时面临困难,因为自然语言查询的模糊性与数据库精确查找的要求不匹配。常见方法如数据预处理和基于LLM的翻译存在局限性。

🔍 **向量数据库的优势**:向量数据库通过存储和查询高维向量表达,利用embedding进行语义搜索,能够有效处理高基数类别数据。它通过捕获语义含义,实现基于相似性的查询,弥补了传统方法的不足。

🛠️ **Waii与Zilliz Cloud的集成**:Waii自动检测高基数列并生成embedding,Zilliz Cloud提供高性能的向量存储和查询。两者结合形成端到端解决方案,实现Text2SQL系统中高基数数据的流畅处理,无需手动配置。

🚀 **实际应用案例**:通过一个监控全球新闻事件的查询平台案例,展示了向量数据库+LLM方法的优势。该方法能够准确识别与AI相关的事件,即使它们使用了专业术语或不包含明显的关键词,提供了更全面和准确的结果。

原创 和你一起进步的 2025-01-14 18:40 上海

使用Zilli Cloud+Waii在Text2SQL系统中处理高基数类别数据。

01.

导语

Agent工作流和 LLMs (大语言模型)的出现,让我们能够以自然语言交互的模式执行复杂的SQL查询,并彻底改变Text2SQL系统的运行方式。其典型代表是如何处理High-Cardinality Categorical Data (高基数类别数据)。

围绕这一问题,本文将以Waii和Zilliz Cloud(完全托管的Milvus向量数据库)组合为例,展示如何将向量数据库与 Agentic Text2SQL系统集成。

02.

为什么Text2SQL不适合查询高基数类别数据

Categorical data (类别数据)在数据库中无处不在,比如各种产品类别、客户细分或交易类型。其典型代表如,人的性别分为男和女,中国一共有34个省级行政区。

不难发现,以上类别数据,其去重后唯一值的数量(cardinality)是可控的。相应的,这些低基数列对于Text2SQL系统来说相对容易处理,因为自然语言查询和数据库值之间的差距很小。

但当我们遇到高基数类别数据(某一类别特征的取值数量巨大)时,问题就出现了。比如,超过60%的数据库大多长这样:包含数百万个唯一ID的产品目录,或包含数十万企业ID的金融数据库,甚至数据量超过上亿的身份识别库与电商IP地址库。

数据库需要对这些类别进行精确、严格的查找,但基于自然语言描述的查询通常是模糊和不精确的。比如,用户可能会问“最近什么剧比较火”或“最近哪个股票涨的比较好”。如何将这些模糊的描述转化为精准的数据库查询,Text2SQL根本无法做到。

03.

如何补足Text2SQL的短板

通常,Text2SQL 系统在做高基数类别数据的自然语言查询时会采用以下两种方法:

对于高基数数据的处理,以上两种方法都有短板。

数据预处理技术过于僵化和字面化,无法有效处理自然语言查询的细微差别;而LLM虽然可以理解查询意图,但无法精准理解不在预训练数据中出现的特殊值。

04.

向量数据库如何解决高基数类别数据查询困境

向量数据库旨在存储和高效查询数据的高维向量表达。不难发现,向量数据库的查询并非基于关键词匹配,而是主要是使用embedding进行语义搜索。因此,查询高基数类别数据,正是向量数据库的擅长之处。

接下来,我们会展示如何利用向量数据库来做基于自然语言的高基数类别数据查询。

工作原理:

05.

在Text2SQL中使用向量搜索的好处

向量数据库增强的方法提供了几个优势:

06.

选型与部署

落地中,我们可以考虑通过结合Waii和Zilliz Cloud,来进行实际部署。

6.1 Waii用于智能Text2SQL

Waii是世界上第一个基于 Agent 工作流构建的Text2SQL API。它结合了编译器技术和自动生成的知识图谱,以实现最准确的查询生成。

6.2 Zilliz Cloud用于向量语义搜索

Zilliz Cloud是支持高性能的向量数据库,它的扩展能力和低延迟精准召回的能力使其成为AI 应用开发中的最佳选择,与Waii相辅相成。

6.3 Waii和Zilliz Cloud的集成

通过利用Waii的自动检测和Zilli的高效向量查询,可以建立在Text2SQL系统中处理高基数类别数据的强大解决方案,而无需手动开发代码进行元数据管理或embedding生成。

07.

实例

接下来,我们将展示如何部署一个监控全球数百万个新闻事件的查询平台。

数据库架构如下:

CREATE TABLE events (
    event_id INT PRIMARY KEY,
    event_name VARCHAR(255),
    event_date DATE,
    category VARCHAR(100),
    total_spent DECIMAL(10, 2)
);

event_name 是一个高基数类别列,包含数百万个唯一的描述性名称,如“Global AI Ethics Summit 2024”、“Sustainable Living Expo: Greening Our Future”或“5th Annual Quantum Computing Breakthrough Conference”。

分析师可能会问:“How much money was spent on AI events last month?”

以下是处理这个问题的不同方法:

方法一:传统的关键词匹配

在这种方法中,我们直接把用户提供的术语作为查询的搜索词。我们在这里使用不区分大小写的全文搜索。

SELECT SUM(total_spent) 
FROM events 
WHERE event_name ILIKE '%AI%'  AND event_date >=
 DATE_TRUNC('month', CURRENT_DATE - INTERVAL '1 month')
  AND event_date <
 DATE_TRUNC('month', CURRENT_DATE);

问题:这种方法错过了像“Machine Learning Symposium”或“Neural Network Workshop”这样与AI相关但不包含“AI”单词的事件,而且也可能错误地将“HAIR styling convention”这样含有“AI”字母的结果。

方法二:单独采用LLM

在这种方法中,LLM生成可能与搜索相关的多个术语,并据此构建filter查询。它通常会生成如下内容:

SELECT SUM(total_spent) 
FROM events 
WHERE (event_name ILIKE '%AI%'       OR event_name ILIKE '%Artificial Intelligence%'       OR event_name ILIKE '%Machine Learning%'       OR event_name ILIKE '%Neural Network%')
  AND event_date >= 
DATE_TRUNC('month', CURRENT_DATE - INTERVAL '1 month')
  AND event_date < 
DATE_TRUNC('month', CURRENT_DATE);

问题:虽然这种方法召回了更多与AI相关的事件,但它仍然局限于预定义的术语列表,可能会错过其他更新颖的AI相关的事件,依然无法实现精准召回。

08.

向量数据库+LLM方法

下图描述了整体流程。左侧是对事件表(events table)进行的预处理,右侧显示了生成查询的流程。

查询生成流程:

SELECT SUM(total_spent) 
FROM events 
WHERE event_id IN (1234, 5678, 9101, 1121, 3141, 5161, 7181, 9202, 1222, 3242) 
AND event_date >= 
DATE_TRUNC('month', CURRENT_DATE - INTERVAL '1 month'
AND event_date < 
DATE_TRUNC('month', CURRENT_DATE);

这种方法可以准确识别与AI相关的事件,即使它们使用的是专业术语或并不包含明显的AI关键词,比如找到像“3rd Symposium on Generative Adversarial Networks”或“Workshop on Ethical Considerations in Reinforcement Learning”,而其他方法可能会错过。

通过利用向量相似性搜索,我们可以更准确地解释用户的意图,并将其与我们数据库中的高基数事件名称匹配,提供更全面和准确的结果。

09.

结论

随着数据量的持续增长和用户对直观数据交互的期望增加,在Text2SQL系统中处理高基数类别数据将变得更加普遍。通过利用Zilliz Cloud与Waii的结合,可以创建更强大、可扩展和准确的系统。


本文作者:

陈将(Zilliz 生态和 AI 平台负责人)

Gunther Hagleitner(CEO and co-founder of Waii)


推荐阅读


阅读原文

跳转微信打开

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

Text2SQL 向量数据库 高基数数据 语义搜索 Waii Zilliz Cloud
相关文章