程振京,汪 璐,程耀東,3,陳 剛,胡慶寶,李海波
(1.中國科學(xué)院高能物理研究所,北京 100049;2.中國科學(xué)院大學(xué),北京 100049;3.中國科學(xué)院高能物理研究所天府宇宙線研究中心,成都 610041)
隨著高海拔宇宙線觀測實(shí)驗(yàn)LHAASO[1]建成運(yùn)行,數(shù)據(jù)累積規(guī)模不斷擴(kuò)大,對數(shù)據(jù)存儲(chǔ)的性能和效率提出了更高的要求。LHAASO實(shí)驗(yàn)使用統(tǒng)一命名空間的分級(jí)存儲(chǔ)系統(tǒng)來存儲(chǔ)物理數(shù)據(jù),使用的介質(zhì)包括固態(tài)硬盤、機(jī)械硬盤和磁帶等。Lustre[2]和EOS[3]兩個(gè)主要的存儲(chǔ)管理系統(tǒng)均提供分級(jí)存儲(chǔ)功能,目前一般采用的是基于系統(tǒng)管理員個(gè)人經(jīng)驗(yàn)的啟發(fā)式算法,如LRU等本質(zhì)上是以單一的文件訪問特征(遷入上級(jí)存儲(chǔ)時(shí)間、訪問頻率等)設(shè)一個(gè)閾值。因?yàn)檫@些算法需要在操作系統(tǒng)內(nèi)核中運(yùn)行,必須犧牲一些預(yù)測精度來提升執(zhí)行效率,所以存在經(jīng)驗(yàn)偏差,缺少負(fù)載通用性和自適應(yīng)性。為提升存儲(chǔ)系統(tǒng)的資源利用率,按訪問熱度不同將高能物理數(shù)據(jù)存儲(chǔ)于不同性能、不同容量的存儲(chǔ)設(shè)備上,根據(jù)數(shù)據(jù)熱度改變遷移至合適的存儲(chǔ)層級(jí)。因此,數(shù)據(jù)未來的訪問熱度預(yù)測對于設(shè)計(jì)高效的數(shù)據(jù)遷移機(jī)制十分重要。
高能物理計(jì)算主要包括原始實(shí)驗(yàn)數(shù)據(jù)的蒙特卡洛模擬、數(shù)據(jù)重建以及物理分析等過程,每種計(jì)算類型各有其特點(diǎn),每個(gè)用戶/應(yīng)用的計(jì)算模式也有可能存在巨大差異。通常情況下在一個(gè)較短的連續(xù)時(shí)間段內(nèi),物理學(xué)家通常只會(huì)專注于分析整體重建數(shù)據(jù)的一小部分,其他絕大部分重建數(shù)據(jù)不會(huì)被訪問。在存儲(chǔ)系統(tǒng)中表現(xiàn)為同一文件的訪問熱度并不是一成不變的,同時(shí)訪問特征隨時(shí)間變化。本文研究在高能物理實(shí)驗(yàn)LHAASO的真實(shí)分級(jí)存儲(chǔ)中,根據(jù)文件訪問特征的變化預(yù)測訪問熱度的變化,基于長短期記憶(Long-Short Term Memory,LSTM)神經(jīng)網(wǎng)絡(luò)算法,訓(xùn)練一個(gè)有監(jiān)督學(xué)習(xí)的文件訪問熱度預(yù)測模型,并與傳統(tǒng)SVM模型、MLP模型進(jìn)行對比驗(yàn)證。
數(shù)據(jù)訪問預(yù)測和遷移策略一直是存儲(chǔ)系統(tǒng)的重要研究領(lǐng)域。文獻(xiàn)[4]綜述了LRU、CLOCK、2Q、GDSF、LFUDA和FIFO等預(yù)測算法驅(qū)動(dòng)的文件遷移策略。這些策略主要用于解決單機(jī)環(huán)境下數(shù)據(jù)在易失性主存和外部磁盤間的緩存替換問題,其本質(zhì)是以某一個(gè)單一的文件訪問特征(如最后訪問的時(shí)間等)為閾值,設(shè)定啟發(fā)式的遷入遷出規(guī)則。因?yàn)樾枰诓僮飨到y(tǒng)內(nèi)核中運(yùn)行,必須在預(yù)測精度和執(zhí)行效率之間做出權(quán)衡,不可能利用復(fù)雜的文件訪問特征或設(shè)計(jì)非常復(fù)雜的算法來輔助預(yù)測。文獻(xiàn)[5]介紹了LNS模型,在傳統(tǒng)Last Successor算法的基礎(chǔ)上加入用戶信息來提升數(shù)據(jù)訪問預(yù)測精度,但同樣嚴(yán)重依賴文件訪問順序。文獻(xiàn)[6]提出了利用預(yù)測文件未來訪問熱度來制定遷移規(guī)則的方法,該方法假設(shè)每次用戶都會(huì)完整、順序地讀完整個(gè)文件,然后訓(xùn)練一個(gè)基于支持向量機(jī)(SVM)算法的監(jiān)督學(xué)習(xí)模型來執(zhí)行預(yù)測任務(wù),在特定Web數(shù)據(jù)集上取得了良好的預(yù)測效果,但由于SVM是借助二次規(guī)劃來支持向量的,模型訓(xùn)練需要耗費(fèi)大量的CPU運(yùn)算時(shí)間。
近年來,深度學(xué)習(xí)技術(shù)逐漸興起,訓(xùn)練方法與傳統(tǒng)算法相比有很大區(qū)別,從而突破了傳統(tǒng)神經(jīng)網(wǎng)絡(luò)對隱藏層數(shù)和每層節(jié)點(diǎn)數(shù)量的限制,具有很強(qiáng)的自學(xué)習(xí)和非線性映射能力。在各種深度神經(jīng)網(wǎng)絡(luò)模型中,循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)在網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)上引入了時(shí)序的概念,同時(shí)結(jié)合具有存儲(chǔ)能力的網(wǎng)絡(luò)節(jié)點(diǎn),從而使模型像人一樣擁有記憶[7]。循環(huán)神經(jīng)網(wǎng)絡(luò)能夠?qū)斎霑r(shí)序信號(hào)逐層抽象并提取特征[8],目前在語音識(shí)別[9]、機(jī)器翻譯[10]、電力負(fù)荷預(yù)測[11]、故障預(yù)測[12]等領(lǐng)域的時(shí)序數(shù)據(jù)建模中取得了較多的突破,然而在數(shù)據(jù)訪問預(yù)測方面應(yīng)用有限,特別是針對分級(jí)存儲(chǔ)的數(shù)據(jù)訪問熱度預(yù)測,目前還未發(fā)現(xiàn)類似的研究案例。
由于高能物理數(shù)據(jù)處理模式的特點(diǎn),文件訪問具有一定的時(shí)間特性,和循環(huán)神經(jīng)網(wǎng)絡(luò)的記憶機(jī)制比較契合。因此,循環(huán)神經(jīng)網(wǎng)絡(luò)在處理訪問熱度預(yù)測問題上具有獨(dú)特優(yōu)勢。
原始的循環(huán)神經(jīng)網(wǎng)絡(luò)存在梯度消失和梯度爆炸的問題,長期記憶能力一般,很難學(xué)習(xí)序列中長期依賴的信息。SCHMIDHUBER等人提出了長短期記憶人工神經(jīng)網(wǎng)絡(luò)(LSTM),重新設(shè)計(jì)了循環(huán)神經(jīng)網(wǎng)絡(luò)中的計(jì)算節(jié)點(diǎn)。LSTM使用時(shí)間記憶單元用以記錄當(dāng)前時(shí)刻的狀態(tài),一般稱為長短期記憶神經(jīng)網(wǎng)絡(luò)的細(xì)胞[13]。與每個(gè)細(xì)胞相連的有遺忘門、輸入門和輸出門3個(gè)信息傳遞開關(guān)門,如圖1所示。
圖1 LSTM神經(jīng)元結(jié)構(gòu)Fig.1 LSTM neuron structure
信息開關(guān)門可以選擇性地讓信息通過,遺忘門決定某個(gè)時(shí)刻的序列數(shù)據(jù)通過時(shí)從細(xì)胞中丟棄什么信息,輸出一個(gè)在0到1之間的數(shù)值給每個(gè)細(xì)胞狀態(tài)C(0代表完全舍棄,1代表完全保留)。其中,h表示LSTM細(xì)胞的輸出,x表示LSTM細(xì)胞的輸入。
輸入門決定多少新信息被存儲(chǔ)在LSTM細(xì)胞中。輸入門包含兩個(gè)處理層次,sigmoid層決定細(xì)胞狀態(tài)中什么值應(yīng)被更新,tanh層創(chuàng)建一個(gè)新的候選值向量C′。
LSTM細(xì)胞狀態(tài)更新為原始細(xì)胞狀態(tài)丟棄部分信息后,再加上新的候選值向量C′的和。
輸出門基于更新后的LSTM細(xì)胞狀態(tài),通過一個(gè)sigmoid層確定將細(xì)胞狀態(tài)的哪個(gè)部分輸出。細(xì)胞狀態(tài)通過tanh層后和sigmoid輸出相乘。
輸入門、輸出門和遺忘門三類門共同控制信息流入和流出,以及LSTM細(xì)胞狀態(tài)的更新,因此LSTM模型擅長挖掘時(shí)間序列內(nèi)前后間隔較長的依賴關(guān)系,適合預(yù)測有時(shí)間間隔的延遲事件。傳統(tǒng)LSTM模型由于隱藏層需要保留所有的時(shí)間序列信息,模型收斂效果容易受序列長度影響,隨著序列增長而降低。引入注意力機(jī)制能從序列中學(xué)習(xí)到每一個(gè)元素或者事件的重要程度,以后再從相似的場景中學(xué)習(xí)時(shí),可以把LSTM模型的注意力專注于對預(yù)測結(jié)果最有意義的部分,從而提高模型效率。
如圖2所示,數(shù)據(jù)訪問熱度預(yù)測系統(tǒng)與現(xiàn)有的Lustre、EOS等高能物理存儲(chǔ)系統(tǒng)交互,由特征收集節(jié)點(diǎn)、中心數(shù)據(jù)庫、模型訓(xùn)練節(jié)點(diǎn)等組成。在每個(gè)文件存儲(chǔ)服務(wù)器FST上部署I/O日志采集組件,過濾掉無關(guān)信息后以<時(shí)間戳,參數(shù)字段,數(shù)值>的格式存放在中心key-value數(shù)據(jù)庫中。文件訪問特征數(shù)據(jù)經(jīng)過計(jì)算整合、歸一化和批處理,寫入模型訓(xùn)練的在線數(shù)據(jù)隊(duì)列。模型訓(xùn)練基于Tensorflow[14]、sklearn[15]等深度學(xué)習(xí)框架,訓(xùn)練后的模型結(jié)構(gòu)存放在本地文件系統(tǒng)進(jìn)行持久化存儲(chǔ)。高能所計(jì)算中心的數(shù)據(jù)遷移系統(tǒng)周期性地在后臺(tái)掃描磁帶、機(jī)械硬盤、固態(tài)硬盤中的文件列表,根據(jù)文件訪問預(yù)測系統(tǒng)的輸出和管理員預(yù)先設(shè)置的遷移條件,執(zhí)行遷移動(dòng)作。
圖2 數(shù)據(jù)遷移管理系統(tǒng)結(jié)構(gòu)Fig.2 Structure of data migration management system
訓(xùn)練預(yù)測模型需要輸入大量訓(xùn)練樣本。在通常情況下,高能物理存儲(chǔ)系統(tǒng)中文件訪問與不同用戶、不同應(yīng)用的計(jì)算模式都有關(guān)系。高能物理Lustre和EOS存儲(chǔ)系統(tǒng)提供以文件名為單位的歷史訪問日志,記錄文件創(chuàng)建、打開與關(guān)閉操作以及每一次文件指針移動(dòng)和數(shù)據(jù)讀寫等。本文計(jì)算各類文件操作的均值和方差,以衡量在時(shí)間軸上的離散趨勢變化,挖掘文件訪問的時(shí)間特性,并按照合適的時(shí)間窗口整理成文件的時(shí)序訪問特征序列,如圖3所示。在圖3中,T為時(shí)間戳,C為訪問類別,B為讀寫字節(jié)數(shù),N為讀寫指標(biāo)移動(dòng)次數(shù),S為文件大小。
圖3 文件訪問特征時(shí)序序列Fig.3 File access feature time series sequences
文件訪問定義如下:
1)numAccesses:文件的訪問次數(shù)。一次完整的文件訪問包含文件打開、多次讀取與寫入數(shù)據(jù)、多次文件指針移動(dòng)和文件關(guān)閉等過程。
2)avgReads:一次訪問中讀數(shù)據(jù)次數(shù)的均值。
3)stdDevReads:一次訪問中讀數(shù)據(jù)次數(shù)的均方差。
4)avgBytesRead:一次訪問中讀數(shù)據(jù)大小(字節(jié))的均值。
5)stdDevBytesRead:一次訪問中讀數(shù)據(jù)大?。ㄗ止?jié))的均方差。
6)avgWrites:一次訪問中寫數(shù)據(jù)次數(shù)的均值。
7)stdDevWrites:一次訪問中寫數(shù)據(jù)次數(shù)的均方差。
8)avgBytesWritten:一次訪問中寫數(shù)據(jù)大?。ㄗ止?jié))的均值。
9)stdDevWritten:一次訪問中寫數(shù)據(jù)大?。ㄗ止?jié))的均方差。
10)avgSeeks:一次訪問中文件指針移動(dòng)次數(shù)的均值。
11)stdDevSeeks:一次訪問中文件指針移動(dòng)次數(shù)的均方差。
在構(gòu)建訪問特征向量時(shí),需要在海量文件系統(tǒng)日志中篩選出各類文件操作記錄并進(jìn)行持久化存儲(chǔ)。高能所計(jì)算中心的EOS存儲(chǔ)系統(tǒng)具有千萬級(jí)的文件數(shù)目和PB級(jí)的數(shù)據(jù),每天記錄數(shù)十萬條文件訪問日志,需要按照文件名、操作類型和時(shí)間窗口3個(gè)維度進(jìn)行整理。本文使用面向列的key-value分布式數(shù)據(jù)庫HBase存儲(chǔ)高能物理文件訪問特征。Rowkey設(shè)計(jì)如表1所示。
表1 文件訪問I/O數(shù)據(jù)的Rowkey設(shè)計(jì)Table 1 Rowkey design of file access I/O data
Rowkey第0字節(jié)為文件操作類型字段,例如文件打開、關(guān)閉、讀寫等;第1字節(jié)~第16字節(jié)為文件名散列值字段,散列后的文件名具有統(tǒng)一的長度,從而提高數(shù)據(jù)均衡分布在每個(gè)Region的幾率,實(shí)現(xiàn)負(fù)載均衡以提高查詢效率;第17字節(jié)~第20字節(jié)為文件操作時(shí)間字段;第21字節(jié)~第23字節(jié)為擴(kuò)展字段,記錄文件所屬用戶名、文件操作權(quán)限等。準(zhǔn)備模型訓(xùn)練數(shù)據(jù)時(shí),設(shè)定采集文件訪問I/O記錄起始時(shí)間分別為ts和te,時(shí)間跨度為:
挖掘文件訪問時(shí)間特性需要收集前后時(shí)間跨度足夠長的訪問I/O記錄,進(jìn)而做出更準(zhǔn)確的訪問熱度預(yù)測。對于高能物理存儲(chǔ)系統(tǒng)千萬級(jí)別的文件數(shù)目,假如選取更細(xì)粒度的時(shí)間窗口,持久化存儲(chǔ)文件訪問特征向量需要占用更多的物理空間,同時(shí)增加預(yù)測模型的訓(xùn)練時(shí)間。另一方面,假如選取更粗粒度的時(shí)間窗口,部分文件訪問時(shí)間特性可能會(huì)丟失。本文設(shè)計(jì)了動(dòng)態(tài)時(shí)間窗口劃分機(jī)制,設(shè)定時(shí)刻i的窗口大小為:
文件訪問頻率預(yù)測問題可以看作是一類連續(xù)型變量的預(yù)測問題。在傳統(tǒng)情況下此類問題可以使用回歸分析的方法[16],基于預(yù)測結(jié)果制定相應(yīng)的文件遷移決策,以使遷移代價(jià)最小化。然而,在實(shí)際存儲(chǔ)場景中文件數(shù)目眾多,不同文件時(shí)序訪問規(guī)律差異巨大,不可能為每個(gè)文件訓(xùn)練一個(gè)回歸模型,存在計(jì)算復(fù)雜、自適應(yīng)能力差等缺陷。
本文假設(shè)高能物理分級(jí)存儲(chǔ)系統(tǒng)根據(jù)存儲(chǔ)介質(zhì)劃分為n個(gè)存儲(chǔ)層次,每個(gè)存儲(chǔ)層的數(shù)據(jù)訪問性能各不相同,擁有統(tǒng)一名稱空間。高能物理分級(jí)存儲(chǔ)要求盡量減少頻繁遷移對正常用戶訪問的影響。絕大部分情況下訪問頻率在小范圍內(nèi)波動(dòng),并不改變文件應(yīng)該遷移至哪個(gè)存儲(chǔ)層級(jí)。本文預(yù)測文件的訪問熱度,即訪問頻率落在哪個(gè)區(qū)間范圍內(nèi)。預(yù)測問題可以被重新表述成一個(gè)分類問題,如圖4所示。同時(shí),本文使用文件的訪問熱度級(jí)別(0,1,…,n-1),標(biāo)記訓(xùn)練集中的每一條訪問特征序列。n個(gè)熱度標(biāo)簽分別使用one-hot編碼轉(zhuǎn)換為由0和1組成的稀疏向量:
圖4 訪問頻率的多個(gè)區(qū)間Fig.4 Multiple intervals of access frequency
模型訓(xùn)練主要以LSTM網(wǎng)絡(luò)的隱藏層作為研究對象。在模型輸入層中,定義原始文件訪問特征時(shí)序序列為:
隨機(jī)劃分訓(xùn)練集和測試集,采用標(biāo)準(zhǔn)的z-score標(biāo)準(zhǔn)化方法,標(biāo)準(zhǔn)化后的訓(xùn)練集可以表示為:
原始時(shí)序序列以小時(shí)為分割單位,應(yīng)用2.1節(jié)中的動(dòng)態(tài)時(shí)間窗口分割方法對Fo進(jìn)行二次處理。假設(shè)模型展開步長為L,即隱藏層包含L個(gè)連接的LSTM神經(jīng)元。分割后的模型輸入為:
其中,Χ即為2.1節(jié)中挑選出的文件訪問I/O特征,對應(yīng)的理論輸出Y為2.2節(jié)中定義的文件訪問熱度標(biāo)簽。
模型輸入層將Χ傳遞至隱藏層,經(jīng)過隱藏層后的輸出表示為:
參考本文2.1節(jié),Cp-1和Hp-1分別對應(yīng)前一時(shí)刻,即上一LSTM神經(jīng)元的狀態(tài)和輸出,函數(shù)LSTMforward代表LSTM神經(jīng)元中的信息前向傳遞方法。這里假設(shè)神經(jīng)元狀態(tài)向量大小為S,可知Cp-1和Hp-1向量大小也均為S。
在LSTM隱藏層輸出后接一個(gè)softmax層,以輸出各類訪問熱度的概率。預(yù)測時(shí)輸出最大概率值對應(yīng)的類標(biāo)簽,即:
模型訓(xùn)練選用交叉熵?fù)p失函數(shù)作為訓(xùn)練過程中的損失函數(shù),定義為:
設(shè)定損失函數(shù)最小為模型的訓(xùn)練目標(biāo),給定隨機(jī)化種子seed對LSTM網(wǎng)絡(luò)中的權(quán)重和偏差進(jìn)行隨機(jī)化,設(shè)定LSTM網(wǎng)絡(luò)的隱藏層數(shù)和隱藏節(jié)點(diǎn)數(shù)分別為layers和nodes,展開長度等于L,設(shè)定初始學(xué)習(xí)率和訓(xùn)練步數(shù)為steps。模型訓(xùn)練使用梯度反向傳播算法,并使用Adam隨機(jī)優(yōu)化算法[17]更新網(wǎng)絡(luò)中的參數(shù)。
模型訓(xùn)練和訪問熱度預(yù)測算法如算法1所示。
算法1模型訓(xùn)練和訪問熱度預(yù)測算法
文件訪問熱度預(yù)測系統(tǒng)已部署在位于四川稻城的高海拔宇宙線觀測實(shí)驗(yàn)LHAASO的海量存儲(chǔ)系統(tǒng)上,本文首先介紹驗(yàn)證之前如何準(zhǔn)備所需的文件訪問數(shù)據(jù)集,訓(xùn)練LSTM模型對文件訪問熱度進(jìn)行預(yù)測,調(diào)整訪問熱度對應(yīng)的文件訪問頻度閾值γ,分別測試在不同閾值下LSTM模型的預(yù)測精度,并與目前其他預(yù)測模型優(yōu)劣進(jìn)行對比。
本文使用的數(shù)據(jù)集來自LHAASO EOS存儲(chǔ)文件的訪問I/O日志,選取在過去30天內(nèi)曾經(jīng)活躍過的文件數(shù)目為5 842 207個(gè),生成模型訓(xùn)練和測試數(shù)據(jù)集。文件訪問包含EOS存儲(chǔ)系統(tǒng)打開文件、讀取或?qū)懭霐?shù)據(jù)和關(guān)閉文件等過程,且每次訪問都會(huì)在EOS存儲(chǔ)系統(tǒng)的FST服務(wù)器中生成一條訪問日志。高能所計(jì)算中心的EOS存儲(chǔ)集群系統(tǒng)日志由監(jiān)控系統(tǒng)定期抓取到ElasticSearch數(shù)據(jù)庫,在數(shù)據(jù)預(yù)處理階段,從日志中提取文件訪問特征并存入HBase數(shù)據(jù)庫。
在驗(yàn)證中設(shè)定前27天從文件訪問日志中提取的訪問特征作為預(yù)測模型的輸入。應(yīng)用2.2節(jié)中的方法將文件后3天的訪問頻率Q劃分為多個(gè)區(qū)間,對應(yīng)多個(gè)文件訪問熱度級(jí)別作為預(yù)測模型的輸出。在一般情況下,在高能物理存儲(chǔ)中將Q中為0的文件定義為冷文件。數(shù)據(jù)遷移系統(tǒng)周期性地將此類文件存儲(chǔ)至磁帶庫。為進(jìn)一步區(qū)分溫文件和熱文件,本文定義了訪問頻率閾值γ。頻率小于等于閾值γ的文件定義為溫文件,遷移系統(tǒng)周期性地將此類文件遷移至機(jī)械硬盤HDD層,頻率大于γ的文件定義為熱文件,遷移系統(tǒng)周期性地將此類文件遷移至固態(tài)硬盤SSD層。以γ=3時(shí)為例,LHAASO實(shí)驗(yàn)訓(xùn)練數(shù)據(jù)集中冷文件數(shù)目約占95.8%,溫文件數(shù)目約占3.06%,熱文件數(shù)目約占1.13%。
本文將LSTM模型與目前已有的幾種預(yù)測模型進(jìn)行對比驗(yàn)證。
3.2.1 SVM模型
SVM是一類按監(jiān)督學(xué)習(xí)方式對數(shù)據(jù)進(jìn)行二元分類的方法[18]。為解決非線性分類問題,在SVM中引入了核函數(shù),將低維度中線性不可分的數(shù)據(jù)點(diǎn)映射到更高維度線性可分的新空間中,求解最優(yōu)的分類面用于分類。本文使用高斯徑向基函數(shù)(Radial Basis Function,RBF)核作為SVM模型的核函數(shù)。針對多分類問題可以通過組合多個(gè)二分類器,將某個(gè)類別的樣本歸為一類,其他樣本歸為另一類,k個(gè)類別訓(xùn)練k個(gè)SVM模型。由于SVM空間復(fù)雜度是樣本數(shù)據(jù)量的二次方,訓(xùn)練數(shù)據(jù)量很大時(shí)訓(xùn)練時(shí)間會(huì)比較長。但SVM模型訓(xùn)練時(shí)的優(yōu)化目標(biāo)是結(jié)構(gòu)化風(fēng)險(xiǎn)最小,所以泛化能力較好,在人像識(shí)別、文本分類等方面有著廣泛應(yīng)用。
3.2.2 多層感知機(jī)模型
多層感知機(jī)(MLP)模型又稱人工神經(jīng)網(wǎng)絡(luò),是通過模擬大腦神經(jīng)元處理信息的方式而建立的網(wǎng)絡(luò)模型[19]。MLP中包含輸入層、輸出層、隱含層3個(gè)部分,每一層包含若干個(gè)神經(jīng)元。每個(gè)神經(jīng)元代表一種特殊的非線性激活函數(shù),MLP層與層之間是全連接的,訓(xùn)練的過程即為確定各層之間的連接權(quán)重和偏置等參數(shù)的過程。首先隨機(jī)初始化參數(shù),然后迭代訓(xùn)練不斷更新權(quán)重和偏置,直到模型輸出或模型分類誤差滿足某個(gè)條件為止。MLP模型的優(yōu)點(diǎn)在于自學(xué)習(xí)能力和優(yōu)秀的非線性映射能力,但當(dāng)層數(shù)較多或隱藏節(jié)點(diǎn)數(shù)較多時(shí)會(huì)帶來參數(shù)膨脹的問題,造成訓(xùn)練困難。
本文將數(shù)據(jù)集隨機(jī)劃分為訓(xùn)練集(80%)、驗(yàn)證集(10%)和測試集(10%)3個(gè)部分,從耗時(shí)、精度和一致性3個(gè)方面對預(yù)測模型進(jìn)行評(píng)估,耗時(shí)為每類模型構(gòu)建消耗的時(shí)間。本文測試并評(píng)估了每類模型在訓(xùn)練集和測試集上的預(yù)測準(zhǔn)確率。根據(jù)圖4,該問題可以被重新闡述為一個(gè)多分類模型的評(píng)估問題,與二分類模型的評(píng)估方法不同,除預(yù)測準(zhǔn)確率外,本文還使用基于混淆矩陣的Kappa系數(shù)來評(píng)估模型的一致性[20]。Kappa系數(shù)是統(tǒng)計(jì)學(xué)中評(píng)估一致性的方法,取值范圍為[-1,1],在實(shí)際應(yīng)用中一般為[0,1],值越高代表模型分類一致性越好,即在每個(gè)類別上的預(yù)測置信度都比較高。如果值接近于0,說明模型分類結(jié)果接近于隨機(jī)分類。Kappa系數(shù)的計(jì)算公式如下:
其中,Po代表總體分類精度,Pe為:
其中,n為測試集樣本數(shù),ai為每一類真實(shí)樣本數(shù),bi為預(yù)測出的每一類樣本數(shù)。
首先介紹模型應(yīng)用場景,中科院高能物理所計(jì)算中心為LHAASO搭建了EOS存儲(chǔ)集群,包含2個(gè)元數(shù)據(jù)服務(wù)器節(jié)點(diǎn)和11個(gè)存儲(chǔ)服務(wù)器節(jié)點(diǎn),總文件數(shù)目有6 600萬個(gè),占用空間大小為2.9 PB。
在本文中,用于存儲(chǔ)文件訪問特征的HBase集群配置如下:4臺(tái)服務(wù)器構(gòu)建的HBase集群,基于Hadoop 2.6.2平臺(tái),每臺(tái)服務(wù)器配有2顆AMD Operon 6320 CPU和64 GB內(nèi)存,1 TB硬盤。
文件訪問熱度預(yù)測模型使用的訓(xùn)練節(jié)點(diǎn)配置如下:Intel?XeonTMCPU E5-2650 v4@2.20 GHz,單CPU24個(gè)核,64 GB RAM,配有2個(gè)NVIDIA Tesla K80 GPU。MLP、GRU和LSTM模型基于Tensorflow(1.8.0)實(shí)現(xiàn),SVM模型基于Sklearn(0.19.00)實(shí)現(xiàn)。
測試過程首先應(yīng)用3.3節(jié)的方法對文件訪問熱度建立LSTM預(yù)測模型,使用棋盤搜索法確定模型的超參數(shù)。初始時(shí)根據(jù)經(jīng)驗(yàn)確定模型訓(xùn)練時(shí)的學(xué)習(xí)率。不同學(xué)習(xí)率(η=0.001,0.002,0.005)下LSTM預(yù)測模型在訓(xùn)練集上的損失函數(shù)變化如圖5所示??梢钥闯觯?dāng)η=0.002時(shí),損失函數(shù)先快速下降后趨于平穩(wěn),最終表現(xiàn)優(yōu)于其他學(xué)習(xí)率下的模型。
圖5 不同學(xué)習(xí)率對應(yīng)的損失函數(shù)變化Fig.5 Loss function changes corresponding to different learning rates
根據(jù)3.1節(jié)中LHAASO高能物理數(shù)據(jù)集統(tǒng)計(jì),確定訪問頻率閾值γ的不同取值(γ=1,2,3),如表2和表3所示,其中,表2中最大準(zhǔn)確率和最小耗時(shí)與表3中最大Kappa值和最小耗時(shí)用下劃線標(biāo)記。分別訓(xùn)練MLP、SVM、LSTM、帶注意力機(jī)制的LSTM模型并在訓(xùn)練集和測試集上進(jìn)行對比測試,可以看出,LSTM模型在整體預(yù)測精度和一致性上表現(xiàn)都較好,在γ=1時(shí)預(yù)測精度最高,一致性也最好。模型訓(xùn)練耗時(shí)和推理耗時(shí)高于其他模型,但仍處于可接受的范圍內(nèi)。SVM模型在γ=2,3時(shí)測試集一致性上的表現(xiàn)較差。MLP模型訓(xùn)練耗時(shí)和推理耗時(shí)最短,但在γ=1,2時(shí)預(yù)測準(zhǔn)確率和一致性不如LSTM和帶注意力機(jī)制的LSTM模型。
表2 不同預(yù)測模型預(yù)測準(zhǔn)確率對比Table 2 Comparison of prediction accuracy of different predictive models
表3 不同模型預(yù)測一致性對比Table 3 Comparison of prediction consistency of different models
本文提出一種分級(jí)存儲(chǔ)中基于LSTM深度學(xué)習(xí)模型預(yù)測文件訪問熱度的方法,主要包括數(shù)據(jù)集準(zhǔn)備、文件訪問特征構(gòu)建、訓(xùn)練和預(yù)測等。相對于基于管理員經(jīng)驗(yàn)和基于統(tǒng)計(jì)的遷移方法,LSTM模型能更準(zhǔn)確地預(yù)測文件訪問熱度變化,從而提供更有效的文件遷移依據(jù)。本文提出的預(yù)測模型輸入為高能物理分布式存儲(chǔ)EOS中的文件訪問特征,可推廣到其他分布式存儲(chǔ)系統(tǒng)中,該預(yù)測模型是通過批量學(xué)習(xí)來訓(xùn)練的,需要訓(xùn)練數(shù)據(jù)集在學(xué)習(xí)任務(wù)開始前準(zhǔn)備,模型需要定期迭代更新,下一步將嘗試構(gòu)造訓(xùn)練數(shù)據(jù)流,引入預(yù)測模型在線學(xué)習(xí),利用存儲(chǔ)系統(tǒng)線上數(shù)據(jù)實(shí)時(shí)更新模型。