摘 ?要:保證大型數據中心服務的可靠性越來越重要,硬盤是大型數據中心中故障率最高的組件。如果能夠預測硬盤的故障情況就可以提前對數據進行保護和隔離,避免造成重大損失。然而當前的預測器不能同時有效地提取時間序列的長短期依賴關系,學習樣本的有效特征。文章提出了基于注意機制的全卷積注意力模型,該模型能夠解決長短期依賴問題,有效識別故障模式。最后在采集的SMART日志的數據集中證明了模型的有效性。
關鍵詞:硬盤故障預測;異常檢測;注意力機制;全卷積網絡
中圖分類號:TP391;TP18 ? ? ? ? ?文獻標識碼:A文章編號:2096-4706(2021)24-0048-03
Abstract: Ensuring the reliability of services in large data centers is becoming more and more important. Hard disks are the component with the highest failure rate in large data centers. If the failure of the hard disk can be predicted, the data can be protected and isolated in advance to avoid major losses. However, current predictors cannot effectively extract the long and short term dependency of the time series at the same time, and learn the effective features of the samples. This paper proposes a fully convolutional attention model based on the attention mechanism, which can solve the problem of long and short term dependency and effectively identify failure modes. Finally, the validity of the model is proved in the data set of the collected SMART log.
Keywords: hard disk failure prediction; anomaly detection; attention mechanism; fully convolutional network
0 ?引 ?言
隨著大數據以及云平臺的普及,每天都有大量的數據需要存儲。而目前最主要的存儲設備就是硬盤。海量數據以及云平臺的在線部署都使硬盤的穩(wěn)定性面臨著巨大的挑戰(zhàn),據統(tǒng)計硬盤故障是IT設備故障中最常見的組件。硬盤故障會導致服務中斷,數據丟失等問題,嚴重是會造成巨大的經濟損失。根據Backblaze的2021年第三季度的報告,硬盤在該季度的平均故障率為1.01%。這意味著在一個擁有300 000塊硬盤的數據中心,幾乎每天都會出現(xiàn)硬盤故障。對于不同的硬盤來說,不同的廠商會內置一個記錄硬盤內部狀態(tài)的日志(SMART自我健康監(jiān)控報告),該日志能記錄這硬盤生命周期內的重要安全指標。然而只利用這樣的日志進行硬盤故障檢測的檢測的故障率為3%~10%[1]。所以需要結合相關模型進行預測研究。在機器學習中,硬盤故障預測問題通常被抽象成一個二分類問題:給定某硬盤過去的數據,預測它在未來一段時間后是否會發(fā)生故障。對于預測為故障的硬盤采取更換措施并對部署的服務進行及時的遷移,可以把避免更大的經濟損失。本文提出全卷積注意力(Fcn-Attention)模型用來捕獲硬盤故障前數據的長期短期依賴關系,并通過全卷積來識別故障模式,提高硬盤故障預測的精確率。
1 ?相關工作
對于硬盤故障預測問題在很早之前就有學者開展了相關的工作,相關的研究方法主要分為兩種:基于傳統(tǒng)機器學習的方法和基于深度學習的方法。基于傳統(tǒng)的機器學習方法可以通過使用分類器來解決這個問題,比如支持向量機[2]和樹模型[3]。但是硬盤的故障從本質上來講是一個時間序列的問題,硬盤是逐漸發(fā)生故障的,而不是突然發(fā)生故障的。然而,傳統(tǒng)的機器學習是很難抓取時間上的信息的。LI Qing [4]等人利用集成學習中的XGBoost方法對硬盤故障進行預測,利用手動創(chuàng)造特征的方式來提取數據中的時間信息。WANG Haifeng等人利用集成學習中的Stacking框架將不同方法的結果進行串聯(lián)。但是這些方法的弊端就是需要額外點的方法或者是人力對時間序列信息進行提取。需要大量的預處理過程。
與傳統(tǒng)機器學習相比,基于深度學習的方法利用神經網絡的特性對時間信息進行提取,例如利用循環(huán)神經網絡(RNN)、長短期記憶網絡(LSTM)、一維卷積網絡(CNN)。這些方法在效果上都能得到提升。但是由于循環(huán)神經網絡不能進行并行訓練,所以在性能上略有欠缺。一維卷積的方法一定程度上依賴窗口的大小。受到注意力機制在自然語言處理領域的相關工作的影響。注意力機制可以對進行詞嵌入后的句子中的詞進行上下文的融合,而得到更加能夠代表詞意的詞嵌入向量。那么將注意力機制引入多維時間序列中也可以融合長期短期值之間的依賴關系。
2 ?Fcn-Attention模型
2.1 ?問題描述
本文提出的基于深度學習的方法,該方法根據硬盤的狀態(tài)數據來預測硬盤是否會出現(xiàn)故障。因為不能提前預知故障情況,也不能在故障發(fā)生后再進行數據采集。所以這里的采集需要全采集。即在每一個時間戳(例如:每天或者每小時)記錄硬盤的m個屬性的特征向量。對于某一塊硬盤x,x的狀態(tài)數據是由該硬盤的h個連續(xù)特征向量組成的集合。這些特征向量從時間戳ti(開始記錄的時間戳)記錄當時間戳ti+h+1(停止記錄的時間戳)。這里的故障數據指的是硬盤在t時刻后k天內出現(xiàn)故障,則該硬盤為故障樣本。否則為正常樣本。
假設一個包括n個樣本的時序數據集D={(x1,y1),(x2,y2),…,(xn,yn)},xi∈Rh*m,h表示時間序列的長度,m表示狀態(tài)數據的維度。yi∈{0,1},是樣本的標簽信息,y=0表示健康硬盤樣本(負樣本),y=1表示硬盤在不久之后會發(fā)生故障(正樣本)。因此該問題被抽象成一個二分類問題,此時的損失函數為二進制交叉熵損失。公式為:
為樣本被預測為1的概率即發(fā)生故障的概率。
2.2 ?模型結構
該模型的結構如圖1所示,分別包括:全卷積(fully convolution networks)網絡模塊、時間序列的注意力模塊、全局池化模塊。全卷積網絡首次在圖像語義分割任務中被提出,與傳統(tǒng)的卷積網絡不同,全卷積網絡在輸出前利用全局池化層來代替全連接層,同時在每個卷層后不再接入池化層。而是使用BatchNorm層和ReLU激活函數來優(yōu)化中間層的輸出分布,提高學習效率。這里使用一維卷積在卷積層來進行特征組合,并增加卷積核的個數來學習更多組合特征;時間序列注意力模塊用來捕獲時間序列歷史值的相關性。對于某塊硬盤某一時間步數據,利用公式(1)來映射到三個不同的特征空間。
Q(X)=X·WQ,K(X)=X·WK,V(X)=X·WV(1)
注意力機制通過Q(X)與K(X)之間的映射關系來決定分配哪兩個時間步更大的權重,通過公式(2)來計算注意力矩陣。但是對于當前時間步的查詢向量q,它只能與當前時間步之前的鍵向量進行映射,否則就會出現(xiàn)數據穿越現(xiàn)象。所以將S矩陣的右上角設置為了零。通過公式(3)即softmax來對權重進行歸一化。
將權重矩陣與值向量進行加權計算,并將結果利用公式(4)與輸出權重WO進行矩陣相乘。以上注意力機制使用矩陣運算,相比于RNN不能并行訓練來說可以提高學習速度,全局池化層來代替全連接層可以有效地減少參數數量。
3 ?實驗與分析
3.1 ?數據集
實驗選擇使用Backblaze[5]中2020-1-1至2021-7-1年記錄的真實硬盤數據。Backblaze自2013年就開始發(fā)布基于數據中心硬盤的統(tǒng)計數據。該數據由SMART日志以及一些靜態(tài)信息構成,包括日期、序列號、型號、容量和故障情況。由于數據集中的硬盤廠商以及硬盤的型號眾多,所以這里直選取保有量較高并且故障率也較高的希捷廠商的兩種型號的硬盤進行實驗。分別為ST8000DM002、ST8000NM0055。由于健康硬盤的數量遠遠大于故障硬盤的數量,傳統(tǒng)解決數據不平衡的方法包括對正樣本進行過采樣、對負樣本進行欠采樣。但是為了能夠保留更多原始數據所包含的信息。這里我們對故障數據進行盡可能多的采樣,即對于預測問題的前置時間k(即我們應該在真正發(fā)生故障前的k天內預測出來),可以針對k天的每一天構造負樣本。這樣的采樣方式不僅可以生成更多的故障樣本,也有利于捕獲更多的故障模式。根據工業(yè)實例的需求,這里的前置時間k設置為10,時間長度h設置為30,即利用某塊硬盤之前30天的采集數據來預測該硬盤是否會在10天內發(fā)生故障。最終共采集117 439個樣本,其中有4 632個異常樣本。共采集32個原始SMART日志屬性。
3.2 ?實驗設置
將實驗數據集按照8∶2的比例劃分成訓練集和測試集,劃分時保證數據集中的正負樣本比例以及不同型號樣本比例近似。在實驗過程中,為了保證實驗結果的真實有效,所有實驗將在TensorFlow2.0框架、同一設備下完成。實驗使用Adam優(yōu)化器,學習率設置為0.000 01,卷積模塊中選擇使用三層的卷積層,分別包含7*m、5*m、3*m尺寸的卷積核,對應卷積核的個數為128、256、128。注意力模塊向量長度設置為100,其他一維卷積的尺寸均為7。
3.3 ?實驗結果對比
實驗將相關工作中提到的機器學習方法,包括支持向量機(SVM)、決策樹模型(Decision-Tree)、XGboost模型以及最近提出的一維卷積網絡(1*1CNN)、長短期記憶網絡(LSTM)模型來進行對比實驗,以保證該模型的有效性。實驗中使用的評估指標為精確度(precision)和召回率(recall)。同時均衡分數(F1-score)也作為一個綜合點的評價指標來衡量模型的有效性。最終結果如表1所示。
表1中加粗部分為針對采集數據集的最好結果。針對機器學習方法來說總體的預測效果是最差的,這是由于異常模式的復雜性,以及有效特征構建的問題。SVM很難選擇一個合適的分離超平面將正負樣本完全分開,而且選擇一個合適的核函數也是很困難的事情。決策樹是針對特征進行節(jié)點分裂的,這更依賴有效特征的構造了。一維卷積和LSTM相比于傳統(tǒng)機器學習效果有明顯提升。一維卷積具有平移不變性,能夠識別在不同時間段上的故障模式,但是這樣的識別依賴于卷積核的長度限制,對于某些長期的影響才造成故障的情況識別率較低。LSTM當序列長度超過一定限度會存在梯度消失問題所以對于較長的影響的故障也是識別率降低,并且由于不能并行計算所以訓練時間較長。本文模型先利用卷積來提取局部時間的相關性,并利用多個卷積核來構造有效特征,同時注意力機制將之前時刻進行加權求和,所以無論是長期影響還是短期影響都能對影響時刻提高權重來保證預測的準確率。而對于硬盤故障問題,誤報即精確率降低會投入更多的人力,而漏報即召回率較低可以配合其他方法繼續(xù)解決。所以精確率高是更合理的。
4 ?結 ?論
本文針對硬盤故障預測問題提出了新的全卷積注意力模型,能夠捕獲時間序列中值的長期和短期的依賴關系,全卷積網絡可以提取樣本特征更多的有效特征而且卷積的平移不變性還可以提取故障模式。在采集的Backblaze公開數據集上與其他模型進行比較也有更好的表現(xiàn)。后期工作中,會考慮解決不同廠商以及在大量不同型號中如何進行預測。
參考文獻:
[1] ?MURRAYJ F,HUGHES G F,KREUTZ-DELGADO K. Machine Learning Methods for Predicting Failures in Hard Drives:a Multiple-instance Application [J].Journal of Machine Learning Research,2005,6(1):783-816.
[2] ZHANG J,WANG J,HE L,et al. Layerwise Perturbation-Based Adversarial Training for Hard Drive Health Degree Prediction [J].IEEE,2018:1428-1433.
[3] SHEN J,WAN J,LIM S J,et al. Random-forest-based failure prediction for hard disk drives [J].International Journal of Distributed Sensor Networks,2018,14(11),pages 15501477188,November.
[4] LI Q,LI H,ZHANG K. Prediction of HDD Failures by Ensemble Learning [C]//2019 IEEE 10th International Conference on Software Engineering and Service Science (ICSESS). Beijing:IEEE,2019.
[5] Backblaze. Backblaze Drive Stats for Q3 2021. [DS/OL].[2021-11-05].https://www.backblaze.com/blog/backblaze-drive-stats-for-q3-2021/.
作者簡介:張佳惠(1997.07—),女,漢族,黑龍江伊春人,碩士研究生在讀,研究方向:人工智能、智能運維、數據挖掘。