程振京,汪 璐,程耀東,3,陳 剛,胡慶寶,李海波
(1.中國科學院高能物理研究所,北京 100049;2.中國科學院大學,北京 100049;3.中國科學院高能物理研究所天府宇宙線研究中心,成都 610041)
隨著高海拔宇宙線觀測實驗LHAASO[1]建成運行,數據累積規模不斷擴大,對數據存儲的性能和效率提出了更高的要求。LHAASO實驗使用統一命名空間的分級存儲系統來存儲物理數據,使用的介質包括固態硬盤、機械硬盤和磁帶等。Lustre[2]和EOS[3]兩個主要的存儲管理系統均提供分級存儲功能,目前一般采用的是基于系統管理員個人經驗的啟發式算法,如LRU等本質上是以單一的文件訪問特征(遷入上級存儲時間、訪問頻率等)設一個閾值。因為這些算法需要在操作系統內核中運行,必須犧牲一些預測精度來提升執行效率,所以存在經驗偏差,缺少負載通用性和自適應性。為提升存儲系統的資源利用率,按訪問熱度不同將高能物理數據存儲于不同性能、不同容量的存儲設備上,根據數據熱度改變遷移至合適的存儲層級。因此,數據未來的訪問熱度預測對于設計高效的數據遷移機制十分重要。
高能物理計算主要包括原始實驗數據的蒙特卡洛模擬、數據重建以及物理分析等過程,每種計算類型各有其特點,每個用戶/應用的計算模式也有可能存在巨大差異。通常情況下在一個較短的連續時間段內,物理學家通常只會專注于分析整體重建數據的一小部分,其他絕大部分重建數據不會被訪問。在存儲系統中表現為同一文件的訪問熱度并不是一成不變的,同時訪問特征隨時間變化。本文研究在高能物理實驗LHAASO的真實分級存儲中,根據文件訪問特征的變化預測訪問熱度的變化,基于長短期記憶(Long-Short Term Memory,LSTM)神經網絡算法,訓練一個有監督學習的文件訪問熱度預測模型,并與傳統SVM模型、MLP模型進行對比驗證。
數據訪問預測和遷移策略一直是存儲系統的重要研究領域。文獻[4]綜述了LRU、CLOCK、2Q、GDSF、LFUDA和FIFO等預測算法驅動的文件遷移策略。這些策略主要用于解決單機環境下數據在易失性主存和外部磁盤間的緩存替換問題,其本質是以某一個單一的文件訪問特征(如最后訪問的時間等)為閾值,設定啟發式的遷入遷出規則。因為需要在操作系統內核中運行,必須在預測精度和執行效率之間做出權衡,不可能利用復雜的文件訪問特征或設計非常復雜的算法來輔助預測。文獻[5]介紹了LNS模型,在傳統Last Successor算法的基礎上加入用戶信息來提升數據訪問預測精度,但同樣嚴重依賴文件訪問順序。文獻[6]提出了利用預測文件未來訪問熱度來制定遷移規則的方法,該方法假設每次用戶都會完整、順序地讀完整個文件,然后訓練一個基于支持向量機(SVM)算法的監督學習模型來執行預測任務,在特定Web數據集上取得了良好的預測效果,但由于SVM是借助二次規劃來支持向量的,模型訓練需要耗費大量的CPU運算時間。
近年來,深度學習技術逐漸興起,訓練方法與傳統算法相比有很大區別,從而突破了傳統神經網絡對隱藏層數和每層節點數量的限制,具有很強的自學習和非線性映射能力。在各種深度神經網絡模型中,循環神經網絡(Recurrent Neural Network,RNN)在網絡結構設計上引入了時序的概念,同時結合具有存儲能力的網絡節點,從而使模型像人一樣擁有記憶[7]。循環神經網絡能夠對輸入時序信號逐層抽象并提取特征[8],目前在語音識別[9]、機器翻譯[10]、電力負荷預測[11]、故障預測[12]等領域的時序數據建模中取得了較多的突破,然而在數據訪問預測方面應用有限,特別是針對分級存儲的數據訪問熱度預測,目前還未發現類似的研究案例。
由于高能物理數據處理模式的特點,文件訪問具有一定的時間特性,和循環神經網絡的記憶機制比較契合。因此,循環神經網絡在處理訪問熱度預測問題上具有獨特優勢。
原始的循環神經網絡存在梯度消失和梯度爆炸的問題,長期記憶能力一般,很難學習序列中長期依賴的信息。SCHMIDHUBER等人提出了長短期記憶人工神經網絡(LSTM),重新設計了循環神經網絡中的計算節點。LSTM使用時間記憶單元用以記錄當前時刻的狀態,一般稱為長短期記憶神經網絡的細胞[13]。與每個細胞相連的有遺忘門、輸入門和輸出門3個信息傳遞開關門,如圖1所示。

