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