XLearning - 深度学习调度平台
XLearning - 深度學習調度平臺
軟件簡介
XLearning **** 是奇虎 360 開源的一款支持多種機器學習、深度學習框架調度系統。基于 Hadoop Yarn 完成了對TensorFlow、MXNet、Caffe、Theano、PyTorch、Keras、XGBoost 等常用框架的集成,同時具備良好的擴展性和兼容性。
架構設計
XLearning 系統包括三種組件:
? Client :XLearning 客戶端,負責啟動作業及獲取作業執行狀態;
? ApplicationMaster(AM) :負責輸入數據分片、啟動及管理 Container、執行日志保存等;
? Container :作業的實際執行者,負責啟動 Worker 或 PS(Parameter Server)進程,監控并向 AM 匯報進程狀態,上傳作業的輸出等。對于 TensorFlow 類型作業,還負責啟動 TensorBoard 服務。
功能特性
1 支持多種深度學習框架
支持 TensorFlow、MXNet 分布式和單機模式,支持所有的單機模式的深度學習框架,如 Caffe、Theano、PyTorch等。對于同一個深度學習框架支持多版本和自定義版本。
2 基于 HDFS 的統一數據管理
訓練數據和模型結果統一采用 HDFS 進行存儲,用戶可通過 --input-strategy 或 xlearning.input.strategy,指定輸入數據所采用的讀取方式。目前,XLearning 支持如下三種 HDFS 輸入數據讀取方式:
? Download : AM 根據用戶在提交腳本中所指定的輸入數據參數,遍歷對應 HDFS 路徑下所有文件,以文件為單位將輸入數據平均分配給不同 Worker 。在 Worker 中的執行程序對應進程啟動之前,Worker 會根據對應的文件分配信息將需要讀取的 HDFS 文件下載到本地指定路徑;
? Placeholder : 與 Download 模式不同,Worker 不會直接下載 HDFS 文件到本地指定路徑,而是將所分配的 HDFS 文件列表通過環境變量 INPUT_FILE_LIST 傳給 Worker 中的執行程序對應進程。執行程序從環境變量 os.environ[“INPUT_FILE_LIST”] 中獲取需要處理的文件列表,直接對 HDFS 文件進行讀寫等操作。該模式要求深度學習框架具備讀取 HDFS 文件的功能,或借助第三方模塊庫如 pydoop 等。
? InputFormat : XLearning 集成有 MapReduce 中的 InputFormat 功能。在 AM 中,根據 “split size” 對所提交腳本中所指定的輸入數據進行分片,并均勻的分配給不同 Worker 。在 Worker 中,根據所分配到的分片信息,以用戶指定的 InputFormat 類讀取數據分片,并通過管道將數據傳遞給 Worker 中的執行程序進程。
同輸入數據讀取類似,用戶可通過–output- strategy或xlearning.output.strategy指定輸出結果的保存方式。XLearning 支持如下兩種結果輸出保存模式:
? Upload : 執行程序結束后,Worker 根據提交腳本中輸出數據參數,將本地輸出路徑保存文件上傳至對應 HDFS 路徑。為方便用戶在訓練過程中隨時將本地輸出上傳至 HDFS,XLearning 系統在作業執行 Web 界面提供對輸出模型的當前狀態主動保存的功能,詳情請見“可視化界面”說明部分;
? OutputFormat : XLearning 集成有 MapReduce 中的 OutputFormat 功能。在訓練過程中, Worker 根據指定的 OutputFormat 類,將結果輸出至 HDFS 。
3 可視化界面
作業運行界面大致分為三部分:
? All Containers :顯示當前作業所含 Container 列表及各 Container 對應信息,如 Contianer ID、所在機器(Container Host)、所屬類型(Container Role)、當前執行狀態(Container Status)、開始時間(Start Time)、結束時間(Finish Time)、執行進度(Reporter Progress)。其中,點擊 Container ID 超鏈接可查看該 Container 運行的詳細日志;
? View TensorBoard :當作業類型為 TensorFlow 時,可點擊該鏈接直接跳轉到 TensorBoard 頁面;
? Save Model :當作業提交腳本中“–output”參數不為空時,用戶可通過Save Model按鈕,在作業執行過程中,將本地輸出當前模型訓練結果上傳至 HDFS 。上傳成功后,顯示目前已上傳的模型列表。
如下圖所示:
4 原生框架代碼的兼容性
TensorFlow 分布式模式支持 “ClusterSpec” 自動分配構建,單機模式和其它深度學習框架代碼不用做任何修改即可遷移到 XLearning上。
總結
以上是生活随笔為你收集整理的XLearning - 深度学习调度平台的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用Jittor实现Conditiona
- 下一篇: X-Deep Learning功能模块