圖1 LSTM神經元結構Fig.1 LSTM neuron structure
信息開關門可以選擇性地讓信息通過,遺忘門決定某個時刻的序列數據通過時從細胞中丟棄什么信息,輸出一個在0到1之間的數值給每個細胞狀態C(0代表完全舍棄,1代表完全保留)。其中,h表示LSTM細胞的輸出,x表示LSTM細胞的輸入。

輸入門決定多少新信息被存儲在LSTM細胞中。輸入門包含兩個處理層次,sigmoid層決定細胞狀態中什么值應被更新,tanh層創建一個新的候選值向量C′。

LSTM細胞狀態更新為原始細胞狀態丟棄部分信息后,再加上新的候選值向量C′的和。

輸出門基于更新后的LSTM細胞狀態,通過一個sigmoid層確定將細胞狀態的哪個部分輸出。細胞狀態通過tanh層后和sigmoid輸出相乘。

輸入門、輸出門和遺忘門三類門共同控制信息流入和流出,以及LSTM細胞狀態的更新,因此LSTM模型擅長挖掘時間序列內前后間隔較長的依賴關系,適合預測有時間間隔的延遲事件。傳統LSTM模型由于隱藏層需要保留所有的時間序列信息,模型收斂效果容易受序列長度影響,隨著序列增長而降低。引入注意力機制能從序列中學習到每一個元素或者事件的重要程度,以后再從相似的場景中學習時,可以把LSTM模型的注意力專注于對預測結果最有意義的部分,從而提高模型效率。
如圖2所示,數據訪問熱度預測系統與現有的Lustre、EOS等高能物理存儲系統交互,由特征收集節點、中心數據庫、模型訓練節點等組成。在每個文件存儲服務器FST上部署I/O日志采集組件,過濾掉無關信息后以<時間戳,參數字段,數值>的格式存放在中心key-value數據庫中。文件訪問特征數據經過計算整合、歸一化和批處理,寫入模型訓練的在線數據隊列。模型訓練基于Tensorflow[14]、sklearn[15]等深度學習框架,訓練后的模型結構存放在本地文件系統進行持久化存儲。高能所計算中心的數據遷移系統周期性地在后臺掃描磁帶、機械硬盤、固態硬盤中的文件列表,根據文件訪問預測系統的輸出和管理員預先設置的遷移條件,執行遷移動作。

圖2 數據遷移管理系統結構Fig.2 Structure of data migration management system
訓練預測模型需要輸入大量訓練樣本。在通常情況下,高能物理存儲系統中文件訪問與不同用戶、不同應用的計算模式都有關系。高能物理Lustre和EOS存儲系統提供以文件名為單位的歷史訪問日志,記錄文件創建、打開與關閉操作以及每一次文件指針移動和數據讀寫等。本文計算各類文件操作的均值和方差,以衡量在時間軸上的離散趨勢變化,挖掘文件訪問的時間特性,并按照合適的時間窗口整理成文件的時序訪問特征序列,如圖3所示。在圖3中,T為時間戳,C為訪問類別,B為讀寫字節數,N為讀寫指標移動次數,S為文件大小。

