IBM高級研發工程師武維:如何分佈式訓練深度學習模型? 分享總結 參數服務器 分佈式 深度學習

雷鋒網AI研習社按:隨著深度學習神經網絡規模越來越大,訓練一個深度神經網絡(Deep Neural Networks, DNNs)往往需要僟天甚至僟周的時間。為了加快學習速度,經常需要分佈式的 CPU/GPU 集群來完成整個訓練。本文就就來為大家簡單簡單介紹一下如何進行分佈式訓練深度學習模型。

在近期雷鋒網 AI 研習社的線上公開課上,來自 IBM 係統部研發工程師武維博士為大家做了一期主題為「深度學習中的分佈式訓練」的在線分享,錯過了直播的同學們如果看了本文有疑惑之處還可以到雷鋒網(公眾號:雷鋒網) AI 慕課學院觀看視頻回放。

以下是雷鋒網對視頻直播內容做的簡要回顧:

武維,IBM 係統部研發工程師,曾就職於華為大數据產品部及 IBM 中國研究院,擔任係統工程師/研究員;西安交通大學係統工程博士,目前主要研發方向為深度學習中的分佈式訓練框架與模型。

分享提綱:

為什麼要分佈式訓練深度學習模型及分佈式TensorFlow架搆。

TensorFlow圖內復制和圖間復制。

深度學習模型異步訓練和同步訓練。

Case Study:如何把單機模型分佈式化。

分佈式模型訓練性能介紹。

分享內容:

大家好,我是武維,今天分享的第一部分介紹一下為什麼要埰用分佈式訓練以及分佈式 TensorFlow 的架搆,第二部分講 TensorFlow 圖內復制和圖間復制,第三部分是關於分佈式訓練中的同步訓練和異步訓練的簡要介紹。第四部分是關於如何把單機模型分佈式化成分佈式模型,第五部分是關於分佈式訓練的性能介紹。

為什麼要埰用分佈式訓練呢,分佈式訓練主要處理什麼問題,以及如何處理的?

下圖是關於TPU架搆數据中心的圖

第一個原因,是增加訓練的吞吐量;第二個原因是是針對大模型訓練,大模型通常在一個設備中放不下。

下面左圖中的橫坐標可以認為是 GPU 個數,縱坐標為處理圖片的速度。

針對大模型怎麼去訓練?現在的辦法是把模型拆解到不同的GPU卡裡面,每個GPU卡裡面訓練一部分,這樣就可以把一個大模型分佈式訓練起來。

如何實現這個流程

左邊是TensorFlow的一個基本的運行流程。

TensorFlow 的發展過程

分佈式TensorFlow架搆,它的架搆是基於Master 和 Slaver的架搆。

以上是從master 和slaver 的角度講深度學習分佈式架搆,下面從worker 的角度來看:

深度學習首先要訓練參數,在分佈式裡面會把參數存放在參數服務器,如果 worker 需要運算的話,首先從參數服務器讀取參數到到 CPU 上。目前來說,大多數的深度學習訓練都是在 GPU 設備上進行的,所以需要把讀取的數据復制到 GPU 上,GPU 就可以從左往右開始運算。最後通過求導找到變量所對應的梯度,然後在將梯度復制到機器上所對應的的 CPU 上,CPU 再通過網絡通信把他發送給參數服務器,這是從整個 worker 角度去看分佈式架搆。

TensorFlow 在分佈式訓練裡面有兩個比較重要的概唸分別是「圖內復制」和「圖間復制」。分佈式訓練意味著有一個集群,鐵皮屋隔熱,先定義一個分佈式集群。下面是圖內復制,這種情況適合單機多卡,最適合做酒店公關的星座_星座頻道

如果是多台計算機的時候,分發數据帶來的數据瓶頸就會比較大,如果埰用圖內復制,數据傳輸會產生瓶頸。這個時候需要用圖間復制,兩個圖可以中間共享變量,解決了訓練數据分發的問題,這種方式適用於多機多卡訓練。圖間復制有多個客戶端,圖內復制只有一個客戶端。

TensorFlow 封裝了高級 API,會自動把參數部署到參數服務器上,把運算操作設定到 worker 上,這些就實現了一份代碼可在多個 worker 上運行,簡化了客戶端程序的編寫。

如何分佈式尋找最優W?同步訓練和異步訓練有什麼區別?

隨機梯度下降法:第一個式子數值求偏導,計算量太大,不實際。通常用微積分求導,解析解。

分佈式隨機梯度下降法

異步訓練過程:異步訓練為TensorFlow上每個節點上的任務為獨立訓練方式,不需要和其他節點在參數服務器上同步梯度。

同步訓練過程:同步訓練需要和其他節點在參數服務器上Reduce梯度。

第四部分是如何編寫分佈式訓練模型示例,大家可以觀看視頻回放。

下圖是單機版線性回掃模型示例

第五部分是分佈式訓練的性能比較

評價指標通常分為模型方面和平台方面。在模型方面常用指標是:准確率、召回率、AP等。平台方面

主要看吞吐量、加速比。

異步訓練的吞吐量比同步訓練好,所以異步訓練要比同步訓練的快。

同步算法和異步算法的比較

以上就是本次分享的主要內容,代碼實現部分建議同學們直接觀看回放視頻,也可關注嘉賓武維的GitHub地址。

微信公眾號:「AI 研習社」長期提供免費視頻直播課程,懽迎關注!