接下來由我給大家?guī)韴蟾妗斗植际綄W習過程中硬盤故障恢復加速的研究》,報告分為四個部分。

首先介紹分布式學習的故障場景。

在云計算系統(tǒng)中,分布式機器學習的數(shù)據(jù)集通常部署在云上,一般來說,數(shù)據(jù)集規(guī)模很大,它通常存儲在多個節(jié)點上面,從數(shù)百GB、數(shù)TB甚至到多個EB不等。但在存儲的系統(tǒng)中,存儲節(jié)點會面臨著故障頻繁的問題:

一方面,計算層會從數(shù)據(jù)層的每個節(jié)點讀取數(shù)據(jù),向前和向后傳遞到神經(jīng)網(wǎng)絡;

另一方面,訓練結(jié)果進行有效的聚合,形成最終的結(jié)果。

下面是常見的分布式的深度學習的訓練框架。

其實向分布式機器學習,向聯(lián)邦學習等相關的機器學習的方法都采用類似的學習框架。

當前云存儲系統(tǒng)中面臨著嚴重的數(shù)據(jù)丟失隱患。

現(xiàn)在的存儲陣列(如閃存陣列)等都廣泛的應用于云存儲系統(tǒng)中,據(jù)一些論文報告以及全世界各大互聯(lián)網(wǎng)廠商的調(diào)研,傳統(tǒng)的Flash、硬盤都面臨著嚴重的數(shù)據(jù)丟失的隱患。傳統(tǒng)的3D Flash,其故障率一般來說在1%左右。

谷歌2007年的調(diào)研也表明,兩年以上的硬盤的故障率都在3%-5%之間。Facebook的調(diào)研也表明,節(jié)點也面臨著大量的故障情況。所以我們的研究主要面向著在大規(guī)模的分布式學習場景下,特別是面臨著嚴重的數(shù)據(jù)丟失隱患的情況下,硬盤發(fā)生故障后該如何進行數(shù)據(jù)的快速恢復。

在當前的云計算系統(tǒng)當中,糾刪碼技術成本很低,易于實現(xiàn),是目前實現(xiàn)大規(guī)模硬盤或者大規(guī)模存儲系統(tǒng)容錯的一種通常的技術手段。一方面它能夠去適應不同的應用場景,另外一方面,它也面臨著很多的問題,比如說延時很高,需要占用大量的恢復帶寬。因此,如何在分布式機器學習的故障場景下保證學習效率,同時去挖掘分布式機器學習相關的數(shù)據(jù)關系來提高恢復速度。我們在這方面做了相關的工作,論文發(fā)表在IWQoS 2022會議上面,還有一些后續(xù)的工作。

現(xiàn)有的恢復方案主要基于兩大類。

一大類是傳統(tǒng)的基于糾刪碼的數(shù)據(jù)恢復方法。這些恢復方法通常來說是采用數(shù)據(jù)并行的方式來進行恢復的加速。主要問題在于糾刪碼的恢復方法主要是集中在分布式存儲系統(tǒng)的底層,無法感知上層機器學習應用的特征,只能支持傳統(tǒng)的恢復流程,恢復時間也比較長。

另外一類是基于機器學習的機器模擬的恢復方法。通過一些插幀、干的網(wǎng)絡或者機器學習的方法實現(xiàn)對圖像、視頻等相關應用的數(shù)據(jù)恢復。但是它們的恢復實際上都是一些近似恢復,無法獲得精確的數(shù)據(jù),還需要消耗大量的GPU等算力資源。所以也存在恢復速度很慢的問題。

在這樣的場景下面,如何來做到快速而精準的恢復,是當前面臨的一個很大的問題。

二、部分恢復策略PRM

傳統(tǒng)的糾刪碼的一種典型的恢復方式是PPR算法,它的核心思想是將糾刪碼編碼過程當中的矩陣運算分解成幾個部分,將部分的解碼進行流水線編排,從而能實現(xiàn)訓練的加速。但是在整個分布式系統(tǒng)當中,對于丟失的數(shù)據(jù)它只能進行完全恢復,而不能進行部分恢復,而且它的恢復方式是隨機化的,它沒有考慮丟失數(shù)據(jù)對上層的機器學習模型訓練的影響。

