當前的IT界有兩大「高速列車」,
一個是以Kubernetes為標杆技術的雲計算,另一個是以TensorFlow、PyTorch等為代表的機器學習,
二者相輔相成、相互促進,共同引領IT技術飛速發展。
如何使機器學習更好地在基於Kubernetes的雲平臺上運行,成了近年IT行業的熱點話題,也是各大IT公司試圖解決的重要問題。在這樣的背景下Kubeflow橫空出世!
Kubeflow的誕生為Kubernetes生態系統畫上了絢麗的一筆,對機器學習工程師來說,可謂雪中送炭。其有效地連接起了機器學習和雲計算兩大領域,一時之間成了「兵家必爭之地」
01
Kubeflow是什麼?
Kubeflow並不是一種技術,它實際上是一些技術的組合,涉及機器學習的方方面面。
Kubeflow從2017年開始在Google內部使用,於2018年初開源,只用了一年時間,就發展成了能夠運行整個機器學習Pipelines的多架構、多雲框架。
官方對Kubeflow的定義如下:Kubeflow 是 Kubernetes 的機器學習工具包,是一個為Kubernetes構建的簡單、可組合、可攜式、可擴展的機器學習技術棧,作用是方便機器學習的工作流部署。
簡而言之,Kubeflow猶如一座橋梁,連接起了雲計算的標杆技術Kubernetes和機器學習的主流框架。
02
Kubeflow名字從何而來?
在最初命名時,Kubeflow的前半部分來自Kubernetes,後半部分來自TensorFlow。
但目前看來,flow代表的不止是TensorFlow,而是所有AI平臺,包括PyTorch、MXNet、XGBoost等,因為Kubeflow社區支持大部分機器學習框架,所以我們可以將flow理解為「流」技術的統稱。
03
Kubeflow能做什麼?
Kubeflow能夠發展這麼迅速,正是因為這份「橋梁」的作用提供了AI在Kubernetes雲平臺上實現端到端的解決方案,給雲計算增加了一個重要的應用場景,使機器學習可以更加迅速地發力,大大縮短了機器學習的周期,極大地提高了機器學習的效率,降低了數據科學家和機器學習工程師的維護成本。
Kubeflow的出現,為數據科學家和機器學習工程師節省了搭建平臺和處理流程等工作,使用者只需將主要的精力放到自己的業務邏輯上,如編寫機器學習代碼(Kubeflow可以協助節省部分精力)、進行特殊數據處理等,對於其他工作,如與平臺相關的工作,都可以交給Kubeflow完成。除了平臺部署的相關工作,Kubeflow還會做一些如Katib可以負責超參調優、KFServing可以負責模型發布和模型解釋等工作,對機器學習有很大的輔助和促進作用。
那麼有人會問:機器學習不就是模型訓練嗎,為什麼需要在Kubernetes雲平臺上運行呢,在一臺性能比較好、帶有GPU或TPU的機器上直接訓練模型不就行了?
在真實的生產環境中,模型訓練只是機器學習流程中一個很小的模塊,而大部分工作是模型訓練之外的工作,如平臺的搭建和配置、數據收集、數據檢查、數據轉換、模型分析、監控、日誌收集和分析、服務發布和更新、遷移訓練等。Kubeflow可以輔助完成節省模型訓練之外的工作。
機器學習的組成模塊
比如在進行模型訓練時,如果僅僅使用性能比較好的機器進行模型訓練,則只能滿足實驗室階段的要求,在真實的生產環境中,模型較大,並且層析較深,很難通過單機在有效的時間內完成模型訓練或遷移,需要集群「作戰」,進行分布式訓練,集群一般部署在雲計算平臺上,Kubeflow社區中的tf-operator項目正是負責在Kubernetes雲平臺上進行分布式模型訓練的。
從上圖我們也可以看出,機器學習要經過多個步驟才能完成,而後面的步驟需要前面步驟的結果。例如,模型訓練需要經過數據檢驗和數據轉換的數據,而服務發布需要訓練好的模型,一環套一環。Kubeflow Pipelines項目可以有效地將以上步驟連接起來。
Kubeflow現在已經有三十多個項目,其中比較活躍的核心項目有近二十個,並且不斷有新的項目產生。
Kubeflow的核心組件
04
怎樣學習Kubeflow
博文視點新書《Kubeflow:雲計算和機器學習的橋梁》現已上市,全面介紹了Kubeflow社區的各項技術,並濃縮了大量的開發知識和實戰經驗,是一本非常有參考價值的圖書!
何金池 李峰 劉光亞 劉侯剛 編著
主要講解Kubeflow及其社區的技術棧,包括機器學習的流程編排技術Pipelines、並行模型訓練技術TFJob和PyTorchJob等、超參調優技術Katib、服務發布KFServing、機器學習的Python SDK Fairing等,涉及機器學習的各個方面。
本書結合理論和實戰,詳細闡述了Kubeflow社區的新技術和新方案,並且展望了Kubeflow的前景和AI Hub的發展趨勢。
本書是基於Kubeflow 0.7編寫的,由於Kubeflow社區的高速發展,本書後期會有技術和方案上的改動,在閱讀本書的過程中,還需要參考Kubeflow社區的最新資訊。此外,作者會通過GitHub更新一些書中過期的方案和技術給讀者作為參考。
▊關於本書作者
何金池,高級軟體工程師,負責IBM Data & AI系統研發,Kubeflow社區Maintainer。
李峰,高級軟體工程師,負責IBM 認知系統研發,Kubeflow社區Maintainer。
劉光亞,IBM Cloud Pak for Multicloud Management的STSM(Senior Technical Staff Member),資深架構師,負責IBM多雲管理的研發與AI集成。
劉侯剛,高級軟體工程師, 負責IBM私有雲研發,Kubeflow社區Maintainer,Katib聯合創始人。
▊ 業內力薦
高策 / 才雲科技機器學習平臺團隊Technical Leader & Kubeflow Maintainer
孫丹 / KFServing聯合創始人& Maintainer
朱傑 / 華為AIOps構架師
▊ 本書結構
第1篇 IT兩大「高速列車」:雲計算和機器學習
第1章 雲計算和KUBERNETES
1.1 雲計算
1.2 虛擬化使雲計算輕鬆落地
1.3 KUBERNETES——雲計算的新標杆
第2章 機器學習
2.1 人工智慧的第三次「衝擊波」
2.2 機器學習在生活中的應用
2.3 機器學習的主流框架
2.4 機器學習的「HELLO WORLD」
第2篇 KUBEFLOW:連接雲計算和機器學習的「橋梁」
第3章 KUBEFLOW概述
3.1 KUBEFLOW是什麼
3.2 KUBEFLOW的發展
3.3 KUBEFLOW的核心組件
第4章 KUBEFLOW的部署與應用
4.1 KUBEFLOW的安裝與部署
4.2 KUBEFLOW的用戶故事
4.3 KUBEFLOW端到端的用戶案例
4.4 KUBEFLOW對IBM POWER平臺的支持
第5章 KUBEFLOW PIPELINES流水線式機器學習
5.1 KUBEFLOW PIPELINES是什麼
5.2 KUBEFLOW PIPELINES的基本概念
5.3 KUBEFLOW PIPELINES的架構
5.4 PIPELINES SDK
5.5 動手構建自己的PIPELINES
5.6 KUBEFLOW PIPELINES的實際應用
第6章 KUBEFLOW OPERATOR自定義資源
6.1 KUBERNETES CRD簡述
6.2 TENSORFLOW OPERATOR
6.3 PYTORCH OPERATOR
6.4 其他OPERATOR
第7章 KUBEFLOW KATIB超參調優
7.1 機器學習中的超參調優
7.2 什麼是KATIB
7.3 KATIB的安裝方法
7.4 KATIB的架構
7.5 KATIB的業務流程
7.6 使用KATIB進行一次超參調優
第8章 KFSERVING解決機器學習「最後一公裡」的問題
8.1 KFSERVING是什麼
8.2 ISTIO簡介
8.3 KNATIVE簡介
8.4 KFSERVING的架構分析
8.5 KFSERVING PYTHON SDK
8.6 KFSERVING的應用實例
第9章 KUBEFLOW FAIRING帶機器學習「飛」
9.1 KUBEFLOW FAIRING是什麼
9.2 KUBEFLOW FAIRING的安裝方法
9.3 KUBEFLOW FAIRING的架構分析
9.4 KUBEFLOW FAIRING的源碼分析
9.5 KUBEFLOW FAIRING的應用實例
第10章 KUBEFLOW METADATA
10.1 KUBEFLOW METADATA簡述
10.2 KUBEFLOW METADATA的架構與設計
10.3 METADATA支持的元數據和數據表
10.4 KUBEFLOW METADATA實戰
第11章 KUBEBENCH機器學習哪家強
11.1 先從BENCHMARK說起
11.2 KUBEBENCH的安裝方法
11.3 KUBEBENCH的架構
11.4 KUBEBENCH的實踐
第12章 KUBEFLOW中的JUPYTER NOTEBOOK HUB
12.1 JUPYTER NOTEBOOK簡述
12.2 JUPYTER NOTEBOOK的架構及其運行原理
12.3 KUBEFLOW JUPYTER NOTEBOOK的組件及其使用方法
第3篇 KUBEFLOW的應用和展望
第13章 KUBEFLOW的應用實戰
13.1 在雲平臺上進行機器學習
13.2 基於KUBEFLOW的SEQ2SEQ機器學習案例
第14章 KUBEFLOW前景展望和AI HUB
14.1 KUBEFLOW 1.0的功能和計劃
14.2 基於KUBEFLOW的AI HUB新模式
14.3 智能雲中的AIAAS(AI服務)