#分享 Kubeflow v0.7 新功能與回顧

🔺轉貼自:
megapx
🔺Kubeflow 演進
*hHTolI6ObRucEB7C55W0Gw.png 介紹Kubeflow 是一個開源軟體,致力於提供使用者於 Kubernetes 上快速便捷的部署與管理 ML Workflow。 Kubeflow 在2019年11月推出0.7版,除了許多服務相繼邁入 Beta 外,也同時發佈了新的服務 - KFServing 。至此,Kubeflow 完整了他的使用情境,讓使用者可以在此平台上完成模型建構、訓練到最後的部署。 我們今天來完整回顧一下 Kubeflow 0.7版的更新。 🔺Kubeflow 0.7 新功能 — KFServing KFServing 在 0.7 版正式進入 alpha,是此次發行最重要的新功能。KFServing 提供了 部署模型(model deployment) 功能,將模型以 Serverless 方式部署到 Kubernetes 上面提供 Inference 服務。同時提供了通用的介面使KFServing 相容不同的 Framework,例如: TensorFlow, XGBoost 與 Scikit-learn 等。 除了部署模型提供服務外,更進一步提供了 Inference 服務的自動擴展(autoscaling)、健康狀況監控(health checking)與金絲雀部署(canary rollouts),讓使用者可以一次部署多個版本的模型做測試。
megapx
另外 KFServing 允許使用者在模型部署上加入插件提供 pre-processing 與post-processing 能力來處理資料,也提供 explainability 讓使用者可以解釋模型(詳見),KFServing 可以說提供了生產規模等級的 Inference 服務。 目前此專案由 Google, IBM, Microsoft, Seldon 與 Bloomberg 合作開發貢獻與開源,專案位址連結 KFServing Github repo 。 在部署完 Kubeflow 0.7後,你就可以直接使用 KFServing。而方法就是使用他提供的 CRD 來完成部署,並且只要提供模型的位置即可。 🔺部署 kubectl apply -f model.yaml除了 TensorFlow 外,也提供了許多其他的 Framework,可以至這邊參考使用範例:example。之後也會專文詳細介紹。 🔺Kubeflow 更新 除了引進新功能外,另外最重要的就是就功能的更新與維護狀況。Kubeflow notebook service更新至 v1beta1,且開始提供 TensorFlow 2.0 images。 🔺ML Operators 目前 Kubeflow 提供 TensorFlow, Pytorch, XGBoost 與 MXNe 的 operator,來管理分散式訓練任務。目前 TensorFlow 與 Pytorch 已經進入 v1。而作為 tf-operator 的參與者,這邊說明一下近期我們會將 tf-operator 獨立的 dashboard 移除。 🔺Kubeflow Pipelines 根據 Kubeflow 官方的使用者統計,Pipeline 可以說是目前最歡迎的服務之一。 0.7 版的更新除了效能上的優化外,也提供了 retry服務,因此失敗的 workflow 可以從失敗的地方重新執行,而不用像前幾個版本必須從頭開始執行。而 Pipeline 最重的關鍵就是不同執行單元之間資料結果的傳遞,在Kubeflow 0.7 也更完善使用者體驗,參考 。 另外一個大重點是,如果研究過 Pipeline 就會知道他其實是進化自 TensorFlow Extended(TFX),因此功能上的相容或是同步是一個關注的點。而這次 Pipeline 開始相容了 TFX Pipeline metadata-driven orchestration 的功能,使用者可以記錄 Pipeline artifacts 與執行日誌至 Metadata store。另一方面允許 cache-based 執行,也就是說每一個執行單元的結果將會被暫存以供後續重複使用。 同時,Pipeline也 完善了 DSL 的一些功能,使用者可以透過DSL達到更複雜的執行流程,參考: WithItems, WithParams。自身的 DSL 外,Kubeflow Pipeline 也允許使用者使用 Airflow SDK 。 Pipeline 也藉此提供了大量的 參考範例 供使用者參考使用方式。 🔺Multi-user 使用情境 這部分就是筆者之前分享過的 使用 Istio 完成認證與權限管理上、 下, 現在的 Kubeflow 已經可以達成 Multi-user 使用情境, 這裡是部署教學。最後就是 Kubeflow 也開始開發自己的 SDK,未來將提供使用者更彈性使用 Kubeflow 的方法。 🔺未來展望 未來 1 月將會發行 1.0 正式版,未來預計加入的新功能還有 Apache Spark operator 。 除了 AI 本身的技術之外,底層的開發平台也是個大公司關注的重點。 在今年年底的 KubeCon NA,紛紛曝光。 Lyft 分享了內部使用基於 Kubeflow 開發的 Lyft Learn 並開源了另一套 AI 平台 Flyte:
Bloomberg 分享了他們 Model inference 的工具並貢獻給 Kubeflow 成為KFServing:
AI 平台社群正在逐漸壯大與發展,也是蠻有趣的研究領域。 以 AI 建構、訓練、部署服務為核心提供了網路、虛擬化等傳統領域一個新發揮的空間。 還請大家期待! 🔺以上文章結合自身觀察並參考自:
Slack: kubeflow.slack.comKubeflow Forum:
!forum/kubeflow-discuss本文同步分享在 Jack Lin’s BlogOriginally published at
愛心
7
留言
encourage first comment
有些話想說嗎 快分享出來彼此交流吧!