另外一類是在PPR的基礎上進行改進的RP的算法,主要是在PPR的基礎上進行數(shù)據(jù)的細粒度編排,達到更高的流水線的并行恢復。但是它對于丟失的數(shù)據(jù)也只能進行完全恢復,而不能進行部分恢復,而且恢復也是隨機的,不能感知上層機器學習的應用信息。

機器學習的方法,比如說基于GAN的一些網(wǎng)絡方法,主要是根據(jù)機器學習的訓練模型生成丟失數(shù)據(jù)的近似恢復的方法方式。它也面臨著一些問題,如有比較高的一些計算開銷,需要消耗大量的GPU的算力資源,它的恢復方式主要是近似恢復,不能恢復原始的數(shù)據(jù),存在著圖像、視頻等失真現(xiàn)象。

對比現(xiàn)有傳統(tǒng)的基于糾刪碼的恢復方式和基于AI的一些近似恢復的方式,我們會發(fā)現(xiàn)它們在流水線的并行程度、數(shù)據(jù)的恢復速度、訓練精度、恢復代價等方面各有優(yōu)劣。

如何采用一種能夠融合現(xiàn)有糾刪碼和基于AI恢復的一些方法的優(yōu)點,來達到更好的效果的方式?

我們提出了一種部分恢復(PRM)的方法,也就是采用糾刪碼部分恢復、同時也采用AI的方式來做部分的恢復,達到最好的恢復效率,最終這種恢復方法我們把它叫做PRM。

三、部分恢復策略PRM

這個恢復框架主要是分成四個部分。

第一部分是做參數(shù)選擇,主要是收集有關糾刪碼和機器學習訓練的模型參數(shù)以及相關的數(shù)據(jù)分布的信息。第二個是應用監(jiān)控,主要是構(gòu)建應用層監(jiān)控模型,來監(jiān)控當前機器學習訓練的實時狀態(tài)。第三個是計算恢復優(yōu)先級,通過計算恢復優(yōu)先級獲取到恢復數(shù)據(jù)的一些權(quán)重。最后是設計一個并行恢復策略,基于丟失數(shù)據(jù)的權(quán)重設計一種并行恢復機制,能夠達到更快的恢復速度。

首先介紹一下參數(shù)選擇和應用監(jiān)控這兩個模塊。

在參數(shù)選擇方面,主要需要收集糾刪碼的參數(shù)、條帶的數(shù)據(jù)塊參數(shù)、條帶檢查塊參數(shù)以及編碼矩陣的參數(shù)信息。與此同時,也需要去收集機器學習模型的訓練參數(shù),包括它的批次、批次大小以及更新權(quán)重等信息。

在應用監(jiān)控方面,需要計算每個數(shù)據(jù)塊和校驗塊的權(quán)重。主要是依據(jù)下面給出的公式來進行相應的計算。

在優(yōu)先級方面,主要是考慮了兩個不均衡參數(shù),一個是局部不均衡參數(shù),一個是全局不均衡參數(shù)。通過丟失的數(shù)據(jù)量和丟失的數(shù)據(jù)對整個樣本的影響,從而算出來對于整體的數(shù)據(jù)集的不均衡的影響。影響越大,那意味著這個數(shù)據(jù)的權(quán)重也就越高,需要恢復的優(yōu)先級也就越高。

在基于不均衡參數(shù)的基礎上,我們計算了每一個數(shù)據(jù)塊加權(quán)優(yōu)先級,也就是把前面的這些參數(shù)融合起來,形成下面的公式。

這里我們給了一個恢復優(yōu)先級的計算例子。

假設這個三角形、五邊形和圓形分別代表著不同類型的數(shù)據(jù)。三角形的數(shù)據(jù)實際上主要是全局不平衡的參數(shù),比如說根據(jù)條帶和節(jié)點的信息來計算,最后算出來的結(jié)果就是(1-0)÷3,局部不平衡也是(1-0)÷3,最后算出來它的條帶優(yōu)先級就是0.86。

