本申請(qǐng)涉及人工智能(artificial?intelligence,ai),尤其涉及一種模型訓(xùn)練方法、裝置及計(jì)算設(shè)備集群。
背景技術(shù):
1、隨著大數(shù)據(jù)和計(jì)算能力的提升,深度學(xué)習(xí)模型在復(fù)雜度上不斷攀升,推動(dòng)了ai技術(shù)的飛速發(fā)展。然而,這一趨勢(shì)也帶來(lái)了模型訓(xùn)練過(guò)程中的巨大挑戰(zhàn),特別是在計(jì)算資源和內(nèi)存管理方面。
2、為了完成大規(guī)模模型訓(xùn)練的技術(shù)實(shí)現(xiàn),業(yè)界普遍采用了多種并行化技術(shù),包括:模型并行、流水線(xiàn)(pipeline)并行、數(shù)據(jù)并行或張量并行等。這些方法通過(guò)在不同計(jì)算單元之間分配模型的不同部分或不同階段,有效緩解了單個(gè)計(jì)算設(shè)備內(nèi)存不足的問(wèn)題,使得更大規(guī)模的模型訓(xùn)練成為可能。不過(guò),在實(shí)際應(yīng)用中,這些方法的效率仍有待提高。
技術(shù)實(shí)現(xiàn)思路
1、本申請(qǐng)?zhí)峁┝艘环N模型訓(xùn)練方法、裝置、計(jì)算設(shè)備集群、計(jì)算機(jī)存儲(chǔ)介質(zhì)及計(jì)算機(jī)產(chǎn)品,能夠提升模型訓(xùn)練效率。
2、第一方面,本申請(qǐng)?zhí)峁┮环N模型訓(xùn)練方法,包括:在設(shè)備(device)端配置待訓(xùn)練的第一模型,其中,第一模型的計(jì)算圖被切分為n個(gè)子計(jì)算圖,n≥2;在主機(jī)(host)端配置第一模型的優(yōu)化器,并對(duì)優(yōu)化器做切分,以得到n個(gè)子優(yōu)化器,其中,一個(gè)子優(yōu)化器負(fù)責(zé)獨(dú)立執(zhí)行一個(gè)子計(jì)算圖中參數(shù)的更新;通過(guò)host端和device端協(xié)同對(duì)第一模型做訓(xùn)練,其中,在訓(xùn)練過(guò)程中,至少一個(gè)子計(jì)算圖在后向傳播計(jì)算中與至少一個(gè)子優(yōu)化器并行執(zhí)行。
3、這樣,通過(guò)在device端配置模型,并將模型的計(jì)算圖切分為多個(gè),以及,在host端配置優(yōu)化器,并將優(yōu)化器切分為多個(gè),且一個(gè)子優(yōu)化器負(fù)責(zé)獨(dú)立執(zhí)行一個(gè)子計(jì)算圖中參數(shù)的更新,就可以使得優(yōu)化器計(jì)算和后向傳播計(jì)算并行,提升了模型訓(xùn)練效率。
4、在一種可能得實(shí)現(xiàn)方式中,該方法還包括:在訓(xùn)練第一模型過(guò)程中采用混合精度訓(xùn)練,以及,在host端上的優(yōu)化器執(zhí)行完畢之后,做損失縮放溢出判斷。這樣,通過(guò)混合精度訓(xùn)練可以提升模型訓(xùn)練效率,而通過(guò)將優(yōu)化器在執(zhí)行序上提前到損失縮放溢出判斷之前,就可以使得在采用混合精度訓(xùn)練時(shí)反向傳播計(jì)算與優(yōu)化器也并行執(zhí)行。
5、在一種可能得實(shí)現(xiàn)方式中,n個(gè)子計(jì)算圖是在host端對(duì)第一模型的計(jì)算圖做切分得到。
6、在一種可能得實(shí)現(xiàn)方式中,第一模型的計(jì)算圖和優(yōu)化器的切分規(guī)則相同。
7、第二方面,本申請(qǐng)?zhí)峁┮环N模型訓(xùn)練裝置,包括:配置模塊和訓(xùn)練模塊。其中,配置模塊,用于在設(shè)備(device)端配置待訓(xùn)練的第一模型,其中,第一模型的計(jì)算圖被切分為n個(gè)子計(jì)算圖,n≥2;以及,用于在主機(jī)(host)端配置第一模型的優(yōu)化器,并對(duì)優(yōu)化器做切分,以得到n個(gè)子優(yōu)化器,其中,一個(gè)子優(yōu)化器負(fù)責(zé)獨(dú)立執(zhí)行一個(gè)子計(jì)算圖中參數(shù)的更新。訓(xùn)練模塊,用于通過(guò)host端和device端協(xié)同對(duì)第一模型做訓(xùn)練,其中,在訓(xùn)練過(guò)程中,至少一個(gè)子計(jì)算圖在后向傳播計(jì)算中與至少一個(gè)子優(yōu)化器并行執(zhí)行。
8、在一種可能得實(shí)現(xiàn)方式中,訓(xùn)練模塊,還用于:在訓(xùn)練第一模型過(guò)程中采用混合精度訓(xùn)練,以及,在host端上的優(yōu)化器執(zhí)行完畢之后,做損失縮放溢出判斷。
9、在一種可能得實(shí)現(xiàn)方式中,n個(gè)子計(jì)算圖是在host端對(duì)第一模型的計(jì)算圖做切分得到。
10、在一種可能得實(shí)現(xiàn)方式中,第一模型的計(jì)算圖和優(yōu)化器的切分規(guī)則相同。
11、第三方面,本申請(qǐng)?zhí)峁┮环N計(jì)算設(shè)備集群,包括至少一個(gè)計(jì)算設(shè)備,每個(gè)計(jì)算設(shè)備均包括處理器和存儲(chǔ)器;至少一個(gè)計(jì)算設(shè)備的處理器用于執(zhí)行至少一個(gè)計(jì)算設(shè)備的存儲(chǔ)器中存儲(chǔ)的指令,以使得計(jì)算設(shè)備集群執(zhí)行第一方面或第一方面的任一種可能的實(shí)現(xiàn)方式所描述的方法。
12、第四方面,本申請(qǐng)?zhí)峁┮环N計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),包括計(jì)算機(jī)程序指令,當(dāng)計(jì)算機(jī)程序指令由計(jì)算設(shè)備執(zhí)行時(shí),計(jì)算設(shè)備執(zhí)行第一方面或第一方面的任一種可能的實(shí)現(xiàn)方式所描述的方法;或者,當(dāng)計(jì)算機(jī)程序指令由計(jì)算設(shè)備集群執(zhí)行時(shí),計(jì)算設(shè)備集群執(zhí)行第一方面或第一方面的任一種可能的實(shí)現(xiàn)方式所描述的方法。示例性的,計(jì)算設(shè)備集群中可以包括一個(gè)或多個(gè)計(jì)算設(shè)備。
13、第五方面,本申請(qǐng)?zhí)峁┮环N包含指令的計(jì)算機(jī)程序產(chǎn)品,當(dāng)指令被計(jì)算設(shè)備運(yùn)行時(shí),使得計(jì)算設(shè)備執(zhí)行第一方面或第一方面的任一種可能的實(shí)現(xiàn)方式所描述的方法,或者,當(dāng)指令被計(jì)算設(shè)備集群運(yùn)行時(shí),使得計(jì)算設(shè)備集群執(zhí)行第一方面或第一方面的任一種可能的實(shí)現(xiàn)方式所描述的方法。示例性的,計(jì)算設(shè)備集群中可以包括一個(gè)或多個(gè)計(jì)算設(shè)備。
14、可以理解的是,上述第二方面至第五方面的有益效果可以參見(jiàn)上述第一方面中的相關(guān)描述,在此不再贅述。
1.一種模型訓(xùn)練方法,其特征在于,所述方法包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括:
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述n個(gè)子計(jì)算圖是在所述host端對(duì)所述第一模型的計(jì)算圖做切分得到。
4.根據(jù)權(quán)利要求1-3任一所述的方法,其特征在于,所述第一模型的計(jì)算圖和優(yōu)化器的切分規(guī)則相同。
5.一種模型訓(xùn)練裝置,其特征在于,包括:
6.根據(jù)權(quán)利要求5所述的裝置,其特征在于,所述訓(xùn)練模塊,還用于:
7.根據(jù)權(quán)利要求5或6所述的裝置,其特征在于,所述n個(gè)子計(jì)算圖是在所述host端對(duì)所述第一模型的計(jì)算圖做切分得到。
8.根據(jù)權(quán)利要求5-7任一所述的裝置,其特征在于,所述第一模型的計(jì)算圖和優(yōu)化器的切分規(guī)則相同。
9.一種計(jì)算設(shè)備集群,其特征在于,包括至少一個(gè)計(jì)算設(shè)備,每個(gè)計(jì)算設(shè)備均包括處理器和存儲(chǔ)器;
10.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,包括計(jì)算機(jī)程序指令,當(dāng)所述指令被計(jì)算設(shè)備集群運(yùn)行時(shí),使得所述計(jì)算設(shè)備集群執(zhí)行如權(quán)利要求1-4任一所述的方法,其中,所述計(jì)算設(shè)備集群包括至少一個(gè)計(jì)算設(shè)備。