員 民 裴向東 喬鋼柱 王 蓮
(1.太原科技大學計算機科學與技術學院 太原 030024)(2.山西超級計算中心 呂梁 033000)
中國的大規模計算系統研究屬于世界領先水平,超級計算機的性能在不斷提升的同時,帶來的系統規模和復雜度不斷增加,即系統規模和復雜度的增長仍遠遠超過系統部件可靠性的改善。E 級高性能計算機的平均無故障時間(Mean Time Between Failure,MTBF)只有一個小時[1],高性能計算機系統龐大、組成及運行邏輯復雜,導致系統故障頻繁發生,且故障發生后難以發現、定位、診斷、分析和調試[2]。
故障的解決方式分為了主動容錯和被動容錯兩種[4],主動容錯是在未發生故障之前就進行故障的排錯,能提高系統自身的可靠性,降低系統容錯的開銷,而故障預測是主動容錯的前提和基礎。在此將通過山西省超級計算中心的天河二號系統故障日志對此話題展開探討。該文研究的數據是異構計算系統的故障日志數據,結合基于時序特征的數據特點,制定對應預測機制進行研究[3]。
國內外學者已從預測機制方向對大規模故障數據做了大量研究:通過計算概率[4]及相關分數進行故障預測;Gainaru[5]等提出基于信號的故障預測方法;利用前置條件if-then 判斷故障發生,如Watanabe[6]等對故障日志信息分組,利用貝葉斯原理判斷故障;Das[7]等使用短語似然估計的方法對故障日志進行挖掘。現如今機器學習[8]發展迅速,便于對日志數據的特征進行提取,Chen[9]等利用RNN 算法預測作業故障概率;Zhu 等[10]使用支持向量機和神經網絡算法預測硬盤故障發生的概率;Nie等[11]通過分析GPU運行溫度、功率和誤差的相關性,提出了一種基于神經網絡的預測方法;Islam[12]等提出使用LSTM 進行預測,優點在于節約了系統資源。這些方法盡管解決了特征提取的問題,但無法獲取故障之間的依賴關系,預測準確率較低。
目前深度學習對故障日志特征提取具有良好的分類性能和可伸縮性能,綜合分析后提出CNN-BiLSTM-Attention 的故障預測模型,相較于傳統的機器學習方法,該模型具有特征易提取、時間序列特征敏感度高以及對局部特征提取充分等優勢,實驗結果表明,該模型在天河二號異構計算系統的故障時間和故障節點預測上都有很高的精度和泛化性。
該文采用的方法是先通過HDBSCAN 聚類算法將有相同特征的故障日志分組放在一起,然后利用CNN-BiLSTM-Attention模型進行預測。
HDBSCAN聚類算法是結合DBSCAN算法和層次聚類算法的一種方法[13]。DBSCAN 聚類算法將密度堆積的散點標記為一類,而密度較低的散點稱為噪聲點,此算法可以將此類噪聲數據排除,但DBSCAN 算法無法在不同密度的數據中識別集群,且聚類過程中需要兩個參數進行調整,過程繁瑣,為解決上述問題,HDBSCAN 聚類算法引入層次聚類的思想,該算法重新定義測量兩點之間距離的方法,計算公式為
HDBSCAN聚類算法使用最小生成樹來構建點與點之間的層次樹模型,使得該算法僅需調整最小簇的數量(min_cluster_size),避免復雜的調參過程,提升聚類準確性和適用范圍。
2.2.1 CNN
模型的第一層為CNN 層,通過卷積層中的一些濾波器對故障日志局部特征進行提取,卷積層有很多卷積核,每個卷積核都有可接受的字段,并應用于輸入的完整深度[14]。每層卷積都利用修正后的線性單元(ReLU)激活函數進行,公式如下:
經過激活函數修改負值,解決梯度消失和梯度爆炸問題,特征映射由濾波器生成,公式如下:
其中,ynm為卷積層m 中第n 個濾波器的輸出;f()為激活函數,wnim為卷積核的權值,bnm為偏置,x 為輸入的特征向量。
2.2.2 LSTM
由于時序特征是故障日志的關鍵信息,而RNN 對于處理序列特征信息非常有效,為解決RNN 模型梯度爆炸和梯度消失的問題[15]引入LSTM模型。LSTM引入一組存儲單元,允許在訓練過程中在一時間節點忘記歷史信息以及允許更新存儲單元,所以LSTM 更有利于處理較長距離的信息,對時間敏感的數據有很大的優勢。其結構圖如圖1所示。

