技术揭秘|TDgpt 如何让时序数据库原生支持 AI?

昨天,我们重磅发布并开源了新一代时序数据分析 AI 智能体 TDgpt,这是 TDengine 3.3.6.0 的核心亮点功能之一。作为时序数据库原生集成 AI 能力的全新尝试,TDgpt 将统计分析、机器学习、大模型等技术通过 SQL 统一封装,极大降低了复杂算法在业务中的应用门槛。本文将带你深入了解 TDgpt 背后的技术设计与实现细节。

打通 AI 与数据库的最后一公里

在时序数据预测分析、异常检测、数据补全和数据分类等应用领域,研究人员提出并开发了众多具有不同技术特点、适用于不同场景的时序数据分析算法,已被广泛应用在时序数据预测、异常检测等任务中。

这类分析算法通常以高级编程语言(Python 语言或 R 语言)工具包的形式存在,并通过开源的方式广泛分发和使用,这种应用模式极大地便利了软件开发人员在应用系统中调用复杂的分析算法,大大降低了使用高级算法的门槛。

与此同时,数据库系统的研发也在不断演进。许多开发者尝试将数据分析算法模型整合到数据库系统中,例如通过建立 Machine Learning 库(如 Spark 的机器学习库),进一步提升数据库和分析计算引擎的智能化分析能力。

随着人工智能的快速发展,时序数据分析也迎来了全新的机遇。如何更高效、更灵活地将 AI 能力应用于时序数据场景,成为数据库发展的重要方向。

为此,涛思数据创新性地提出了时序数据分析 AI 智能体 TDgpt。通过 TDgpt,用户只需使用 SQL 语句,即可调用适配及整合驱动统计分析算法、机器学习算法模型、深度学习模型、时序数据基础模型以及大语言模型,并将这些分析能力转化为 SQL 语句的调用,通过异常检测窗口和预测函数的方式应用在时序数据上。

TDgpt 技术特点

TDgpt 是与 TDengine 主进程 taosd 适配的外置式时序数据高级分析系统,能够将时序数据分析服务无缝集成在 TDengine 的查询执行流程中。

作为一个无状态的平台化时序数据分析平台,TDgpt 内置了经典的统计分析模型库 Statsmodel,内嵌了 torch/Keras 等机器/深度学习框架库,此外它还能通过请求转发和适配的方式直接调用涛思数据自研的时序数据基础大模型 TDtsfm (TDengine time series foundation model)。作为一个分析整合应用平台,TDgpt 后续还将整合第三方时序数据大模型服务,仅修改一个参数(algo)就能够调用最先进的时序模型服务。

TDgpt 拥有高度开放的架构,用户可按需接入自定义的预测分析、异常检测、数据补全、数据分类算法,添加完成后,仅通过修改 SQL 语句中调用的算法参数就能够无缝使用新加入的算法,整个过程无需修改一行代码。

TDgpt 系统架构

TDgpt 由若干个无状态的分析节点 Anode 构成,用户可按需在系统集群中部署 Anode 节点,也可以根据分析模型算法的特点,将 Anode 部署在合适的硬件环境中,例如带有 GPU 的计算节点。

TDgpt 为所有分析算法提供统一的调用接口和标准化的调用方式。系统会根据用户请求的参数,自动匹配并调用高级分析算法包及其他的分析工具,并将分析获得的结果按照约定方式返回给 TDengine 的主进程 taosd。

整个 TDgpt 系统由四个关键模块构成:

  • 第一部分是内置分析库,包括 statsmodels, pyculiarity, pmdarima 等,提供可以直接调用的预测分析和异常检测算法模型;
  • 第二部分是内置的机器学习库(包括 torch,keras,scikit-learn 等),用于驱动预训练完成的机器(深度)学习模型在 TDgpt 的进程空间内运行。预训练的流程可以使用 Merlion/Kats 等开源的端到端机器学习框架进行管理,并将完成训练的模型上传到 TDgpt 指定目录即可;
  • 第三部分是通用大语言模型的请求适配模块。将时序数据预测请求转换后,基于 Prompt 向 DeepSeek,LlaMa 等通用大语言模型 MaaS 请求服务(这部分功能暂未开源);
  • 第四部分是通过 Adapter 直接向本地部署的 Time-MoE、TDtsfm 等时序数据模型请求服务。时序数据专用模型相对于通用语言大模型,无需 Prompt,更加便捷轻量,本地应用部署对硬件资源要求也较低;除此之外,Adapter 还可以直接请求 TimeGPT 这种类型的时序数据分析 MaaS 服务,调用云端的时序模型服务提供本地化时序数据分析能力。