圖3 文件訪問特征時序序列Fig.3 File access feature time series sequences
文件訪問定義如下:
1)numAccesses:文件的訪問次數。一次完整的文件訪問包含文件打開、多次讀取與寫入數據、多次文件指針移動和文件關閉等過程。
2)avgReads:一次訪問中讀數據次數的均值。
3)stdDevReads:一次訪問中讀數據次數的均方差。
4)avgBytesRead:一次訪問中讀數據大?。ㄗ止潱┑木?。
5)stdDevBytesRead:一次訪問中讀數據大小(字節)的均方差。
6)avgWrites:一次訪問中寫數據次數的均值。
7)stdDevWrites:一次訪問中寫數據次數的均方差。
8)avgBytesWritten:一次訪問中寫數據大?。ㄗ止潱┑木?。
9)stdDevWritten:一次訪問中寫數據大小(字節)的均方差。
10)avgSeeks:一次訪問中文件指針移動次數的均值。
11)stdDevSeeks:一次訪問中文件指針移動次數的均方差。
在構建訪問特征向量時,需要在海量文件系統日志中篩選出各類文件操作記錄并進行持久化存儲。高能所計算中心的EOS存儲系統具有千萬級的文件數目和PB級的數據,每天記錄數十萬條文件訪問日志,需要按照文件名、操作類型和時間窗口3個維度進行整理。本文使用面向列的key-value分布式數據庫HBase存儲高能物理文件訪問特征。Rowkey設計如表1所示。

表1 文件訪問I/O數據的Rowkey設計Table 1 Rowkey design of file access I/O data
Rowkey第0字節為文件操作類型字段,例如文件打開、關閉、讀寫等;第1字節~第16字節為文件名散列值字段,散列后的文件名具有統一的長度,從而提高數據均衡分布在每個Region的幾率,實現負載均衡以提高查詢效率;第17字節~第20字節為文件操作時間字段;第21字節~第23字節為擴展字段,記錄文件所屬用戶名、文件操作權限等。準備模型訓練數據時,設定采集文件訪問I/O記錄起始時間分別為ts和te,時間跨度為:

挖掘文件訪問時間特性需要收集前后時間跨度足夠長的訪問I/O記錄,進而做出更準確的訪問熱度預測。對于高能物理存儲系統千萬級別的文件數目,假如選取更細粒度的時間窗口,持久化存儲文件訪問特征向量需要占用更多的物理空間,同時增加預測模型的訓練時間。另一方面,假如選取更粗粒度的時間窗口,部分文件訪問時間特性可能會丟失。本文設計了動態時間窗口劃分機制,設定時刻i的窗口大小為:

文件訪問頻率預測問題可以看作是一類連續型變量的預測問題。在傳統情況下此類問題可以使用回歸分析的方法[16],基于預測結果制定相應的文件遷移決策,以使遷移代價最小化。然而,在實際存儲場景中文件數目眾多,不同文件時序訪問規律差異巨大,不可能為每個文件訓練一個回歸模型,存在計算復雜、自適應能力差等缺陷。
本文假設高能物理分級存儲系統根據存儲介質劃分為n個存儲層次,每個存儲層的數據訪問性能各不相同,擁有統一名稱空間。高能物理分級存儲要求盡量減少頻繁遷移對正常用戶訪問的影響。絕大部分情況下訪問頻率在小范圍內波動,并不改變文件應該遷移至哪個存儲層級。本文預測文件的訪問熱度,即訪問頻率落在哪個區間范圍內。預測問題可以被重新表述成一個分類問題,如圖4所示。同時,本文使用文件的訪問熱度級別(0,1,…,n-1),標記訓練集中的每一條訪問特征序列。n個熱度標簽分別使用one-hot編碼轉換為由0和1組成的稀疏向量:


圖4 訪問頻率的多個區間Fig.4 Multiple intervals of access frequency
模型訓練主要以LSTM網絡的隱藏層作為研究對象。在模型輸入層中,定義原始文件訪問特征時序序列為:

隨機劃分訓練集和測試集,采用標準的z-score標準化方法,標準化后的訓練集可以表示為:

原始時序序列以小時為分割單位,應用2.1節中的動態時間窗口分割方法對Fo進行二次處理。假設模型展開步長為L,即隱藏層包含L個連接的LSTM神經元。分割后的模型輸入為:

其中,Χ即為2.1節中挑選出的文件訪問I/O特征,對應的理論輸出Y為2.2節中定義的文件訪問熱度標簽。
模型輸入層將Χ傳遞至隱藏層,經過隱藏層后的輸出表示為:

