本篇內(nèi)容主要講解“Kubeflow使用Kubernetes進(jìn)行機(jī)器學(xué)習(xí)的方法”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“Kubeflow使用Kubernetes進(jìn)行機(jī)器學(xué)習(xí)的方法”吧!
創(chuàng)新互聯(lián)公司專注于網(wǎng)站建設(shè)|成都網(wǎng)站維護(hù)|優(yōu)化|托管以及網(wǎng)絡(luò)推廣,積累了大量的網(wǎng)站設(shè)計(jì)與制作經(jīng)驗(yàn),為許多企業(yè)提供了網(wǎng)站定制設(shè)計(jì)服務(wù),案例作品覆蓋成都木制涼亭等行業(yè)。能根據(jù)企業(yè)所處的行業(yè)與銷售的產(chǎn)品,結(jié)合品牌形象的塑造,量身策劃品質(zhì)網(wǎng)站。
女主宣言
Kubeflow是Google推出的基于kubernetes環(huán)境下的機(jī)器學(xué)習(xí)組件,通過(guò)Kubeflow可以實(shí)現(xiàn)對(duì)TFJob等資源類型定義,可以像部署應(yīng)用一樣完成在TFJob分布式訓(xùn)練模型的過(guò)程。本文簡(jiǎn)單的介紹了Kubeflow及其安裝流程。
1
背景簡(jiǎn)介
在介紹Kubeflow之前, 先簡(jiǎn)單介紹下真正的機(jī)器學(xué)習(xí)模型服務(wù)上線都需要經(jīng)歷哪些階段,如下圖所示:
上圖的每種顏色代表對(duì)一個(gè)階段的處理,可以看出一個(gè)機(jī)器學(xué)習(xí)模型上線對(duì)外提供服務(wù)要經(jīng)過(guò):數(shù)據(jù)清洗驗(yàn)證,數(shù)據(jù)集切分, 訓(xùn)練,構(gòu)建驗(yàn)證模型, 大規(guī)模訓(xùn)練,模型導(dǎo)出,模型服務(wù)上線, 日志監(jiān)控等階段。Tensorflow 等計(jì)算框架解決了最核心的部分問(wèn)題,但是距離生產(chǎn)化,產(chǎn)品化,以及企業(yè)級(jí)機(jī)器學(xué)習(xí)項(xiàng)目開(kāi)發(fā),還有一段距離。比如: 數(shù)據(jù)收集, 數(shù)據(jù)清洗, 特征提取, 計(jì)算資源管理, 模型服務(wù), 配置管理, 存儲(chǔ), 監(jiān)控, 日志等等。
2
Kubeflow核心組件簡(jiǎn)介
jupyter 多租戶NoteBook服務(wù)
Tensorflow/[PyTorch] 當(dāng)前主要支持的機(jī)器學(xué)習(xí)引擎
Seldon 提供在Kubernetes上對(duì)機(jī)器學(xué)習(xí)模型的部署
TF-Serving 提供對(duì)Tensorflow模型的在線部署,支持版本控制及無(wú)需停止線上服務(wù),切換模型等功能
Argo 基于Kubernetes的工作流引擎
Ambassador 對(duì)外提供統(tǒng)一服務(wù)的網(wǎng)關(guān)(API Gateway)
Istio 提供微服務(wù)的管理,Telemetry收集
Ksonnet Kubeflow使用ksonnet來(lái)向kubernetes集群部署需要的k8s資源
Kubeflow利用Kubernetes的優(yōu)勢(shì)
原生的資源隔離
集群化自動(dòng)化管理
計(jì)算資源(CPU/GPU)自動(dòng)調(diào)度
對(duì)多種分布式存儲(chǔ)的支持
集成較為成熟的監(jiān)控,告警
將機(jī)器學(xué)習(xí)各個(gè)階段涉及的組件以微服務(wù)的方式進(jìn)行組合并以容器化的方式進(jìn)行部署,提供整個(gè)流程各個(gè)系統(tǒng)的高可用及方便的進(jìn)行擴(kuò)展。
3
Kubeflow 部署安裝
服務(wù)器配置
GPU卡型號(hào): Nvidia-Tesla-K80
網(wǎng)卡: 千兆(注意:在進(jìn)行對(duì)大數(shù)據(jù)集進(jìn)行訓(xùn)練時(shí),千兆的網(wǎng)卡會(huì)是瓶頸)
cephfs服務(wù)配置
網(wǎng)卡:萬(wàn)兆(注意:通過(guò)ceph對(duì)數(shù)據(jù)存儲(chǔ)時(shí),ceph集群需要與Kubernetes同機(jī)房,否則延遲會(huì)對(duì)加載數(shù)據(jù)集的影響非常高)
軟件環(huán)境
kubernetes version: v1.12.2(注意: 需要安裝kube-DNS)
kubeflow version: v0.3.2
jsonnet version: v0.11.2
安裝ksonnet
安裝Kubeflow
當(dāng)上面的所有安裝步驟都正常完成之后,先查看kubeflow在kubernetes集群deployment資源對(duì)象的啟動(dòng)狀態(tài):
通過(guò)狀態(tài)我們發(fā)現(xiàn)現(xiàn)在服務(wù)啟動(dòng)正常,在查看下各個(gè)deployment下各個(gè)服務(wù)的pod的狀態(tài):
現(xiàn)在服務(wù)都是正常的,接下來(lái)讓我們通過(guò)Ambassador來(lái)訪問(wèn)kubeflow部署到k8s集群中的各個(gè)組件。
訪問(wèn)Kubeflow UIs
由于Kubeflow使用Ambassador作為kubeflow統(tǒng)一的對(duì)外網(wǎng)關(guān),其它的內(nèi)部服務(wù)都是通過(guò)使用它來(lái)對(duì)外提供服務(wù)。具體如下圖所示:
接下來(lái)我們使用kubectl的port-forwarding來(lái)對(duì)Ambassador Service進(jìn)行端口轉(zhuǎn)發(fā),在本地對(duì)Kubeflow進(jìn)行訪問(wèn):
通過(guò)瀏覽器進(jìn)行本地localhost:8080訪問(wèn):
通過(guò)Kubeflow UIs可以針對(duì)不同的功能進(jìn)行使用,如使用Jupyter Notebook進(jìn)行對(duì)應(yīng)用的全過(guò)程計(jì)算:開(kāi)發(fā)、文檔編寫(xiě)、運(yùn)行代碼和展示結(jié)果。也可以訪問(wèn)TF-operator來(lái)對(duì)基于Tensorflow的模型進(jìn)行多機(jī)多卡的分布式訓(xùn)練。
4
總結(jié)
現(xiàn)在國(guó)外的Google,微軟,亞馬遜,Intel以及國(guó)內(nèi)的阿里云,華為云等等公司都在發(fā)力Kubeflow,并結(jié)合kubernetes對(duì)多種機(jī)器學(xué)習(xí)引擎進(jìn)行多機(jī)多卡的大規(guī)模訓(xùn)練,這樣可以做到對(duì)GPU資源的整合,并高效的提高GPU資源利用率,及模型訓(xùn)練的效率。并實(shí)現(xiàn)一站式服務(wù),將機(jī)器學(xué)習(xí)服務(wù)上線的整個(gè)workflow都在Kubernetes平臺(tái)實(shí)現(xiàn)。減輕機(jī)器學(xué)習(xí)算法同學(xué)的其它學(xué)習(xí)成本,專心搞算法。這勢(shì)必給Devops的同學(xué)帶來(lái)更高的挑戰(zhàn)。
到此,相信大家對(duì)“Kubeflow使用Kubernetes進(jìn)行機(jī)器學(xué)習(xí)的方法”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!