[發明專利]一種基于NDN的P2P分布式機器學習訓練系統數據傳輸方法有效
| 申請號: | 202011581614.5 | 申請日: | 2020-12-28 |
| 公開(公告)號: | CN112579301B | 公開(公告)日: | 2022-07-01 |
| 發明(設計)人: | 于珊平;歐陽巧琳;胡晗;安建平 | 申請(專利權)人: | 北京理工大學 |
| 主分類號: | G06F9/50 | 分類號: | G06F9/50;G06N20/20 |
| 代理公司: | 北京正陽理工知識產權代理事務所(普通合伙) 11639 | 代理人: | 張利萍 |
| 地址: | 100081 *** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 ndn p2p 分布式 機器 學習 訓練 系統 數據傳輸 方法 | ||
1.基于NDN的P2P分布式機器學習訓練系統數據傳輸方法,其特征在于,包括以下步驟:
步驟1:由網絡中的路由器建立持久PIT表結構;
PIT指Pending Interest Table,待定請求表;
所述持久PIT表是以數據名稱為鍵、以上游接口為值的表;
步驟2:每個GPU發送分發興趣包及其余GPU回復分發確認數據包;
步驟2.1:每個GPU為其余每個GPU構造一個以“/*插入*/其余GPU名稱/訓練名稱”為名稱的分發興趣包,以便從其余GPU獲取其計算得到的參數梯度及損失的推送;
步驟2.2:GPU之間的路由器接收到分發興趣包,識別名稱前綴“/*插入*/”,提取出名稱中的“/其余GPU名稱/訓練名稱”,檢查其持久PIT表中是否存在以“/其余GPU名稱/訓練名稱”為鍵的表項,若存在,執行步驟2.2.1,否則,執行步驟2.2.2;
步驟2.2.1:路由器在以“/其余GPU名稱/訓練名稱”為鍵的持久PIT表項的對應值中添加“分發興趣包的輸入接口”;
步驟2.2.2:路由器在其持久PIT中添加以“/其余GPU名稱/訓練名稱”為鍵,以“分發興趣包的輸入接口”為值的表項;
步驟2.3:當每個“其余GPU”收到分發興趣包時,以“/*分發*/該‘其余GPU’名稱/訓練名稱”為名稱,構建并發送內容為“空”的分發確認數據包,以通知發送分發興趣包的GPU其發送的分發興趣包已被接收;
步驟2.4:GPU之間的路由器接收到分發確認數據包,識別名稱前綴“/*分發*/”,提取出數據包中的“/其余GPU名稱/訓練名稱”,與持久PIT表中的同名表項匹配,并根據表項中記錄的接口將分發確認數據包轉發至所有發送了同名分發興趣包的GPU;
步驟3:每個GPU發送分發數據包并選擇性啟動試探計時器;
步驟3.1:每個GPU在完成計算時,以“計算得到的參數梯度與損失函數的值”為內容,以“/*分發*/本GPU名稱/訓練名稱/參數版本”為名稱構建并發送分發數據包以將參數梯度發送給其余所有GPU;
步驟3.2:GPU之間的路由器接收到分發數據包,識別名稱前綴“/*分發*/”,提取出數據包中的“/‘本GPU’名稱/訓練名稱/參數版本”,與持久PIT表項“/‘本GPU’名稱/訓練名稱”匹配,并根據表項中記錄的接口將分發數據包轉發至發送了同名分發興趣包的GPU;
步驟3.3:若本次訓練為同步訓練,執行步驟3.3.1,否則,執行步驟3.4;
步驟3.3.1:當GPU發送分發數據包后,記錄發送的分發數據包名稱中的“參數版本”,并根據以往“發送分發數據包至收到其余每個GPU發送的分發數據包的時間差”的經驗,為其余每個GPU設置一個試探計時器Ti的時間并開始計時,當試探計時器到期時,執行步驟5;
其中,n為GPU的總數,1≤i≤n-1;試探計時器T1至Tn用于在分發數據包丟包時允許GPU主動獲取其他GPU更新后的參數;
步驟3.4:收到分發數據包的GPU,若設置了試探計時器,則將針對“發送了分發數據包的GPU”的試探計時器銷毀;
步驟3.5:重復步驟2和3,直至GPU計算出的總體損失小于一定值;其中,總體損失的值由所有GPU計算得到的損失共同求得;
步驟4:每個GPU發送結束興趣包及其余GPU回復結束數據包;
步驟4.1:在GPU計算得到的總體損失的值小于訓練所要求的值時,GPU為其余每個GPU構造一個以“/*刪除*/其余GPU名稱/訓練名稱”為名稱的結束興趣包,以便刪除訓練中使用的持久PIT表項;
步驟4.2:GPU之間的路由器刪除持久PIT表中的表項,并在PIT中添加同名表項;具體如下:
步驟4.2.1:GPU之間的路由器接收到結束興趣包,識別名稱前綴“/*刪除*/”,提取出名稱中的“‘其余GPU’名稱/訓練名稱”;
步驟4.2.2:路由器檢查持久PIT中是否有以“/‘其余GPU’名稱/訓練名稱”為鍵的表項,如果有,則路由器刪除以“/‘其余GPU’名稱/訓練名稱”為鍵的表項,否則,路由器檢查PIT中是否有以“/‘其余GPU’名稱/訓練名稱”為鍵的表項,如果有,則路由器在以“/‘其余GPU’名稱/訓練名稱”為鍵的PIT表項中添加該興趣包的輸入接口,否則,路由器在其PIT中添加以“/‘其余GPU’名稱/訓練名稱”為鍵,以興趣包的輸入接口為值的表項;
步驟4.3:當“其余CPU”在收到結束興趣包時,以“/本‘其余CPU’名稱/訓練名稱”為名稱構建并發送內容為“空”的結束確認數據包,以通知發送結束興趣包的GPU其與本GPU之間用于本次訓練的持久PIT表項已被清除,結束本步驟;
步驟5:當試探計時器到期時GPU發送試探興趣包;
步驟5.1:當試探計時器Ti到期時,GPU以“/訓練名稱/試探計時器Ti對應的GPU的名稱/最新發送的分發數據包的參數版本”為名稱構建試探興趣包,以嘗試獲得新一輪的參數,若試探興趣包沒有被網內緩存所回復,而被Ti對應的GPU所接收,執行步驟5.2,否則,執行步驟3;
步驟5.2:試探計時器Ti對應的GPU在收到試探興趣包時,判斷試探興趣包請求的參數是否計算完畢,若計算完畢,執行步驟5.2.1,否則,執行步驟5.2.2;
步驟5.2.1:試探計時器Ti對應的GPU以“試探興趣包的名稱”為名稱,以“試探興趣包所請求版本的參數梯度及損失”為內容構建并發送試探數據包,繼續執行步驟5;
步驟5.2.2:試探計時器Ti對應的GPU以“/*分發*/本GPU名稱/訓練名稱/”為名稱,以“試探興趣包所請求的參數版本未計算完成”為內容發送試探數據包,繼續執行步驟5.3;
步驟5.3:GPU收到試探數據包,重置試探計時器,并開始計時。
2.如權利要求1所述的一種基于NDN的P2P分布式機器學習訓練系統數據傳輸方法,其特征在于,步驟3.3.1中,T1至Tn的取值范圍均為1至3.6×106ms。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京理工大學,未經北京理工大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011581614.5/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種復合式空氣熱泵
- 下一篇:一種清咽止嗽散及其制備工藝和使用方法