參考本文2.1節,Cp-1和Hp-1分別對應前一時刻,即上一LSTM神經元的狀態和輸出,函數LSTMforward代表LSTM神經元中的信息前向傳遞方法。這里假設神經元狀態向量大小為S,可知Cp-1和Hp-1向量大小也均為S。
在LSTM隱藏層輸出后接一個softmax層,以輸出各類訪問熱度的概率。預測時輸出最大概率值對應的類標簽,即:

模型訓練選用交叉熵損失函數作為訓練過程中的損失函數,定義為:

設定損失函數最小為模型的訓練目標,給定隨機化種子seed對LSTM網絡中的權重和偏差進行隨機化,設定LSTM網絡的隱藏層數和隱藏節點數分別為layers和nodes,展開長度等于L,設定初始學習率和訓練步數為steps。模型訓練使用梯度反向傳播算法,并使用Adam隨機優化算法[17]更新網絡中的參數。
模型訓練和訪問熱度預測算法如算法1所示。
算法1模型訓練和訪問熱度預測算法

文件訪問熱度預測系統已部署在位于四川稻城的高海拔宇宙線觀測實驗LHAASO的海量存儲系統上,本文首先介紹驗證之前如何準備所需的文件訪問數據集,訓練LSTM模型對文件訪問熱度進行預測,調整訪問熱度對應的文件訪問頻度閾值γ,分別測試在不同閾值下LSTM模型的預測精度,并與目前其他預測模型優劣進行對比。
本文使用的數據集來自LHAASO EOS存儲文件的訪問I/O日志,選取在過去30天內曾經活躍過的文件數目為5 842 207個,生成模型訓練和測試數據集。文件訪問包含EOS存儲系統打開文件、讀取或寫入數據和關閉文件等過程,且每次訪問都會在EOS存儲系統的FST服務器中生成一條訪問日志。高能所計算中心的EOS存儲集群系統日志由監控系統定期抓取到ElasticSearch數據庫,在數據預處理階段,從日志中提取文件訪問特征并存入HBase數據庫。
在驗證中設定前27天從文件訪問日志中提取的訪問特征作為預測模型的輸入。應用2.2節中的方法將文件后3天的訪問頻率Q劃分為多個區間,對應多個文件訪問熱度級別作為預測模型的輸出。在一般情況下,在高能物理存儲中將Q中為0的文件定義為冷文件。數據遷移系統周期性地將此類文件存儲至磁帶庫。為進一步區分溫文件和熱文件,本文定義了訪問頻率閾值γ。頻率小于等于閾值γ的文件定義為溫文件,遷移系統周期性地將此類文件遷移至機械硬盤HDD層,頻率大于γ的文件定義為熱文件,遷移系統周期性地將此類文件遷移至固態硬盤SSD層。以γ=3時為例,LHAASO實驗訓練數據集中冷文件數目約占95.8%,溫文件數目約占3.06%,熱文件數目約占1.13%。
本文將LSTM模型與目前已有的幾種預測模型進行對比驗證。
3.2.1 SVM模型
SVM是一類按監督學習方式對數據進行二元分類的方法[18]。為解決非線性分類問題,在SVM中引入了核函數,將低維度中線性不可分的數據點映射到更高維度線性可分的新空間中,求解最優的分類面用于分類。本文使用高斯徑向基函數(Radial Basis Function,RBF)核作為SVM模型的核函數。針對多分類問題可以通過組合多個二分類器,將某個類別的樣本歸為一類,其他樣本歸為另一類,k個類別訓練k個SVM模型。由于SVM空間復雜度是樣本數據量的二次方,訓練數據量很大時訓練時間會比較長。但SVM模型訓練時的優化目標是結構化風險最小,所以泛化能力較好,在人像識別、文本分類等方面有著廣泛應用。
3.2.2 多層感知機模型
多層感知機(MLP)模型又稱人工神經網絡,是通過模擬大腦神經元處理信息的方式而建立的網絡模型[19]。MLP中包含輸入層、輸出層、隱含層3個部分,每一層包含若干個神經元。每個神經元代表一種特殊的非線性激活函數,MLP層與層之間是全連接的,訓練的過程即為確定各層之間的連接權重和偏置等參數的過程。首先隨機初始化參數,然后迭代訓練不斷更新權重和偏置,直到模型輸出或模型分類誤差滿足某個條件為止。MLP模型的優點在于自學習能力和優秀的非線性映射能力,但當層數較多或隱藏節點數較多時會帶來參數膨脹的問題,造成訓練困難。
本文將數據集隨機劃分為訓練集(80%)、驗證集(10%)和測試集(10%)3個部分,從耗時、精度和一致性3個方面對預測模型進行評估,耗時為每類模型構建消耗的時間。本文測試并評估了每類模型在訓練集和測試集上的預測準確率。根據圖4,該問題可以被重新闡述為一個多分類模型的評估問題,與二分類模型的評估方法不同,除預測準確率外,本文還使用基于混淆矩陣的Kappa系數來評估模型的一致性[20]。Kappa系數是統計學中評估一致性的方法,取值范圍為[-1,1],在實際應用中一般為[0,1],值越高代表模型分類一致性越好,即在每個類別上的預測置信度都比較高。如果值接近于0,說明模型分類結果接近于隨機分類。Kappa系數的計算公式如下:

