本技術(shù)屬于計(jì)算機(jī)領(lǐng)域,特別涉及一種異構(gòu)并行運(yùn)算系統(tǒng)及分布式訓(xùn)練方法。
背景技術(shù):
1、在人工智能和大模型的發(fā)展過程中,涌現(xiàn)了許多為人工智能設(shè)計(jì)的硬件資源,如gpu、tpu和npu等。這些硬件資源在提供高性能計(jì)算能力方面具有重要作用。然而,隨著大模型訓(xùn)練需求的不斷增加,單一計(jì)算資源已經(jīng)無法滿足要求,而且在大部分公司內(nèi)部,不同類型的硬件資源也存在差異,導(dǎo)致資源利用率不高。
2、現(xiàn)有技術(shù)主要包括傳統(tǒng)的任務(wù)調(diào)度系統(tǒng)和分布式計(jì)算框架。傳統(tǒng)的任務(wù)調(diào)度系統(tǒng)主要利用作業(yè)調(diào)度算法對任務(wù)進(jìn)行調(diào)度,但對于異構(gòu)硬件資源的調(diào)度并不友好,無法充分利用不同硬件的性能優(yōu)勢。分布式計(jì)算框架如hadoop和spark等可以進(jìn)行分布式任務(wù)調(diào)度,但對于異構(gòu)硬件資源的調(diào)度支持有限。
3、傳統(tǒng)支持并行運(yùn)算的計(jì)算框架和ai開發(fā)平臺在硬件資源層面多采用同構(gòu)的ai計(jì)算卡,如基于gpu的平臺或者npu的平臺,無法充分利用不同類型的ai計(jì)算卡硬件資源,導(dǎo)致資源利用率低下;部分ai開發(fā)平臺的部署也使用了異構(gòu)的智能計(jì)算資源,但只涉及了資源異構(gòu),對不同資源打上標(biāo)簽,根據(jù)業(yè)務(wù)需要對任務(wù)匹配相應(yīng)的資源和計(jì)算框架,具體單一任務(wù)的計(jì)算執(zhí)行仍然是在同構(gòu)的算力,不能跨異構(gòu)算力,不是任務(wù)級別的異構(gòu),在多框架多硬件上無法做到統(tǒng)一,缺乏自適應(yīng)的資源調(diào)度機(jī)制,無法根據(jù)實(shí)際需求進(jìn)行靈活的資源調(diào)度。
4、因此,亟需一種異構(gòu)并行運(yùn)算系統(tǒng),能夠解決上述問題。
技術(shù)實(shí)現(xiàn)思路
1、為了解決所述現(xiàn)有技術(shù)的不足,本技術(shù)提供了一種異構(gòu)并行運(yùn)算框架及使用方法,實(shí)現(xiàn)了對gpu與npu等異構(gòu)ai計(jì)算卡的資源監(jiān)控、集群創(chuàng)建、作業(yè)調(diào)度等功能,實(shí)現(xiàn)同一個(gè)計(jì)算任務(wù)同時(shí)調(diào)用多種異構(gòu)ai計(jì)算卡進(jìn)行并行計(jì)算,實(shí)現(xiàn)了任務(wù)級別的異構(gòu)計(jì)算。實(shí)現(xiàn)對單機(jī)模型訓(xùn)練代碼進(jìn)行封裝,配合異構(gòu)算力環(huán)境的創(chuàng)建,即可實(shí)現(xiàn)深度學(xué)習(xí)模型在異構(gòu)ai算力環(huán)境下的異構(gòu)并行計(jì)算。
2、本技術(shù)所要達(dá)到的技術(shù)效果通過以下方案實(shí)現(xiàn):
3、根據(jù)本技術(shù)的第一方面,提供一種異構(gòu)并行運(yùn)算系統(tǒng),包括任務(wù)流程管理模塊、異構(gòu)集群資源管理模塊、數(shù)據(jù)分發(fā)管理模塊以及并行策略控制模塊,其中:
4、所述任務(wù)流程管理模塊,用于解析模型分布式訓(xùn)練任務(wù),定義相應(yīng)的節(jié)點(diǎn),所述節(jié)點(diǎn)包括任務(wù)管理節(jié)點(diǎn)、參數(shù)服務(wù)節(jié)點(diǎn)以及異構(gòu)計(jì)算節(jié)點(diǎn),將所述訓(xùn)練任務(wù)分解為多個(gè)子任務(wù),并將這些子任務(wù)分配給不同的節(jié)點(diǎn)進(jìn)行并行計(jì)算;
5、所述異構(gòu)集群資源管理模塊,用于管理和調(diào)用多種不同結(jié)構(gòu)的硬件資源形成所述節(jié)點(diǎn),對硬件資源進(jìn)行監(jiān)控和保障處理;
6、所述數(shù)據(jù)分發(fā)管理模塊,用于管理和處理系統(tǒng)中的數(shù)據(jù)信息,至少包括將數(shù)據(jù)信息進(jìn)行預(yù)處理、切分處理、分發(fā)管理和輪詢;
7、所述并行策略控制模塊,用于完成異構(gòu)分布式計(jì)算和模型匯聚。
8、優(yōu)選地,所述任務(wù)流程管理模塊根據(jù)所述訓(xùn)練任務(wù)的優(yōu)先級、依賴關(guān)系以及資源需求,采用均勻調(diào)度或者資源狀態(tài)調(diào)度,將所述訓(xùn)練任務(wù)分配給所述節(jié)點(diǎn);其中:
9、所述均勻調(diào)度為平均調(diào)度到所有擁有該資源的所述節(jié)點(diǎn)上進(jìn)行計(jì)算;
10、所述資源狀態(tài)調(diào)度為根據(jù)各個(gè)所述節(jié)點(diǎn)的資源大小,按照從大到小的順序分配到滿足所述訓(xùn)練任務(wù)的節(jié)點(diǎn)上。
11、優(yōu)選地,所述多種不同結(jié)構(gòu)的硬件資源包括但不限于cpu、gpu、npu、tpu以及bpu,將硬件資源劃分為多個(gè)資源組進(jìn)行管理,同一資源組里分配有相同的硬件資源,同種硬件資源有若干資源組,每個(gè)資源組形成一個(gè)節(jié)點(diǎn)。
12、優(yōu)選地,所述節(jié)點(diǎn)之間通過ip和端口構(gòu)建異構(gòu)分布式集群,第一級任務(wù)調(diào)度使用grpc通信,下發(fā)計(jì)算任務(wù)到各個(gè)資源組,第二級任務(wù)調(diào)度時(shí)使用高速通信通道,利用allreduce方式進(jìn)行計(jì)算;并監(jiān)控集群內(nèi)的所有節(jié)點(diǎn)和接入的硬件資源,當(dāng)某一節(jié)點(diǎn)或某一硬件資源出現(xiàn)故障,能夠進(jìn)行告警、修復(fù)或遷移。
13、優(yōu)選地,所述數(shù)據(jù)分發(fā)管理模塊對數(shù)據(jù)信息進(jìn)行預(yù)處理包括:對數(shù)據(jù)信息進(jìn)行尺寸變換、歸一化處理、數(shù)據(jù)增強(qiáng)以及分詞處理;
14、切分處理包括對數(shù)據(jù)信息的平均切分或者加權(quán)切分,其中加權(quán)切分是根據(jù)各節(jié)點(diǎn)占所有節(jié)點(diǎn)的總算力的比例進(jìn)行切分;
15、分發(fā)管理為對所述訓(xùn)練任務(wù)產(chǎn)生的全部數(shù)據(jù)信息進(jìn)行切分后,發(fā)送至各個(gè)節(jié)點(diǎn)。
16、優(yōu)選地,在所有異構(gòu)計(jì)算節(jié)點(diǎn)上的數(shù)據(jù)信息完成一次迭代訓(xùn)練后,并行策略控制模塊讓各異構(gòu)計(jì)算節(jié)點(diǎn)向相鄰的異構(gòu)計(jì)算節(jié)點(diǎn)隨機(jī)傳遞一定比例的數(shù)據(jù)。
17、根據(jù)本技術(shù)的第二方面,提供一種采用上述異構(gòu)并行運(yùn)算系統(tǒng)的分布式訓(xùn)練方法,包括如下步驟:
18、步驟1:創(chuàng)建分布式訓(xùn)練任務(wù)并提交至異構(gòu)并行運(yùn)算系統(tǒng);
19、步驟2:任務(wù)流程管理模塊解析所述分布式訓(xùn)練任務(wù),定義相應(yīng)的任務(wù)管理節(jié)點(diǎn)、參數(shù)服務(wù)節(jié)點(diǎn)和異構(gòu)計(jì)算節(jié)點(diǎn),并將資源需求信息發(fā)送至異構(gòu)集群資源管理模塊;
20、步驟3:異構(gòu)集群資源管理模塊根據(jù)解析得到的任務(wù)資源需求,創(chuàng)建相應(yīng)的任務(wù)管理節(jié)點(diǎn)、參數(shù)服務(wù)節(jié)點(diǎn)和異構(gòu)計(jì)算節(jié)點(diǎn);
21、步驟4:任務(wù)流程管理模塊進(jìn)行分布式訓(xùn)練任務(wù)調(diào)度:任務(wù)管理節(jié)點(diǎn)根據(jù)異構(gòu)計(jì)算節(jié)點(diǎn)劃分所述分布式訓(xùn)練任務(wù),并發(fā)送至各個(gè)資源組;同時(shí)將數(shù)據(jù)切分策略信息發(fā)送至數(shù)據(jù)分發(fā)管理模塊,將并行訓(xùn)練策略信息發(fā)送至并行策略控制模塊;
22、步驟5:數(shù)據(jù)分發(fā)管理模塊對所述分布式訓(xùn)練任務(wù)的相應(yīng)數(shù)據(jù)集進(jìn)行預(yù)處理、切分處理以及分發(fā);
23、步驟6:并行策略控制模塊執(zhí)行相應(yīng)的分布式訓(xùn)練;
24、步驟7:任務(wù)流程管理模塊對執(zhí)行中的分布式訓(xùn)練任務(wù)進(jìn)行監(jiān)控,包括任務(wù)狀態(tài)監(jiān)控和訓(xùn)練日志監(jiān)控;
25、步驟8:分布式訓(xùn)練任務(wù)結(jié)束后,任務(wù)流程管理模塊通知異構(gòu)集群資源管理模塊對所述分布式訓(xùn)練任務(wù)對應(yīng)的任務(wù)管理節(jié)點(diǎn)、參數(shù)服務(wù)節(jié)點(diǎn)和異構(gòu)計(jì)算節(jié)點(diǎn)進(jìn)行釋放。
26、優(yōu)選地,在步驟1中,具體包括:
27、步驟11:根據(jù)需要?jiǎng)?chuàng)建模型開發(fā)項(xiàng)目,記錄項(xiàng)目的相關(guān)信息;
28、步驟12:定義相關(guān)的模型訓(xùn)練任務(wù),使用通用計(jì)算框架編寫項(xiàng)目代碼,定義單機(jī)運(yùn)行所需要的模型、數(shù)據(jù)集、優(yōu)化器以及損失函數(shù);
29、步驟13:對模型訓(xùn)練任務(wù)配置分布式訓(xùn)練所需的算力資源、數(shù)據(jù)切分策略以及并行訓(xùn)練策略;
30、步驟14:提交模型開發(fā)任務(wù)至所述異構(gòu)并行運(yùn)算系統(tǒng)。
31、優(yōu)選地,在步驟4中,任務(wù)管理節(jié)點(diǎn)根據(jù)異構(gòu)計(jì)算節(jié)點(diǎn)劃分所述分布式訓(xùn)練任務(wù),將一級任務(wù)下發(fā)到各個(gè)資源組,各個(gè)資源組將所述一級任務(wù)劃分為若干二級任務(wù),將所述二級任務(wù)分配至所述資源組內(nèi)的所有硬件資源上。
32、優(yōu)選地,在步驟6中,在數(shù)據(jù)分發(fā)管理模塊下發(fā)模型訓(xùn)練數(shù)據(jù)的同時(shí),所有異構(gòu)計(jì)算節(jié)點(diǎn)開始同步參數(shù)服務(wù)節(jié)點(diǎn)的初始全局模型信息;
33、根據(jù)任務(wù)流程管理模塊解析得到的并行訓(xùn)練策略信息,以及對分布式訓(xùn)練任務(wù)的調(diào)度,異構(gòu)計(jì)算節(jié)點(diǎn)進(jìn)行本地模型訓(xùn)練并與參數(shù)服務(wù)節(jié)點(diǎn)進(jìn)行模型信息交互,共同完成模型分布式訓(xùn)練任務(wù)的執(zhí)行。
34、根據(jù)本技術(shù)的一個(gè)實(shí)施例,采用本技術(shù)的異構(gòu)并行運(yùn)算系統(tǒng)的有益效果在于:本異構(gòu)并行運(yùn)算系統(tǒng)支持高拓展性,支持多通用計(jì)算框架,同時(shí)支持多種類型的智能算力硬件設(shè)備;
35、能夠?qū)⒁粋€(gè)深度學(xué)習(xí)異構(gòu)任務(wù)拆分并分配到不同資源類型的智能算力硬件上,并發(fā)執(zhí)行任務(wù),提高計(jì)算性能和效率;
36、異構(gòu)并行運(yùn)算系統(tǒng)可以充分利用不同資源類型的智能算力硬件并適配更多ai模型開發(fā)需求,可以按需采用同構(gòu)的ai計(jì)算卡執(zhí)行模型的分布式訓(xùn)練,也可以采用異構(gòu)的ai計(jì)算卡執(zhí)行模型的分布式訓(xùn)練。