上周五(7月26日)在2024 TDengine用戶大會上,我宣布推出TDengine大語言模型插件TDgpt。利用大模型超強的模式識別的能力、序列建模能力以及多模態的能力,TDgpt能提供時序數據的預測、時序數據的異常檢測,時序數據清洗、缺失數據填充等功能。TDengine成為世界上第一款與AI大語言模型結合的時序數據庫。
我(wo)是一(yi)(yi)位連續創(chuang)業(ye)者,而且每次(ci)跨度(du)很(hen)大(da)。第一(yi)(yi)次(ci)創(chuang)業(ye)聚焦(jiao)(jiao)手機消息的實時推送,第二次(ci)創(chuang)業(ye)聚焦(jiao)(jiao)母嬰智能硬件,第三次(ci)聚焦(jiao)(jiao)底層軟(ruan)件時序數據庫。與AI完全(quan)無緣的我(wo),這次(ci)又把大(da)語言模型與TDengine整合進來。很(hen)多人好奇,你(ni)為什么能橫跨這么多完全(quan)不同領域創(chuang)業(ye),今天有空,我(wo)將產品(pin)設計的思(si)路與理念寫下來與大(da)家分享一(yi)(yi)下。

明確要解決的具體問題
做產品設計,第(di)一件事就是要(yao)明(ming)確(que)解決的(de)問題,劃清產品定義(yi)的(de)邊界。時序(xu)數(shu)據的(de)預測(ce)、時序(xu)數(shu)據的(de)異常檢(jian)測(ce)等并(bing)不是新(xin)概念、新(xin)問題,而(er)是早已被人研究討(tao)論(lun)的(de)問題。
時(shi)序數據的(de)(de)(de)預(yu)測(ce)(ce)是指基于歷史(shi)數據,來預(yu)測(ce)(ce)未來一(yi)段時(shi)間的(de)(de)(de)數據。其中一(yi)個典(dian)型(xing)的(de)(de)(de)應用就(jiu)是設(she)備(bei)(bei)的(de)(de)(de)預(yu)測(ce)(ce)性(xing)維護(hu)(hu)。我們可以通過監測(ce)(ce)設(she)備(bei)(bei)運(yun)行數據、分(fen)(fen)析設(she)備(bei)(bei)狀態和(he)(he)趨勢,提前預(yu)測(ce)(ce)設(she)備(bei)(bei)故(gu)(gu)障并(bing)采取相(xiang)應的(de)(de)(de)維護(hu)(hu)措施,以避免設(she)備(bei)(bei)故(gu)(gu)障對生(sheng)產(chan)造成(cheng)的(de)(de)(de)影響。還有(you)一(yi)個典(dian)型(xing)場(chang)景是可再(zai)(zai)生(sheng)能源整合。我們可以通過分(fen)(fen)析和(he)(he)預(yu)測(ce)(ce)電(dian)(dian)力(li)負(fu)荷和(he)(he)光伏、風電(dian)(dian)的(de)(de)(de)發電(dian)(dian)量,優化(hua)電(dian)(dian)力(li)調(diao)度和(he)(he)儲能系統(tong)的(de)(de)(de)充放電(dian)(dian)策略,確保電(dian)(dian)網的(de)(de)(de)穩定性(xing)和(he)(he)效(xiao)率,從而(er)實現可再(zai)(zai)生(sheng)能源的(de)(de)(de)高效(xiao)利用和(he)(he)可持續發展。
時序數據(ju)異常(chang)檢(jian)測(ce)(ce)是(shi)指基于歷史數據(ju),識別出與正(zheng)常(chang)模式顯(xian)著(zhu)偏離的(de)數據(ju)點(dian)或(huo)時間(jian)段(duan)的(de)過程(cheng)。一(yi)個典(dian)型的(de)應用場景就是(shi)設(she)備(bei)(bei)的(de)異常(chang)檢(jian)測(ce)(ce)。通(tong)過傳(chuan)感器和監控系統(tong),系統(tong)收(shou)集(ji)(ji)設(she)備(bei)(bei)的(de)運(yun)行(xing)(xing)數據(ju),如溫(wen)度、壓力、振動等,對收(shou)集(ji)(ji)到的(de)數據(ju)進行(xing)(xing)清洗、去噪、歸一(yi)化處(chu)理后,預(yu)測(ce)(ce)設(she)備(bei)(bei)在未(wei)來一(yi)段(duan)時間(jian)內的(de)運(yun)行(xing)(xing)狀態,將預(yu)測(ce)(ce)值(zhi)與實際觀(guan)測(ce)(ce)值(zhi)進行(xing)(xing)比較(jiao),如果偏差超過預(yu)設(she)閾值(zhi),則認為(wei)存在異常(chang),系統(tong)發(fa)出警報提醒運(yun)維(wei)人員及時處(chu)理。
市場(chang)(chang)上早(zao)已有(you)(you)很多傳(chuan)統的統計(ji)學(xue)方法(fa),比(bi)如ARIMA (Autoregressive Integrated Moving Average) , ETS (Error, Trend, Seasonality) 等算(suan)(suan)法(fa)用來解(jie)決這(zhe)(zhe)些(xie)問(wen)題(ti)。但是實際應(ying)用中(zhong)發現,這(zhe)(zhe)些(xie)算(suan)(suan)法(fa)只對特(te)定場(chang)(chang)景(jing)有(you)(you)效,而且準確性也不(bu)夠高。隨著(zhu)AI的興(xing)起(qi),不(bu)少(shao)人開始轉向使用深度學(xue)習的方法(fa)來解(jie)決這(zhe)(zhe)些(xie)問(wen)題(ti),比(bi)如LSTM (Long Short-Term Memory),DeepAR等等。這(zhe)(zhe)些(xie)基于(yu)卷積神經網(wang)(wang)絡(luo)或遞歸(gui)神經網(wang)(wang)絡(luo)的算(suan)(suan)法(fa),準確性有(you)(you)提升,但仍然有(you)(you)局限,需要基于(yu)特(te)定場(chang)(chang)景(jing)的歷史(shi)數(shu)據做訓練。而對于(yu)物聯網(wang)(wang)、工業(ye)互聯網(wang)(wang)場(chang)(chang)景(jing),場(chang)(chang)景(jing)種類太多,因此(ci)實施成本普遍偏高,導(dao)致(zhi)推廣(guang)有(you)(you)難度。
因此我們需要解決的問題是要找到一個具有普適性的時序數據預測、時序數據異常檢測的算法。這些算法不僅能適用所有場景,而且準確性相對傳統方法要有提升。
2017年底谷(gu)歌的(de)(de)(de)論(lun)文“Attention is all you need” 催(cui)生了(le)大(da)語言(yan)模型(xing)(LLM)和(he)生成式AI,將(jiang)人工智(zhi)能(neng)的(de)(de)(de)發(fa)展推向了(le)新的(de)(de)(de)高度。LLM具(ju)有極強的(de)(de)(de)多模態的(de)(de)(de)能(neng)力(li)(li)以及模式認識的(de)(de)(de)能(neng)力(li)(li),應用(yong)使用(yong)時不(bu)需(xu)要(yao)(yao)訓練或僅僅需(xu)要(yao)(yao)很少的(de)(de)(de)訓練。因(yin)此過去的(de)(de)(de)兩(liang)年,很多做時序數(shu)據分析的(de)(de)(de)專家轉(zhuan)向LLM,看是否能(neng)用(yong)LLM解決這一(yi)(yi)問題(ti)。今年4月份(fen),我(wo)決定采(cai)用(yong)AI大(da)語言(yan)模型(xing)為(wei)TDengine大(da)量(liang)用(yong)戶提供時序數(shu)據分析的(de)(de)(de)能(neng)力(li)(li)。我(wo)們(men)的(de)(de)(de)用(yong)戶來自各行各業,比如風力(li)(li)發(fa)電(dian)廠要(yao)(yao)預(yu)測的(de)(de)(de)是發(fa)電(dian)量(liang),石油行業要(yao)(yao)預(yu)測勘探產量(liang),大(da)型(xing)機電(dian)設備要(yao)(yao)做預(yu)測性維(wei)護(hu)等(deng)等(deng)。這些場(chang)景的(de)(de)(de)數(shu)據天差地別(bie),因(yin)此,我(wo)一(yi)(yi)開始就決定,TDgpt一(yi)(yi)定要(yao)(yao)采(cai)用(yong)LLM。
簡單易用
做任何產品,定義好解(jie)決(jue)的(de)問題后,我最先想到(dao)的(de)是(shi)用戶體驗(yan),用戶看到(dao)的(de)是(shi)什么。2007年iPhone一(yi)出(chu)來就(jiu)迅速擊(ji)敗Nokia Symbian, Windows Mobile等傳統(tong)的(de)智能(neng)手機(ji),核心原(yuan)因就(jiu)是(shi)它的(de)極致用戶體驗(yan),一(yi)個大屏幕,一(yi)個Home鍵,就(jiu)把以前復雜的(de)鍵盤、操作都(dou)去掉了(le)。
對(dui)于TDgpt,我最開(kai)始想到的(de)是Python庫,因為大部分數(shu)(shu)據分析師、數(shu)(shu)據科(ke)學(xue)家都會用(yong)Python,TDengine也支持(chi)Python,挺方便。但一(yi)細想,Python用(yong)起(qi)來(lai)還是復雜。TDengine本身是一(yi)款高性能、分布式的(de)時序數(shu)(shu)據庫產品,支持(chi)標準的(de)SQL。仔細思考(kao)后,我決定直接用(yong)SQL函數(shu)(shu)來(lai)提供時序數(shu)(shu)據預測、時序數(shu)(shu)據異常檢測的(de)功能,把背(bei)后的(de)AI大模型完全屏蔽起(qi)來(lai)。
用SQL來提(ti)(ti)供這(zhe)(zhe)(zhe)功(gong)(gong)能,有太多的(de)(de)(de)好(hao)處(chu)。第一,沒有學(xue)習成本,因為只是(shi)增加(jia)了擴(kuo)展函數(shu)(shu),世界(jie)上(shang)會用SQL的(de)(de)(de)人數(shu)(shu)遠(yuan)遠(yuan)超過使(shi)用Python的(de)(de)(de)。第二,TDengine本身(shen)還(huan)支持(chi)C/C++, Java, Go, Rust, Python等(deng)主流(liu)編程(cheng)(cheng)語言(yan),這(zhe)(zhe)(zhe)樣(yang)這(zhe)(zhe)(zhe)些(xie)編程(cheng)(cheng)語言(yan)都(dou)能立即(ji)使(shi)用TDgpt的(de)(de)(de)功(gong)(gong)能。第三,由于TDengine提(ti)(ti)供標準的(de)(de)(de)JDBC、ODBC接(jie)口(kou),幾乎所有的(de)(de)(de)BI工具比如(ru)Power BI, Tableau,國(guo)產的(de)(de)(de)帆軟、永(yong)洪都(dou)能無縫對接(jie),這(zhe)(zhe)(zhe)些(xie)BI工具也能馬(ma)上(shang)用上(shang)TDgpt的(de)(de)(de)功(gong)(gong)能。第四,TDengine還(huan)能無縫對接(jie)Grafana等(deng)可(ke)(ke)視化(hua)軟件,這(zhe)(zhe)(zhe)樣(yang)TDgpt輸出的(de)(de)(de)數(shu)(shu)據可(ke)(ke)以(yi)直(zhi)接(jie)在這(zhe)(zhe)(zhe)些(xie)可(ke)(ke)視化(hua)工具上(shang)展示。
因(yin)此我(wo)馬(ma)上(shang)與研發同學討(tao)論,定(ding)義(yi)了兩個SQL函數forecast與anomaly,來解決時(shi)序數據分析領域常用的兩個功能:時(shi)序數據預測和(he)時(shi)序數據異常檢測。比如數據庫demo里保存有一個設(she)備d100的采集的數據,針(zhen)對某一列采集的數據val,從現(xian)在開始預測300個數據點,SQL就是:
select _rowts, forecast(ts, val, 300) from demo.d100;
極(ji)其之簡單。如果要找(zhao)出這臺設(she)備(bei)采集(ji)的數據val的異常窗口,置信度為99%,SQL就是
select _rowts, anomaly(ts, val, 99) as anomaly from demo.d100;
通過SQL的這兩個擴展函數,你的應用就與AI大模型集成起來,你就擁有了時序數據預測、時序數據異常檢測的能力。你還可以通過命令行的方式直接執行SQL,做即席查詢,輸出結果。因此我在TDengine用戶大會上,很自豪的宣布“一條SQL,帶你進入AI時代”。

