摘要: 在面對(duì)集群系統(tǒng)故障預(yù)測(cè)時(shí),長(zhǎng)時(shí)間序列預(yù)測(cè)中存在因關(guān)鍵特征信息丟失而導(dǎo)致梯度消失或爆炸問(wèn)題,從而影響了故障預(yù)測(cè)模型的準(zhǔn)確性。基于此,提出一種新的基于深度學(xué)習(xí)的集群系統(tǒng)故障預(yù)測(cè)方法。該方法采用雙向門控循環(huán)網(wǎng)絡(luò)(bidirectional gate recurrent unit, BiGRU)來(lái)捕捉局部時(shí)序特征,同時(shí)采用Transformer來(lái)提高全局特征提取能力。通過(guò)BiGRU層中雙向的信息傳遞獲得集群系統(tǒng)日志上時(shí)序特征的動(dòng)態(tài)變化,以獲取集群事件中的潛在因果關(guān)系和局部時(shí)間特征,使用Transformer層并行處理BiGRU層輸出的時(shí)間序列,得到全局的時(shí)間依賴性,繼而由全連接神經(jīng)網(wǎng)絡(luò)層得到預(yù)測(cè)結(jié)果。通過(guò)由Blue Gene/L系統(tǒng)產(chǎn)生的真實(shí)日志所構(gòu)建的公共數(shù)據(jù)集來(lái)驗(yàn)證方法的有效性,結(jié)果表明,所提方法優(yōu)于對(duì)比方法,其最佳正確率和F1值分別達(dá)到91.69%和92.74%。
關(guān)鍵詞: 故障預(yù)測(cè); 集群系統(tǒng); 特征提?。?循環(huán)神經(jīng)網(wǎng)絡(luò); Transformer; 深度學(xué)習(xí)
中圖分類號(hào): TP391
文獻(xiàn)標(biāo)志碼: A
文章編號(hào): 1671-6841(2024)05-0071-09
DOI: 10.13705/j.issn.1671-6841.2023021
A Cluster System Failure Prediction Approach Based on Deep Learning
JI Lixia1,2, ZHANG Qingkai1, ZHOU Hongxin1, DANG Yiping1, ZHANG Han1
(1.School of Cyber Science and Engineering, Zhengzhou University, Zhengzhou 450002, China;
2.College of Computer Science, Sichuan University, Chengdu 610065, China)
Abstract: In the clustered system failure prediction, the long-time series prediction was accompanied by problem such as gradient disappearance or explosion, due to the loss of key feature information, which would affect the accuracy of the model for failure prediction. For this reason, a new model of cluster system fault prediction method based on deep learning was proposed. The method adopted bidirectional gate recurrent unit (BiGRU) to capture local timing features while employing Transformer to improve the global feature extraction capability. The dynamic changes of timing features on the cluster system logs were obtained through bidirectional information transfer in the BiGRU layer to capture the potential causality and local temporal features in the cluster events.The Transformer layer was used to process the time series output from the BiGRU layer in parallel to obtain the global temporal dependence, which followed by the fully connected neural network layer to obtain the prediction results. The effectiveness of the method was validated on a public dataset constructed from real logs generated by the Blue Gene/L system. The results showed that the proposed method outperformed the comparison methods with a best-correct rate and F1 value of 91.69% and 92.74%, respectively.
Key words: failure prediction; cluster system; feature extraction; recurrent neural network; Transformer; deep learning
0 引言
目前大多數(shù)針對(duì)集群系統(tǒng)的故障預(yù)測(cè)引擎是基于系統(tǒng)日志來(lái)構(gòu)建的[1],這是由于其包含集群系統(tǒng)實(shí)時(shí)狀態(tài)的各種事件日志,可以較長(zhǎng)時(shí)間且更準(zhǔn)確地記錄系統(tǒng)行為。同時(shí),日志中的事件之間存在明顯的相關(guān)性,并且系統(tǒng)的故障事件表現(xiàn)出明顯的時(shí)間相關(guān)性[2]。
隨著人工智能學(xué)科的興起,深度學(xué)習(xí)被應(yīng)用于故障預(yù)測(cè)領(lǐng)域[3-4],該類方法通過(guò)神經(jīng)網(wǎng)絡(luò)模型深度挖掘事件的時(shí)間關(guān)聯(lián)性,對(duì)系統(tǒng)行為和歷史狀態(tài)進(jìn)行建模分析,從而預(yù)測(cè)系統(tǒng)未來(lái)是否會(huì)發(fā)生故障及可能出現(xiàn)的故障類型,實(shí)現(xiàn)對(duì)系統(tǒng)故障的精準(zhǔn)預(yù)測(cè)。這些方法更加關(guān)注故障特征與故障趨勢(shì)的關(guān)系,雖然在特征提取能力方面有了進(jìn)一步的提升,但隨著集群規(guī)模的日益擴(kuò)大,集群故障預(yù)測(cè)序列長(zhǎng)度增加,這些方法往往伴隨著梯度消失或爆炸問(wèn)題[5],從而引起集群實(shí)時(shí)狀態(tài)或一些時(shí)間點(diǎn)等關(guān)鍵信息的丟失。
循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)在提取時(shí)序中的時(shí)間相關(guān)性方面能力突出,但由于其自身順序結(jié)構(gòu)的局限性,只能實(shí)現(xiàn)局部因果時(shí)間相關(guān)性的特征提?。?],在面對(duì)長(zhǎng)時(shí)間序列預(yù)測(cè)時(shí)會(huì)遺忘部分信息,從而導(dǎo)致梯度消失或爆炸問(wèn)題。隨著Transformer模型[7]在自然語(yǔ)言處理領(lǐng)域的深度應(yīng)用,其展示出對(duì)長(zhǎng)時(shí)序數(shù)據(jù)的強(qiáng)大建模能力,但其自注意力機(jī)制在處理局部特征時(shí)可能會(huì)因過(guò)于關(guān)注全局信息而忽視了局部細(xì)節(jié),弱化了模型捕捉局部特征的能力[8]。
受此啟發(fā),采用Transformer來(lái)學(xué)習(xí)長(zhǎng)時(shí)間序列的全局特征,與RNN學(xué)習(xí)長(zhǎng)時(shí)間序列的局部特征相互補(bǔ),以解決長(zhǎng)時(shí)間序列中的重要特征丟失問(wèn)題。同時(shí),雙向循環(huán)網(wǎng)絡(luò)模型對(duì)文本序列上下文特征的提取有著優(yōu)越的性能表現(xiàn),能夠進(jìn)一步提升局部因果時(shí)間相關(guān)性的提取能力。因此,本文提出一種基于Transformer與BiGRU的集群故障預(yù)測(cè)方法,簡(jiǎn)稱為TBGRU。該方法首先通過(guò)BiGRU和Transformer相結(jié)合的方式來(lái)獲取故障序列的局部時(shí)間特征和全局時(shí)間依賴性,然后通過(guò)全連接神經(jīng)網(wǎng)絡(luò)層輸出預(yù)測(cè)結(jié)果。TBGRU不僅可以捕獲局部的時(shí)間依賴性和時(shí)序數(shù)據(jù)的因果關(guān)系,還可以捕獲整體時(shí)間內(nèi)事件的時(shí)序關(guān)系,并抓取長(zhǎng)時(shí)的依賴信息,從而解決了目前研究中普遍存在的在預(yù)測(cè)長(zhǎng)時(shí)間序列時(shí)會(huì)發(fā)生的梯度爆炸或消失問(wèn)題。在Blue Gene/L系統(tǒng)的真實(shí)日志數(shù)據(jù)集中,相比其他基線模型,TBGRU在集群故障預(yù)測(cè)中具有更好的性能表現(xiàn)。
1 相關(guān)工作
針對(duì)集群系統(tǒng)故障預(yù)測(cè)的研究主要分為兩類:一類是基于傳統(tǒng)的統(tǒng)計(jì)和規(guī)則基準(zhǔn)的預(yù)測(cè)方法;另一類是基于人工智能技術(shù)的預(yù)測(cè)方法。其中第一類方法大多為基于系統(tǒng)日志的故障預(yù)測(cè)方法[9],通過(guò)跟蹤和分析反映系統(tǒng)狀態(tài)變化過(guò)程的系統(tǒng)日志來(lái)達(dá)到故障預(yù)測(cè)的目的。例如,王衛(wèi)華等[10]提出一種基于頻繁日志事件序列聚類的故障預(yù)測(cè)方法。Fu等[11-12]使用Apriori-LIS和Apriori-simiLIS算法來(lái)挖掘日志事件之間的關(guān)系,并提出了事件關(guān)聯(lián)圖來(lái)表示事件之間的規(guī)則,進(jìn)而預(yù)測(cè)可能發(fā)生的故障事件。但在數(shù)據(jù)特征挖掘階段,這些方法大部分并未全面考慮事件之間的時(shí)間相關(guān)性,忽略了故障之間的因果關(guān)系對(duì)預(yù)測(cè)能力的影響,在預(yù)測(cè)細(xì)粒度的故障時(shí),往往因粗糙的提取特征而影響預(yù)測(cè)性能。
基于統(tǒng)計(jì)的機(jī)器學(xué)習(xí)和基于神經(jīng)網(wǎng)絡(luò)的深度學(xué)習(xí)方法也被用于故障預(yù)測(cè)領(lǐng)域。Liang等[13]針對(duì)IBM的Blue Gene/L集群系統(tǒng)日志進(jìn)行研究,采用基于規(guī)則挖掘的分類算法RIPPER、支持向量機(jī)、k-近鄰和自定義最近鄰方法分別構(gòu)建了故障預(yù)測(cè)模型,進(jìn)行二分類預(yù)測(cè)。王振華[14]在此基礎(chǔ)上增強(qiáng)了日志特征提取能力,并且選擇合適的分類器,使用貝葉斯網(wǎng)絡(luò)、隨機(jī)森林、AdaBoostSVM自適應(yīng)提升算法等構(gòu)建分類預(yù)測(cè)模型。Mohammed等[15]提出一種基于時(shí)間序列和機(jī)器學(xué)習(xí)的故障預(yù)測(cè)模型。
上述方法通過(guò)挖掘事件之間的時(shí)序特征,大大提高了模型對(duì)故障預(yù)測(cè)的精度。但在面對(duì)長(zhǎng)時(shí)間序列時(shí)存在因部分關(guān)鍵信息丟失而導(dǎo)致梯度消失或爆炸等問(wèn)題,降低了故障預(yù)測(cè)精度。Vaswani等[16]放棄了RNN和CNN,提出了完全基于全連接層和注意力機(jī)制的Transformer。注意力機(jī)制在解決長(zhǎng)序列信息丟失的問(wèn)題中是有效的,并且在許多領(lǐng)域的基本問(wèn)題上取得了最先進(jìn)的性能[17-18]。但Transformer通過(guò)位置編碼來(lái)實(shí)現(xiàn)序列特征的提取,這與RNN等自然序列特征提取器在特征提取能力上存在一定差距。因此,本文提出結(jié)合Transformer和BiGRU的TBGRU模型。在該模型中,Transformer的多頭自注意力機(jī)制和殘差連接能更好地處理長(zhǎng)時(shí)間序列信息特征丟失的問(wèn)題,同時(shí),BiGRU的雙向疊加設(shè)計(jì)使得模型能夠更好地獲得當(dāng)前時(shí)間點(diǎn)的上下文信息,并學(xué)習(xí)其中的因果關(guān)系,進(jìn)而解決深層次的特征挖掘問(wèn)題。
2 故障預(yù)測(cè)模型
2.1 問(wèn)題定義
集群系統(tǒng)中的故障預(yù)測(cè)問(wèn)題可以描述為:通過(guò)輸入時(shí)長(zhǎng)為S的歷史時(shí)刻日志中事件的實(shí)時(shí)數(shù)據(jù)來(lái)預(yù)測(cè)接下來(lái)T時(shí)刻內(nèi)的集群實(shí)時(shí)狀態(tài)。選擇一個(gè)長(zhǎng)度為L(zhǎng)的滑動(dòng)窗口來(lái)定義原始向量序列X的特征序列,X=(x1,x2,…,xn)。歷史值或真實(shí)值由Y給出,Y=(y1,y2,…,yn-1),其中yi∈RdL。通過(guò)將時(shí)間序列特征X經(jīng)過(guò)TBGRU模型的訓(xùn)練來(lái)得到預(yù)測(cè)估計(jì)值Y^=(y^1, y^2,…, y^n)。這里的集群系統(tǒng)狀態(tài)包含故障、可恢復(fù)故障和非故障等一系列信息,使用系統(tǒng)日志中的實(shí)時(shí)狀態(tài)作為集群系統(tǒng)是否故障的一種表示方式。
2.2 TBGRU模型框架
模型由數(shù)據(jù)預(yù)處理層、BiGRU層、Transformer層和故障預(yù)測(cè)層組成。首先通過(guò)數(shù)據(jù)預(yù)處理將原始數(shù)據(jù)的關(guān)鍵信息進(jìn)行向量化,然后將序列數(shù)據(jù)輸入BiGRU中,捕獲日志事件中局部時(shí)間依賴性和時(shí)序數(shù)據(jù)的因果關(guān)系。由Transformer對(duì)經(jīng)過(guò)BiGRU層處理后的特征序列信息進(jìn)行再處理,使得處理后的序列獲得序列信息中的全局時(shí)序特征。最后,以Transformer層輸出的最終狀態(tài)作為分類的輸入,輸出到全連接神經(jīng)網(wǎng)絡(luò)層繼而得到預(yù)測(cè)概率。TBGRU模型框架如圖1所示。
2.2.1 數(shù)據(jù)預(yù)處理層
在數(shù)據(jù)預(yù)處理階段,將原始數(shù)據(jù)的多元特征映射到向量序列X=(x1,x2,…,xn),其中:xi∈RdR,dR為特征在映射后的向量表示中的維數(shù);n為數(shù)據(jù)數(shù)量。原始數(shù)據(jù)到特征向量主要由過(guò)濾、數(shù)據(jù)標(biāo)記化和向量化表示三部分組成。
原始數(shù)據(jù)通常包含大量冗余的記錄以及與故障癥狀無(wú)關(guān)的正常系統(tǒng)記錄,會(huì)影響故障預(yù)測(cè)的效率和準(zhǔn)確性。因此,在數(shù)據(jù)預(yù)處理階段主要完成以下任務(wù)。① 過(guò)濾冗余的數(shù)據(jù)信息。原始數(shù)據(jù)包含一些與故障預(yù)測(cè)無(wú)關(guān)的數(shù)據(jù)信息,如事件的描述、事件發(fā)生的地點(diǎn)等,只保留事件類型、故障級(jí)別和時(shí)間戳三個(gè)方面的信息。② 對(duì)原始數(shù)據(jù)進(jìn)行標(biāo)記化。由于復(fù)雜的集群環(huán)境和故障癥狀,將事件類型分為六類:APP(應(yīng)用程序)、HARDWARE(硬件)、KERNEL(內(nèi)核,一般與內(nèi)存或網(wǎng)絡(luò)相關(guān))、LINKCARD(中間件通信)、DISCOVERY(資源更新和初始配置)、MONITOR(電源、溫度等異常監(jiān)控);將故障級(jí)別分為三類:無(wú)故障、可自愈的輕微故障、嚴(yán)重故障。并且,將事件類型和故障級(jí)別兩個(gè)維度的信息進(jìn)行融合。③ 對(duì)處理好的數(shù)據(jù)進(jìn)行向量化表示。分別用不同的向量表示在不同時(shí)間內(nèi)每種事件的發(fā)生。
為了消除各項(xiàng)指標(biāo)之間的量綱影響,需要通過(guò)數(shù)據(jù)標(biāo)準(zhǔn)化來(lái)解決數(shù)據(jù)指標(biāo)之間的可比性。采用最大最小標(biāo)準(zhǔn)化方法對(duì)原始數(shù)據(jù)進(jìn)行歸一化,使原始數(shù)據(jù)映射到[0,1],具體公式為
xi=xi-xminxmax-xmin,(1)
其中:xi為歸一化后的數(shù)據(jù);xi為原始數(shù)據(jù);xmax為原始數(shù)據(jù)中的最大值;xmin為原始數(shù)據(jù)中的最小值。將每種故障類型作為輸入,向量序列X=(x1,x2,…,xn)作為輸出。經(jīng)過(guò)上述處理后,將原始數(shù)據(jù)轉(zhuǎn)換為矢量序列X,繼而輸出給BiGRU層提取時(shí)序特征信息。
2.2.2 BiGRU層
BiGRU是在傳統(tǒng)GRU網(wǎng)絡(luò)的基礎(chǔ)上擴(kuò)展了第二隱藏層,通過(guò)對(duì)序列進(jìn)行正向和反向掃描來(lái)獲取過(guò)去和未來(lái)的上下文信息。這種模型對(duì)輸入數(shù)據(jù)的依賴性小,具有復(fù)雜度低、響應(yīng)時(shí)間快等優(yōu)點(diǎn)。對(duì)于t時(shí)刻的輸入序列xt(xt∈X),經(jīng)過(guò)BiGRU處理后可得到對(duì)應(yīng)的輸出x^t,繼而組成輸出序列X^=(x^1,x^2,…,x^n),
ut=sigmoid(xtWz+ht-1Uz),(2)
rt=sigmoid(xtWr+ht-1Ur),(3)
ht=tanh(W·[rt×ht-1],xt),(4)
ht=(1-ut)ht-1+ut*tanh(xtWh+
(ht-1rt)*Uh),(5)
x^t=htht,(6)
其中:rt為復(fù)位門;ut為更新門;xt為t時(shí)刻的輸入向量;ht-1表示t-1時(shí)刻的狀態(tài)信息;ht表示候選隱藏狀態(tài);ht表示隱藏狀態(tài);W和U為需要訓(xùn)練的權(quán)值矩陣。
2.2.3 Transformer層
將經(jīng)過(guò)BiGRU處理后得到的特征向量序列X^作為Transformer模型的輸入,生成狀態(tài)序列H=(h1,h2,…,hn)。如圖1所示,變換編碼器主要分為多頭自注意力網(wǎng)絡(luò)和前饋網(wǎng)絡(luò),計(jì)算公式為
multiHead(Q,K,V)=concat(Att1,Att2,…,Attn),(7)
Att1=softmax(QKTdk)V,(8)
其中:Q、K、V分別表示查詢、鍵和值,均為輸入矩陣;dk表示鍵的維數(shù);在模型中n設(shè)置為2。這里使用從BiGRU層得到的特征向量序列X^作為Q、K、V,然后輸出X^Att,
X^Att=multiHead(X^, X^, X^),(9)
X^residual=norm(X^Att+X^),(10)
H=norm(X^residual+FFN(X^residual))。(11)
FFN由兩個(gè)線性變換和一個(gè)ReLU組成,
FFN(X^residual)=
Linear(max(0,Linear(X^residual)))。(12)
Transformer內(nèi)部層的大小為2 048,最后生成狀態(tài)序列H=(h1,h2,…,hn)。使用最終狀態(tài)hn作為Transformer的輸出,然后輸入全連接神經(jīng)網(wǎng)絡(luò),實(shí)現(xiàn)故障預(yù)測(cè)分類。
2.2.4 故障預(yù)測(cè)層
為了實(shí)現(xiàn)多分類故障預(yù)測(cè),使用全連接神經(jīng)網(wǎng)絡(luò)對(duì)時(shí)間卷積層輸出的結(jié)果H∈RN×T進(jìn)行線性變化處理,即將時(shí)間序列的維度轉(zhuǎn)換成需要預(yù)測(cè)的時(shí)間長(zhǎng)度,
Y^=[y^t+1,y^t+2,…,y^t+T]=δ(WfH+bf),(13)
其中:T為預(yù)測(cè)的時(shí)間長(zhǎng)度;Y^∈RN×T;δ(·)表示線性神經(jīng)網(wǎng)絡(luò)的激活函數(shù);Wf∈R2d×T,為全連接神經(jīng)網(wǎng)絡(luò)的權(quán)重矩陣;bf為偏置項(xiàng)。
為了進(jìn)一步優(yōu)化預(yù)測(cè)結(jié)果,采用軟動(dòng)態(tài)時(shí)間規(guī)整(Soft-DTW)[19]作為損失函數(shù)。簡(jiǎn)單地說(shuō),軟動(dòng)態(tài)時(shí)間規(guī)整算法可以根據(jù)兩個(gè)時(shí)間序列的特征找到合適的匹配來(lái)計(jì)算兩個(gè)序列的相似性,然后通過(guò)反向傳播不斷校正模型,最終達(dá)到最優(yōu)的預(yù)測(cè)結(jié)果。
對(duì)于任意節(jié)點(diǎn)Xi的預(yù)測(cè)值Y^∈RT和真實(shí)標(biāo)簽值Yi∈RT,損失值計(jì)算過(guò)程為
loss=dtwγ(Y^i,Yi)=minγ{(A,Δ(Y^i,Yi)),
A∈AT,T}=-γ(log(∑A∈T,Te-(A,Δ(Y^i,Yi),A∈T,T))),(14)
其中:γ(0,1]表示歐幾里得損失值的取值范圍;AT,T{0,1}T×T表示長(zhǎng)度均為T序列上的校準(zhǔn)矩陣集合,A∈AT,T代表一條路徑。此外,這里的分類由一個(gè)Linear層和logsoftmax組成。將Transformer層輸出的狀態(tài)序列H=(h1,h2,…,hn)作為輸入,最終輸出模型預(yù)測(cè)的接下來(lái)一段時(shí)間集群系統(tǒng)的狀態(tài)Y^=(y^1, y^2,…, y^n)。
2.3 模型訓(xùn)練
由于神經(jīng)網(wǎng)絡(luò)參數(shù)和超參數(shù)多種多樣,為了減少模型訓(xùn)練時(shí)間,以便更好地進(jìn)行驗(yàn)證和模型預(yù)測(cè),執(zhí)行了在算法1中定義的類似網(wǎng)格的搜索機(jī)制。算法1的具體步驟如下。
算法1 TBGRU模型超參數(shù)的調(diào)優(yōu)算法
輸入: 原始故障數(shù)據(jù)時(shí)間序列F,滑動(dòng)窗口長(zhǎng)度L,隱藏層層數(shù)H。
輸出: 優(yōu)化的TBGRU模型Mt,訓(xùn)練誤差t,驗(yàn)證誤差v。
初始化: TBGRUnet的神經(jīng)元數(shù)量、激活函數(shù)、批處理窗口大小、隱藏層數(shù)量、Epochs、優(yōu)化器和損失函數(shù)初始化隨機(jī)值。
初始值: 滑動(dòng)窗口范圍L←range(2, Lmax), H∈{H1, H2,…, Hn}, 誤差閾值 ∈min=CONSTANT
1: 劃分X為訓(xùn)練集Xt和驗(yàn)證集Xv;
2: 隨機(jī)排列Xt為(Xt);
3: 隨機(jī)排列Xv為(Xv);
4: 設(shè)置 flag←false;
5: for 每個(gè)時(shí)間窗口步長(zhǎng)L∈{2, 3, …, Lmax}; do
6: for 每個(gè)隱藏層的數(shù)量H∈{H1, H2,…,Hn}標(biāo)記為iterationH; do
7: assert: L≥2 and Lmaxlength F;
8: 設(shè)置Mt←TBGRUnet (XLt, XLv, seeds, η);
9: 計(jì)算Lt←trainingloss (Mt);
10: 計(jì)算Lv←validationloss (Mt);
11: if Lt≤∈min and Lv≤min then
12: flag←true
13: break loops
14: else
15: 重復(fù)直至收斂,并且設(shè)置flag←true;
16: end if
17: end for
18:end for
19: if flag←true then
20: 使用模型Mt進(jìn)行TBGRUnet預(yù)測(cè)任務(wù);
21: else
22: 重復(fù)使用不同的條件進(jìn)行實(shí)驗(yàn),或者結(jié)束過(guò)程;
23: end if
算法1是一種實(shí)現(xiàn)雙目標(biāo)的算法,即調(diào)整BiGRU和Transformer的隱藏層層數(shù)和搜索滑動(dòng)窗口時(shí)間步長(zhǎng),以便更好地驗(yàn)證和預(yù)測(cè)集群故障。其中第一層神經(jīng)元數(shù)量N∈{16,32,64,128,256},隱藏層的層數(shù)H∈{16,32,64,128,256},學(xué)習(xí)率η∈{0.1,0.2,0.5,0.8,1.0}。同時(shí),TBGRU模型采用的激活層函數(shù)為ReLU,損失函數(shù)為Soft-DTW,優(yōu)化器函數(shù)為Adam,最后一層激活層為sigmoid,Batch size為64。
3 實(shí)驗(yàn)與分析
3.1 實(shí)驗(yàn)數(shù)據(jù)
實(shí)驗(yàn)采用Blue Gene/L集群系統(tǒng)產(chǎn)生的系統(tǒng)日志數(shù)據(jù),Blue Gene/L數(shù)據(jù)集是由從Lawrence Livermore 國(guó)家實(shí)驗(yàn)室(LLNL)部署9759d2d921b6eb3e05dddc3cf831cee2的Blue Gene/LHPC系統(tǒng)中收集到的事件日志組成,日志記錄包括致命告警和非致命告警,是故障檢測(cè)和預(yù)測(cè)研究中常用的數(shù)據(jù)集。該數(shù)據(jù)集可以從公共計(jì)算機(jī)故障倉(cāng)庫(kù)(computer failure data repository,CFDR)下載[20]。日志容量為708.8MB,共包括4 399 503條記錄。
將數(shù)據(jù)集分為訓(xùn)練集與測(cè)試集,其中測(cè)試集占20%,訓(xùn)練集占80%,進(jìn)行參數(shù)優(yōu)化和模型選擇,并評(píng)估模型的泛化能力,以提高模型的性能和預(yù)測(cè)效果。
3.2 評(píng)價(jià)指標(biāo)和參數(shù)設(shè)置
3.2.1 評(píng)價(jià)指標(biāo)
為了評(píng)估TBGRU方法的有效性,使用了3個(gè)性能指標(biāo):平均絕對(duì)誤差(MAE)、均方根誤差(RMSE)和平均絕對(duì)百分比誤差(MAPE)。數(shù)學(xué)表達(dá)式為
RMSE=1n∑nt=1e2T=1n∑nt=1(y^-y)2,(15)
MAE=1n∑nt=1eT=1n∑nt=1(y^-y),(16)
MAPE=100%n∑nt=1(y^-yy),(17)
式中:eT= y^-y。
同時(shí),采用準(zhǔn)確率(Accuracy)和F1值對(duì)故障預(yù)測(cè)結(jié)果進(jìn)行綜合評(píng)估。數(shù)學(xué)表達(dá)式為
Accuracy=TP+TNTP+TN+FP+FN,(18)
F1=2·TP2×TP+FP+FN,(19)
其中:TP是預(yù)測(cè)正確的故障事件個(gè)數(shù);TN是預(yù)測(cè)錯(cuò)誤的故障事件個(gè)數(shù);FP是預(yù)測(cè)發(fā)生但實(shí)際未發(fā)生的故障事件個(gè)數(shù);FN是未預(yù)測(cè)出但實(shí)際發(fā)生的故障事件個(gè)數(shù)。
3.2.2 參數(shù)設(shè)置
實(shí)驗(yàn)環(huán)境配置如下:操作系統(tǒng)為Windows 10;GPU為NVIDIA RTX3090 24 GB顯存;內(nèi)存64 GB;編程語(yǔ)言為Python 3.9;深度學(xué)習(xí)框架為Pytorch 1.3 穩(wěn)定版。使用Python庫(kù)加載數(shù)據(jù)集,設(shè)置模型的各種參數(shù)。通過(guò)算法1進(jìn)行了參數(shù)設(shè)置的實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如表1~3所示。
在搜索最優(yōu)配置的實(shí)驗(yàn)中,設(shè)置L為每一行中向前滑動(dòng)窗口的步長(zhǎng),L∈{3,12,64,128,256},保留一個(gè)參數(shù)作為變量,其他參數(shù)保持不變。從表1可以看出,當(dāng)L為128時(shí),實(shí)驗(yàn)效果優(yōu)于其他參數(shù)設(shè)定。
設(shè)置隱藏層層數(shù)H∈{16,32,64,128,256},從表2可以看出,當(dāng)H為64時(shí),結(jié)果較好。
從表3的優(yōu)化評(píng)估函數(shù)的實(shí)驗(yàn)結(jié)果可以看出,優(yōu)化器函數(shù)Adam比Nadam表現(xiàn)得更好。
3.2.3 基線模型
主要包括以下基線模型。
1) RF[21]:隨機(jī)森林算法(random forest,RF)是基于決策樹(shù)的集成學(xué)習(xí)算法模型。
2) LR[15]:Logistic回歸算法(Logistic regression,LR)是用于不平衡樣本分類的回歸算法模型。
3) SVM[22]:支持向量機(jī)(support vector machine,SVM),多分類支持向量機(jī)算法進(jìn)行回歸任務(wù)。
4) RNN[3]:循環(huán)神經(jīng)網(wǎng)絡(luò) (recurrent neural network,RNN)是處理序列數(shù)據(jù)的神經(jīng)網(wǎng)絡(luò)。
5) LSTM[23]:長(zhǎng)短期記憶網(wǎng)絡(luò)(long short-term memory, LSTM)是一種 RNN的特殊類型,通過(guò)門控機(jī)制學(xué)習(xí)長(zhǎng)期依賴信息。
6) GRU[24]:門控循環(huán)單元(gated recurrent unit,GRU)是LSTM 的一個(gè)變體,GRU在保持了LSTM效果的同時(shí)又使結(jié)構(gòu)更加簡(jiǎn)單。
7) Transformer[16]:基于自注意力機(jī)制的神經(jīng)網(wǎng)絡(luò)模型。
8) LogTrans[17]:Transformer變種模型,在自注意力模型中引入了稀疏偏差,提出卷積自注意力。
9) Informer[25]:修改了Transformer的結(jié)構(gòu),隱式地引入稀疏偏差的一種長(zhǎng)期預(yù)測(cè)模型。
上述基線模型的實(shí)驗(yàn)參數(shù)設(shè)置如下:將批處理大小和隱藏層層數(shù)分別設(shè)置為128和64,第一層神經(jīng)元數(shù)量為256,序列滑動(dòng)窗口步長(zhǎng)為128,預(yù)測(cè)窗口步長(zhǎng)為128,epoch為100,Batch size為64,學(xué)習(xí)率為0.8。對(duì)于結(jié)合雙向循環(huán)模型和注意力機(jī)制的模型,單個(gè)方向的隱藏層層數(shù)設(shè)置為128,學(xué)習(xí)率設(shè)置為0.8。在TBGRU上使用相同的設(shè)置,并將Transformer的dropout設(shè)置為0.3。
3.3 實(shí)驗(yàn)結(jié)果和分析
3.3.1 模型性能評(píng)估
不同模型的評(píng)價(jià)指標(biāo)結(jié)果如表4所示。可以看出,RF的預(yù)測(cè)性能在MAE、RMSE和MAPE指標(biāo)上的表現(xiàn)不如其他模型。使用SVM和LR等傳統(tǒng)機(jī)器模型的結(jié)果雖然稍好于RF,但與其他基于深度學(xué)習(xí)的方法相比仍有較大的差距。在深度學(xué)習(xí)方法中,因?yàn)镽NN、LSTM和GRU只捕獲了局部時(shí)間特征,在長(zhǎng)期預(yù)測(cè)的過(guò)程中會(huì)造成部分信息遺忘,所以模型的預(yù)測(cè)性能不佳。Transformer引入了注意力機(jī)制,更加關(guān)注對(duì)關(guān)鍵特征信息的記憶,在長(zhǎng)時(shí)間序列預(yù)測(cè)的3項(xiàng)評(píng)價(jià)指標(biāo)
上優(yōu)于RNN、LSTM和GRU模型,其MAE、RMSE和MAPE分別達(dá)到0.19、0.26和6.15%。引入了卷積自注意力機(jī)制的LogTrans,可以使局部上下文更好地聯(lián)系關(guān)鍵特征,模型的預(yù)測(cè)性能得到進(jìn)一步提升。Informer通過(guò)修改Transformer內(nèi)部結(jié)構(gòu)和生成式解碼器來(lái)直接產(chǎn)生長(zhǎng)期預(yù)測(cè),提升了預(yù)測(cè)性能,其MAE、RMSE和MAPE分別達(dá)到0.15、0.20和5.03%。
本文的TBGRU是在BiGRU的基礎(chǔ)上引入了Transformer,不僅捕獲了數(shù)據(jù)序列的局部時(shí)間特征,并且通過(guò)Transformer層來(lái)捕獲全局時(shí)間依賴性,使得TBGRU堆疊了時(shí)間同步卷積層,可以很好地學(xué)習(xí)長(zhǎng)程時(shí)間關(guān)系和異質(zhì)性,其MAE、RMSE和MAPE分別達(dá)到0.13、0.17和4.46%。與其他模型的最優(yōu)性能指標(biāo)相比,分別提升13.34%、15.00%和11.33%。這證明了TBGRU模型可以準(zhǔn)確地捕獲集群日志數(shù)據(jù)中的局部時(shí)間依賴性和全局時(shí)間依賴性,取得了優(yōu)異的預(yù)測(cè)效果。
不同模型的準(zhǔn)確率和F1值如表5所示。傳統(tǒng)方法中RF、LR和SVM的準(zhǔn)確率分別達(dá)到62.97%、66.02%和72.89%,遠(yuǎn)不如深度學(xué)習(xí)方法。深度學(xué)習(xí)基準(zhǔn)模型RNN、LSTM和GRU中的最佳模型是GRU,其準(zhǔn)確率達(dá)到84.23%。引入了注意力機(jī)制的Transformer模型,其準(zhǔn)確率和F1值進(jìn)一步提升。在先進(jìn)的長(zhǎng)時(shí)間序列預(yù)測(cè)模型中,Informer表現(xiàn)較好,其準(zhǔn)確率和F1值分別達(dá)到91.31%和90.12%。TBGRU模型表現(xiàn)最佳,其準(zhǔn)確率和F1值分別達(dá)到92.74%和91.69%。
3.3.2 模型有效性評(píng)估
RNN的鏈?zhǔn)浇Y(jié)構(gòu)導(dǎo)致在處理長(zhǎng)時(shí)間序列數(shù)據(jù)時(shí),存在部分信息遺忘[11]。因此,使用TBGRU來(lái)獲取時(shí)序的局部時(shí)間依賴性和整體時(shí)間依賴性,從而解決了這個(gè)問(wèn)題。TBGRU捕捉故障特征圖如圖2所示??梢钥闯?,TBGRU的預(yù)測(cè)結(jié)果與實(shí)際標(biāo)簽值吻合較好。
圖3以熱圖的形式顯示了不同模型在面對(duì)長(zhǎng)時(shí)間序列時(shí)針對(duì)18個(gè)故障特征的抓取能力。顏色由淺到深代表模型抓取某一特征的能力由弱到強(qiáng)??梢钥闯?,傳統(tǒng)方法中RF、LR和SVM抓取特征的熱力區(qū)域相對(duì)較“冷”,這是由于它們并沒(méi)有挖掘數(shù)據(jù)序列之間的深層次特征,弱化了模型提取故障特征的能力。在深度學(xué)習(xí)方法中,RNN、LSTM和GRU的表現(xiàn)不如引入了卷積自注意力機(jī)制的LogTrans。但表現(xiàn)更為出色的是Informer,這是由于該模型隱式地引入稀疏偏差,并設(shè)計(jì)一種生成式解碼器,可以對(duì)序列信息直接進(jìn)行長(zhǎng)期預(yù)測(cè),從而避免了長(zhǎng)期預(yù)測(cè)時(shí)出現(xiàn)的累積誤差,進(jìn)而提升了預(yù)測(cè)性能,但在抓取某些特征時(shí)熱力區(qū)域表現(xiàn)較“冷”。TBGRU模型在這方面表現(xiàn)更好,熱力區(qū)域普遍較“熱”,這是由于該模型能夠有效地從復(fù)雜集群系統(tǒng)故障中挖掘潛在的日志事件因果關(guān)系、局部時(shí)間相關(guān)性和整體時(shí)間相關(guān)性。實(shí)驗(yàn)證明,相比其他模型,TBGRU捕獲特征能力更為突出。
3.4 消融實(shí)驗(yàn)
為了進(jìn)一步研究不同模塊的影響,設(shè)計(jì)了4種模型變體,并與TBGRU模型進(jìn)行了比較。4種模型變體如下。
1) Baseline:該模型使用GRU捕獲空間依賴性,使用MSELoss作為損失函數(shù)。
2) Replace_BiGRU:該模型在Baseline的基礎(chǔ)上,使用BiGRU代替GRU,捕獲日志事件之間的時(shí)間依賴性。
3) Baseline(L-S):該模型使用Soft-DTW代替MSELoss作為損失函數(shù)。
4) Add_Transformer:該模型在Baseline(L-S)的基礎(chǔ)上,在BiGRU后增加一個(gè)Transformer層處理BiGRU輸出的數(shù)據(jù)。
本文的TBGRU模型使用BiGRU獲取集群系統(tǒng)日志之間的局部時(shí)間依賴性,利用Transformer捕獲整體的時(shí)間依賴性,然后使用Soft-DTW作為模型的損失函數(shù),最后通過(guò)全連接神經(jīng)網(wǎng)絡(luò)進(jìn)行預(yù)測(cè)。消融實(shí)驗(yàn)結(jié)果如表6所示。
可以看出,使用BiGRU進(jìn)行時(shí)序特征提取時(shí)要比單向GRU具有更好的性能,這是由于雙向疊加的設(shè)計(jì)可以序列地進(jìn)行正向和反向掃描,獲取時(shí)間點(diǎn)過(guò)去和未來(lái)的上下文信息,提高了預(yù)測(cè)的準(zhǔn)確度。與此同時(shí),使用Soft-DTW作為損失函數(shù)比使用MSELoss要有明顯的性能提升。對(duì)于添加了Transformer層的Add_Transformer,其具有更好的長(zhǎng)時(shí)依賴性捕獲能力,模型性能進(jìn)一步提升。TBGRU模型綜合了這些優(yōu)點(diǎn),使得其具有優(yōu)秀的故障預(yù)測(cè)能力。
4 結(jié)語(yǔ)
針對(duì)集群系統(tǒng)故障預(yù)測(cè)方法在面對(duì)長(zhǎng)時(shí)間序列預(yù)測(cè)時(shí)遇到的梯度爆炸或消失問(wèn)題,提出一種新的基于深度學(xué)習(xí)的集群系統(tǒng)故障預(yù)測(cè)方法。該方法主要集合了Transformer的全局特征提取能力和雙向循環(huán)模型BiGRU獲取局部時(shí)序特征能力,同時(shí)捕獲局部的時(shí)間依賴性和整體時(shí)間內(nèi)事件的時(shí)序關(guān)系,并抓取長(zhǎng)時(shí)的依賴信息,更適用于集群系統(tǒng)故障的長(zhǎng)時(shí)間序列預(yù)測(cè)。使用Blue Gene/L集群系統(tǒng)日志數(shù)據(jù)對(duì)模型的有效性進(jìn)行了驗(yàn)證,結(jié)果表明,與其他模型的最佳效果相比,TBGRU模型具有更好的故障預(yù)測(cè)效果。
參考文獻(xiàn):
[1] 鄭維維. 集群系統(tǒng)失效預(yù)測(cè)與資源重配置方法[D]. 北京: 北京郵電大學(xué), 2017.
ZHENG W W. Approaches for failure prediction and resource re-allocation in cluster systems[D]. Beijing: Beijing University of Posts and Telecommunications, 2017.
[2] 董婧. 基于時(shí)空關(guān)聯(lián)分析的集群系統(tǒng)故障預(yù)測(cè)方法[D]. 北京: 北京郵電大學(xué),2020.
DONG J. Failure prediction method of cluster system based on spatio-temporal correlation analysis[D]. Beijing: Beijing University of Posts and Telecommunications,2020.
[3] YANG Y, DONG J, FANG C, et al. FP-STE: a novel node failure prediction method based on spatio-temporal feature extraction in data centers[J]. Computer modeling in engineering and sciences, 2020, 123(3): 1015-1031.
[4] MA Y, WU S, GONG S, et al. Artificial intelligence-based cloud data center fault detection method[C]∥IEEE 9th Joint International Information Technology and Artificial Intelligence Conference. Piscataway:IEEE Press, 2021: 762-765.
[5] BENGIO Y, SIMARD P, FRASCONI P. Learning long-term dependencies with gradient descent is difficult[J]. IEEE transactions on neural networks, 1994, 5(2): 157-166.
[6] WANG Z G, GAO L X, GU Y, et al. A fault-tolerant framework for asynchronous iterative computations in cloud environments[C]∥IEEE Transactions on Parallel and Distributed Systems. Piscataway:IEEE Press,2018: 1678-1692.
[7] KHAN S, NASEER M, HAYAT M, et al. Transformers in vision: a survey[J]. ACM computing surveys, 2022, 54(10):1-41.
[8] ZHOU T, MA Z Q, WEN Q S, et al. FEDformer: frequency enhanced decomposed transformer for long-term series forecasting[C]∥Proceedings of International Conference on Machine Learning. New York: ACM Press, 2022: 27268-27286.
[9] REN R, LI J H, YIN Y, et al. Failure prediction for large-scale clusters logs via mining frequent patterns[M]∥Communications in Computer and Information Science. Berlin: Springer Press,2021: 147-165.
[10]王衛(wèi)華, 應(yīng)時(shí), 賈向陽(yáng), 等. 一種基于日志聚類的多類型故障預(yù)測(cè)方法[J]. 計(jì)算機(jī)工程, 2018, 44(7): 67-73.
WANG W H, YING S, JIA X Y, et al. A multi-type failure prediction method based on log clustering[J]. Computer engineering, 2018, 44(7): 67-73.
[11]FU X Y, REN R, ZHAN J F, et al. LogMaster: mining event correlations in logs of large-scale cluster systems[C]∥IEEE 31st Symposium on Reliable Distributed Systems. Piscataway:IEEE Press, 2013: 71-80.
[12]FU X Y, REN R, MCKEE S A, et al. Digging deeper into cluster system logs for failure prediction and root cause diagnosis[C]∥IEEE International Conference on Cluster Computing. Piscataway:IEEE Press, 2014: 103-112.
[13]LIANG Y, ZHANG Y Y, XIONG H, et al. Failure prediction in IBM Blue Gene/L event logs[C]∥Proceedings of the 7th IEEE International Conference on Data Mining. Piscataway:IEEE Press, 2008: 583-588.
[14]王振華. 基于日志分析的網(wǎng)絡(luò)設(shè)備故障預(yù)測(cè)研究[D]. 重慶: 重慶大學(xué), 2015.
WANG Z H. Study on failure prediction for network equipment based on log analysis[D].Chongqing: Chongqing University, 2015.
[15]MOHAMMED B, AWAN I, UGAIL H, et al. Failure prediction using machine learning in a virtualised HPC system and application[J]. Cluster computing, 2019, 22(2): 471-485.
[16]VASWANI A, SHAZEER N, PARMAR N, et al. Attention is all You need[C]∥Proceedings of the 31st International Conference on Neural Information Processing Systems. New York: ACM Press,2017: 6000-6010.
[17]LI S Y, JIN X Y, XUAN Y, et al. Enhancing the locality and breaking the memory bottleneck of transformer on time series forecasting[EB/OL]. (2019-06-29)[2022-12-21]. https:∥doi.org/10.48550/arXiv.1907.00235.
[18]WU H X, XU J H, WANG J M, et al. Autoformer: decomposition transformers with auto-correlation for long-term series forecasting[EB/OL]. (2022-01-01)[2022-12-21]. https:∥doi.org/10.48550/arXiv.2106.13008.
[19]CUTURI M, BLONDEL M. Soft-DTW: a differentiable loss function for time-series[C]∥Proceedings of the 34th International Conference on Machine Learning. New York: ACM Press, 2017: 894-903.
[20]Ultrascale Systems Research Center. CFDR data[EB/OL]. (2022-02-01) [2022-11-21]. https:∥www.usenix.org/cfdr-data.
[21]BOTEZATU M M, GIURGIU I, BOGOJESKA J, et al. Predicting disk replacement towards reliable data centers[C]∥Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. New York: ACM Press, 2016: 39-48.
[22]XU C, WANG G, LIU X G, et al. Health status assessment and failure prediction for hard drives with recurrent neural networks[J]. IEEE transactions on computers, 2016, 65(11): 3502-3508.
[23]王鑫, 吳際, 劉超, 等. 基于LSTM循環(huán)神經(jīng)網(wǎng)絡(luò)的故障時(shí)間序列預(yù)測(cè)[J]. 北京航空航天大學(xué)學(xué)報(bào), 2018, 44(4): 772-784.
WANG X, WU J, LIU C, et al. Exploring LSTM based recurrent neural network for failure time series prediction[J]. Journal of Beijing university of aeronautics and astronautics, 2018, 44(4): 772-784.
[24]HAI Q D, ZHANG S W, LIU C, et al. Hard disk drive failure prediction based on GRU neural network[C]∥IEEE/CIC International Conference on Communications in China. Piscataway:IEEE Press, 2022: 696-701.
[25]ZHOU H Y, ZHANG S H, PENG J Q, et al. Informer: beyond efficient transformer for long sequence time-series forecasting[C]∥Proceedings of the AAAI Conference on Artificial Intelligence. Palo Alto: AAAI Press, 2021: 11106-11115.