分布式深度學習DDL解析


分布式深度學習DDL解析

一.概述

給一個龐大的GPU集群,在實際的應用中,現有的大數據調度器會導致長隊列延遲低的性能,該文章提出了Tiresias,即一個GPU集群的調度器,專門適應分布式深度學習任務,該調度器能夠有效率的調度並且合適地放置深度學習任務以減少他們的任務完成時間(JCT(Job Completion Time)),一個深度學習任務執行的時間通常是不可預知的,該文章提出兩種調度算法,基於局部信息的離散化二維Gittins索引(Discretized Two Dimensional Gittins index)以及離散化二維LAS,對信息不可知並且能夠降低平均的JCT,在實驗中JCT能夠快5.5倍,相比於基於Apache YARN的資源管理

我們關注數據的並行化,數據的並行化是目前流行的分布式深度學習框架的公共部分。

如上圖所示,每一個Worker有一個GPU,運行本地的深度學習模型副本,訓練集被划分成等大小的部分分配給Worker們,所有的任務同步訓練,一個被觀察到的事實是這樣的架構能夠更快的收斂,相比於異步的分布式訓練。

固定時間的迭代
深度學習訓練是按迭代的方式工作的,在每一個輪次,worker要做一次前向和反向的計算,接着worker將本地的結果互相更新深度學習模型,稱之為模型聚集(Model Aggregation),由於每一個迭代的計算時間都是差不多的,故迭代的時間是高度可預測的。

參數服務器架構
參數服務器,簡稱PS(Parameter Server),這種架構是最流行的模型聚集的方法,參數服務器掌握主要的深度學習模型副本,使用從所有worker那里得到的本地結果來更新模型,然后worker在每個迭代的一開始拉回參數來更新本地的模型,一個深度學習任務可以有多個參數服務器。

測試和錯誤的探索
為了得到一個高質量的模型,需要對超參數的各種組合進行探索,稱為超參數調優(hyperparameter-tuning),用戶可以用AutoML等搜索工具來進行高效的探索。在AutoML中,許多帶着不同超參數設置的深度學習任務被生成來訓練相同的任務,其中的大多數由於隨機的誤差或者低質量的提升會被消除。利用一開始測試階段的反饋,AutoML能夠搜索新的參數配置以及產生大量新的任務,當然其中只有少數擁有較高的質量。

深度學習與計算系統結合是現在業界發展的趨勢。Logical Clocks的CEO Jim Dowling講述了分布式深度學習最新技術發展,以及其Hosworks開源平台。

二.分布式深度學習DDL

人工智能的需求在過去十年中顯著增長,很大程度是深度學習的進步。這種增長是由深度(機器)學習技術的進步和利用硬件加速的能力推動的。然而,為了提高預測的質量和使機器學習解決方案在更復雜的應用中可行,需要大量的訓練數據。盡管小型機器學習模型可以用適量的數據進行訓練,但用於訓練較大模型(如神經網絡)的輸入隨着參數的數量呈指數增長。由於對處理訓練數據的需求已經超過了計算機器計算能力的增長,因此需要將機器學習工作量分散到多台機器上,並將集中式系統轉變為分布式系統。這些分布式系統提出了新的挑戰,首先是訓練過程的有效並行化和一致模型的創建。

分布式深度學習有很多好處——使用更多的GPU更快地訓練模型,在許多GPU上並行超參數調優,並行消融研究以幫助理解深度神經網絡的行為和性能。隨着Spark 3.0的出現,GPU開始轉向執行器,使用PySpark的分布式深度學習現在成為可能。然而,PySpark給迭代模型開發帶來了挑戰——從開發機器(筆記本電腦)開始,然后重新編寫它們以運行在基於集群的環境中。

本講座概述了分布式深度學習的技術,並提供了可用系統的概述,從而對該領域當前的最新技術進行了廣泛的概述

Jim Dowling是 Logical Clocks公司的首席執行官,也是KTH皇家理工學院的副教授。他是開源的Hopsworks平台的首席架構師,這是一個橫向可擴展的機器學習數據平台。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM