TensorFlow 0.8 發布 – 支持分布式計算
如今,Google已將機器學習運用到了多種產品中,并推出了能夠加速機器學習模型改進與升級的TensorFlow開源系統。今天,Google推出TensorFlow 0.8,以滿足用戶對機器學習模型分布式訓練的需求。
支持分布式計算的TensorFlow 0.8能夠使用戶在自己的機器學習基礎結構中訓練分布式模型。該系統以高性能的gRPC庫為支撐(gRPC庫支持同時對上百臺機器進行訓練),且與最近發布的Google Cloud 機器學習服務互補,使用戶能夠利用Google云平臺,對其TensorFlow模型進行訓練并提供服務。
配合TensorFlow 0.8的發布,Google還在TensorFlow模型庫中發行了一款針對Inception圖像分類神經網絡的分布式訓練程序。利用該分布式訓練程序,Google能夠使用100個GPU,在短短65小時內將Inception網絡的精確度提高至78%。隨著GPU數量的增加,系統的整體處理量可以得到提升,并且能夠更快地計算出精確的結果。因此,即使是小型集群或一組設備也能因分布式TensorFlow受益。
TensorFlow利用100個GPU將Inception訓練的速度提高了56倍。
這個分散式訓練程序還可以讓用戶通過使用如Kubernetes等集群管理系統,擴大訓練規模。此外,用戶在訓練程序后,還可以通過在Kubernetes中使用TensorFlow服務,進行生產部署和推理加速。
除分布式Inception之外,TensorFlow 0.8還包括便于用戶自行定義分布式模型的新型庫。由于集群內的每個程序都能處理各種通用計算,因此TensorFlow的分布式結構大大提高了用戶在定制模型時的靈活性。Google之前推出的DistBelief系統(與后續推出的很多系統類似)主要通過“參數服務器”管理共享模型的參數。該服務器的讀寫界面非常簡單,便于用戶獲取和更新共享的參數數據。
包括參數管理在內,TensorFlow系統中所有的計算,均通過數據流圖表呈現。該系統還可以將這些數據傳輸到不同設備上(如多核CPU、通用GPU和移動處理器等)。為了讓TensorFlow系統便于使用,Google還在系統中包含了Python庫,從而便于編寫那些可在單一程序中運行并且能通過多個副本進行訓練以擴大訓練規模的模型。
該結構便于用戶從運用單進程工作擴大到使用集群工作,還便于用戶使用新結構進行試驗,以完成分布式訓練。Google發現,將有備份功能的同步化SGD用在TensorFlow系統圖表中,能提高圖像模型訓練的準確性,并縮短耗時。
目前,TensorFlow系統中的分布式計算支持尚處于初級階段。Google會繼續通過工程設計以及算法改進,來提高分布式訓練的性能,并將在GitHub中與廣大用戶分享Google所取得的成就。如果沒有下面這些人的幫助,我們不可能做到現在這樣:
- TensorFlow training libraries – Jianmin Chen, Matthieu Devin, Sherry Moore and Sergio Guadarrama
- TensorFlow core – Zhifeng Chen, Manjunath Kudlur and Vijay Vasudevan
- Testing – Shanqing Cai
- Inception model architecture – Christian Szegedy, Sergey Ioffe, Vincent Vanhoucke, Jonathon Shlens and Zbigniew Wojna
- Project management – Amy McDonald Sandjideh
- Engineering leadership – Jeff Dean and Rajat Monga
英文原文:Announcing TensorFlow 0.8 – now with distributed computing support!
譯文轉自:Google推出支持分布式計算的TensorFlow 0.8
發布人:軟件工程師 Derek Murray