其中,Po代表總體分類精度,Pe為:

其中,n為測試集樣本數,ai為每一類真實樣本數,bi為預測出的每一類樣本數。
首先介紹模型應用場景,中科院高能物理所計算中心為LHAASO搭建了EOS存儲集群,包含2個元數據服務器節點和11個存儲服務器節點,總文件數目有6 600萬個,占用空間大小為2.9 PB。
在本文中,用于存儲文件訪問特征的HBase集群配置如下:4臺服務器構建的HBase集群,基于Hadoop 2.6.2平臺,每臺服務器配有2顆AMD Operon 6320 CPU和64 GB內存,1 TB硬盤。
文件訪問熱度預測模型使用的訓練節點配置如下:Intel?XeonTMCPU E5-2650 v4@2.20 GHz,單CPU24個核,64 GB RAM,配有2個NVIDIA Tesla K80 GPU。MLP、GRU和LSTM模型基于Tensorflow(1.8.0)實現,SVM模型基于Sklearn(0.19.00)實現。
測試過程首先應用3.3節的方法對文件訪問熱度建立LSTM預測模型,使用棋盤搜索法確定模型的超參數。初始時根據經驗確定模型訓練時的學習率。不同學習率(η=0.001,0.002,0.005)下LSTM預測模型在訓練集上的損失函數變化如圖5所示??梢钥闯觯敠?0.002時,損失函數先快速下降后趨于平穩,最終表現優于其他學習率下的模型。

圖5 不同學習率對應的損失函數變化Fig.5 Loss function changes corresponding to different learning rates
根據3.1節中LHAASO高能物理數據集統計,確定訪問頻率閾值γ的不同取值(γ=1,2,3),如表2和表3所示,其中,表2中最大準確率和最小耗時與表3中最大Kappa值和最小耗時用下劃線標記。分別訓練MLP、SVM、LSTM、帶注意力機制的LSTM模型并在訓練集和測試集上進行對比測試,可以看出,LSTM模型在整體預測精度和一致性上表現都較好,在γ=1時預測精度最高,一致性也最好。模型訓練耗時和推理耗時高于其他模型,但仍處于可接受的范圍內。SVM模型在γ=2,3時測試集一致性上的表現較差。MLP模型訓練耗時和推理耗時最短,但在γ=1,2時預測準確率和一致性不如LSTM和帶注意力機制的LSTM模型。

表2 不同預測模型預測準確率對比Table 2 Comparison of prediction accuracy of different predictive models

表3 不同模型預測一致性對比Table 3 Comparison of prediction consistency of different models
本文提出一種分級存儲中基于LSTM深度學習模型預測文件訪問熱度的方法,主要包括數據集準備、文件訪問特征構建、訓練和預測等。相對于基于管理員經驗和基于統計的遷移方法,LSTM模型能更準確地預測文件訪問熱度變化,從而提供更有效的文件遷移依據。本文提出的預測模型輸入為高能物理分布式存儲EOS中的文件訪問特征,可推廣到其他分布式存儲系統中,該預測模型是通過批量學習來訓練的,需要訓練數據集在學習任務開始前準備,模型需要定期迭代更新,下一步將嘗試構造訓練數據流,引入預測模型在線學習,利用存儲系統線上數據實時更新模型。