本發(fā)明涉及機(jī)器學(xué)習(xí)訓(xùn)練并行,具體地,涉及一種機(jī)器學(xué)習(xí)模型混合并行策略自動(dòng)搜索的方法及系統(tǒng)。
背景技術(shù):
1、機(jī)器學(xué)習(xí)通常在多個(gè)領(lǐng)域都有著重要應(yīng)用,在使用機(jī)器學(xué)習(xí)過程中,通常需要對(duì)機(jī)器學(xué)習(xí)模型進(jìn)行訓(xùn)練,而當(dāng)前的機(jī)器學(xué)習(xí)模型的規(guī)模越來越大,例如meta提出的llama3模型便含有7b到70b左右的參數(shù)量,這通常需要上百g的gpu內(nèi)存。為實(shí)現(xiàn)快速的機(jī)器學(xué)習(xí)訓(xùn)練過程,需將機(jī)器學(xué)習(xí)的模型訓(xùn)練過程并行化,對(duì)于不同的模型,通常有不同的適合其并行訓(xùn)練的方法,為找到不同模型的最優(yōu)并行策略,就需要去自動(dòng)搜索機(jī)器學(xué)習(xí)訓(xùn)練并行的策略。
2、現(xiàn)有的機(jī)器學(xué)習(xí)模型通常包含數(shù)據(jù)并行,張量并行以及流水線并行。數(shù)據(jù)并行是指對(duì)訓(xùn)練的數(shù)據(jù)樣本進(jìn)行劃分,分別傳輸?shù)讲煌墓?jié)點(diǎn)上進(jìn)行訓(xùn)練的過程。張量并行是指對(duì)算子涉及到的張量進(jìn)行多維度劃分,分配給不同計(jì)算設(shè)備,由多個(gè)計(jì)算設(shè)備并行計(jì)算得到該算子的計(jì)算結(jié)果。而流水線并行是指將機(jī)器學(xué)習(xí)模型的神經(jīng)網(wǎng)絡(luò)中不同的算子劃分給流水線不同的階段,將機(jī)器學(xué)習(xí)的訓(xùn)練過程變成流水線形式,提高訓(xùn)練過程的吞吐量。
3、現(xiàn)有的自動(dòng)搜索機(jī)器學(xué)習(xí)訓(xùn)練并行策略的工作主要有兩種:未考慮流水線并行的并行策略自動(dòng)搜索方法以及考慮了流水線并行的并行策略自動(dòng)搜索方法。未考慮流水線并行的并行策略自動(dòng)搜索方法首先對(duì)計(jì)算圖中的每一個(gè)點(diǎn),即算子,統(tǒng)計(jì)不同并行策略的計(jì)算開銷以及算子內(nèi)通信開銷,并對(duì)計(jì)算圖中的每一條邊,即張量的流轉(zhuǎn)過程,統(tǒng)計(jì)算子間通信開銷,然后調(diào)用一種基于全局動(dòng)態(tài)規(guī)劃的方法對(duì)計(jì)算圖進(jìn)行每一個(gè)算子的并行策略選擇。具體來說,嘗試將計(jì)算圖中的每一個(gè)點(diǎn)或者每一條邊刪去,將該點(diǎn)或者該邊的計(jì)算以及通信開銷存進(jìn)鄰接點(diǎn)中;將該計(jì)算圖不斷變小,在變小后的計(jì)算圖上遍歷每一個(gè)節(jié)點(diǎn),選擇該節(jié)點(diǎn)的并行策略,使得最后的計(jì)算圖的整體開銷最小,并在選擇完每一個(gè)結(jié)點(diǎn)的并行策略后,將原先刪去的點(diǎn)和邊按照刪去的順序逆序地添加回來,并在添加的過程中為每一個(gè)添加回來的節(jié)點(diǎn)選擇其適合的并行策略,在恢復(fù)成原先圖后便完成了整個(gè)算法的搜索過程。這種不考慮流水線并行的策略自動(dòng)搜索方式擁有較快的搜索速度,并且能找到全局最優(yōu)的并行策略,但是由于其不考慮流水線并行,缺少了流水線并行的維度,難以達(dá)到更好的優(yōu)化效果,并且由于其不考慮不同并行策略所需要占用的gpu內(nèi)存大小,其依據(jù)開銷找到的并行策略很有可能無法在相應(yīng)的設(shè)備上執(zhí)行。
4、現(xiàn)有的考慮了流水線并行的并行策略自動(dòng)搜索方法將機(jī)器學(xué)習(xí)模型劃分成不同流水線階段,并在每一個(gè)階段內(nèi)進(jìn)行數(shù)據(jù)并行和張量并行的策略搜索。該方法相關(guān)的工作例如alpa,將流水線階段的開銷模型為一個(gè)批次經(jīng)過整個(gè)流水線所需要的耗時(shí),即在流水線并行策略的自動(dòng)搜索過程中要盡可能地減少一個(gè)批次經(jīng)過整個(gè)流水線所需要的耗時(shí)。該方法將數(shù)據(jù)并行和張量并行的策略自動(dòng)搜索過程抽象成一個(gè)整數(shù)線性規(guī)劃的問題,并調(diào)用整數(shù)線性規(guī)劃的求解器進(jìn)行求解。這種考慮流水線并行的策略自動(dòng)搜索方式結(jié)合了三種不同的并行策略,拓寬了并行訓(xùn)練的優(yōu)化空間,能夠找到更多的優(yōu)化機(jī)會(huì)。但是這種方法消耗了更多的搜索時(shí)間,并且不能找到全局最優(yōu)的并行訓(xùn)練策略。
5、現(xiàn)如今的并行訓(xùn)練策略搜索方法雖然能夠找到一種混合了三種并行策略的并行訓(xùn)練策略,但是所需要花的時(shí)間比較久,不能夠高效地找到這種策略。
6、綜上所述,針對(duì)上述現(xiàn)有技術(shù)的問題,研究一種機(jī)器學(xué)習(xí)模型混合并行策略自動(dòng)搜索的方法及系統(tǒng),能夠快速地找出質(zhì)量較優(yōu)的并行策略,成為當(dāng)下亟待解決的關(guān)鍵任務(wù)。
技術(shù)實(shí)現(xiàn)思路
1、針對(duì)現(xiàn)有技術(shù)中的缺陷,本發(fā)明的目的是提供一種機(jī)器學(xué)習(xí)模型混合并行策略自動(dòng)搜索的方法及系統(tǒng)。
2、根據(jù)本發(fā)明提供的一種機(jī)器學(xué)習(xí)模型混合并行策略自動(dòng)搜索的方法,包括如下步驟:
3、算子間搜索步驟:對(duì)輸入的計(jì)算圖和設(shè)備拓?fù)淝闆r,進(jìn)行流水線階段的劃分,得到劃分后的流水線階段;
4、算子間開銷生成步驟:將所述劃分后的流水線階段中最耗時(shí)階段的時(shí)間作為性能指標(biāo),為所述算子間搜索步驟提供算子間性能開銷模型;
5、算子內(nèi)搜索步驟:對(duì)輸入的計(jì)算圖子圖進(jìn)行數(shù)據(jù)并行和張量并行結(jié)合的并行策略搜索;使用基于全局動(dòng)態(tài)規(guī)劃方法的縮點(diǎn)消邊算法進(jìn)行策略搜索,得到每個(gè)算子在計(jì)算圖子圖中的最優(yōu)并行策略及對(duì)應(yīng)的已選擇并行策略的節(jié)點(diǎn)信息,其中每個(gè)節(jié)點(diǎn)相應(yīng)的策略對(duì)應(yīng)的計(jì)算開銷、通信開銷由算子內(nèi)開銷生成步驟給出;
6、算子內(nèi)開銷生成步驟:對(duì)所述已選擇并行策略的節(jié)點(diǎn)信息,計(jì)算得到算子內(nèi)的計(jì)算開銷、通信開銷以及算子間的通信開銷。
7、優(yōu)選地,所述算子間搜索步驟中,對(duì)計(jì)算圖的算子進(jìn)行拓?fù)渑判?,采用?dòng)態(tài)規(guī)劃算法將算子劃分到不同的流水線階段中。
8、優(yōu)選地,所述動(dòng)態(tài)規(guī)劃算法依賴于算子間開銷生成步驟,即調(diào)用算子間性能開銷模型,將不同的算子劃分到不同的流水線階段中,采取以減少流水線中最耗時(shí)流水線階段的方式作為動(dòng)態(tài)規(guī)劃算法的開銷模型進(jìn)行搜索,最終得到劃分后的流水線階段。
9、優(yōu)選地,所述算子間開銷生成步驟中,對(duì)所述劃分后的流水線階段進(jìn)行性能開銷的預(yù)估,通過調(diào)用算子內(nèi)搜索步驟得到一個(gè)流水線階段內(nèi)最優(yōu)的數(shù)據(jù)并行和張量并行結(jié)合的并行策略開銷。
10、優(yōu)選地,所述算子間開銷生成步驟中,將流水線中最耗時(shí)的階段時(shí)間作為主要考量因素,應(yīng)用搜索算法時(shí)應(yīng)盡量降低該階段耗時(shí)。
11、優(yōu)選地,所述算子內(nèi)搜索步驟中,并行策略搜索時(shí),對(duì)算子內(nèi)進(jìn)行數(shù)據(jù)并行和算子模型并行的策略搜索,采用動(dòng)態(tài)規(guī)劃的方式,將算子組成的計(jì)算圖進(jìn)行點(diǎn)和邊的刪去,同時(shí)將點(diǎn)和邊的開銷信息保存到鄰接點(diǎn)和鄰接邊中,從而在更小的圖上進(jìn)行策略的搜索。
12、優(yōu)選地,所述算子內(nèi)搜索步驟中,在進(jìn)行點(diǎn)和邊的刪去操作時(shí),對(duì)任意一個(gè)計(jì)算圖子圖應(yīng)用消點(diǎn)和消邊策略,其中消點(diǎn)包含了三個(gè)點(diǎn),四個(gè)點(diǎn)以及大于四個(gè)點(diǎn)的情況,消邊包含了兩個(gè)點(diǎn)間有多條邊的情況。
13、優(yōu)選地,所述算子內(nèi)開銷生成步驟中,所述計(jì)算開銷由實(shí)際測(cè)試得出,所述通信開銷由張量大小除以帶寬得出。
14、本發(fā)明還提供了一種機(jī)器學(xué)習(xí)模型混合并行策略自動(dòng)搜索的系統(tǒng),包括:
15、算子間并行策略搜索模塊:根據(jù)計(jì)算圖以及集群設(shè)備情況進(jìn)行流水線階段的劃分;
16、算子間性能開銷模型:根據(jù)劃分的流水線情況以及劃分后流水線階段使用的設(shè)備情況依據(jù)算子內(nèi)并行策略搜索模塊進(jìn)行算子間策略開銷的計(jì)算;
17、算子內(nèi)并行策略搜索模塊:根據(jù)同一個(gè)階段內(nèi)的計(jì)算圖子圖選擇每個(gè)算子的最優(yōu)策略;
18、算子內(nèi)性能開銷模型:根據(jù)同一個(gè)階段內(nèi)的計(jì)算圖子圖每個(gè)算子選擇的策略計(jì)算相應(yīng)的開銷。
19、優(yōu)選地,所述算子內(nèi)并行策略搜索模塊包括:
20、縮點(diǎn)消邊規(guī)則注冊(cè)器單元:注冊(cè)縮點(diǎn)消邊過程中可用的規(guī)則;
21、縮點(diǎn)消邊規(guī)則選擇器單元:依據(jù)目前的計(jì)算圖拓?fù)浣Y(jié)構(gòu)選擇相應(yīng)的縮點(diǎn)消邊規(guī)則;
22、縮點(diǎn)消邊算法執(zhí)行器單元:根據(jù)選擇的縮點(diǎn)消邊規(guī)則執(zhí)行相應(yīng)的動(dòng)態(tài)規(guī)劃算法。
23、與現(xiàn)有技術(shù)相比,本發(fā)明具有如下的有益效果:
24、1、本發(fā)明提出并實(shí)現(xiàn)了基于新的流水線規(guī)劃開銷模型的流水線階段搜索算法。該算法通過對(duì)流水線規(guī)劃開銷模型的優(yōu)化,精準(zhǔn)地評(píng)估和規(guī)劃流水線階段,顯著減少了流水線階段搜索的時(shí)延。與傳統(tǒng)算法相比,它能更高效地根據(jù)計(jì)算圖和設(shè)備情況進(jìn)行流水線階段的劃分。
25、2、本發(fā)明在已有的縮點(diǎn)消邊算法基礎(chǔ)上,提出了新的無關(guān)方向性的縮點(diǎn)消邊規(guī)則,通過啟發(fā)式方法提出了針對(duì)大圖的縮點(diǎn)消變規(guī)則,擴(kuò)展了縮點(diǎn)消邊能力,提升了搜索效率。對(duì)于大規(guī)模的機(jī)器學(xué)習(xí)模型計(jì)算圖,這些新規(guī)則能夠更有效地簡化圖結(jié)構(gòu),減少搜索空間的復(fù)雜度。在實(shí)際應(yīng)用中,當(dāng)處理包含大量算子和復(fù)雜連接關(guān)系的計(jì)算圖時(shí),新規(guī)則能夠快速找到更優(yōu)的并行策略搜索路徑,使得搜索過程更加高效和準(zhǔn)確,進(jìn)一步提升了整個(gè)機(jī)器學(xué)習(xí)模型混合并行策略自動(dòng)搜索的性能和效果。