Kubeflow實戰 入門介紹與部署實踐

2022-02-04 04:28:17 字數 2840 閱讀 9217

kubeflow是在k8s平台之上針對機器學習的開發、訓練、優化、部署、管理的工具集合,內部整合的方式融合機器學習中的很多領域的開源專案,比如jupyter、tfserving、katib、fairing、argo等。可以針對機器學習的不同階段:資料預處理、模型訓練、模型**、服務管理等進行管理。只要安裝了k8s,可以在本地、機房、雲環境中部署。

機器學習的目標最終還是為了在生產環境或者業務場景中使用,但這個過程卻是很複雜的,需要進行資料載入、切分、預處理、特徵工程、模型訓練、驗證、超引數調優、模型部署等等;為了正常使用模型,還需要在模型上線後,持續不斷的輸入資料才能得到**的結果。

擴充套件性:kf基於k8s可以達到可擴充套件、可移植、分布式ml平台, 通過kf你可以輕鬆管理整個ai生命週期,比如在模型部署的時候自動進行擴容、在試驗階段自由建立筆記本。由於底層基於k8s來提供一致性與高可靠,使用者可以更聚焦於上層的演算法模型設計,而不用過多的關注底層構建。

迭代性:構建高質量的機器學習模型可能需要快速的迭代,kf提供友好的ui介面支援快速追蹤對比實驗結果,你可以很方便的決定哪個模型訓練效果更好。kf內部提供jupyter筆記本,支援如tensorflow、pytorch等流行的深度學習框架。模型訓練配置簡單,方便進行分布式訓練、部署,提公升端到端的開發過程。

混合性:機器學習模型的訓練可能涉及多個團隊、多個集群和雲環境的共享,kf支援主流的雲平台,提供各個環境之間的移植性。你可以在本地開發模型、在集群的gpu上進行訓練、最後部署到雲環境中,快速的開發模式和高效的部署使得整個過程就像單機操作一樣。

超參調優:在模型訓練中,超引數調優是很關鍵也很複雜的過程,對模型最終的準確度和效能有很大的影響,手動嘗試各種超引數的組合非常浪費時間。kf通過katib來支援自動超引數優化,這種自動優化會節省大量的計算時間,提高模型優化的效率。

持續整合:kf目前並沒有這個方面成型的產品,但是可以通過pipeline元件來實現。pipeline支援建立可重複的工作流,可以自動觸發整個工作流的重跑以及模型的訓練。

2 壓縮包解壓縮

tar -xvf kfctl_v1.0.2_.tar.gz

3 配置環境變數 vi /etc/profile

export path=$path:""

export kf_name=《自定義名稱》

export base_dir=export kf_dir=$/$

export config_uri=""

4 更新環境變數

source /etc/profile

5 執行命令

mkdir -p $

cd $

6 檢視安裝服務

kubectl -n kubeflow get all

整個安裝過程很緩慢,尤其是前期需要安裝cert-manager進行許可權控制,需要等服務正常。

中間會有大量的映象報錯imagepullbackoff,這表示映象拉取失敗。解決辦法:

1 檢視具體pod的詳情

kubectl describe pod admission-webhook-bootstrap-stateful-set-0 -n kubeflow

2 去阿里雲映象站搜尋映象

3 重新命名

4 修改kustomize中的配置

cd ./kustomize/webhook/base

sudo vim deployment.yaml

修改映象拉取策略

imagepullpolicy: ifnotpresent

原來如果是always表示總是會去拉取遠端映象,ifnotpresent表示本地不存在時才會拉取

5 修改完成後等待一會,如果狀態還沒有變成running,可以執行

都部署成功後,大致可以看到如下的執行狀態,僅供參考:

部署成功後,通過埠對映可以支援在外部訪問:

export namespace=istio-system

kubectl port-forward --address 0.0.0.0 -n $ svc/istio-ingressgateway 8080:80

然後訪問目標位址即可,如localhost:8080,自定義namespace後可以看到如下畫面:

後面將會分享notebook、pipeline、katib等的使用,感謝關注。

Docker 入門級 架構介紹與實戰

解決如下問題 docker的架構介紹和基本使用 守護程序負責來與映象,倉庫和容器進行交流 docker的一些常用方法 1.執行daocloud.io nginx,由80埠對映在本地8080埠上 docker run p 8080 80 d daocloud.io nginx p 做埠對映,d 允許這...

Docker 介紹與實戰

解決如下問題 docker的架構介紹和基本使用 守護程序負責來與映象,倉庫和容器進行交流 docker的一些常用方法 1.執行daocloud.io nginx,由80埠對映在本地8080埠上 docker run p 8080 80 d daocloud.io nginx p 做埠對映,d 允許這...

fluuter入門與實戰

import dart io import package flutter material.dart import package flutter material.dart import dart async import package flutter services.dart 載入頁面 s...