最后我們給出來一個并行恢復的例子。根據(jù)每個節(jié)點輸入輸出的情況,分別算出每種類型的恢復優(yōu)先級,最后通過恢復優(yōu)先級的疊加規(guī)劃出最優(yōu)的一種并行路徑。

測試結(jié)果及相關的數(shù)據(jù)分析。

試驗環(huán)境是基于4塊GeForce RTX 3090 GPU卡來模擬整個分布式學習存儲節(jié)點和計算節(jié)點,同時把不同的糾刪碼將訓練數(shù)據(jù)存儲在不同的存儲節(jié)點當中。

我們使用4個訓練數(shù)據(jù)集,并且基于RS編碼來構(gòu)建模擬的真實節(jié)點。整個試驗的環(huán)境的架構(gòu)如下面的左圖所示,每個服務器的配制如下面的右表所示。

對比的方法主要包括傳統(tǒng)的基于糾刪碼的一些恢復方法,比如說像RS、PPR、RP等傳統(tǒng)的基于糾刪碼的并行恢復的加速算法,還有一類是基于AI的算法,包括GAN生成網(wǎng)絡、CPR等等相關的一些機器學習的方法。數(shù)據(jù)集主要選取了現(xiàn)有的基于圖像、視頻這一類的為代表的數(shù)據(jù)集,比如ImageNet、COCO等等相關的數(shù)據(jù)集。

這個表當中還顯示出了訓練集的大小,以及測試的相關圖片的數(shù)量,規(guī)模都是比較大的,一般來說是在數(shù)百萬張圖片的規(guī)模。

四、測試結(jié)果

第一個方面展示的是平均的訓練精度。我們采用RS(6,3)的糾刪碼,也就是6個數(shù)據(jù)塊+3個校驗塊的配制。當恢復相同比例的數(shù)據(jù)時,我們與典型的PPR、PRM、GAN方法相比,訓練精度明顯要更高一些,而且與下界的網(wǎng)絡相比,精度大約分別提高了10%和7%左右。

第二個方面,主要測試F1 Score。F1 Score其實跟我們的訓練精度也是正相關的。前面說我們的訓練精度提高了,實際上F1 Score值也大幅提升了,值分別提高了0.58%、5%、1.18%和2.01%。

第三個方面介紹的是平均恢復時間。與傳統(tǒng)的糾刪碼相比,PPR、RP和傳統(tǒng)PRM的恢復方法恢復時間分別減少57.4%、55.7%以及55.98%。與傳統(tǒng)的方法相比,我們應用在傳統(tǒng)的恢復方法方面減少33.5%的恢復開銷,效果是非常明顯的。

第四個方面主要介紹平均的網(wǎng)絡傳輸時間。與傳統(tǒng)的方法相比,分別可以減少63.4%、54.32%和53.89%的網(wǎng)絡傳輸帶寬。與AI的CPR相比,傳輸帶寬也能節(jié)省32.2%,效果非常明顯的。

平均的I/O吞吐率也是能得到大幅度的提升。在這4個數(shù)據(jù)集下面吞吐率分別提高了1.258倍、1.325倍、1.36倍和1.327倍,效果也是非常明顯的。

總結(jié)

此次主要介紹面臨故障場景高效保障分布式機器學習任務的正常運行。

與當前的訓練數(shù)據(jù)相關的一些數(shù)據(jù),我們實際上會實現(xiàn)優(yōu)先恢復,從而能夠達到訓練過程當中更好的精度的保障。與數(shù)據(jù)集相關的廣度相關的一些數(shù)據(jù)集,我們也會去做一些優(yōu)先恢復,從而提高它的恢復速度。在這兩方面我們分別去做部分恢復并且把它進行融合,能夠達到更好的恢復速度,并且實現(xiàn)更好的支撐上層分布式機器學習的訓練效果。

以上就是我這邊的主要匯報,其他的部分我們后面再進行詳細的交流。

謝謝大家!

分享到

xiesc

相關推薦