【嵌牛導讀】:近兩年人工智能技術(shù)發(fā)展迅速壹甥,以Google開源的TensorFlow為代表的各種深度學習框架層出不窮空幻。為了方便算法工程師使用各類深度學習技術(shù)熙兔,減少繁雜的諸如運行環(huán)境部署運維等工作弛说,提升GPU等硬件資源利用率挽懦,節(jié)省硬件投入成本,奇虎360系統(tǒng)部大數(shù)據(jù)團隊與人工智能研究院聯(lián)合開發(fā)了深度學習調(diào)度平臺——XLearning木人。
【嵌牛鼻子】:XLearning
【嵌牛提問】:此深度學習調(diào)度平臺特點是什么巾兆?
【嵌牛正文】:
XLearning平臺將大數(shù)據(jù)與深度學習相融合州弟,基于Hadoop Yarn完成了對TensorFlow坐慰、MXNet哼拔、Caffe胧奔、Theano视哑、PyTorch甚带、Keras悲关、XGBoost等常用深度學習框架的集成毙芜,是典型的“AI on Hadoop”的實現(xiàn)蒲列。XLearning從今年(2017)4月份正式開發(fā)上線運行窒朋,經(jīng)多次版本迭代更新,為各學習框架的使用者提供了統(tǒng)一蝗岖、穩(wěn)定的調(diào)度平臺侥猩,實現(xiàn)了資源共享,極大的提高了資源利用率抵赢,并且具有良好的擴展性和兼容性欺劳。目前已經(jīng)在公司搜索、人工智能研究院铅鲤、商業(yè)化划提、數(shù)據(jù)中心等業(yè)務(wù)部門廣泛使用。
XLearning架構(gòu)
Client:XLearning客戶端邢享,負責啟動作業(yè)及獲取作業(yè)執(zhí)行狀態(tài)鹏往;?
ApplicationMaster(AM):負責輸入數(shù)據(jù)分片、啟動及管理Container骇塘、執(zhí)行日志保存等伊履;? ?
Container:作業(yè)的實際執(zhí)行者,負責啟動Worker或PS(Parameter Server)進程款违,監(jiān)控并向AM匯報進程狀態(tài)唐瀑,上傳作業(yè)的輸出等。對于TensorFlow類型作業(yè)奠货,還負責啟動TensorBoard服務(wù)介褥。
XLearning功能特性
XLearning雖然架構(gòu)簡潔,但具有豐富的功能方便用戶進行模型訓練,并依托于Yarn提供有作業(yè)資源的統(tǒng)一管理柔滔。
支持多種深度學習框架
XLearning支持TensorFlow溢陪、MXNet分布式和單機模式,支持所有的單機模式的深度學習框架睛廊,如Caffe形真、Theano、PyTorch等超全。對于同一個深度學習框架支持多版本和自定義版本咆霜,滿足用戶個性化需求,不受限于集群機器上各學習框架的安裝版本嘶朱。
基于HDFS的統(tǒng)一數(shù)據(jù)管理
XLearning提供多種模式用于數(shù)據(jù)的輸入蛾坯、輸出,包括數(shù)據(jù)的流式讀寫疏遏、直接HDFS讀寫等脉课,可根據(jù)作業(yè)處理的數(shù)據(jù)量與集群機器硬盤容量,視情況決定所采用的讀寫方式财异。
可視化界面
為方便用戶查看作業(yè)信息倘零,XLearning提供可視化界面用于展示作業(yè)執(zhí)行進度和輸出日志等內(nèi)容。作業(yè)執(zhí)行完畢后戳寸,亦可查看日志內(nèi)容呈驶,便于分析訓練過程進展。對于TensorFlow類型作業(yè)疫鹊,支持TensorBoard服務(wù)袖瞻。作業(yè)運行界面大致分為三部分(如下圖所示):?
All Containers:顯示當前作業(yè)所含Container列表及各Container對應(yīng)信息,如Contianer ID订晌、所在機器(Container Host)虏辫、所屬類型(Container Role)、當前執(zhí)行狀態(tài)(Container Status)锈拨、開始時間(Start Time)、結(jié)束時間(Finish Time)羹唠、執(zhí)行進度(Reporter Progress)奕枢;
View TensorBoard:當作業(yè)類型為TensorFlow時,可點擊該鏈接直接跳轉(zhuǎn)至TensorBoard頁面佩微;?
Save Model:用戶可在作業(yè)執(zhí)行過程中缝彬,可以將當前訓練模型的輸出結(jié)果上傳至HDFS,并顯示目前已上傳的模型列表哺眯。
原生代碼兼容
XLearning支持TensorFlow分布式模式的ClusterSpec自動分配構(gòu)建谷浅,單機模式和其他深度學習框架代碼不用做任何修改即可遷移到XLearning上,便于用戶快速使用。
Checkpoint功能
利用深度學習框架本身的Checkpoint機制和直接讀寫HDFS數(shù)據(jù)功能一疯,XLearning方便用戶實現(xiàn)訓練恢復繼續(xù)執(zhí)行撼玄。
XLearning開源版本環(huán)境依賴簡單,可直接運行于社區(qū)Hadoop版本墩邀,使用方便掌猛,入門學習成本極低。公司的Yarn版本是我們在社區(qū)版本上做了不少增強眉睹,比如支持GPU的資源調(diào)度荔茬、GPU通信親和性的感知、DockerContainer支持等竹海。依賴于這些特性公司在用的版本多出了GPU資源調(diào)度支持慕蔚、作業(yè)Docker化、臨時GPU虛擬機斋配、Container Metrics可視化圖表展示等功能坊萝。這些功能我們后續(xù)會通過提供Yarn Patch或者開源自用Yarn版本來分享給大家,也歡迎大家隨時跟我們溝通许起。