在【AI工程】02-AI工程(AI Engineering)面面觀中,提到Gartner把AI工程化作為未來(lái)重要戰(zhàn)略技術(shù)趨勢(shì),Gartner認(rèn)為AI工程主要由DataOps、MLOps和DevOps三部分核心技術(shù)組成,其目標(biāo)是通過(guò)跨職能協(xié)作、自動(dòng)化、快速反饋等方法,來(lái)縮短數(shù)據(jù)分析、機(jī)器學(xué)習(xí)和應(yīng)用部署上線的周期,從而讓AI模型快速、持續(xù)地提供業(yè)務(wù)價(jià)值。開(kāi)發(fā)者基于傳統(tǒng)的工具平臺(tái)很難實(shí)現(xiàn)MLOps等AI工程領(lǐng)域的實(shí)踐,需要新的工具來(lái)完成對(duì)MLOps等技術(shù)實(shí)踐的支持。
Kubeflow是一個(gè)基于K8S的機(jī)器學(xué)習(xí)平臺(tái),為開(kāi)發(fā)者提供了從實(shí)驗(yàn)(Notebook)、訓(xùn)練(MLOps流水線)、調(diào)優(yōu)以及部署、監(jiān)控的端到端能力,也是當(dāng)前排名第一的開(kāi)源MlOps工具。
Kubeflow本身也是由一系列的開(kāi)源工具組成,從它的架構(gòu)圖中不難看出,Kubeflow主要提供三部分能力:
ML工具:主流開(kāi)源框架支持,如Tensorflow,PyTorch等。
Kubeflow應(yīng)用及腳手架工具:
(1). jupyter Notebook:開(kāi)箱即用的Notebook,支持多AI框架。
(2). 分布式訓(xùn)練:支持Tensorflow、PyTorch等多框架的分布式訓(xùn)練(參數(shù)服務(wù)器形式)。
(3). 流水線管理:基于Argo的工作流管理,提供訓(xùn)練流水線管理能力。
(4). 鏡像構(gòu)建:將訓(xùn)練、notebook代碼打包,以支持訓(xùn)練及部署任務(wù)。
(5). Serving部署:支持多AI框架的部署。
3.周邊配套:支持三方部署、監(jiān)控等能力。
Canonical公司(Ubuntude發(fā)行商)在Kubeflow的基礎(chǔ)上,包裝了Charmed Kubeflow項(xiàng)目,提供構(gòu)成KubeFlow最新版本的30多個(gè)應(yīng)用程序和服務(wù),并且讓Kubeflow的部署更快,更簡(jiǎn)單。
在最新的1.6版本中,Charmed Kubeflow的Notebook原生支持了MindSpore,下面我們來(lái)看下如何基于Charmed Kubeflow 快速啟動(dòng)支持MindSpore的Notebook。
安裝Charmed Kubeflow
要安裝Kubeflow,首先得準(zhǔn)備好K8S集群,然后通過(guò)juju這個(gè)運(yùn)維管理工具安裝Charmed Kubeflow。
通過(guò)MicroK8S工具部署K8S集群
Canonical提供了一個(gè)和Minikube類(lèi)似的工具M(jìn)icroK8S,通過(guò)Snap工具可以快速完成其安裝。
在Ubuntu 20.04系統(tǒng)上執(zhí)行如下命令:
sudo snap install microk8s --classic --channel=1.22/stable
安裝完成后,為了方便使用,可以將當(dāng)前的用戶(hù)加入到microk8s的用戶(hù)組中。
sudo usermod -a -G microk8s $USER newgrp microk8s
確認(rèn)用戶(hù)可以訪問(wèn)kubectl的配置文件。
sudo chown -f -R $USER ~/.kube
MicroK8s在安裝的時(shí)候就會(huì)啟動(dòng),為了運(yùn)行kubeflow,我們還需要一些額外的能力,比如DNS(服務(wù)發(fā)現(xiàn))、存儲(chǔ)、ingress(負(fù)載均衡),MicroK8S可以以插件的形式快速的添加這些能力
microk8s enable dns storage ingress metallb:10.64.140.43-10.64.140.49
整個(gè)安裝需要花費(fèi)一點(diǎn)時(shí)間,通過(guò)microk8s status --wait-ready可以確認(rèn)MicroK8S是否安裝成功。
microk8s is running high-availability: no datastore master nodes: 127.0.0.1:19001 datastore standby nodes: none ……
MicroK8S提供了kubectl命令,但是每次都需要在命令行輸入microk8s kubectl,可以考慮增加一個(gè)別名alias kubectl='microk8s kubectl'方便使用,其次,如果集群的配置信息沒(méi)有寫(xiě)到~/.kube/中,可以通過(guò)microk8s config > ~/.kube/config完成覆寫(xiě)。
通過(guò)juju安裝Charmed Kubeflow
Charmed Operator Lifecycle Manager (OLM)是一個(gè)應(yīng)用(以特殊格式封裝,稱(chēng)為Charm Operator)編排的平臺(tái),它可以方便的管理混合云中部署在虛機(jī)、K8S集群、裸機(jī)上的應(yīng)用,對(duì)應(yīng)用進(jìn)行安裝、配置、維護(hù)及更新。Canonical提供了這樣的OLM框架,名為Juju,同時(shí)也提供了juju這個(gè)同名的命令行工具。
首先,我們使用sudo snap install juju --classic命令安裝juju。其次,通過(guò)juju bootstrap microk8s在MicroK8S部署好的集群上安裝juju的controller,作為juju在集群中的代理,管理Kubeflow應(yīng)用。最后為juju在集群上添加kubeflow的命名空間juju add-model kubeflow。
接下來(lái),通過(guò)juju deploy kubeflow-lite --trust命令即可完成kubeflow的安裝,通過(guò)watch -c juju status --color可以看到kubeflow組件準(zhǔn)備狀態(tài)。
最后,通過(guò)juju refresh jupyter-ui --channel=latest/edge命令確保jupyter-ui更新到最新的版本,包含MindSpore的Notebook鏡像。
配置kubeflow
Kubeflow安裝完成后需要做下簡(jiǎn)單的配置才能訪問(wèn)。首先配置訪問(wèn)的地址:
juju config dex-auth public-url=http://10.64.140.43.nip.io juju config oidc-gatekeeper public-url=http://10.64.140.43.nip.io
然后配置訪問(wèn)的用戶(hù)名和密碼:
juju config dex-auth static-username=admin juju config dex-auth static-password=ucantseeme
接下來(lái)在瀏覽器中輸入http://10.64.140.43.nip.io,以及剛設(shè)置的用戶(hù)密碼,就可以看到Kubeflow完整的Dashboard了。
運(yùn)行支持MindSpore的Notebook
在Kubeflow上運(yùn)行Notebook非常簡(jiǎn)單。在Notebook tab選擇創(chuàng)建notebook,輸入notebook名稱(chēng)MindSpore,鏡像選擇jupyterlab,在列表中使用mindspore/jupyter-mindspore這個(gè)鏡像,然后分配合適的CPU和內(nèi)容資源,點(diǎn)擊創(chuàng)建即可。
在Notebook界面很快就可以看到創(chuàng)建完成的提示。
點(diǎn)擊Connect,我們就可以在另一個(gè)瀏覽器tab頁(yè)打開(kāi)notebook了。這里我們可以使用MindSpore官網(wǎng)現(xiàn)成的notebook,通過(guò)notebook頁(yè)面將這個(gè)手寫(xiě)數(shù)字識(shí)別的notebook上傳上去。
點(diǎn)擊執(zhí)行,就可以看到這個(gè)notebook直接運(yùn)行起來(lái)了,不用額外的去安裝MindSpore以及Vision套件。
總結(jié)
這是MindSpore和Charmed Kubeflow集成的第一步,后續(xù)我們還將持續(xù)的把MindSpore更多能力集成到Charmed Kubeflow中,方便開(kāi)發(fā)者能在MlOps平臺(tái)上更方便的使用MindSpore。
-
AI
+關(guān)注
關(guān)注
87文章
31892瀏覽量
270708 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8455瀏覽量
133182 -
數(shù)據(jù)分析
+關(guān)注
關(guān)注
2文章
1462瀏覽量
34205
原文標(biāo)題:【AI工程】08-MLOps工具-在Charmed Kubeflow上運(yùn)行MindSpore
文章出處:【微信號(hào):Arm軟件開(kāi)發(fā)者,微信公眾號(hào):Arm軟件開(kāi)發(fā)者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
實(shí)時(shí)在線的技術(shù)支持和交流活動(dòng)的IM工具
云上拍客梨視頻 基于阿里云的技術(shù)實(shí)踐分享
用Intel Analytics Zoo/BigDL為客服平臺(tái)添加AI的實(shí)踐(一)
數(shù)據(jù)科學(xué)平臺(tái)cnvrg.io攜手NetApp用深度學(xué)習(xí)改變MLOps數(shù)據(jù)集緩存
COSMOPlat在開(kāi)源技術(shù)方向的探索和實(shí)踐
基于AUTOSAR技術(shù)的SOA軟件平臺(tái)實(shí)踐的簡(jiǎn)析
![基于AUTOSAR<b class='flag-5'>技術(shù)</b>的SOA軟件<b class='flag-5'>平臺(tái)</b><b class='flag-5'>實(shí)踐</b>的簡(jiǎn)析](https://file.elecfans.com//web2/M00/1D/B2/pYYBAGGTKhaATtdEAAGrZNKKN_I089.png)
評(píng)論