新聞中心
去哪兒網(wǎng)基于Kubernetes/Ceph的GPU云平臺(tái)實(shí)踐
原創(chuàng)
作者:王雪燕 2017-11-28 15:16:47
云計(jì)算 由51CTO主辦的第十六期以“Tech Neo”為主題的技術(shù)沙龍邀請(qǐng)了來(lái)自去哪兒網(wǎng)的DevOps工程師葉璐老師。她給大家?guī)?lái)了關(guān)于深度學(xué)習(xí)的興起原因、去哪兒網(wǎng)的深度學(xué)習(xí)應(yīng)用實(shí)踐以及構(gòu)建GPU云應(yīng)對(duì)資源使用問(wèn)題的分享。

創(chuàng)新互聯(lián)是專業(yè)的內(nèi)江網(wǎng)站建設(shè)公司,內(nèi)江接單;提供網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行內(nèi)江網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!
【51CTO.com原創(chuàng)稿件】今年,深度學(xué)習(xí)領(lǐng)域最火熱的消息莫過(guò)于:AIphaGo 0:3打敗柯潔、AIphaGo Zero在沒(méi)有人類干預(yù)的情況下,通過(guò)自我學(xué)習(xí)及少許訓(xùn)練***擊敗AIphaGo。由此,我們可以看到深度學(xué)習(xí)發(fā)展之迅速。深度學(xué)習(xí)是機(jī)器學(xué)習(xí)的一個(gè)領(lǐng)域,其概念于上世紀(jì)60年代被提出,但當(dāng)時(shí)并沒(méi)有掀起太大波瀾。那么,為什么在當(dāng)下又重新走近大眾的視野呢?
近日,由51CTO主辦的第十六期以“Tech Neo”為主題的技術(shù)沙龍?jiān)诒本┡e行,此次活動(dòng)邀請(qǐng)了來(lái)自去哪兒網(wǎng)的DevOps工程師葉璐老師。她給大家?guī)?lái)了關(guān)于深度學(xué)習(xí)的興起原因、去哪兒網(wǎng)的深度學(xué)習(xí)應(yīng)用實(shí)踐以及構(gòu)建GPU云應(yīng)對(duì)資源使用問(wèn)題的分享。
深度學(xué)習(xí)興起的原因
當(dāng)下,深度學(xué)習(xí)從大學(xué)實(shí)驗(yàn)室和***IT公司走向大眾,諸多公司通過(guò)深度學(xué)習(xí)技術(shù)解決實(shí)際中遇到的問(wèn)題。深度學(xué)習(xí)主要的特點(diǎn)是具有多隱層,隨著隱層不斷疊加,效果隨之不斷的提升。
深度學(xué)習(xí)興起的原因,主要有以下三點(diǎn):
- 和以前相比,數(shù)據(jù)獲取更便捷、數(shù)據(jù)量也是呈指數(shù)倍的增加。
- GPU等計(jì)算資源成本降低,以前則是非常***且難獲取。
- 操作簡(jiǎn)單的開(kāi)源工具的普及。
GPU是深度學(xué)習(xí)的加速器,因?yàn)樵贕PU出現(xiàn)之前,一個(gè)實(shí)驗(yàn)可能需要等幾個(gè)月,或者跑一天才能發(fā)現(xiàn)某個(gè)試驗(yàn)的參數(shù)不好?,F(xiàn)在,優(yōu)秀的GPU可以在深度學(xué)習(xí)網(wǎng)絡(luò)上進(jìn)行快速迭代,幾天就能跑完之前幾個(gè)月的試驗(yàn),或者幾小時(shí)代替之前的幾天,幾分鐘代替之前的幾小時(shí)。
去哪兒網(wǎng)在深度學(xué)習(xí)方面的應(yīng)用實(shí)踐
去哪兒網(wǎng)在深度學(xué)習(xí)方面的應(yīng)用有很多, 如機(jī)票驗(yàn)證碼識(shí)別、看圖寫(xiě)詩(shī)-小詩(shī)機(jī)、智能客服、“拿去花”用戶信用評(píng)級(jí)、根據(jù)歷史訪問(wèn)記錄推薦酒店、計(jì)算不同酒店房型的價(jià)格系數(shù)、酒店推薦的模型等等。其中智能客服、“拿去花”用戶信用評(píng)級(jí)、酒店推薦是去哪兒網(wǎng)深度學(xué)習(xí)的經(jīng)典實(shí)踐案例。
應(yīng)用實(shí)踐過(guò)程中深度學(xué)習(xí)存在一定的共通性,就是輸入數(shù)據(jù)并設(shè)置算法,讓計(jì)算機(jī)對(duì)我們的世界進(jìn)行充分建模,從而達(dá)到我們所說(shuō)的“智能”。讓機(jī)器和人腦一樣,能辨別好壞,幫助風(fēng)控工程師進(jìn)行風(fēng)險(xiǎn)分析;能迎合喜好,給用戶推薦更合適的酒店。而深度學(xué)習(xí),讓模型變得更加可靠,在數(shù)據(jù)變化的情況下,模型持續(xù)可用。
以前去哪兒網(wǎng)的GPU資源是多個(gè)團(tuán)隊(duì)共享的使用方式,常遇到某位同事非常憤怒的說(shuō):“誰(shuí)把老子跑了三天的任務(wù)殺了!”這樣的情況。
GPU的使用資源問(wèn)題,還有如下幾點(diǎn):
- 環(huán)境無(wú)隔離。
- 采購(gòu)周期長(zhǎng)。
- 資源利用率低。
- 各種工具的環(huán)境部署成本高。
那么,要如何應(yīng)對(duì)GPU使用資源的一系列問(wèn)題呢?去哪兒網(wǎng)的解決方案是構(gòu)建GPU云,降低資源使用門(mén)檻,提升資源利用率。
為什么選擇Tensorflow?GPU云***期的目標(biāo)是GPU資源云化。業(yè)務(wù)線的同學(xué)能夠快捷定制機(jī)器學(xué)習(xí)應(yīng)用,秒建秒刪,一鍵釋放GPU資源,建立統(tǒng)一GPU資源申請(qǐng)和管理等入口到Portal,降低業(yè)務(wù)線同學(xué)的接入和學(xué)習(xí)成本。做到環(huán)境隔離的同時(shí)又能保證訓(xùn)練數(shù)據(jù)在分布式環(huán)境下的持久化和可靠性,以及支持Tensorflow全工具鏈。
為什么是Tensorflow呢?構(gòu)建GPU云初期之所以選擇Tensorflow,是因?yàn)殚_(kāi)源且使用的人相對(duì)比較多,社區(qū)的活躍度也相對(duì)較高。并且在中后期,Tensorflow也會(huì)支持其他的用于數(shù)值計(jì)算的軟件庫(kù)。
如下圖,是Tensorflow與其他社區(qū)Issue和Pull Request量對(duì)比:
如下圖,是Tensorflow的一段Mnist代碼:
這段Mnist代碼總共只有149行,沒(méi)有多余的代碼,且還包含一些注釋。短短的代碼,定義了兩個(gè)隱層,并構(gòu)建了一個(gè)softmax回歸模型,工程師不用再擔(dān)心底層的實(shí)現(xiàn),更專注于模型本身。
如下圖,是Tensorboard部分截圖:
Tensorboard是Tensorflow全工具鏈之一,研發(fā)人員在可視化的情況下,既可以對(duì)模型進(jìn)行調(diào)優(yōu),也可以直觀方便地看到模型的訓(xùn)練效果。
去哪兒網(wǎng)的GPU云平臺(tái)架構(gòu)簡(jiǎn)述
如下圖,是機(jī)器學(xué)習(xí)應(yīng)用部署的示意圖,大家可以直觀的看到兩臺(tái)機(jī)器Server1與Server2。
在OPS Namespace下,部署了一個(gè)分布式的Tensorflow集群,這個(gè)Tensorflow集群可以跨兩臺(tái)機(jī)器。Fight Namespace下是一個(gè)機(jī)票的應(yīng)用,選擇的是單機(jī)部署。
如下圖,是一個(gè)GPU實(shí)例初始化的過(guò)程:
研發(fā)人員可以自主選擇符合的模型來(lái)定義應(yīng)用,生成一個(gè)面向K8S的資源定義文件。去哪兒網(wǎng)在資源類型上,選擇的是Deployment,剩下的調(diào)度和和應(yīng)用初始化工作根據(jù)這個(gè)文件完成。
對(duì)于機(jī)器學(xué)習(xí)來(lái)說(shuō),數(shù)據(jù)存在哪里很關(guān)鍵。去哪兒網(wǎng)提供給開(kāi)發(fā)者的是同時(shí)支持Ceph、塊存儲(chǔ)和對(duì)象存儲(chǔ),這樣不僅提高了數(shù)據(jù)使用的靈活性,同時(shí)還能支持在線擴(kuò)容。
去哪兒網(wǎng)為用戶提供的是Jupyter,選擇Jupyter是因?yàn)閷?duì)于算法工程師來(lái)說(shuō),容易上手。
如下圖,是Jupyter使用界面:
Jupyter Notebook提供了網(wǎng)頁(yè)版的代碼編寫(xiě)運(yùn)行平臺(tái),背后由Python ikernel支撐,可以選擇不同的Python版本,而且同一個(gè)應(yīng)用的負(fù)責(zé)人能協(xié)同編輯。
目前GPU云一期已經(jīng)完成,并且正在公測(cè)中,使用前后的對(duì)比結(jié)果如下:
- 環(huán)境秒建秒刪、環(huán)境隔離,這個(gè)特性給開(kāi)發(fā)同學(xué)提供了極大的便利。
- 在對(duì)接Ceph后,數(shù)據(jù)的可用性和可靠性大大提升,也不用擔(dān)心因?yàn)楦鼡Q機(jī)器帶來(lái)的訓(xùn)練數(shù)據(jù)遷移、丟失。
- 權(quán)限部分,Spectrum接入了去哪兒網(wǎng)的應(yīng)用管理中心Portal,管理模式和傳統(tǒng)應(yīng)用沒(méi)有差別,降低了新同學(xué)的接入門(mén)檻。
- 提高資源使用,這里需要提醒的是,如果不用,要及時(shí)停止GPU環(huán)境,減少耗費(fèi),或把資源讓給另一個(gè)環(huán)境。這個(gè)動(dòng)作可以通過(guò)界面上的簡(jiǎn)單的disable application一個(gè)按鈕就可以做到。
未來(lái)展望
GPU云的基礎(chǔ)環(huán)境固化,讓開(kāi)發(fā)同學(xué)免受環(huán)境安裝之苦是***期的目標(biāo)。現(xiàn)在Spectrum第二期也在開(kāi)發(fā)中,開(kāi)發(fā)工程師可以自定義環(huán)境模板,這樣不僅僅提供了更高的環(huán)境定制自由度;同時(shí)Tensorflow serving的上線,為機(jī)器學(xué)習(xí)真正落地提供了更完整的pipeline。其他的優(yōu)化包括,完善上下游的數(shù)據(jù)獲取管道,預(yù)處理流程優(yōu)化,Jupyter插件系統(tǒng)集成等等。
【嘉賓簡(jiǎn)介】
葉璐,去哪兒網(wǎng)DevOps工程師,機(jī)器學(xué)習(xí)云平臺(tái)負(fù)責(zé)人。主要工作涉及Qunar私有云平臺(tái)建設(shè)、運(yùn)維、容器云落地等方面。
【51CTO原創(chuàng)稿件,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文作者和出處為51CTO.com】
文章名稱:去哪兒網(wǎng)基于Kubernetes/Ceph的GPU云平臺(tái)實(shí)踐
網(wǎng)站鏈接:http://m.fisionsoft.com.cn/article/dhihogj.html


咨詢
建站咨詢