圖1 LSTM細胞結構
如圖,LSTM單元中有四個重要的變量,即內部存儲器、遺忘門、輸入門、輸出門[12]。具體過程為首先是經過遺忘門,遺忘門決定上次細胞狀態Ct-1所存儲的信息量,當前時刻輸入量為xt,其中Forget記為ft;然后計算輸入門中的信息,也就是Input中所需要保留的信息,記為it,并保留臨時細胞狀態at;接下來,計算當前細胞狀態Ct;最后計算輸出門和現在時刻的隱藏層狀態ht。計算公式如下:
其中α表示sigmoid 函數,bf、bi、bo和ba表示輸出偏差。此處建立的模型采用的雙向輸入長短期記憶循環網絡層,這樣可以從正反兩個方向學習時間序列特征,更有利于特征提取[16]。
2.2.3 注意力機制(Attention)
注意力機制的思想是通過增加焦點來對重要信息進行識別[17],忽略其他不重要的信息,更加關注重要信息。
首先,Kt表示經過CNN 和BiLSTM 模型處理后的輸出,計算Kt的得分st,得到Kt對輸出值影響的比重;然后利用Softmax 函數對st進行歸一化處理,得到注意力權值at;最后用權值系數at和輸入向量kt計算得出加權特征ot,計算公式如下:
其中,Wh為權值,bh為偏置。
2.2.4 模型結構
通過CNN 發現大規模計算系統故障日志數據中明顯的特征,并提取故障特征;再利用BiLSTM正反兩個方向輸入CNN 中得到的特征數據,提取具有時間序列的故障特征;最后用注意力機制可以得到對結果影響較大的特征,提高了故障預測的精度,具體結構如圖2所示。

圖2 CNN-BiLSTM-Attention模型結構圖
本章節主要介紹實驗的處理過程:實驗數據的預處理,對實驗數據的時空分布進行分析,HDBSCAN聚類的結果以及模型參數的選擇。
實驗數據來源于山西省超級計算中心的天河二號系統2016 年1 月18 日~2017 年12 月6 日的故障日志,導出為csv(逗號分隔值文件)文件,共包含208718121 條故障日志,將無效字段去除,最后得到擁有9字段的故障日志信息,如圖3所示。

圖3 故障日志信息
通過對Mohammed 等[18]對國外大規模計算系統的組件故障分布的研究,得出結論大規模計算系統的故障日志數據在時空分布具有相似性,不符合正態分布。
對于系統故障空間上分布圖,由于該大規模計算系統中空間關系為4節點組成1個計算單元。據此空間關系,得到故障空間上的概率密度圖,如圖4 所示。從圖中也可以驗證上述結論,即故障空間分布不服從正態分布。

圖4 故障空間概率圖
對于系統故障時間上的分布圖,由于故障發生具有不確定性,所以故障時間預測其實是預測兩個故障節點之間的時間,通過分析后,得到故障時間分布特點如圖5 所示,可以看出也并非正態分布,驗證了Mohammed等的結論。

圖5 故障時間概率圖
為了將具有相同特征的數據聚集在一起,提高模型預測的精度,通過對比實驗將min_cluster_size設置為300000 時得到噪聲點最少,最后得到五個不同類型的簇,聚類結果分布如圖6所示。

圖6 聚類結果分布餅圖
根據分布圖可以看出,Cluster2數據最多,占了37.45%,接下來Cluster0 占比20.04%,Cluster4 占比最少占10.99%。
根據故障發生的優先級來看,故障優先級共分為6個等級,但由于Priority0、Priority1和Priority2一共有2000 多條信息,因為數量較少,所以將這些故障優先級統一劃分為other。從圖7 故障發生優先級的數量可以看出,優先級越高,發生概率越大,故障嚴重程度越低。

圖7 各個故障優先級數據分布圖
根據每個聚類類別進行分析,如圖8,Cluster0中主要包含故障優先級高的other,說明其中發生的都是嚴重的故障;Cluster1、Cluster2 和Cluster3 中發生故障多是Priority5 的數據,是故障程度較低的數據;Cluster4相對于其他簇更為復雜,各種程度都有分布。

圖8 各個簇故障優先級分布圖
對于故障發生的設備位置來進行統計,共有7種設備位置,記作Facility0 到Facility6,由于Facility1 和Facility6 分別只有51 條和54 條,說明這兩個設備不會經常發生故障;而主要發生故障的設備是其他五項,其中最易發生故障的是設備Facility5,說明Facility5在高性能計算中易出現故障,如圖9。

圖9 各個故障設備分布圖
對每個簇故障發生設備處作圖進行對比,將故障設備記為Facility0 到Facility4 這五種。從圖10可以看出,Cluster0 的故障多發生在Facility0;而Cluster1 上故障多發生在Facility3 和Facility4;Cluster2 發生故障設備都在Facility4 上,占75.8%;Cluster3 發生故障設備都在Facility3 和Facility4 上;Cluster4情況復雜,發生故障位置均有分布。

