本技術(shù)涉及計算機(jī),尤其涉及一種數(shù)據(jù)推理方法、模型訓(xùn)練方法及設(shè)備。
背景技術(shù):
1、隨著高性能計算(high?performance?computing,hpc)及相關(guān)應(yīng)用的不斷發(fā)展,算力需求進(jìn)一步攀升。僅依靠單一計算類型和架構(gòu)的處理器無法滿足現(xiàn)有算力需求,異構(gòu)計算(heterogeneous?computing)指在異構(gòu)計算系統(tǒng)上進(jìn)行的并行計算。異構(gòu)計算系統(tǒng)可以包括不同類型的指令集和不同體系架構(gòu)的計算單元。異構(gòu)計算在云數(shù)據(jù)中心、邊緣計算場景等有著廣泛應(yīng)用。如異構(gòu)計算可以協(xié)同cpu、gpu、fpga、asic等多種硬件算力,從而滿足不同場景中的應(yīng)用需求,提升系統(tǒng)算力和降低成本,實現(xiàn)計算效力最大化。例如,隨著人工智能(artificial?intelligence,ai)技術(shù)的發(fā)展,hpc與ai融合的異構(gòu)算力方案和應(yīng)用場景也得到了進(jìn)一步拓展。
2、一種常見的異構(gòu)算力系統(tǒng)包括通用芯片和ai芯片,其中,通用芯片例如為cpu,通用芯片一般用于hpc計算場景;ai芯片例如為圖形處理器(graphics?processing?unit,gpu)、現(xiàn)場可編程邏輯門陣列(field?programmable?gate?array,fpga)、專用集成電路(application?specific?integrated?circuit,asic)等加速芯片,ai芯片通常用于ai計算場景。在異構(gòu)算力應(yīng)用于模型推理與訓(xùn)練場景中,由于模型訓(xùn)練需要消耗較大的ai算力資源,而推理過程需要快速、穩(wěn)定地進(jìn)行,常見的處理模式為ai芯片用于離線訓(xùn)練模型,通用芯片用于基于已訓(xùn)練的模型進(jìn)行在線推理。
3、而基于上述進(jìn)行模型推理與訓(xùn)練時,通用芯片在線推理使用的模型為ai芯片離線訓(xùn)練好的模型,基于該模型進(jìn)行推理會對推理準(zhǔn)確率產(chǎn)生影響。
技術(shù)實現(xiàn)思路
1、本技術(shù)提供一種數(shù)據(jù)推理方法、模型訓(xùn)練方法及設(shè)備,用于提供一種準(zhǔn)確的模型訓(xùn)練方式和推理方式,進(jìn)而提升推理準(zhǔn)確率。
2、第一方面,本技術(shù)提供了一種數(shù)據(jù)推理方法,該方法可以由計算設(shè)備或計算設(shè)備內(nèi)的處理芯片執(zhí)行,也可以由計算設(shè)備集群執(zhí)行。在該方法中,計算設(shè)備獲取第一數(shù)據(jù),所述第一數(shù)據(jù)為在第一時刻獲取的數(shù)據(jù);從至少一個候選推理模型中獲取目標(biāo)推理模型,所述至少一個候選推理模型分別對應(yīng)不同的采樣時刻,所述目標(biāo)推理模型對應(yīng)的第一采樣時刻位于所述第一時刻之前、且與所述第一時刻之間的時間差小于第一預(yù)設(shè)閾值;所述目標(biāo)訓(xùn)練模型為基于第一訓(xùn)練數(shù)據(jù)集合對預(yù)訓(xùn)練模型進(jìn)行訓(xùn)練得到的,所述第一訓(xùn)練數(shù)據(jù)集合包括在所述第一采樣時刻采集的樣本數(shù)據(jù)以及在所述第一采樣時刻之前的第一預(yù)設(shè)時長內(nèi)采集的樣本數(shù)據(jù);將所述第一數(shù)據(jù)輸入所述目標(biāo)推理模型,得到第一推理結(jié)果。
3、在以上方法中,計算設(shè)備在推理時使用的目標(biāo)推理模型為基于較新的采樣數(shù)據(jù)訓(xùn)練得到的模型,從而可以保證目標(biāo)推理模型的有效性,進(jìn)而提高推理準(zhǔn)確率。
4、一種可能的設(shè)計中,從至少一個候選推理模型中獲取目標(biāo)推理模型,包括:從至少一個候選推理模型中確定至少兩個目標(biāo)候選推理模型,每個所述目標(biāo)候選推理模型分別對應(yīng)的采樣時刻均位于所述第一時刻之前、且均與所述第一時刻之間的時間差小于所述第一預(yù)設(shè)閾值;從所述至少兩個目標(biāo)候選推理模型中獲取目標(biāo)推理模型。
5、從所述至少兩個目標(biāo)候選推理模型中獲取目標(biāo)推理模型,包括但不限于如下三種方式。
6、第一種方式:所述目標(biāo)推理模型對應(yīng)的模型序號與所述第一時刻對應(yīng)的時刻序號可以符合如下條件:
7、j=i-1
8、所述j為按照所述至少一個候選推理模型分別對應(yīng)的采樣時刻從前到后的順序,為所述至少一個候選推理模型依次分配從0到p中的模型序號后,所述目標(biāo)推理模型對應(yīng)的模型序號,例如,按照采樣時刻從前到后的順序,為對應(yīng)各個采樣時刻分別訓(xùn)練得到的候選推理模型分別分配模型序號1、2、3…p等,所述p為正整數(shù);所述i為按照多個推理時刻從前到后的順序,為所述多個推理時刻依次分配從0到q中的時刻序號后,所述第一時刻對應(yīng)的時刻序號,例如,按照推理時刻從前到后的順序,為各個推理時刻分別分配時刻序號1、2、3…q等,所述q為正整數(shù);且按照所述至少一個候選推理模型分別對應(yīng)的采樣時刻從前到后的順序,為多個采樣時刻依次分配從0到w中的時刻序號后,序號相同的所述推理時刻和所述采樣時刻之間的時間差小于第二預(yù)設(shè)閾值,所述w為正整數(shù)。比如,按照采樣時刻從前到后的順序,為各個采樣時刻分別分配時刻序號1、2、3…w等,則同為序號5的采樣時刻和推理時刻可以為相同時刻,或者為相近時刻,即同為序號5的采樣時刻和推理時刻理論上為比較接近的時間點(diǎn)。
9、通過該設(shè)計,當(dāng)訓(xùn)練時長小于或等于一個采樣間隔時,在一個推理時刻到達(dá)時,計算設(shè)備已經(jīng)完成了基于推理時刻的上一時刻或與上一時刻較為接近的時刻的模型訓(xùn)練,則計算設(shè)備可以直接獲取基于上一時刻訓(xùn)練得到的候選推理模型,或基于與上一時刻較為接近的時刻訓(xùn)練得到的候選推理模型作為目標(biāo)推理模型。
10、第二種方式,所述目標(biāo)推理模型對應(yīng)的模型序號與所述第一時刻對應(yīng)的時刻序號還可以符合如下條件:
11、j=max(0,i-n);
12、
13、所述j和i的定義和解釋請參照上述第一種方式的描述,這里不再重復(fù)贅述。所述ttrain為對任一所述候選推理模型進(jìn)行訓(xùn)練的最大允許訓(xùn)練時長;所述δt為采樣間隔,所述采樣間隔為任意兩個相鄰采樣時刻之間的時間差,比如采樣時刻t3和t4為兩個相鄰的采樣時刻且t4位于t3之后,則采樣間隔可以為t4-t3的值;且按照所述至少一個候選推理模型分別對應(yīng)的采樣時刻從前到后的順序,為多個采樣時刻依次分配從0到w中的時刻序號后,序號相同的所述推理時刻和所述采樣時刻之間的時間差小于第二預(yù)設(shè)閾值,所述w為正整數(shù),有關(guān)相同序號的采樣時刻和推理時刻滿足的關(guān)系請參照上述第一種方式的描述,這里不再重復(fù)贅述。
14、通過該設(shè)計,當(dāng)計算設(shè)備執(zhí)行一個訓(xùn)練任務(wù)的最大允許時長大于一個采樣間隔,在一個推理時刻到達(dá)時,計算設(shè)備可能還未完成基于推理時刻的上一時刻或與上一時刻較為接近的時刻的模型訓(xùn)練,則計算設(shè)備可以確定執(zhí)行一個訓(xùn)練任務(wù)的最大允許時長占用了采樣間隔的數(shù)量n,比如,執(zhí)行一個訓(xùn)練任務(wù)的最大允許時長為采樣間隔的2.4倍時,n的值為3。在前n個推理時刻,計算設(shè)備還沒有完成一個候選推理模型的訓(xùn)練,則可以選擇最初始的候選推理模型即序號是0的候選推理模型。在第n+1個推理時刻及第n+1個推理時刻之后,計算設(shè)備最近完成的候選推理模型對應(yīng)的采樣時刻與推理時刻之間的時間差為n個采樣間隔,計算設(shè)備可以將與推理時刻的時刻序號差值為n的模型序號對應(yīng)的候選推理模型,作為目標(biāo)推理模型,進(jìn)而保證計算設(shè)備獲取的目標(biāo)推理模型為完整的推理模型或者為基于最新的采樣數(shù)據(jù)訓(xùn)練得到的推理模型。
15、第三種方式,所述目標(biāo)推理模型對應(yīng)的模型序號與所述第一時刻對應(yīng)的時刻序號還可以符合如下條件:
16、
17、
18、
19、所述j為所述目標(biāo)推理模型對應(yīng)的模型序號;所述至少一個候選推理模型的模型序號為按照所述至少一個候選推理模型分別對應(yīng)的采樣時刻從前到后的順序,為所述至少一個候選推理模型依次分配的從0到p中的模型序號;所述p為正整數(shù);所述i為按照多個推理時刻從前到后的順序,為所述多個推理時刻依次分配從0到q中的時刻序號后,所述第一時刻對應(yīng)的時刻序號;所述q為正整數(shù)。所述j和i的定義和解釋請參照上述第一種方式的描述,這里不再重復(fù)贅述。
20、所述ttrain和所述δt的定義和解釋請參照上述第二種方式的描述,這里不再重復(fù)贅述。
21、重點(diǎn)說明的是,這里的n為所述計算設(shè)備能夠同步訓(xùn)練的所述候選推理模型的數(shù)量;所述s為預(yù)設(shè)的數(shù)值;
22、且按照所述至少一個候選推理模型分別對應(yīng)的采樣時刻從前到后的順序,為多個采樣時刻依次分配從0到w中的時刻序號后,序號相同的所述推理時刻和所述采樣時刻之間的時間差小于第二預(yù)設(shè)閾值,所述w為正整數(shù),有關(guān)相同序號的采樣時刻和推理時刻滿足的關(guān)系請參照上述第一種方式的描述,這里不再重復(fù)贅述。
23、通過該設(shè)計,當(dāng)計算設(shè)備執(zhí)行一個訓(xùn)練任務(wù)的最大允許時長大于一個采樣間隔,且計算設(shè)備按照多個訓(xùn)練任務(wù)分別對應(yīng)的采樣時刻從前到后的順序執(zhí)行多個訓(xùn)練任務(wù)時,計算設(shè)備可以為不同的訓(xùn)練任務(wù)分配不同的算力資源,以同樣的算力資源為一個訓(xùn)練通道為例,計算設(shè)備能夠同時訓(xùn)練的候選推理模型的數(shù)量n,則計算設(shè)備擁有n個訓(xùn)練通道,基于上述第三種方式,k取遍1至n中的正整數(shù),可以分別確定每條訓(xùn)練通道上能獲取到的最近完成訓(xùn)練的候選推理模型,如當(dāng)n為2時,k取值1為可以計算得到第一條訓(xùn)練通道上能獲取到的采樣時刻與推理時刻之間時間差最小的候選推理模型的模型序號,k取值為2可以計算得到第二條訓(xùn)練通道上能獲取到的采樣時刻與推理時刻之間的時間差最小的候選推理模型的模型序號,計算設(shè)備從確定出的多個模型序號中選擇最大值,該最大值對應(yīng)的候選推理模型為至少一個候選推理模型中采樣時刻與推理時刻之間的時間差最小的模型。當(dāng)該最大值為0時,表示計算設(shè)備還沒有完成一個候選推理模型的訓(xùn)練,則可以選擇最初始的候選推理模型即序號是0的候選推理模型。進(jìn)而保證計算設(shè)備獲取的目標(biāo)推理模型為完整的推理模型或者為基于最新的采樣數(shù)據(jù)訓(xùn)練得到的推理模型。
24、一種可能的設(shè)計中,所述方法還包括:確定所述第一時刻為第二采樣時刻;所述第二采樣時刻為所述第一采樣時刻之后的采樣時刻;基于第二訓(xùn)練數(shù)據(jù)集合,對所述預(yù)訓(xùn)練模型進(jìn)行訓(xùn)練,得到所述第二采樣時刻對應(yīng)的候選推理模型;所述第二訓(xùn)練數(shù)據(jù)集合包括所述第一數(shù)據(jù)以及在所述第一時刻之前的第一預(yù)設(shè)時長內(nèi)采集的樣本數(shù)據(jù);所述第二采樣時刻對應(yīng)的候選推理模型用于第二時刻及第二時刻之后的推理任務(wù),所述第二時刻位于所述第一時刻之后,且所述第二時刻與所述第一時刻之間的時間差大于或等于預(yù)設(shè)的訓(xùn)練時長。
25、通過該設(shè)計,計算設(shè)備可以在確定到達(dá)一個推理時刻時,若該推理時刻也是推理模型訓(xùn)練過程中設(shè)定的一個采樣時刻,則可以基于該推理時刻獲取的數(shù)據(jù)和推理時刻之前一段時間內(nèi)獲取的數(shù)據(jù)啟動一次訓(xùn)練任務(wù),以將該推理時刻獲取的數(shù)據(jù)和推理時刻之前一段時間內(nèi)獲取的數(shù)據(jù)加入訓(xùn)練數(shù)據(jù)集合,對預(yù)訓(xùn)練模型進(jìn)行模型訓(xùn)練,得到一個最新的候選推理模型,從而實現(xiàn)在推理過程中可以動態(tài)對候選推理模型進(jìn)行更新,保證推理的有效性和準(zhǔn)確性。
26、第二方面,本技術(shù)提供一種模型訓(xùn)練方法,該方法可以由計算設(shè)備或計算設(shè)備內(nèi)的處理芯片執(zhí)行,或者由計算設(shè)備集群執(zhí)行。在該方法中,計算設(shè)備確定到達(dá)第一采樣時刻,所述第一采樣時刻為z個采樣時刻中的任一采樣時刻;所述z為正整數(shù);基于第一訓(xùn)練數(shù)據(jù)集合,對預(yù)訓(xùn)練模型進(jìn)行訓(xùn)練,得到所述第一采樣時刻對應(yīng)的候選推理模型;所述第一訓(xùn)練數(shù)據(jù)集合包括在所述第一采樣時刻采集的樣本數(shù)據(jù)以及在所述第一采樣時刻之前的第一預(yù)設(shè)時長內(nèi)采集的樣本數(shù)據(jù),所述第一采樣時刻對應(yīng)的候選推理模型用于第一時刻及第一時刻之后的推理任務(wù),所述第一時刻位于所述第一采樣時刻之后,且所述第一時刻與所述第一采樣時刻之間的時間差大于或等于預(yù)設(shè)的訓(xùn)練時長。
27、在以上方法中,計算設(shè)備可以在確定到達(dá)采樣時刻時,啟動一次訓(xùn)練任務(wù)。將當(dāng)前到達(dá)采樣時刻以及當(dāng)前到達(dá)采樣時刻之前預(yù)設(shè)時長內(nèi)獲取到的樣本數(shù)據(jù)加入訓(xùn)練數(shù)據(jù)集合,對預(yù)訓(xùn)練模型進(jìn)行模型訓(xùn)練,得到一個相對當(dāng)前到達(dá)的采樣時刻的候選推理模型,從而實現(xiàn)推理模型的動態(tài)更新,保證模型的有效性和準(zhǔn)確性。
28、第三方面,本技術(shù)提供一種模型訓(xùn)練方法,該方法可以由計算設(shè)備執(zhí)行或計算設(shè)備內(nèi)的處理芯片,或者由計算設(shè)備集群執(zhí)行。在該方法中,計算設(shè)備確定存在至少兩個訓(xùn)練任務(wù),每個所述訓(xùn)練任務(wù)用于訓(xùn)練一個對應(yīng)的候選推理模型,且所述至少兩個訓(xùn)練任務(wù)分別對應(yīng)不同的采樣時刻;按照所述至少兩個訓(xùn)練任務(wù)分別對應(yīng)的采樣時刻從前到后的順序,依次執(zhí)行所述至少兩個訓(xùn)練任務(wù)、且基于第二方面所述的模型訓(xùn)練方法訓(xùn)練任一所述訓(xùn)練任務(wù)。
29、在以上方法中,當(dāng)計算設(shè)備確定存在至少兩個訓(xùn)練任務(wù)時,根據(jù)每個訓(xùn)練任務(wù)對應(yīng)的采樣時刻從前到后的順序執(zhí)行訓(xùn)練任務(wù),從而保證模型訓(xùn)練有序進(jìn)行。
30、一種可能的設(shè)計中,首個所述訓(xùn)練任務(wù)對應(yīng)的采樣時刻為多個采樣時刻按照從前到后的順序排列后的第r個采樣時刻,所述r為正整數(shù)。
31、通過該設(shè)計,計算設(shè)備在初始時刻之后的第r個采樣時刻,再基于采樣時刻獲取到的樣本數(shù)據(jù)進(jìn)行模型訓(xùn)練,從而計算設(shè)備可以合理分配訓(xùn)練算力,更加有效合理的更新推理模型,進(jìn)而通過前幾次推理時刻的負(fù)優(yōu)化帶來了之后多個推理時刻的正優(yōu)化,進(jìn)一步提升推理準(zhǔn)確率。
32、第四方面,本技術(shù)提供一種計算裝置,該計算裝置包括獲取模塊和推理模塊。獲取模塊用于獲取第一數(shù)據(jù),所述第一數(shù)據(jù)為在第一時刻獲取的數(shù)據(jù)。推理模塊用于從至少一個候選推理模型中獲取目標(biāo)推理模型,所述至少一個候選推理模型分別對應(yīng)不同的采樣時刻,所述目標(biāo)推理模型對應(yīng)的第一采樣時刻位于所述第一時刻之前、且與所述第一時刻之間的時間差小于第一預(yù)設(shè)閾值;所述目標(biāo)訓(xùn)練模型為基于第一訓(xùn)練數(shù)據(jù)集合對預(yù)訓(xùn)練模型進(jìn)行訓(xùn)練得到的,所述第一訓(xùn)練數(shù)據(jù)集合包括在所述第一采樣時刻采集的樣本數(shù)據(jù)以及在所述第一采樣時刻之前的第一預(yù)設(shè)時長內(nèi)采集的樣本數(shù)據(jù);將所述第一數(shù)據(jù)輸入所述目標(biāo)推理模型,得到第一推理結(jié)果。
33、一種可能的設(shè)計中,所述推理模塊具體用于:從至少一個候選推理模型中確定至少兩個目標(biāo)候選推理模型,每個所述目標(biāo)候選推理模型分別對應(yīng)的采樣時刻均位于所述第一時刻之前、且均與所述第一時刻之間的時間差小于所述第一預(yù)設(shè)閾值;從所述至少兩個目標(biāo)候選推理模型中獲取目標(biāo)推理模型。
34、一種可能的設(shè)計中,所述計算裝置還包括訓(xùn)練模塊,所述訓(xùn)練模塊用于確定所述第一時刻為第二采樣時刻;所述第二采樣時刻為所述第一采樣時刻之后的采樣時刻;基于第二訓(xùn)練數(shù)據(jù)集合,對所述預(yù)訓(xùn)練模型進(jìn)行訓(xùn)練,得到所述第二采樣時刻對應(yīng)的候選推理模型;所述第二訓(xùn)練數(shù)據(jù)集合包括所述第一數(shù)據(jù)以及在所述第一時刻之前的第一預(yù)設(shè)時長內(nèi)采集的樣本數(shù)據(jù);所述第二采樣時刻對應(yīng)的候選推理模型用于第二時刻及第二時刻之后的推理任務(wù),所述第二時刻位于所述第一時刻之后,且所述第二時刻與所述第一時刻之間的時間差大于或等于預(yù)設(shè)的訓(xùn)練時長。
35、第五方面,本技術(shù)提供一種計算裝置,所述計算裝置包括采樣模塊和訓(xùn)練模塊。采樣模塊,用于在z個采樣時刻中的每個采樣時刻獲取樣本數(shù)據(jù);所述z為正整數(shù);訓(xùn)練模塊,用于確定到達(dá)第一采樣時刻,所述第一采樣時刻為z個采樣時刻中的任一采樣時刻;基于第一訓(xùn)練數(shù)據(jù)集合,對預(yù)訓(xùn)練模型進(jìn)行訓(xùn)練,得到所述第一采樣時刻對應(yīng)的候選推理模型;所述第一訓(xùn)練數(shù)據(jù)集合包括在所述第一采樣時刻采集的樣本數(shù)據(jù)以及在所述第一采樣時刻之前的第一預(yù)設(shè)時長內(nèi)采集的樣本數(shù)據(jù),所述第一采樣時刻對應(yīng)的候選推理模型用于第一時刻及第一時刻之后的推理任務(wù),所述第一時刻位于所述第一采樣時刻之后,且所述第一時刻與所述第一采樣時刻之間的時間差大于或等于預(yù)設(shè)的訓(xùn)練時長。
36、一種可能的設(shè)計中,所述訓(xùn)練模塊還用于:確定存在至少兩個訓(xùn)練任務(wù),每個所述訓(xùn)練任務(wù)用于訓(xùn)練一個對應(yīng)的候選推理模型,且所述至少兩個訓(xùn)練任務(wù)分別對應(yīng)不同的采樣時刻;按照所述至少兩個訓(xùn)練任務(wù)分別對應(yīng)的采樣時刻從前到后的順序,依次執(zhí)行所述至少兩個訓(xùn)練任務(wù)、且基于如權(quán)利要求7所述的模型訓(xùn)練方法訓(xùn)練任一所述訓(xùn)練任務(wù)。
37、第六方面,本技術(shù)提供一種計算裝置,所述計算裝置包括處理器和存儲器;所述存儲器,存儲計算機(jī)程序指令,以及存儲至少一個候選推理模型;所述處理器用于執(zhí)行所述存儲器中存儲的指令,以執(zhí)行上述第一方面以及第一方面任一可能設(shè)計所述的方法,或執(zhí)行上述第二方面以及第二方面任一可能設(shè)計所述的方法,或執(zhí)行上述第三方面以及第三方面任一可能設(shè)計所述的方法。
38、第七方面,本技術(shù)實施例提供了一種包含指令的計算機(jī)程序產(chǎn)品,當(dāng)所述指令被計算設(shè)備集群運(yùn)行時,使得所述計算設(shè)備集群執(zhí)行如上述第一方面以及第一方面任一可能設(shè)計所述的方法,或執(zhí)行上述第二方面以及第二方面任一可能設(shè)計所述的方法,或執(zhí)行上述第三方面以及第三方面任一可能設(shè)計所述的方法。
39、第八方面,本技術(shù)實施例提供了一種計算機(jī)可讀存儲介質(zhì),包括計算機(jī)程序指令,當(dāng)所述計算機(jī)程序指令由計算設(shè)備集群執(zhí)行時,所述計算設(shè)備集群執(zhí)行如上述第一方面以及第一方面任一可能設(shè)計所述的方法,或執(zhí)行上述第二方面以及第二方面任一可能設(shè)計所述的方法,或執(zhí)行上述第三方面以及第三方面任一可能設(shè)計所述的方法。
40、第九方面,本技術(shù)實施例提供了一種計算設(shè)備集群,包括至少一個計算設(shè)備,每個計算設(shè)備包括處理器和存儲器;所述至少一個計算設(shè)備的處理器用于執(zhí)行所述至少一個計算設(shè)備的存儲器中存儲的指令,以使得所述計算設(shè)備集群執(zhí)行如上述第一方面以及第一方面任一可能設(shè)計所述的方法,或執(zhí)行上述第二方面以及第二方面任一可能設(shè)計所述的方法,或執(zhí)行上述第三方面以及第三方面任一可能設(shè)計所述的方法。
41、本技術(shù)實施例在上述各方面提供的實現(xiàn)的基礎(chǔ)上,還可以進(jìn)行進(jìn)一步組合以提供更多實現(xiàn)。上述第四方面到第九方面的有益效果,請參見上述第一方面到第三方面的有益效果的描述,這里不再重復(fù)贅述。