iT邦幫忙

2021 iThome 鐵人賽

DAY 18
0
DevOps

中台化轉型系列 第 18

機器學習:模型訓練架構

  • 分享至 

  • xImage
  •  
  • 分散式運算架構
    • MapReduce
      利用函式語言程式設計的概念,將分散運算分為映射(Map)和歸納(Reduce)階段,使用程式介面支援大數據運算任務。
    • Ring-AllReduce
      訊息傳輸介面(Message Passing Interface, MPI)是一種頻寬優化優先的方法,實現了歸納(Reduce)的運算操作(Sum, Avg, Max),符合了模型訓練所需。
      • Initialization:將N個節點當中的梯度切成N個切片。
      • ScatterRecude:向環(Ring)中的下一個節點發送N個切片中的一個。
      • AllGather:透過 N-1 次環形通訊,將每個切片的梯度運算結果果播到每個節點。
      • Merge:每個節點均獲得了所有切片內的梯度運算結果。
    • 參數伺服器(Parameter Server)
      將模型資料儲存在"參數伺服器"上,計算節點通過"參數伺服器"來分享資料。
      • Server Group:
        • Server Manager:分配資源並維護元資料(Metadata)
        • Server Node:提供資料讀寫服務
      • Worker Group:實際運算任務
        • Task Scheduler:任務的分配,以及節點可用性計算
      • Resource Manager:資源分配和可用性保證
    • 資料流
      運算過程被抽象化成資料流傳輸過程,每個資料流中的節點代表資料運算。
  • 平行運算同步機制
    不同的節點中可以平行資料運算,但節點間也需要通訊來完成進度同步及工作協作。
    • 同步平行運算(Bulk Synchronous Parallel, BSP)
      要求所有節點以同樣的速度進行資料處理。
      • Superstep:一次完整的資料運算疊代
        • Processor:每個節點上可以有多個 Processor 做為資料處裡的一個運算單位。
        • Local Computation:Processor 上的運算。
        • Communication:Processor 之間的通訊。
        • Barrier Synchronization:同步屏障(Barrier)
          程序中的每個執行緒進行到此,都必須等待,直到所有執行緒都到達才可以繼續執行下一個階段。
    • 非同步平行運算(Asynchronous Synchronous Parallel, ASP)
      需要配合適當的梯度下降演算法,否則可能會導致運算失敗,影響模型收歛速度。
    • 延遲同步運算(Stale Synchronous Parallel, SSP)
      利用一個 Staleness-Threshold 的閥值來確定同步的時機,閥值可依據運算狀態動態調節,適合節點運算能力較為一致的高叢集同質性環境。
  • 梯度下降演算法
    • 隨機梯度下降(Stochastic Gradient Descent, SGD)
    • 彈性平均梯度下降(Elastic Averaging SGD, EASGD)
    • 非同步隨機梯度下降(Asynchronous Stochastic Gradient Descent, ASGD)
    • 同步隨機梯度下降(Downpour Stochastic Gradient Descent, Downpour SGD)
    • 延遲懲罰
      • AsyncAdaGrad
      • AdaptiveRevision
      • AdaDelay
    • 延遲補償

上一篇
機器學習:深度學習
下一篇
機器學習:資料流圖(Data Flow Graphs)模型訓練架構
系列文
中台化轉型30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言