System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及神經網絡模型訓練,特別是涉及一種面向異構計算集群的分布式并行訓練方法及系統。
技術介紹
1、神經網絡模型(以下簡稱“模型”)訓練需要將數據按照批次輸入到模型中進行計算,然后根據計算結果更新模型的參數,這一過程將迭代進行,直到模型在實際任務上達到預期的效果。大型模型通過提高模型的參數量以及訓練過程中使用的數據量,使得模型在實際任務上的效果更優異。
2、大型模型所使用的大量參數配合大量數據的訓練模式,使得單機硬件設備在計算能力以及存儲能力兩方面無法滿足模型訓練的需求。因此使用分布式訓練方法來訓練大型模型成為了共識,分布式訓練方法可以利用多個機器上的計算設備進行模型的訓練,在滿足模型訓練需求的同時,還可以縮短模型的訓練周期。另一方面,計算設備隨著科技進步在快速迭代,由多種類別計算設備組成的計算集群(通常稱為“異構計算集群”)開始大量出現,現有分布式訓練技術在異構計算集群上的加速效果一般,并且適用性較低。
3、數據并行方法和流水線并行方法是目前常見的混合并行方法,對服務器集群的網絡帶寬要求較低,并且適用范圍較廣,但是目前混合并行訓練方法對異構計算集群的考慮較少,基于異構計算集群實現的混合并行訓練方法效率不高。
4、因此,提供一種解決上述問題的面向異構計算集群的分布式并行訓練方法及系統是本領域技術人員亟待解決的問題。
技術實現思路
1、本專利技術的目的在于提供一種面向異構計算集群的分布式并行訓練方法,該方法邏輯清晰,安全、有效、可靠且操作簡便
2、基于以上目的,本專利技術提供的技術方案如下:
3、一種面向異構計算集群的分布式并行訓練方法,包括如下步驟:
4、根據每個虛擬機器內的n個不同種類計算設備的計算能力,設定m個虛擬機器中各個流水級的第一參數,獲取各個流水級上的n個不同種類計算設備的通信開銷;
5、根據所述m個虛擬機器中各個流水級的第一參數與所述各個流水級上的n個不同種類計算設備的通信開銷,確定所述每個虛擬機器內的n個不同種類計算設備的網絡拓撲;
6、根據預訓練后的神經網絡模型、所述每個虛擬機器內的n個不同種類計算設備的網絡拓撲和預設算法,獲取模型劃分方式;
7、根據所述模型劃分方式,在n個不同種類計算設備之間使用流水線并行的方式,并在m個虛擬機器之間使用數據并行的方式迭代訓練所述神經網絡模型;
8、其中,每個虛擬機器上包含不同種類計算設備各一個,多個所述虛擬機器構成了異構計算集群。
9、優選地,根據每個虛擬機器內的n個不同種類計算設備的計算能力,設定m個虛擬機器中各個流水級的第一參數,獲取各個流水級上的n個不同種類計算設備的通信開銷,包括如下步驟:
10、獲取每個虛擬機器內的n個不同種類計算設備的計算能力;
11、設定m個虛擬機器中各個流水級的計算時間相同,以使得各個流水級上的所述n個不同種類計算設備的神經網絡模型大小與所述n個不同種類計算設備的計算能力成正比關系;
12、設定不同虛擬機器上相同的流水級之間通信同步,以使得各個流水級上的所述n個不同種類計算設備的通信開銷與所述n個不同種類計算設備的神經網絡模型大小成正比關系;
13、根據所述n個不同種類計算設備的計算能力與上述正比關系,獲取各個流水級上的n個不同種類計算設備的通信開銷。
14、優選地,所述根據所述m個虛擬機器中各個流水級的第一參數與所述各個流水級上的n個不同種類計算設備的通信開銷,確定所述每個虛擬機器內的n個不同種類計算設備的網絡拓撲,包括如下步驟:
15、計算獲取所述m個虛擬機器中各個流水級的第一參數與所述各個流水級上的n個不同種類計算設備的通信開銷之間的通信比值;
16、按所述通信比值從大到小,依次分別為各個流水級上的n個不同種類計算設備設定第一流水級至第n流水級,作為每個虛擬機器內的n個不同種類計算設備的網絡拓撲。
17、優選地,獲取預訓練后的神經網絡模型,包括如下步驟:
18、提供l個訓練樣本并配置第二參數;
19、從l個所述訓練樣本中選取a個,根據所述第二參數對神經網絡模型進行預訓練,得到預訓練后的神經網絡模型后獲取各個神經網絡層的第三參數。
20、優選地,所述根據預訓練后的神經網絡模型、所述每個虛擬機器內的n個不同種類計算設備的網絡拓撲和預設算法,獲取模型劃分方式,包括如下步驟:
21、預設用于模型劃分的模擬器;
22、將所述各個神經網絡層的第三參數、所述每個虛擬機器內的n個不同種類計算設備的網絡拓撲輸入至所述模擬器中;
23、所述模擬器根據整數規劃算法獲取將所述神經網絡模型劃分為n份的所述模型劃分方式。
24、優選地,所述根據所述模型劃分方式,在n個不同種類計算設備之間使用流水線并行的方式,并在m個虛擬機器之間使用數據并行的方式迭代訓練所述神經網絡模型,具體為:
25、從l個所述訓練樣本中選取b個;
26、在每次迭代訓練過程中使用b個所述訓練樣本作為一個批次,進行所述神經網絡模型的前向計算、后向計算和通信,直至所述神經網絡模型達到預設精度;
27、其中,l=a+b。
28、優選地,所述在每次迭代訓練過程中使用b個所述訓練樣本作為一個批次,進行所述神經網絡模型的前向計算、后向計算和通信,包括如下步驟:
29、將b個所述訓練樣本均分為j個小批次訓練樣本,在每個虛擬機器中輸入當前小批次訓練樣本,并構建各個流水級索引;
30、將所述小批次訓練樣本均分為k個微批次訓練樣本,依次輸入至所述第一流水級所在的計算設備中進行前向計算、后向計算和通信,并構建各個計算設備的微批次索引;
31、在m個虛擬機器之間使用數據并行的方式迭代訓練的過程中,根據微批次數量k、流水線級數n、當前流水級索引、當前微批次索引,調度各個流水級的前向計算、后向計算和通信,并利用流水級的空閑時間隱藏重計算開銷。
32、一種面向異構計算集群的分布式并行訓練系統,包括:
33、通信開銷模塊,用于根據每個虛擬機器內的n個不同種類計算設備的計算能力,設定m個虛擬機器中各個流水級的第一參數,獲取各個流水級上的n個不同種類計算設備的通信開銷;
34、網絡拓撲模塊,用于根據所述m個虛擬機器中各個流水級的第一參數與所述各個流水級上的n個不同種類計算設備的通信開銷,確定所述每個虛擬機器內的n個不同種類計算設備的網絡拓撲;
35、模型劃分模塊,用于根據預訓練后的神經網絡模型、所述每個虛擬機器內的n個不同種類計算設備的網絡拓撲和預設算法,獲取模型劃分方式;
36、迭代訓練模塊,用于根據所述模型劃分方式,在n個不同種類計算設備之間使用流水線并行的方式,并在m個虛擬機器之間使用數據并行的方式迭代訓練所述神經網本文檔來自技高網...
【技術保護點】
1.一種面向異構計算集群的分布式并行訓練方法,其特征在于,包括如下步驟:
2.如權利要求1所述的面向異構計算集群的分布式并行訓練方法,其特征在于,根據每個虛擬機器內的N個不同種類計算設備的計算能力,設定M個虛擬機器中各個流水級的第一參數,獲取各個流水級上的N個不同種類計算設備的通信開銷,包括如下步驟:
3.如權利要求2所述的面向異構計算集群的分布式并行訓練方法,其特征在于,所述根據所述M個虛擬機器中各個流水級的第一參數與所述各個流水級上的N個不同種類計算設備的通信開銷,確定所述每個虛擬機器內的N個不同種類計算設備的網絡拓撲,包括如下步驟:
4.如權利要求3所述的面向異構計算集群的分布式并行訓練方法,其特征在于,獲取預訓練后的神經網絡模型,包括如下步驟:
5.如權利要求4所述的面向異構計算集群的分布式并行訓練方法,其特征在于,所述根據預訓練后的神經網絡模型、所述每個虛擬機器內的N個不同種類計算設備的網絡拓撲和預設算法,獲取模型劃分方式,包括如下步驟:
6.如權利要求5所述的面向異構計算集群的分布式并行訓練方法,其特征在于,
7.如權利要求6所述的面向異構計算集群的分布式并行訓練方法,其特征在于,所述在每次迭代訓練過程中使用b個所述訓練樣本作為一個批次,進行所述神經網絡模型的前向計算、后向計算和通信,包括如下步驟:
8.一種面向異構計算集群的分布式并行訓練系統,其特征在于,包括:
...【技術特征摘要】
1.一種面向異構計算集群的分布式并行訓練方法,其特征在于,包括如下步驟:
2.如權利要求1所述的面向異構計算集群的分布式并行訓練方法,其特征在于,根據每個虛擬機器內的n個不同種類計算設備的計算能力,設定m個虛擬機器中各個流水級的第一參數,獲取各個流水級上的n個不同種類計算設備的通信開銷,包括如下步驟:
3.如權利要求2所述的面向異構計算集群的分布式并行訓練方法,其特征在于,所述根據所述m個虛擬機器中各個流水級的第一參數與所述各個流水級上的n個不同種類計算設備的通信開銷,確定所述每個虛擬機器內的n個不同種類計算設備的網絡拓撲,包括如下步驟:
4.如權利要求3所述的面向異構計算集群的分布式并行訓練方法,其特征在于,獲取預訓練后的神經網絡模型,包括如下步驟:
5...
【專利技術屬性】
技術研發人員:賴志權,李東升,盧凱,柳煒杰,張釗寧,李榮春,
申請(專利權)人:中國人民解放軍國防科技大學,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。