當我在TDengine用戶大會上展示這條SQL的魔力后,來自智能制造、電力、新能源(yuan)、石油、汽車等行業的(de)用戶,立(li)馬(ma)覺得自(zi)己的(de)物(wu)聯(lian)網(wang)、工業大數據平(ping)臺與(yu)AI大語言(yan)模型(xing)再也不(bu)是觸不(bu)可(ke)及,而是隨時可(ke)用了(le)。LLM不(bu)再只是用來生(sheng)成文字、圖片、視(shi)頻這些好玩的(de)內容,而是能真正服務工業領域,創造價(jia)值了(le)。
站在巨人的肩膀上
采用AI大語(yu)言模(mo)型有(you)兩(liang)條技術路線(xian),自己(ji)來(lai)訓(xun)練(lian)大模(mo)型或是(shi)采用現有(you)的(de)(de)大模(mo)型。因(yin)(yin)為時序(xu)數據(ju)與文字(zi)、語(yu)音、圖(tu)片(pian)、視頻完全(quan)不(bu)一(yi)樣(yang),因(yin)(yin)此第一(yi)想法毫無疑問的(de)(de)是(shi)自己(ji)建大模(mo)型,然后(hou)用大量的(de)(de)時序(xu)數據(ju)樣(yang)本來(lai)做(zuo)訓(xun)練(lian)。但(dan)是(shi)一(yi)想到訓(xun)練(lian)大模(mo)型需要的(de)(de)GPU資源,我(wo)馬上就望(wang)而止(zhi)步,因(yin)(yin)為我(wo)們只是(shi)一(yi)家(jia)(jia)時序(xu)數據(ju)庫公司(si),家(jia)(jia)底全(quan)部(bu)燒光(guang)也(ye)訓(xun)練(lian)不(bu)出來(lai)。因(yin)(yin)此我(wo)一(yi)直只是(shi)在觀望(wang)大模(mo)型的(de)(de)進展,并沒有(you)真正采取行動。
但今年四月(yue)與(yu)美國幾位做(zuo)時序(xu)數(shu)(shu)據(ju)分析的(de)(de)(de)教授交流,得知可(ke)以使(shi)用(yong)通(tong)用(yong)的(de)(de)(de)大(da)模型直接做(zuo)時序(xu)數(shu)(shu)據(ju)預測,結果(guo)與(yu)專用(yong)的(de)(de)(de)時序(xu)數(shu)(shu)據(ju)大(da)模型相比,沒有什么差異,我眼睛一亮,知道機會來(lai)了。我立馬決定采用(yong)Llama,Meta開(kai)源的(de)(de)(de)大(da)語言(yan)模型來(lai)做(zuo)時序(xu)數(shu)(shu)據(ju)的(de)(de)(de)分析。
怎(zen)么做呢?看了(le)幾篇論文之后(hou),知道可以(yi)將(jiang)已經采集的(de)(de)時(shi)(shi)序時(shi)(shi)間分(fen)成一(yi)(yi)(yi)(yi)個一(yi)(yi)(yi)(yi)個的(de)(de)patch,然(ran)后(hou)生(sheng)成大(da)模型(xing)(xing)需要(yao)的(de)(de)embeddings,同時(shi)(shi)設計了(le)一(yi)(yi)(yi)(yi)個專用的(de)(de)prompt的(de)(de)模版(ban),先將(jiang)分(fen)析數據(ju)的(de)(de)一(yi)(yi)(yi)(yi)些統(tong)計特征嵌入到(dao)prompt里(li),再(zai)將(jiang)生(sheng)成的(de)(de)prompt與(yu)embeddings喂給大(da)模型(xing)(xing),大(da)模型(xing)(xing)就能預測(ce)出(chu)一(yi)(yi)(yi)(yi)段時(shi)(shi)序數據(ju)了(le)。時(shi)(shi)序數據(ju)異(yi)常檢測(ce)與(yu)時(shi)(shi)序數據(ju)預測(ce)本質上是一(yi)(yi)(yi)(yi)樣的(de)(de),因為當實際采集的(de)(de)數據(ju)與(yu)預測(ce)出(chu)的(de)(de)數據(ju)偏離超過閾值,就是異(yi)常了(le)。因此用大(da)模型(xing)(xing)也可以(yi)用來檢測(ce)時(shi)(shi)序數據(ju)的(de)(de)異(yi)常。
思路確定(ding)后,就是(shi)具體的編碼工作了,TDengine的研發(fa)團隊很(hen)快就開發(fa)出來demo。通過(guo)一(yi)(yi)些(xie)模(mo)擬數據,證(zheng)明這套方(fang)(fang)法是(shi)完全可行的。現在下一(yi)(yi)步工作,就是(shi)找真實場景(jing),與用(yong)戶一(yi)(yi)道,來驗證(zheng)整(zheng)套方(fang)(fang)法是(shi)否能超越傳統的算法。
由于我們(men)(men)利用(yong)了(le)開(kai)源的(de)(de)(de)Llama,利用(yong)了(le)它的(de)(de)(de)預訓(xun)練好(hao)的(de)(de)(de)大(da)語言(yan)模型(xing),因此(ci)在沒有算力的(de)(de)(de)投入下,也能讓用(yong)戶迅速體驗LLM的(de)(de)(de)魅力。而且由于不(bu)(bu)需要針對不(bu)(bu)同場(chang)景做訓(xun)練,不(bu)(bu)需要有前(qian)期的(de)(de)(de)投入,完(wan)全(quan)成(cheng)了(le)一(yi)個開(kai)箱即用(yong)的(de)(de)(de)AI產品,大(da)幅降(jiang)低了(le)系統投入運營的(de)(de)(de)成(cheng)本。能做到這一(yi)切,是由于我們(men)(men)直接(jie)使用(yong)Llama,一(yi)下跨過了(le)很多步,站在巨(ju)人的(de)(de)(de)肩膀上(shang)了(le)。
科技公司的使命
任(ren)何一(yi)(yi)項技(ji)術(shu)的(de)(de)背后一(yi)(yi)定有很多(duo)復雜的(de)(de)細節,不是一(yi)(yi)般(ban)用(yong)戶或公司能搞(gao)清楚能掌握的(de)(de)。英文里有個(ge)單詞(ci)“democratize”,翻譯(yi)成中文是普及、大(da)眾化的(de)(de)意思。任(ren)何一(yi)(yi)項新技(ji)術(shu)的(de)(de)出現,科技(ji)公司的(de)(de)使命(ming)就是democratize它,就是要(yao)通(tong)過技(ji)術(shu)創新、產品(pin)創新或商業(ye)模式的(de)(de)創新,讓(rang)這些高深的(de)(de)技(ji)術(shu)能走近普通(tong)大(da)眾或普通(tong)企業(ye),讓(rang)人(ren)人(ren)都能用(yong),而且用(yong)的(de)(de)起。
對于LLM而言,也(ye)是(shi)如此。我(wo)特別(bie)欣賞(shang)Meta的做法(fa),將Llama開源出(chu)來,讓我(wo)們這類完全(quan)沒實力玩大模(mo)型的公司(si)也(ye)能享受LLM的紅利。2019年7月(yue),我(wo)們決定將TDengine核心(xin)代碼開源,2020年8月(yue),又將TDengine集群(qun)版(ban)功(gong)能開源出(chu)來,也(ye)是(shi)同樣的目的,就(jiu)是(shi)希望任何開發者(zhe)、任何公司(si)都能用上我(wo)們設計的高性(xing)能、分布(bu)式(shi)的時(shi)序(xu)數據庫。
除開(kai)源的(de)手(shou)段之(zhi)外,云服(fu)務(wu)也(ye)是(shi)一種讓高深的(de)技術走(zou)近普通大眾或企(qi)業的(de)有(you)效(xiao)方法(fa)。不用(yong)(yong)購買昂(ang)貴的(de)永久性軟件許(xu)可(ke)證(zheng),不用(yong)(yong)費時的(de)商業談判,也(ye)不用(yong)(yong)安裝(zhuang)部署,免費注冊后就能馬上(shang)用(yong)(yong)上(shang),而且是(shi)按使用(yong)(yong)量(liang)收(shou)費,大幅降低了入門門檻。如果不是(shi)云服(fu)務(wu),OpenAI的(de)ChatGPT雖然表現非(fei)凡,也(ye)絕無可(ke)能火爆起來(lai)。這也(ye)是(shi)我們2年前(qian),就開(kai)始(shi)推出(chu)TDengine云服(fu)務(wu)的(de)根本原因。我們計(ji)劃(hua)在2025年春節前(qian)推出(chu)TDgpt的(de)云服(fu)務(wu),要讓所有(you)物聯網(wang)、工業互(hu)聯網(wang)領域的(de)開(kai)發(fa)者(zhe)、公司都能用(yong)(yong)上(shang)LLM技術。
個人(ren)或公(gong)司是(shi)否采用一(yi)項新(xin)技術的(de)(de)(de)主要考量是(shi)它(ta)的(de)(de)(de)總擁有成(cheng)本(ben)(ben)。成(cheng)功、脫(tuo)穎而出的(de)(de)(de)科技公(gong)司一(yi)定是(shi)能將(jiang)一(yi)款產品或服(fu)務的(de)(de)(de)總擁有成(cheng)本(ben)(ben)大(da)幅降(jiang)低(di)。總擁有成(cheng)本(ben)(ben)除正常的(de)(de)(de)產品或服(fu)務的(de)(de)(de)采購成(cheng)本(ben)(ben)之外,還包括學習成(cheng)本(ben)(ben)、運維成(cheng)本(ben)(ben)等。TDgpt采用SQL的(de)(de)(de)主要目的(de)(de)(de)是(shi)降(jiang)低(di)學習成(cheng)本(ben)(ben),采用LLM的(de)(de)(de)主要目的(de)(de)(de)是(shi)大(da)幅降(jiang)低(di)實施(shi)和維護的(de)(de)(de)成(cheng)本(ben)(ben),因為它(ta)不需要針對特(te)定場景做(zuo)(zuo)訓練,能做(zuo)(zuo)到(dao)開箱(xiang)即用。不訓練自己的(de)(de)(de)大(da)模型,而是(shi)采用現有的(de)(de)(de)預訓練好的(de)(de)(de)大(da)模型,目的(de)(de)(de)就是(shi)一(yi)個,大(da)幅降(jiang)低(di)投入成(cheng)本(ben)(ben)。如果不能把總擁有成(cheng)本(ben)(ben)降(jiang)下來,TDgpt再(zai)絢也無(wu)人(ren)問(wen)津。

