一条SQL,带你进入AI时代

上周五(7月26日)在2024 TDengine用户大会上,我宣布推出TDengine大语言模型插件TDgpt。利用大模型超强的模式识别的能力、序列建模能力以及多模态的能力,TDgpt能提供时序数据的预测、时序数据的异常检测,时序数据清洗、缺失数据填充等功能。TDengine成为世界上第一款与AI大语言模型结合的时序数据库

我是一位连续创业者,而且每次跨度很大。第一次创业聚焦手机消息的实时推送,第二次创业聚焦母婴智能硬件,第三次聚焦底层软件时序数据库。与AI完全无缘的我,这次又把大语言模型与TDengine整合进来。很多人好奇,你为什么能横跨这么多完全不同领域创业,今天有空,我将产品设计的思路与理念写下来与大家分享一下。

一条SQL,带你进入AI时代 - TDengine Database 时序数据库

明确要解决的具体问题

做产品设计,第一件事就是要明确解决的问题,划清产品定义的边界。时序数据的预测、时序数据的异常检测等并不是新概念、新问题,而是早已被人研究讨论的问题。

时序数据的预测是指基于历史数据,来预测未来一段时间的数据。其中一个典型的应用就是设备的预测性维护。我们可以通过监测设备运行数据、分析设备状态和趋势,提前预测设备故障并采取相应的维护措施,以避免设备故障对生产造成的影响。还有一个典型场景是可再生能源整合。我们可以通过分析和预测电力负荷和光伏、风电的发电量,优化电力调度和储能系统的充放电策略,确保电网的稳定性和效率,从而实现可再生能源的高效利用和可持续发展。

时序数据异常检测是指基于历史数据,识别出与正常模式显著偏离的数据点或时间段的过程。一个典型的应用场景就是设备的异常检测。通过传感器和监控系统,系统收集设备的运行数据,如温度、压力、振动等,对收集到的数据进行清洗、去噪、归一化处理后,预测设备在未来一段时间内的运行状态,将预测值与实际观测值进行比较,如果偏差超过预设阈值,则认为存在异常,系统发出警报提醒运维人员及时处理。

市场上早已有很多传统的统计学方法,比如ARIMA (Autoregressive Integrated Moving Average) , ETS (Error, Trend, Seasonality) 等算法用来解决这些问题。但是实际应用中发现,这些算法只对特定场景有效,而且准确性也不够高。随着AI的兴起,不少人开始转向使用深度学习的方法来解决这些问题,比如LSTM (Long Short-Term Memory),DeepAR等等。这些基于卷积神经网络或递归神经网络的算法,准确性有提升,但仍然有局限,需要基于特定场景的历史数据做训练。而对于物联网、工业互联网场景,场景种类太多,因此实施成本普遍偏高,导致推广有难度。

因此我们需要解决的问题是要找到一个具有普适性的时序数据预测、时序数据异常检测的算法。这些算法不仅能适用所有场景,而且准确性相对传统方法要有提升。

2017年底谷歌的论文“Attention is all you need” 催生了大语言模型(LLM)和生成式AI,将人工智能的发展推向了新的高度。LLM具有极强的多模态的能力以及模式认识的能力,应用使用时不需要训练或仅仅需要很少的训练。因此过去的两年,很多做时序数据分析的专家转向LLM,看是否能用LLM解决这一问题。今年4月份,我决定采用AI大语言模型为TDengine大量用户提供时序数据分析的能力。我们的用户来自各行各业,比如风力发电厂要预测的是发电量,石油行业要预测勘探产量,大型机电设备要做预测性维护等等。这些场景的数据天差地别,因此,我一开始就决定,TDgpt一定要采用LLM。

简单易用

做任何产品,定义好解决的问题后,我最先想到的是用户体验,用户看到的是什么。2007年iPhone一出来就迅速击败Nokia Symbian, Windows Mobile等传统的智能手机,核心原因就是它的极致用户体验,一个大屏幕,一个Home键,就把以前复杂的键盘、操作都去掉了。

对于TDgpt,我最开始想到的是Python库,因为大部分数据分析师、数据科学家都会用Python,TDengine也支持Python,挺方便。但一细想,Python用起来还是复杂。TDengine本身是一款高性能、分布式的时序数据库产品,支持标准的SQL。仔细思考后,我决定直接用SQL函数来提供时序数据预测、时序数据异常检测的功能,把背后的AI大模型完全屏蔽起来。

用SQL来提供这功能,有太多的好处。第一,没有学习成本,因为只是增加了扩展函数,世界上会用SQL的人数远远超过使用Python的。第二,TDengine本身还支持C/C++, Java, Go, Rust, Python等主流编程语言,这样这些编程语言都能立即使用TDgpt的功能。第三,由于TDengine提供标准的JDBC、ODBC接口,几乎所有的BI工具比如Power BI, Tableau,国产的帆软、永洪都能无缝对接,这些BI工具也能马上用上TDgpt的功能。第四,TDengine还能无缝对接Grafana等可视化软件,这样TDgpt输出的数据可以直接在这些可视化工具上展示。

因此我马上与研发同学讨论,定义了两个SQL函数forecast与anomaly,来解决时序数据分析领域常用的两个功能:时序数据预测和时序数据异常检测。比如数据库demo里保存有一个设备d100的采集的数据,针对某一列采集的数据val,从现在开始预测300个数据点,SQL就是:

select _rowts, forecast(ts, val, 300) from demo.d100;

极其之简单。如果要找出这台设备采集的数据val的异常窗口,置信度为99%,SQL就是

select _rowts, anomaly(ts, val, 99) as anomaly from demo.d100;