圖10 各個簇故障設備分布圖
以上可以說明,經過HDBSCAN 聚類后,Cluster0 和Cluster4 的數據相對于復雜,而Cluster1、Cluster2和Cluster3中的數據組成相對簡單。
將得到的數據通過sklearn 的預處理方法將數據中非數值部分進行編碼處理,再進行歸一化處理,轉化為監督學習。
在回歸實驗中,CNN-BiLSTM-Attention 模型需要預測兩種不同的結果,相對于故障時間的預測,故障節點的預測更為復雜,因為預測結果有9948 個節點,則兩種預測模型參數設置需要有所改變,如表1和表2所示,其中預測故障節點的模型多一層Dense 層,作用是防止過擬合,其他的參數,包括batch 為72,利用fig()函數模塊中的validation_data 參數,標記出損失函數,最后利用matplotlib繪制出損失函數圖像。

表1 故障時間預測模型超參數表

表2 故障節點位置預測模型超參數
損失函數為MAE,epoch 為50,數據中4/5 為訓練數據,1/5 為預測數據。對于預測模型梯度優化問題,文中采用Adam 算法,該算法融合了AdaGrad和RMSprop算法的優點,可以為不同參數計算適應性學習率,而且占用更少的存儲資源,對比其他算法,Adam在實際應用中表現更好[14]。
實驗環境配置:Inter(R)Core(TM)i7-10750H CPU@2.60GHz(12CPUs),RAM 16GB,NVIDIA Ge-Force RTX3060,Python3.9、TensorFlow2.6、scikitlearn1.0,對所有模型均采用以上配置環境。
預測故障發生時間以及故障發生節點兩個目標,通過平均絕對誤差(MAE)和均方根誤差(RMSE)作為統計性能指標對結果進行評價[19]。上述指標計算公式如下:
對故障時間進行預測,通過CNN-BiLSTM-Attention 模型對未聚類數據和各簇的數據中故障時間進行預測,從圖11中的6張訓練和測試損失函數圖中得出以下結論,在故障時間預測上,聚類后的數據效果要優于未聚類的數據。

圖11 預測故障時間訓練和測試loss圖
利用模型對未聚類數據以及聚類后數據分別進行預測,所得MAE 值最低是數據組成相對簡單的Cluster3 的0.011 到最高是數據組成相對復雜的Cluster0 的0.249,所得RMSE 同樣從數據組成相對簡單的Cluster3 的0.135 到數據組成相對復雜的Cluster0的2.199,如表3所示,說明該模型有很好的泛化能力,預測效果很好。

表3 模型對各類故障時間預測的評價指標
對故障節點位置進行預測,預測難度比故障時間預測要大,但本模型也有不錯的表現。從圖12訓練和預測損失圖可以看出,經過聚類后的數據故障節點位置預測結果更好。

圖12 預測故障節點訓練和測試loss圖
未經過HDBSCAN 聚類的數據,預測準確率為83.2%。利用模型對各個聚類類別分別進行預測,MAE 值、RMSE 值和準確值如表4 所示,從表中的準確率也可以看出,通過HDBSCAN 聚類后的數據預測效果明顯更好。同時從各個簇的MAE 值不超過6.60,RMSE值不超過9.55,充分說明了該模型在故障節點預測上也有很好的泛化能力,預測效果同樣很好。

表4 模型對各類故障節點預測的評價指標
表5 總結了CNN-BiLSTM-Attention 模型與其他模型的對比,數據使用組成相對復雜的cluster1中的數據,預測故障節點的位置,訓練過程中均采用batch為256,epoch為50,其他變量均相同。

表5 CNN-BiLSTM-Attention模型的性能以及與其他模型的對比
從表5 中可以看出,其他五個模型相比,預測結果有了顯著的提高。其重要原因在于CNN-BiLSTM-Attention 不僅可以很好地挖掘故障日志中的時序特征,而且注意力機制能更好地處理特征信息。因此與其他模型相比,該文提出的模型在預測大規模計算系統故障方面,優勢明顯。
該模型在大規模計算系統故障預測中取得了較好的效果,對于故障發生時間預測的RMSE 值可低至0.031;對于故障發生的節點位置預測精度平均可達90%以上,這說明該模型具有很好的預測能力。未來該方法可以遷移到E 級計算機的建設和應用中,以提高系統的可靠性。
該文中的模型是基于歷史故障日志數據進行預測,但在實際運行環境中需要對系統進行更低延時的數據進行故障預測,才能更有實用價值。在后續的研究中,將會進一步改進故障預測分類的細粒度和精準度,實現遷移性良好的輕量化故障預測的應用。