結語
從我(wo)創(chuang)立濤思(si)數據起,我(wo)定的(de)公司的(de)使命就(jiu)是“Make time series data accessible, affordable and valuable” (讓時序(xu)數據能隨意存(cun)取(qu)、用(yong)得起,并(bing)且有價值),因此(ci)我(wo)堅守“簡單易用(yong)”的(de)設計原則,采(cai)用(yong)SQL,確(que)保新手60秒就(jiu)能上手;持續不(bu)斷的(de)通過技術創(chuang)新來提升時序(xu)數據處(chu)理的(de)性能,降低計算與存(cun)儲的(de)成(cheng)本;大膽采(cai)用(yong)核(he)心代碼(ma)開源的(de)方式(shi),并(bing)推出免費注冊的(de)云服務。我(wo)們剛推出試(shi)用(yong)的(de)TDgpt也會采(cai)取(qu)完全(quan)一樣的(de)策(ce)略。
這一切,都是(shi)讓(rang)每一個人,無論你(ni)是(shi)個人開發者、創業公(gong)司還是(shi)行業巨頭(tou),都能(neng)從采集(ji)的(de)(de)海(hai)量時(shi)序數據里,挖掘(jue)出商業價值,獲得實時(shi)的(de)(de)商業洞(dong)察,并將數據的(de)(de)價值最大(da)化。我(wo)堅信,只有海(hai)量的(de)(de)用戶才能(neng)成就一家偉大(da)的(de)(de)科(ke)技(ji)公(gong)司。
陶建輝濤思數據TDengine創始人
2024年(nian)8月1日(ri)寫(xie)于北京望京


