技术揭秘|TDgpt 如何让时序数据库原生支持 AI? - TDengine Database 时序数据库

查询过程中,TDengine 中的 Vnode 会将涉及时序数据高级分析的部分直接转发到 Anode,并等待分析完成后将结果组装完成,嵌入查询执行流程。

时序数据分析服务

使用 TDgpt 提供的时序数据分析服务,用户可以通过 SQL 语句轻松实现以下功能:

  • 时序数据异常检测:TDengine 引入了新的时间窗口——异常(状态)窗口——来提供异常检测服务。异常窗口可以视为一种特殊的事件窗口(Event Window),即异常检测算法确定的连续异常时序数据所在的时间窗口。与普通事件窗口区别在于——时间窗口的起始时间和结束时间均是分析算法确定,不是用户指定的表达式判定。异常窗口使用方式与其他类型的时间窗口(例如状态窗口、会话窗口等)类似。因此时间窗口内可使用的查询操作均可应用在异常窗口上。
  • 时序数据分析预测:TDengine 新增 FORECAST 函数,支持基于历史时序数据,调用指定(或默认)的预测算法,生成未来时间段的预测结果,用户可通过 SQL 直接完成预测分析任务。
  • 时序数据补全:研发测试中预计 2025 年 7 月发布
  • 时序数据分类:研发测试中,预计 2025 年 7 月发布

自定义分析算法

TDgpt 是一个可扩展的时序数据高级分析平台,用户只需按照简单的流程,就可以将自定义的分析算法接入到分析平台,并通过 SQL 语句直接调用,实现“零门槛”使用高级分析能力。新引入的算法或模型无需对应用层做任何改动,极大提升了集成效率。

目前,TDgpt 只支持使用 Python 语言开发的分析算法。其分析节点 Anode 采用 Python 类动态加载模式,在启动的时候扫描特定目录内满足约定条件的所有代码文件,并将其加载到系统中。因此,开发者只需要遵循以下几步就能完成新算法的添加工作:

1. 编写符合规范的分析算法类;

2. 将代码文件放入对应目录,并重启 Anode;

3. 使用 SQL 命令更新算法缓存列表。

完成上述步骤后,新算法即可通过 SQL 语句立即调用,轻松集成至各类时序数据分析任务中。

算法评估工具

TDgpt 企业版还提供针对多种算法模型有效性的综合评估工具。该工具可以针对 TDgpt 可调用所有时序数据分析(预测分析与异常检测)服务,包括内置数据分析算法模型,已部署的预训练机器学习模型、第三方时序数据(大)模型服务,基于 TDengine 中的时序数据进行预测分析对比和异常检测对比评估,并给出量化指标评估不同分析模型在给定数据集上的准确度及性能。

模型管理

对于 Torch/Tensorflow/Keras 等机器学习库框架驱动的预训练模型,只需将已完成训练的模型文件放入 Anode 指定目录,Anode 可以自动调用该目录内的模型,驱动其运行并提供服务。

在企业版 TDgpt 中,还提供了模型管理功能,支持与 Merlion、Kats 等开源的端到端时序数据机器学习框架无缝集成,方便用户统一管理和部署多种预训练模型。

处理能力

通常意义上,时序数据分析本质上是高度计算密集型任务,因此可以通过部署更高性能的 CPU 或 GPU 来提升整体处理效率。

对于依赖 torch 等框架运行的机器学习或深度学习模型,可以采用标准的提升分析处理能力的方案来提升 TDgpt 的服务能力,例如将 Anode 部署在内存更大,并具有 GPU 的服务器之上,使用可调用 GPU 的 torch 库驱动模型运行,以提升分析响应能力。

同时,不同的模型和算法也可以按需部署在不同的 Anode 节点上,实现并行处理,进一步增强系统的整体分析能力和扩展性。

运营维护

开源版本的 TDgpt 不包含用户权限管理和资源控制机制。系统默认采用 uWSGI 驱动 Flask 服务,运维人员可通过开启 uWSGI 端口,对服务运行状态进行实时监控。

目前,TDgpt 的核心功能已随 TDengine 3.3.6.0 正式发布,并同步开源。无论你是希望通过 SQL 快速接入 AI 能力的应用开发者,还是希望灵活集成自定义模型的数据科学家,TDgpt 都为你提供了一个强大、开放、易用的时序数据智能分析平台。想了解更多技术细节和使用方式,欢迎访问官网查看完整介绍:https://www.taosdata.com/tdgpt