鍵.png)
使用這些基本 REST API 最佳實(shí)踐構(gòu)建出色的 API
圖1 單系列預(yù)測(cè)和多系列預(yù)測(cè)示意圖
深度學(xué)習(xí)預(yù)測(cè)模型在Makridakis競(jìng)賽中取得成功,廣泛應(yīng)用于產(chǎn)業(yè)大規(guī)模任務(wù)。最初的成功源于對(duì)RNN和CNN的改進(jìn),這兩種架構(gòu)最初為NLP和CV設(shè)計(jì)。RNNs和CNNs在時(shí)間序列預(yù)測(cè)中表現(xiàn)優(yōu)異。前饋網(wǎng)絡(luò)由于計(jì)算成本低、效率高,也經(jīng)常被使用。
近年來,基于Transformer的模型越來越受歡迎,因?yàn)樗鼈冊(cè)诖笠?guī)模設(shè)置和復(fù)雜任務(wù)中表現(xiàn)出卓越的性能。基礎(chǔ)模型在時(shí)間序列預(yù)測(cè)任務(wù)中的潛力仍然相對(duì)未被探索,但有一些關(guān)于預(yù)測(cè)基礎(chǔ)模型可能性的早期跡象。
基礎(chǔ)模型依賴跨領(lǐng)域泛化能力,尤其是面對(duì)新數(shù)據(jù)集。遷移學(xué)習(xí)是將一個(gè)任務(wù)的知識(shí)用于新任務(wù)。預(yù)測(cè)模型給出一個(gè)函數(shù)fθ : X 7→ Y,其中X是特征空間,Y是因變量空間。我們考慮X = {y[0:t] , x[0:t+h]}和Y = {y[t+1:t+h]},目標(biāo)是估計(jì)以下條件分布:
遷移學(xué)習(xí)是在源數(shù)據(jù)集上預(yù)訓(xùn)練模型,以提高在目標(biāo)數(shù)據(jù)集的新預(yù)測(cè)任務(wù)上的性能。有兩種情況:零樣本學(xué)習(xí)和微調(diào)。在零樣本學(xué)習(xí)中,直接轉(zhuǎn)移預(yù)訓(xùn)練模型;在微調(diào)中,則在新數(shù)據(jù)集上進(jìn)一步訓(xùn)練模型。基礎(chǔ)大模型的核心思想是利用大規(guī)模公開可用時(shí)間序列數(shù)據(jù)集進(jìn)行訓(xùn)練,并利用數(shù)據(jù)集和模型規(guī)模的比例關(guān)系。多種多樣的數(shù)據(jù)集使TimeGPT能夠洞見大量時(shí)間模式。
TimeGPT是Nixtla開發(fā)的用于預(yù)測(cè)任務(wù)的生成式預(yù)訓(xùn)練Transformer模型,具有自我關(guān)注機(jī)制和局部位置編碼,由多層編碼器-解碼器結(jié)構(gòu)組成,每個(gè)結(jié)構(gòu)都具有殘差連接和層歸一化。該模型旨在處理不同頻率和特征的時(shí)間序列,同時(shí)適應(yīng)不同的輸入大小和預(yù)測(cè)范圍。TimeGPT可以僅使用歷史值作為輸入,無需訓(xùn)練即可對(duì)新時(shí)間序列進(jìn)行準(zhǔn)確預(yù)測(cè)。該模型在歷史上最大的數(shù)據(jù)集上進(jìn)行了訓(xùn)練,包含超過1000億行的金融、天氣、能源和網(wǎng)絡(luò)數(shù)據(jù)。API為TimeGPT提供了一個(gè)接口,允許用戶利用其預(yù)測(cè)功能來預(yù)測(cè)未來的事件。
TimeGPT在訓(xùn)練過程中,使用了規(guī)模最大的公開時(shí)間序列數(shù)據(jù)集,該數(shù)據(jù)集包含了高達(dá)1000億個(gè)數(shù)據(jù)點(diǎn),覆蓋了金融、經(jīng)濟(jì)等多個(gè)領(lǐng)域。這個(gè)數(shù)據(jù)集的特點(diǎn)在于其多樣性,包含了多種時(shí)間模式、季節(jié)性、周期和趨勢(shì),同時(shí)也存在噪聲和異常值。在處理這些序列時(shí),我們僅進(jìn)行了格式標(biāo)準(zhǔn)化和缺失值填補(bǔ)等基本操作,盡量保留了數(shù)據(jù)的原始信息。這種處理方式使得TimeGPT能夠適應(yīng)各種復(fù)雜場(chǎng)景,提升其魯棒性和泛化能力,從而實(shí)現(xiàn)對(duì)未知時(shí)間序列的準(zhǔn)確預(yù)測(cè)。
TimeGPT在NVIDIA A10G GPU集群上訓(xùn)練,進(jìn)行了超參數(shù)探索以優(yōu)化學(xué)習(xí)率、批大小等。發(fā)現(xiàn)較大的批大小和較小的學(xué)習(xí)率有益。在PyTorch中實(shí)現(xiàn),使用Adam訓(xùn)練,學(xué)習(xí)率衰減到初始值的12%。
概率預(yù)測(cè)評(píng)估模型預(yù)測(cè)的不確定性,有助于風(fēng)險(xiǎn)評(píng)估和決策。保形預(yù)測(cè)是一種非參數(shù)方法,能生成具有指定覆蓋率精度的預(yù)測(cè)區(qū)間,無需嚴(yán)格的分布假設(shè),適用于模型和時(shí)間序列的未知領(lǐng)域。在新時(shí)間序列推理中,我們滾動(dòng)預(yù)測(cè)以估計(jì)模型預(yù)測(cè)特定目標(biāo)時(shí)間序列的誤差。
圖2 TimeGPT 在最大的公開時(shí)間序列集合中進(jìn)行了訓(xùn)練,并且可以預(yù)測(cè)未見過的時(shí)間序列,而無需重新訓(xùn)練其參數(shù)
傳統(tǒng)預(yù)測(cè)性能評(píng)估方法,如劃分訓(xùn)練集和測(cè)試集,不足以評(píng)估基礎(chǔ)模型,因?yàn)樗鼈冎饕獙傩允穷A(yù)測(cè)完全新穎的序列。
本節(jié)探討了TimeGPT作為預(yù)測(cè)基礎(chǔ)模型的能力,通過從未見過的大量不同時(shí)間序列中測(cè)試TimeGPT。測(cè)試集包括多個(gè)領(lǐng)域的30多萬個(gè)時(shí)間序列。評(píng)估在每個(gè)時(shí)間序列的最后一個(gè)預(yù)測(cè)窗口中進(jìn)行,其長(zhǎng)度隨采樣頻率的變化而變化。TimeGPT使用以前的歷史值作為輸入,如圖3,而不重新訓(xùn)練其權(quán)重(零樣本)。根據(jù)頻率指定了不同的預(yù)測(cè)范圍,以表示常見的實(shí)際應(yīng)用:12表示每月,1表示每周,7表示每天,24表示每小時(shí)的數(shù)據(jù)。
圖3 新時(shí)間序列的推斷。
TimeGPT以目標(biāo)值的歷史值和額外的外生變量作為輸入,生成預(yù)測(cè)。我們依靠基于歷史誤差的保形預(yù)測(cè)來估計(jì)預(yù)測(cè)區(qū)間。
圖4 TimeGPT和各組模型在月頻率上的相對(duì)平均絕對(duì)誤差(rMAE)。
圖中每個(gè)豆子代表一組模型的rMAE分布,中心線顯示平均值。TimeGPT的性能領(lǐng)先,其次是深度學(xué)習(xí)方法、統(tǒng)計(jì)方法、機(jī)器學(xué)習(xí)和基線模型。其他頻率的結(jié)果類似。
本文對(duì)基準(zhǔn)測(cè)試中的性能分析進(jìn)行了全面研究,涉及基線、統(tǒng)計(jì)、機(jī)器學(xué)習(xí)和神經(jīng)預(yù)測(cè)模型。基線和統(tǒng)計(jì)模型基于歷史值訓(xùn)練,機(jī)器學(xué)習(xí)采用全局模型和深度學(xué)習(xí)方法,排除了Prophet和ARIMA等模型。評(píng)估指標(biāo)包括相對(duì)平均絕對(duì)誤差和相對(duì)均方根誤差,這些指標(biāo)以季節(jié)性樸素模型為基準(zhǔn)進(jìn)行了歸一化處理,展示了相對(duì)于已知基準(zhǔn)的性能提升,提高了結(jié)果的可解釋性。同時(shí),這些指標(biāo)具有尺度獨(dú)立性,有助于比較每種頻率的結(jié)果。為了確保數(shù)值的穩(wěn)定性和評(píng)估的一致性,對(duì)這些指標(biāo)進(jìn)行了全局歸一化處理。具體的計(jì)算方式詳見方程2。
TimeGPT在零樣本推理測(cè)試中表現(xiàn)出色,無需額外微調(diào)即可在測(cè)試集上表現(xiàn)出色。表1顯示了其零樣本結(jié)果,其性能明顯優(yōu)于其他模型。在實(shí)際應(yīng)用中,TimeGPT通過簡(jiǎn)單、快速地調(diào)用預(yù)訓(xùn)練模型進(jìn)行預(yù)測(cè),提高了預(yù)測(cè)效率,降低了計(jì)算成本和實(shí)現(xiàn)復(fù)雜性,因此更具競(jìng)爭(zhēng)力。
表1 使用零樣本推斷和使用rMAE和rRMSE測(cè)量的基準(zhǔn)模型的TimeGPT的主要性能結(jié)果,得分越低越好。每個(gè)頻率和度量的最佳模型以粗體突出顯示,第二個(gè)最佳模型以下劃線突出顯示,而第三個(gè)最佳模型則以虛線突出顯示。
微調(diào)是利用基礎(chǔ)模型和基于transformer架構(gòu)的關(guān)鍵步驟?;A(chǔ)模型在大量數(shù)據(jù)上預(yù)訓(xùn)練,捕獲通用特征,但需針對(duì)特定背景或領(lǐng)域?qū)iT化。微調(diào)在特定任務(wù)數(shù)據(jù)集上調(diào)整模型參數(shù),使模型根據(jù)新任務(wù)要求調(diào)整現(xiàn)有知識(shí),保持廣泛理解并擅長(zhǎng)特定任務(wù)。由于transformer架構(gòu)的靈活性和學(xué)習(xí)復(fù)雜模式的能力,微調(diào)特別有益,提高特定領(lǐng)域性能。因此,微調(diào)是連接基礎(chǔ)模型廣泛能力和目標(biāo)任務(wù)特性的重要橋梁。圖5顯示TimeGPT在測(cè)試集上針對(duì)時(shí)間序列子集的微調(diào)步驟數(shù)與準(zhǔn)確度提高的關(guān)系。
圖5 對(duì)測(cè)試集的時(shí)間序列子集進(jìn)行微調(diào)后的 TimeGPT 性能
在零樣本推斷方面,TimeGPT的GPU推斷速度在零樣本推斷方面表現(xiàn)出色,平均每系列只需0.6毫秒,與簡(jiǎn)單季節(jié)性樸素推斷相當(dāng)。相比之下,并行計(jì)算優(yōu)化的統(tǒng)計(jì)方法和全局模型(如LGBM、LSTM和NHITS)的速度較慢,每系列需要600毫秒和57毫秒。因此,TimeGPT的總速度比傳統(tǒng)統(tǒng)計(jì)方法和全局模型快幾個(gè)數(shù)量級(jí)。
當(dāng)前預(yù)測(cè)實(shí)踐涉及數(shù)據(jù)處理、模型訓(xùn)練和選擇等復(fù)雜步驟。TimeGPT通過簡(jiǎn)化推理步驟,簡(jiǎn)化了這一過程,減少了復(fù)雜性和時(shí)間投入,同時(shí)仍能實(shí)現(xiàn)最先進(jìn)的性能。TimeGPT展示了大模型的優(yōu)勢(shì),為預(yù)測(cè)領(lǐng)域帶來深遠(yuǎn)影響?;A(chǔ)模型對(duì)預(yù)測(cè)領(lǐng)域產(chǎn)生重要影響,并重新定義當(dāng)前做法。
TimeGPT在時(shí)間序列領(lǐng)域引入基礎(chǔ)模型,為未來改進(jìn)開辟可能道路,被認(rèn)為是時(shí)間序列領(lǐng)域的一個(gè)重要里程碑。然而,該工作還有許多限制和未解決的問題。雖然TimeGPT展示了驚人的結(jié)果,但仍需關(guān)注一些限制和問題。
未來的研究方向主要包括:1)有見地的預(yù)測(cè);2)時(shí)間序列嵌入。此外,關(guān)于時(shí)間序列分類的基礎(chǔ)模型以及真正多模態(tài)和多時(shí)態(tài)基礎(chǔ)模型的整合也有望成為未來研究的熱點(diǎn)領(lǐng)域。這些領(lǐng)域?qū)⒂兄谖覀冮_發(fā)更強(qiáng)大和更通用的預(yù)測(cè)模型。
安裝
pip install nixtlats
如何使用
只需導(dǎo)入庫,然后用兩行代碼就可以開始預(yù)測(cè)!
df = pd.read_csv('https://raw.githubusercontent.com/Nixtla/transfer-learning-time-series/main/datasets/electricity-short.csv')
from nixtlats import TimeGPT
timegpt = TimeGPT(# defaults to os.environ.get("TIMEGPT_TOKEN") token ='my_token_provided_by_nixtla')
fcst_df = timegpt.forecast(df, h=24, level=[80,90])
INFO:nixtlats.timegpt:Validating inputs...INFO:nixtlats.timegpt:Preprocessing dataframes...INFO:nixtlats.timegpt:Inferred freq: HINFO:nixtlats.timegpt:Restricting input...INFO:nixtlats.timegpt:Calling Forecast Endpoint...
timegpt.plot(df, fcst_df, level=[80,90], max_insample_length=24*5)
文章轉(zhuǎn)自微信公眾號(hào)@算法進(jìn)階
對(duì)比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力
一鍵對(duì)比試用API 限時(shí)免費(fèi)