何婕


(重慶工商職業學院)
【摘要】針對并行訓練算法面臨的諸多問題上 ,提出了一種并行分布式訓練模型。該模型采用主-從機結構,通過數據片split迭代得到數據塊block,然后聚合所有從機優化得到的模型。實驗表明,該模型在犧牲部分模型性能的情況下,實現了訓練的線性加速
【關鍵字】深度學習 數據并行 訓練框架
1 引言
深度學習是現代信息處理的一種智能算法,通過多層人工神經網絡擬合訓練樣本數據,解決了傳統神經網絡算法在訓練多層神經網絡時出現的局部最優問題,基于深度學習對于圖像、文本、語音等識別算法能夠較快的提取對象特征值,且時效性較好,得到越來越深入的研究。
2 深度學習模型
近年來,深度學習模型最引人注目的是谷歌公司開發的DistBelief訓練框架,該框架在數以千計的計算節點上訓練不同類型的深度學習模型,這種算法屬于異步SGD算法。根據谷歌公布的結果顯示,隨著用于并行訓練機器的增多,異步SGD訓練得到的模型性能會出現顯著下降。對其算法進行可擴展化訓練的思路,一是可以采用基于模型平均的算法,還有一種是基于狀態聚類的多DNN訓練算法,它將深度學習訓練任務分解成多個子任務,每個子任務獨立進行各自模型的訓練,因而可以并行處理,在系統性能略有下降的情況下,實現了DNN的加速訓練。
3 數據并行的分布式訓練算法
針對現有并行訓練算法面臨的諸多問題(可擴展性差、實現困難、并行效率低),我們通過多方面的嘗試,在數據并行的増量塊式訓練(Incremental Block Training,IBT)框架下,提出了一種新的分布式訓練算法。該算法的主要思想是:把無約束的深度學習模型訓練問題轉化成全局一致性優化問題進行分布式求解。當并行運算機器増多時,訓練呈線性加速的同時,相對于單機訓練得到的模型,并行訓練得到的模型性能不再下降,在一些情況下甚至優于單機模型。
3.1 并行增量塊訓練框架
IBT框架中,每次取訓練數據的一個子集稱之為數據塊(block),用該數據塊對模型進行訓練,模型更新完畢再取下個數據塊進行訓練,即模型的訓練是按照數據塊逐個進行的。如果數據塊內的訓練數據是被多個處理單元并行處理的,便實現了數據并行訓練。見圖1所示。
IBT采用主-從機結構,主機上的模型為全局模型,從機上的模型為局部模型。單個從機處理的為一個數據片(split),每次主機算法迭代時,n臺從機處理的split便構成上了一個block。
3.2 并行分布式訓練算法
ADMM是一種用于解決線性等式約束凸優化問題的分布式優化算法,成功應用于大規模機器學習問題的求解。我們把深度學習模型的訓練,采用全局一致問題的ADMM算法優化模型參數。
3.3 實驗結果
我們選取 Google Earth等網絡軟件下載圖像數據 25000 張,將其分為居民地、道路、綠化區、湖泊、土地 5 類,每類 5000 張。通過改進的并行分布式訓練,我們把每個block的split數目N為10,20,40,10*496,20*248,40*124,在這些數據分割下,分別進行傳統的ADMM和改進的并行分布式訓練。并行訓練使用的GPU數目和每個block包含的split數目相同, 我們通過統計每種算法處理一遍數據的用時計算訓練的加速比。結果表明,在犧牲部分模型性能的情況下,實現了訓練的線性加速,使用32塊GPU卡達到了28倍以上的訓練加速,且并行訓練得到的模型相對單機基準模型,性能基本沒有下降,有些情況下甚至好于單機模型。
4 結語
本文對深度學習模型進行了研究,在并行訓練算法面臨的諸多問題上 ,提出了一種并行分布式訓練模型。實驗數據表明,該模型在犧牲部分模型性能的情況下,實現了訓練的線性加速。
參考文獻:
[1]陳凱.深度學習模型的高效訓練算法研究[D].中國科學技術大學.2016
[2]HATFIELD.F.J,WIGGERT.D.C.Response of pipe-linesto seismic motion in:the axial direction.ASME PVPConf.Symp.on Recent Advances.in Design, Analysis,Testing, and Qualification Methods. San Diego, US-A, July 1987: 289–295.
基金項目:2016年重慶工商職業學院科學研究“基于深度學習模型的圖像識別技術研究”項目(項目編號YB2016-18)。