通过SQL的这两个扩展函数,你的应用就与AI大模型集成起来,你就拥有了时序数据预测、时序数据异常检测的能力。你还可以通过命令行的方式直接执行SQL,做即席查询,输出结果。因此我在TDengine用户大会上,很自豪的宣布“一条SQL,带你进入AI时代”。

一条SQL,带你进入AI时代 - TDengine Database 时序数据库

当我在TDengine用户大会上展示这条SQL的魔力后,来自智能制造、电力、新能源、石油、汽车等行业的用户,立马觉得自己的物联网、工业大数据平台与AI大语言模型再也不是触不可及,而是随时可用了。LLM不再只是用来生成文字、图片、视频这些好玩的内容,而是能真正服务工业领域,创造价值了。

站在巨人的肩膀上

采用AI大语言模型有两条技术路线,自己来训练大模型或是采用现有的大模型。因为时序数据与文字、语音、图片、视频完全不一样,因此第一想法毫无疑问的是自己建大模型,然后用大量的时序数据样本来做训练。但是一想到训练大模型需要的GPU资源,我马上就望而止步,因为我们只是一家时序数据库公司,家底全部烧光也训练不出来。因此我一直只是在观望大模型的进展,并没有真正采取行动。

但今年四月与美国几位做时序数据分析的教授交流,得知可以使用通用的大模型直接做时序数据预测,结果与专用的时序数据大模型相比,没有什么差异,我眼睛一亮,知道机会来了。我立马决定采用Llama,Meta开源的大语言模型来做时序数据的分析。

怎么做呢?看了几篇论文之后,知道可以将已经采集的时序时间分成一个一个的patch,然后生成大模型需要的embeddings,同时设计了一个专用的prompt的模版,先将分析数据的一些统计特征嵌入到prompt里,再将生成的prompt与embeddings喂给大模型,大模型就能预测出一段时序数据了。时序数据异常检测与时序数据预测本质上是一样的,因为当实际采集的数据与预测出的数据偏离超过阈值,就是异常了。因此用大模型也可以用来检测时序数据的异常。

思路确定后,就是具体的编码工作了,TDengine的研发团队很快就开发出来demo。通过一些模拟数据,证明这套方法是完全可行的。现在下一步工作,就是找真实场景,与用户一道,来验证整套方法是否能超越传统的算法。

由于我们利用了开源的Llama,利用了它的预训练好的大语言模型,因此在没有算力的投入下,也能让用户迅速体验LLM的魅力。而且由于不需要针对不同场景做训练,不需要有前期的投入,完全成了一个开箱即用的AI产品,大幅降低了系统投入运营的成本。能做到这一切,是由于我们直接使用Llama,一下跨过了很多步,站在巨人的肩膀上了。

科技公司的使命

任何一项技术的背后一定有很多复杂的细节,不是一般用户或公司能搞清楚能掌握的。英文里有个单词“democratize”,翻译成中文是普及、大众化的意思。任何一项新技术的出现,科技公司的使命就是democratize它,就是要通过技术创新、产品创新或商业模式的创新,让这些高深的技术能走近普通大众或普通企业,让人人都能用,而且用的起。

对于LLM而言,也是如此。我特别欣赏Meta的做法,将Llama开源出来,让我们这类完全没实力玩大模型的公司也能享受LLM的红利。2019年7月,我们决定将TDengine核心代码开源,2020年8月,又将TDengine集群版功能开源出来,也是同样的目的,就是希望任何开发者、任何公司都能用上我们设计的高性能、分布式的时序数据库。

除开源的手段之外,云服务也是一种让高深的技术走近普通大众或企业的有效方法。不用购买昂贵的永久性软件许可证,不用费时的商业谈判,也不用安装部署,免费注册后就能马上用上,而且是按使用量收费,大幅降低了入门门槛。如果不是云服务,OpenAI的ChatGPT虽然表现非凡,也绝无可能火爆起来。这也是我们2年前,就开始推出TDengine云服务的根本原因。我们计划在2025年春节前推出TDgpt的云服务,要让所有物联网、工业互联网领域的开发者、公司都能用上LLM技术。

个人或公司是否采用一项新技术的主要考量是它的总拥有成本。成功、脱颖而出的科技公司一定是能将一款产品或服务的总拥有成本大幅降低。总拥有成本除正常的产品或服务的采购成本之外,还包括学习成本、运维成本等。TDgpt采用SQL的主要目的是降低学习成本,采用LLM的主要目的是大幅降低实施和维护的成本,因为它不需要针对特定场景做训练,能做到开箱即用。不训练自己的大模型,而是采用现有的预训练好的大模型,目的就是一个,大幅降低投入成本。如果不能把总拥有成本降下来,TDgpt再绚也无人问津。

一条SQL,带你进入AI时代 - TDengine Database 时序数据库

结语

从我创立涛思数据起,我定的公司的使命就是“Make time series data accessible, affordable and valuable” (让时序数据能随意存取、用得起,并且有价值),因此我坚守“简单易用”的设计原则,采用SQL,确保新手60秒就能上手;持续不断的通过技术创新来提升时序数据处理的性能,降低计算与存储的成本;大胆采用核心代码开源的方式,并推出免费注册的云服务。我们刚推出试用的TDgpt也会采取完全一样的策略。

这一切,都是让每一个人,无论你是个人开发者、创业公司还是行业巨头,都能从采集的海量时序数据里,挖掘出商业价值,获得实时的商业洞察,并将数据的价值最大化。我坚信,只有海量的用户才能成就一家伟大的科技公司。

陶建辉涛思数据TDengine创始人

2024年8月1日写于北京望京