本發(fā)明涉及機器學(xué)習(xí)和算力網(wǎng)絡(luò),特別是涉及一種基于算力網(wǎng)絡(luò)的云邊端協(xié)同聯(lián)邦學(xué)習(xí)方法及系統(tǒng)。
背景技術(shù):
1、在萬物互聯(lián)的時代,終端智能設(shè)備的不斷發(fā)展使得邊緣網(wǎng)絡(luò)的連接無處不在,數(shù)據(jù)也隨之發(fā)生爆炸性的增長。大量可用數(shù)據(jù)的增長促進了人工智能的誕生,通過機器學(xué)習(xí)得到各種模型,使得訓(xùn)練出的模型在各個領(lǐng)域發(fā)揮巨大作用。傳統(tǒng)的機器學(xué)習(xí)需要用戶將自身數(shù)據(jù)傳遞給云端進行集中式訓(xùn)練,而隨著人們對數(shù)據(jù)隱私性的重視提高,在機器學(xué)習(xí)中,用戶逐漸不愿意直接共享或者傳輸自身的數(shù)據(jù)。在此背景下,聯(lián)邦學(xué)習(xí)作為一種分布式學(xué)習(xí)的范式被提出。用戶僅需共同協(xié)作,在本地訓(xùn)練好模型,傳遞模型參數(shù)給第三方中心服務(wù)器。聚合服務(wù)器執(zhí)行聚合操作,更新后的模型會再次下放給用戶執(zhí)行下一步操作,如此迭代直到模型收斂。通過聯(lián)邦學(xué)習(xí)用戶無需分享自己的數(shù)據(jù)就能得到性能優(yōu)異的ai模型用于實現(xiàn)服務(wù)。
2、但同時,聯(lián)邦學(xué)習(xí)自身也存在著一定的問題待解決。尤其訓(xùn)練過程中容易有客戶端掉隊,且客戶端本地訓(xùn)練時間的參差性也影響聯(lián)邦學(xué)習(xí)正常進程。而這正是設(shè)備的算力資源決定的。在網(wǎng)絡(luò)的邊緣端,各種智能設(shè)備均有能力與數(shù)據(jù)儲備參與聯(lián)邦學(xué)習(xí)幫助實現(xiàn)智能服務(wù),但是設(shè)備的多樣性意味著算力資源的不平衡,而且傳統(tǒng)的網(wǎng)絡(luò)中設(shè)備的算力資源是難以感知的。但是,算力網(wǎng)絡(luò)的出現(xiàn),連接分布式計算節(jié)點,動態(tài)、及時感知用戶需求和應(yīng)用、網(wǎng)絡(luò)資源、算力資源、存儲資源等多維資源成為了可能。在網(wǎng)絡(luò)中尤其在邊緣端,呈現(xiàn)出算力資源異構(gòu)的情況,各個設(shè)備的算力資源不均衡,且極端情況下,大多數(shù)設(shè)備沒有足夠的算力資源支撐正常的聯(lián)邦學(xué)習(xí)進程。而利用算力網(wǎng)絡(luò)對資源強大的編排能力,協(xié)同云邊端三側(cè)的計算節(jié)點,設(shè)計系統(tǒng),利用邊緣與云端閑置的算力資源輔助端側(cè)設(shè)備完成聯(lián)邦學(xué)習(xí),緩解其訓(xùn)練計算壓力,可以解決該問題。同時,網(wǎng)絡(luò)邊緣與端側(cè),許多設(shè)備的算力資源不均衡甚至嚴(yán)重不足,限制聯(lián)邦學(xué)習(xí)訓(xùn)練。
技術(shù)實現(xiàn)思路
1、本發(fā)明旨在至少在一定程度上解決相關(guān)技術(shù)中的技術(shù)問題之一。
2、為此,基于算力網(wǎng)絡(luò)的支撐,結(jié)合分割學(xué)習(xí)與知識蒸餾的思想,本發(fā)明提出一種基于算力網(wǎng)絡(luò)的云邊端協(xié)同聯(lián)邦學(xué)習(xí)方法,綜合編排調(diào)度網(wǎng)絡(luò)中云邊端的算力資源,緩解端側(cè)算力設(shè)備資源不足的情況,加速聯(lián)邦學(xué)習(xí)訓(xùn)練并提升了聯(lián)邦學(xué)習(xí)最終模型的性能。
3、本發(fā)明的另一個目的在于提出一種基于算力網(wǎng)絡(luò)的云邊端協(xié)同聯(lián)邦學(xué)習(xí)系統(tǒng)。
4、為達上述目的,本發(fā)明一方面提出一種基于算力網(wǎng)絡(luò)的云邊端協(xié)同聯(lián)邦學(xué)習(xí)方法,包括:
5、在每個訓(xùn)練輪次隨機抽樣持有數(shù)據(jù)的客戶端協(xié)同參與聯(lián)邦學(xué)習(xí)訓(xùn)練,并將用于訓(xùn)練的初始全局模型進行分割至少得到前半網(wǎng)絡(luò)模型和后半網(wǎng)絡(luò)模型;
6、基于客戶端的數(shù)據(jù)分布信息和kl散度值得到?jīng)Q策信息,并對客戶端進行聚類得到聚類結(jié)果;
7、根據(jù)網(wǎng)絡(luò)狀態(tài)和所述聚類結(jié)果制定所述決策信息的卸載策略,以將聚類的客戶端集合的所述后半網(wǎng)絡(luò)模型的訓(xùn)練任務(wù)卸載到服務(wù)器;
8、利用本地數(shù)據(jù)訓(xùn)練所述前半網(wǎng)絡(luò)模型,并利用前半網(wǎng)絡(luò)的邊緣聚合服務(wù)器更新前半網(wǎng)絡(luò)模型參數(shù)得到前半網(wǎng)絡(luò)模型的全局模型;以及后半網(wǎng)絡(luò)的邊緣聚合服務(wù)器利用對應(yīng)的聚類中端側(cè)節(jié)點的中間數(shù)據(jù)更新后半網(wǎng)絡(luò)模型的參數(shù);
9、對更新后的后半網(wǎng)絡(luò)模型的參數(shù)執(zhí)行聚合操作以及與對應(yīng)的云端模型進行互蒸餾,得到后半網(wǎng)絡(luò)模型的邊緣側(cè)全局模型。
10、本發(fā)明實施例的基于算力網(wǎng)絡(luò)的云邊端協(xié)同聯(lián)邦學(xué)習(xí)方法還可以具有以下附加技術(shù)特征:
11、在本發(fā)明的一個實施例中,對客戶端進行聚類得到聚類結(jié)果,包括:
12、構(gòu)建多個空聚類,設(shè)置每個聚類的kl散度值為無窮,遍歷當(dāng)前客戶端用戶集合;
13、若當(dāng)前客戶端用戶歸為當(dāng)前類后,聚類的kl散度值減小,則將客戶端用戶劃入當(dāng)前聚類,更新聚類的數(shù)據(jù)以及kl散度值;
14、繼續(xù)遍歷直到達到聚類數(shù)量;
15、若聚類中客戶端數(shù)量少于最小數(shù)量,則在剩余用戶中依次選擇滿足聚類更新后kl散度值最小的用戶,直到聚類達到最小數(shù)值;
16、若剩余用戶數(shù)小于聚類最小數(shù)量,則遍歷剩余用戶,將客戶端用戶劃入使得所有聚類更新后kl散度值變化最小的聚類。
17、在本發(fā)明的一個實施例中,所述服務(wù)器,至少包括邊緣服務(wù)器和云端服務(wù)器;其中,邊緣服務(wù)器至少包括邊緣聚合服務(wù)器;所述利用本地數(shù)據(jù)訓(xùn)練所述前半網(wǎng)絡(luò)模型,并利用前半網(wǎng)絡(luò)的邊緣聚合服務(wù)器更新前半網(wǎng)絡(luò)模型參數(shù)得到前半網(wǎng)絡(luò)模型的全局模型;以及后半網(wǎng)絡(luò)的邊緣聚合服務(wù)器利用對應(yīng)的聚類中端側(cè)節(jié)點的中間數(shù)據(jù)更新后半網(wǎng)絡(luò)模型的參數(shù),包括:
18、通過前半網(wǎng)絡(luò)的邊緣聚合服務(wù)器利用本地數(shù)據(jù)訓(xùn)練前半網(wǎng)絡(luò)模型得到中間數(shù)據(jù);
19、接收各個對應(yīng)客戶端的聚類中端側(cè)節(jié)點的中間數(shù)據(jù),并通過后半網(wǎng)絡(luò)的邊緣聚合服務(wù)器訓(xùn)練更新后半網(wǎng)絡(luò)模型;
20、獲取聚類中每個端側(cè)節(jié)點分割層更新的梯度信息,并將各自更新的后半網(wǎng)絡(luò)模型以及對應(yīng)聚類的中間數(shù)據(jù)傳輸至云端服務(wù)器;
21、基于更新的梯度信息完成前半網(wǎng)絡(luò)模型的反向傳播以及模型更新;
22、利用邊緣聚合服務(wù)器獲取前半網(wǎng)絡(luò)模型的模型參數(shù),并對模型參數(shù)進行加權(quán)平均以獲得新的前半網(wǎng)絡(luò)模型的全局模型。
23、在本發(fā)明的一個實施例中,在得到后半網(wǎng)絡(luò)模型的邊緣側(cè)全局模型之后,所述方法,還包括:
24、對云端服務(wù)器上的云端模型進行預(yù)測得到第一預(yù)測標(biāo)簽,并利用全部的中間數(shù)據(jù)、樣本硬標(biāo)簽和第一預(yù)測標(biāo)簽訓(xùn)練邊緣側(cè)全局模型;
25、對更新后的邊緣側(cè)全局模型進行預(yù)測得到第二預(yù)測標(biāo)簽,并基于所述第二預(yù)測標(biāo)簽更新云端模型,以進行互蒸餾;
26、基于訓(xùn)練更新完成后的邊緣側(cè)全局模型進行下一訓(xùn)練輪次的聯(lián)邦學(xué)習(xí)訓(xùn)練。
27、在本發(fā)明的一個實施例中,所述邊緣服務(wù)器,還包括邊緣節(jié)點服務(wù)器,所述方法,還包括:
28、計算客戶端在邊緣網(wǎng)絡(luò)中到邊緣節(jié)點服務(wù)器傳輸需要的第一代價;
29、計算聚類的計算任務(wù)卸載到邊緣節(jié)點服務(wù)器的第二代價;
30、根據(jù)所述第一代價和所述第二代價,以基于決策信息的卸載策略求解聚類與邊緣節(jié)點服務(wù)器的最優(yōu)匹配對。
31、為達上述目的,本發(fā)明另一方面提出一種基于算力網(wǎng)絡(luò)的云邊端協(xié)同聯(lián)邦學(xué)習(xí)系統(tǒng),包括:
32、網(wǎng)絡(luò)模型分割模塊,用于在每個訓(xùn)練輪次隨機抽樣持有數(shù)據(jù)的客戶端協(xié)同參與聯(lián)邦學(xué)習(xí)訓(xùn)練,并將用于訓(xùn)練的初始全局模型進行分割至少得到前半網(wǎng)絡(luò)模型和后半網(wǎng)絡(luò)模型;
33、客戶端聚類模塊,用于基于客戶端的數(shù)據(jù)分布信息和kl散度值得到?jīng)Q策信息,并對客戶端進行聚類得到聚類結(jié)果;
34、決策卸載模塊,用于根據(jù)網(wǎng)絡(luò)狀態(tài)和所述聚類結(jié)果制定所述決策信息的卸載策略,以將聚類的客戶端集合的所述后半網(wǎng)絡(luò)模型的訓(xùn)練任務(wù)卸載到服務(wù)器;
35、半網(wǎng)絡(luò)模型更新模塊,用于利用本地數(shù)據(jù)訓(xùn)練所述前半網(wǎng)絡(luò)模型,并利用前半網(wǎng)絡(luò)的邊緣聚合服務(wù)器更新前半網(wǎng)絡(luò)模型參數(shù)得到前半網(wǎng)絡(luò)模型的全局模型;以及后半網(wǎng)絡(luò)的邊緣聚合服務(wù)器利用對應(yīng)的聚類中端側(cè)節(jié)點的中間數(shù)據(jù)更新后半網(wǎng)絡(luò)模型的參數(shù);
36、參數(shù)聚合與蒸餾模塊,用于對更新后的后半網(wǎng)絡(luò)模型的參數(shù)執(zhí)行聚合操作以及與對應(yīng)的云端模型進行互蒸餾,得到后半網(wǎng)絡(luò)模型的邊緣側(cè)全局模型。
37、本發(fā)明實施例的基于算力網(wǎng)絡(luò)的云邊端協(xié)同聯(lián)邦學(xué)習(xí)方法和系統(tǒng),利用分割學(xué)習(xí)將訓(xùn)練的網(wǎng)絡(luò)模型分割,端側(cè)用戶負(fù)責(zé)前半網(wǎng)絡(luò)訓(xùn)練,后半部分基于算力網(wǎng)絡(luò)實時的卸載決策,交由邊緣側(cè)第三方計算節(jié)點繼續(xù)訓(xùn)練任務(wù),初步完成全局訓(xùn)練。在云端,搭建深度的網(wǎng)絡(luò)與邊端側(cè)全局模型互蒸餾,學(xué)習(xí)知識,提升模型性能,相同性能下可以減小模型復(fù)雜度。
38、本發(fā)明附加的方面和優(yōu)點將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發(fā)明的實踐了解到。