接下來由我給大家?guī)韴?bào)告《分布式學(xué)習(xí)過程中硬盤故障恢復(fù)加速的研究》,報(bào)告分為四個(gè)部分。
首先介紹分布式學(xué)習(xí)的故障場(chǎng)景。
在云計(jì)算系統(tǒng)中,分布式機(jī)器學(xué)習(xí)的數(shù)據(jù)集通常部署在云上,一般來說,數(shù)據(jù)集規(guī)模很大,它通常存儲(chǔ)在多個(gè)節(jié)點(diǎn)上面,從數(shù)百GB、數(shù)TB甚至到多個(gè)EB不等。但在存儲(chǔ)的系統(tǒng)中,存儲(chǔ)節(jié)點(diǎn)會(huì)面臨著故障頻繁的問題:
一方面,計(jì)算層會(huì)從數(shù)據(jù)層的每個(gè)節(jié)點(diǎn)讀取數(shù)據(jù),向前和向后傳遞到神經(jīng)網(wǎng)絡(luò);
另一方面,訓(xùn)練結(jié)果進(jìn)行有效的聚合,形成最終的結(jié)果。
下面是常見的分布式的深度學(xué)習(xí)的訓(xùn)練框架。
其實(shí)向分布式機(jī)器學(xué)習(xí),向聯(lián)邦學(xué)習(xí)等相關(guān)的機(jī)器學(xué)習(xí)的方法都采用類似的學(xué)習(xí)框架。
當(dāng)前云存儲(chǔ)系統(tǒng)中面臨著嚴(yán)重的數(shù)據(jù)丟失隱患。
現(xiàn)在的存儲(chǔ)陣列(如閃存陣列)等都廣泛的應(yīng)用于云存儲(chǔ)系統(tǒng)中,據(jù)一些論文報(bào)告以及全世界各大互聯(lián)網(wǎng)廠商的調(diào)研,傳統(tǒng)的Flash、硬盤都面臨著嚴(yán)重的數(shù)據(jù)丟失的隱患。傳統(tǒng)的3D Flash,其故障率一般來說在1%左右。
谷歌2007年的調(diào)研也表明,兩年以上的硬盤的故障率都在3%-5%之間。Facebook的調(diào)研也表明,節(jié)點(diǎn)也面臨著大量的故障情況。所以我們的研究主要面向著在大規(guī)模的分布式學(xué)習(xí)場(chǎng)景下,特別是面臨著嚴(yán)重的數(shù)據(jù)丟失隱患的情況下,硬盤發(fā)生故障后該如何進(jìn)行數(shù)據(jù)的快速恢復(fù)。
在當(dāng)前的云計(jì)算系統(tǒng)當(dāng)中,糾刪碼技術(shù)成本很低,易于實(shí)現(xiàn),是目前實(shí)現(xiàn)大規(guī)模硬盤或者大規(guī)模存儲(chǔ)系統(tǒng)容錯(cuò)的一種通常的技術(shù)手段。一方面它能夠去適應(yīng)不同的應(yīng)用場(chǎng)景,另外一方面,它也面臨著很多的問題,比如說延時(shí)很高,需要占用大量的恢復(fù)帶寬。因此,如何在分布式機(jī)器學(xué)習(xí)的故障場(chǎng)景下保證學(xué)習(xí)效率,同時(shí)去挖掘分布式機(jī)器學(xué)習(xí)相關(guān)的數(shù)據(jù)關(guān)系來提高恢復(fù)速度。我們?cè)谶@方面做了相關(guān)的工作,論文發(fā)表在IWQoS 2022會(huì)議上面,還有一些后續(xù)的工作。
現(xiàn)有的恢復(fù)方案主要基于兩大類。
一大類是傳統(tǒng)的基于糾刪碼的數(shù)據(jù)恢復(fù)方法。這些恢復(fù)方法通常來說是采用數(shù)據(jù)并行的方式來進(jìn)行恢復(fù)的加速。主要問題在于糾刪碼的恢復(fù)方法主要是集中在分布式存儲(chǔ)系統(tǒng)的底層,無法感知上層機(jī)器學(xué)習(xí)應(yīng)用的特征,只能支持傳統(tǒng)的恢復(fù)流程,恢復(fù)時(shí)間也比較長(zhǎng)。
另外一類是基于機(jī)器學(xué)習(xí)的機(jī)器模擬的恢復(fù)方法。通過一些插幀、干的網(wǎng)絡(luò)或者機(jī)器學(xué)習(xí)的方法實(shí)現(xiàn)對(duì)圖像、視頻等相關(guān)應(yīng)用的數(shù)據(jù)恢復(fù)。但是它們的恢復(fù)實(shí)際上都是一些近似恢復(fù),無法獲得精確的數(shù)據(jù),還需要消耗大量的GPU等算力資源。所以也存在恢復(fù)速度很慢的問題。
在這樣的場(chǎng)景下面,如何來做到快速而精準(zhǔn)的恢復(fù),是當(dāng)前面臨的一個(gè)很大的問題。
二、部分恢復(fù)策略PRM
傳統(tǒng)的糾刪碼的一種典型的恢復(fù)方式是PPR算法,它的核心思想是將糾刪碼編碼過程當(dāng)中的矩陣運(yùn)算分解成幾個(gè)部分,將部分的解碼進(jìn)行流水線編排,從而能實(shí)現(xiàn)訓(xùn)練的加速。但是在整個(gè)分布式系統(tǒng)當(dāng)中,對(duì)于丟失的數(shù)據(jù)它只能進(jìn)行完全恢復(fù),而不能進(jìn)行部分恢復(fù),而且它的恢復(fù)方式是隨機(jī)化的,它沒有考慮丟失數(shù)據(jù)對(duì)上層的機(jī)器學(xué)習(xí)模型訓(xùn)練的影響。
另外一類是在PPR的基礎(chǔ)上進(jìn)行改進(jìn)的RP的算法,主要是在PPR的基礎(chǔ)上進(jìn)行數(shù)據(jù)的細(xì)粒度編排,達(dá)到更高的流水線的并行恢復(fù)。但是它對(duì)于丟失的數(shù)據(jù)也只能進(jìn)行完全恢復(fù),而不能進(jìn)行部分恢復(fù),而且恢復(fù)也是隨機(jī)的,不能感知上層機(jī)器學(xué)習(xí)的應(yīng)用信息。
機(jī)器學(xué)習(xí)的方法,比如說基于GAN的一些網(wǎng)絡(luò)方法,主要是根據(jù)機(jī)器學(xué)習(xí)的訓(xùn)練模型生成丟失數(shù)據(jù)的近似恢復(fù)的方法方式。它也面臨著一些問題,如有比較高的一些計(jì)算開銷,需要消耗大量的GPU的算力資源,它的恢復(fù)方式主要是近似恢復(fù),不能恢復(fù)原始的數(shù)據(jù),存在著圖像、視頻等失真現(xiàn)象。
對(duì)比現(xiàn)有傳統(tǒng)的基于糾刪碼的恢復(fù)方式和基于AI的一些近似恢復(fù)的方式,我們會(huì)發(fā)現(xiàn)它們?cè)诹魉€的并行程度、數(shù)據(jù)的恢復(fù)速度、訓(xùn)練精度、恢復(fù)代價(jià)等方面各有優(yōu)劣。
如何采用一種能夠融合現(xiàn)有糾刪碼和基于AI恢復(fù)的一些方法的優(yōu)點(diǎn),來達(dá)到更好的效果的方式?
我們提出了一種部分恢復(fù)(PRM)的方法,也就是采用糾刪碼部分恢復(fù)、同時(shí)也采用AI的方式來做部分的恢復(fù),達(dá)到最好的恢復(fù)效率,最終這種恢復(fù)方法我們把它叫做PRM。
三、部分恢復(fù)策略PRM
這個(gè)恢復(fù)框架主要是分成四個(gè)部分。
第一部分是做參數(shù)選擇,主要是收集有關(guān)糾刪碼和機(jī)器學(xué)習(xí)訓(xùn)練的模型參數(shù)以及相關(guān)的數(shù)據(jù)分布的信息。第二個(gè)是應(yīng)用監(jiān)控,主要是構(gòu)建應(yīng)用層監(jiān)控模型,來監(jiān)控當(dāng)前機(jī)器學(xué)習(xí)訓(xùn)練的實(shí)時(shí)狀態(tài)。第三個(gè)是計(jì)算恢復(fù)優(yōu)先級(jí),通過計(jì)算恢復(fù)優(yōu)先級(jí)獲取到恢復(fù)數(shù)據(jù)的一些權(quán)重。最后是設(shè)計(jì)一個(gè)并行恢復(fù)策略,基于丟失數(shù)據(jù)的權(quán)重設(shè)計(jì)一種并行恢復(fù)機(jī)制,能夠達(dá)到更快的恢復(fù)速度。
首先介紹一下參數(shù)選擇和應(yīng)用監(jiān)控這兩個(gè)模塊。
在參數(shù)選擇方面,主要需要收集糾刪碼的參數(shù)、條帶的數(shù)據(jù)塊參數(shù)、條帶檢查塊參數(shù)以及編碼矩陣的參數(shù)信息。與此同時(shí),也需要去收集機(jī)器學(xué)習(xí)模型的訓(xùn)練參數(shù),包括它的批次、批次大小以及更新權(quán)重等信息。
在應(yīng)用監(jiān)控方面,需要計(jì)算每個(gè)數(shù)據(jù)塊和校驗(yàn)塊的權(quán)重。主要是依據(jù)下面給出的公式來進(jìn)行相應(yīng)的計(jì)算。
在優(yōu)先級(jí)方面,主要是考慮了兩個(gè)不均衡參數(shù),一個(gè)是局部不均衡參數(shù),一個(gè)是全局不均衡參數(shù)。通過丟失的數(shù)據(jù)量和丟失的數(shù)據(jù)對(duì)整個(gè)樣本的影響,從而算出來對(duì)于整體的數(shù)據(jù)集的不均衡的影響。影響越大,那意味著這個(gè)數(shù)據(jù)的權(quán)重也就越高,需要恢復(fù)的優(yōu)先級(jí)也就越高。
在基于不均衡參數(shù)的基礎(chǔ)上,我們計(jì)算了每一個(gè)數(shù)據(jù)塊加權(quán)優(yōu)先級(jí),也就是把前面的這些參數(shù)融合起來,形成下面的公式。
這里我們給了一個(gè)恢復(fù)優(yōu)先級(jí)的計(jì)算例子。
假設(shè)這個(gè)三角形、五邊形和圓形分別代表著不同類型的數(shù)據(jù)。三角形的數(shù)據(jù)實(shí)際上主要是全局不平衡的參數(shù),比如說根據(jù)條帶和節(jié)點(diǎn)的信息來計(jì)算,最后算出來的結(jié)果就是(1-0)÷3,局部不平衡也是(1-0)÷3,最后算出來它的條帶優(yōu)先級(jí)就是0.86。
最后我們給出來一個(gè)并行恢復(fù)的例子。根據(jù)每個(gè)節(jié)點(diǎn)輸入輸出的情況,分別算出每種類型的恢復(fù)優(yōu)先級(jí),最后通過恢復(fù)優(yōu)先級(jí)的疊加規(guī)劃出最優(yōu)的一種并行路徑。
測(cè)試結(jié)果及相關(guān)的數(shù)據(jù)分析。
試驗(yàn)環(huán)境是基于4塊GeForce RTX 3090 GPU卡來模擬整個(gè)分布式學(xué)習(xí)存儲(chǔ)節(jié)點(diǎn)和計(jì)算節(jié)點(diǎn),同時(shí)把不同的糾刪碼將訓(xùn)練數(shù)據(jù)存儲(chǔ)在不同的存儲(chǔ)節(jié)點(diǎn)當(dāng)中。
我們使用4個(gè)訓(xùn)練數(shù)據(jù)集,并且基于RS編碼來構(gòu)建模擬的真實(shí)節(jié)點(diǎn)。整個(gè)試驗(yàn)的環(huán)境的架構(gòu)如下面的左圖所示,每個(gè)服務(wù)器的配制如下面的右表所示。
對(duì)比的方法主要包括傳統(tǒng)的基于糾刪碼的一些恢復(fù)方法,比如說像RS、PPR、RP等傳統(tǒng)的基于糾刪碼的并行恢復(fù)的加速算法,還有一類是基于AI的算法,包括GAN生成網(wǎng)絡(luò)、CPR等等相關(guān)的一些機(jī)器學(xué)習(xí)的方法。數(shù)據(jù)集主要選取了現(xiàn)有的基于圖像、視頻這一類的為代表的數(shù)據(jù)集,比如ImageNet、COCO等等相關(guān)的數(shù)據(jù)集。
這個(gè)表當(dāng)中還顯示出了訓(xùn)練集的大小,以及測(cè)試的相關(guān)圖片的數(shù)量,規(guī)模都是比較大的,一般來說是在數(shù)百萬張圖片的規(guī)模。
四、測(cè)試結(jié)果
第一個(gè)方面展示的是平均的訓(xùn)練精度。我們采用RS(6,3)的糾刪碼,也就是6個(gè)數(shù)據(jù)塊+3個(gè)校驗(yàn)塊的配制。當(dāng)恢復(fù)相同比例的數(shù)據(jù)時(shí),我們與典型的PPR、PRM、GAN方法相比,訓(xùn)練精度明顯要更高一些,而且與下界的網(wǎng)絡(luò)相比,精度大約分別提高了10%和7%左右。
第二個(gè)方面,主要測(cè)試F1 Score。F1 Score其實(shí)跟我們的訓(xùn)練精度也是正相關(guān)的。前面說我們的訓(xùn)練精度提高了,實(shí)際上F1 Score值也大幅提升了,值分別提高了0.58%、5%、1.18%和2.01%。
第三個(gè)方面介紹的是平均恢復(fù)時(shí)間。與傳統(tǒng)的糾刪碼相比,PPR、RP和傳統(tǒng)PRM的恢復(fù)方法恢復(fù)時(shí)間分別減少57.4%、55.7%以及55.98%。與傳統(tǒng)的方法相比,我們應(yīng)用在傳統(tǒng)的恢復(fù)方法方面減少33.5%的恢復(fù)開銷,效果是非常明顯的。
第四個(gè)方面主要介紹平均的網(wǎng)絡(luò)傳輸時(shí)間。與傳統(tǒng)的方法相比,分別可以減少63.4%、54.32%和53.89%的網(wǎng)絡(luò)傳輸帶寬。與AI的CPR相比,傳輸帶寬也能節(jié)省32.2%,效果非常明顯的。
平均的I/O吞吐率也是能得到大幅度的提升。在這4個(gè)數(shù)據(jù)集下面吞吐率分別提高了1.258倍、1.325倍、1.36倍和1.327倍,效果也是非常明顯的。
總結(jié)
此次主要介紹面臨故障場(chǎng)景高效保障分布式機(jī)器學(xué)習(xí)任務(wù)的正常運(yùn)行。
與當(dāng)前的訓(xùn)練數(shù)據(jù)相關(guān)的一些數(shù)據(jù),我們實(shí)際上會(huì)實(shí)現(xiàn)優(yōu)先恢復(fù),從而能夠達(dá)到訓(xùn)練過程當(dāng)中更好的精度的保障。與數(shù)據(jù)集相關(guān)的廣度相關(guān)的一些數(shù)據(jù)集,我們也會(huì)去做一些優(yōu)先恢復(fù),從而提高它的恢復(fù)速度。在這兩方面我們分別去做部分恢復(fù)并且把它進(jìn)行融合,能夠達(dá)到更好的恢復(fù)速度,并且實(shí)現(xiàn)更好的支撐上層分布式機(jī)器學(xué)習(xí)的訓(xùn)練效果。
以上就是我這邊的主要匯報(bào),其他的部分我們后面再進(jìn)行詳細(xì)的交流。
謝謝大家!