Kubeflow:?云計算和機器學習的橋梁(博文視點出品)
定 價:¥79
中 教 價:¥53.72 (6.80折)
庫 存 數: 0
當前的IT界有兩大高速列車,一是以“Kubernetes”為標桿技術的云計算,二是以“Tensorflow和PyTorch”等為代表的機器學習。如何使二者結合起來,成為近期IT界討論的熱點。Kubeflow的橫空出世,有效的連接起了Kubernetes 和各個機器學習的框架,提供了機器學習在Kubernetes上的端到端的解決方案。本書講解Kubeflow以及其社區的技術棧,包括機器學習的流程編排技術Pipelines、并行模型訓練技術TFJob和PyTorchJob等、超參調優技術Katib、服務發布KFServing,機器學習的Python SDK Fairing等,涉及到機器學習的各個方面。本書結合理論和實戰,詳細闡述了Kubeflow社區的新技術和新方案。最后,展望了Kubeflow的前景和AI Hub的發展趨勢。
以Kubernetes為代表的云計算技術如日中天,以Tensorflow和PyTorch為代表的機器學習技術也如火如荼。Kuneflow的橫空出世,猶如一座橋梁,有效的連接起了云計算和機器學習,一時之間成為了IT界的焦點。
第三次人工智能的“沖擊波”提出了很多機器學習網絡結構。卷積神經網絡作為深度學習的代表之一,被廣泛應用于計算機視覺識別系統、智能監控系統、社交網絡圖片標記,以及圖像分類、機器人、無人機、自動駕駛汽車等場景。循環神經網絡被廣泛應用于自然語言理解、語音處理等場景。編/解碼模型主要用于圖像或序列生成,如機器翻譯、文本摘要、圖像描述問題等。膠囊網絡作為深度神經網絡的一種新興形式,正在試圖模仿人類大腦處理信息等。很多機器學習的成果已經成功落地,進入人們的工作和生活中。同時,隨著時代的發展,機器學習面臨的問題也越來越多。例如,大型的機器學習作業很難在本地完成,需要使用云端資源來提高模型訓練的效率、降低服務維護的成本。
當前,云計算已經成為許多領域中必不可少的計算服務,機器學習也試圖通過云計算來進行分布式訓練,從而提高機器學習的模型訓練效率,并且進一步擴展其應用范圍。Kubernetes是云平臺領域的標桿技術,廣泛地應用于公有云、混合云和私有云的部署中。如何使機器學習更好地在基于Kubernetes的云平臺上運行,是近年來IT行業的熱點話題,也是各大IT公司試圖解決的重要問題,Kubeflow就是在這樣的背景下橫空出世的。Kubeflow的誕生為Kubernetes生態系統畫上了絢麗的一筆,對機器學習工程師來說,可謂雪中送炭。Kubeflow有效地連接起了機器學習和云計算兩大領域,一時之間成了“兵家必爭之地”。
本書在編寫的過程中,得到了很多IBM同事和Kubeflow社區貢獻者的幫助,特別是胡雷雷、寇瀟、支阿龍、王占偉、臺慧敏、贠振歐等,還得到了IBM經理王亮的大力支持,在此表示誠摯的感謝!
由于時間倉促,書中難免有不足之處,請讀者勘正。本書是基于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聯合創始人。
第1篇 IT兩大“高速列車”:云計算和機器學習第1章 云計算和KUBERNETES 21.1 云計算 21.1.1 云計算的歷史和發展 21.1.2 為什么云計算會“飄”起來 51.2 虛擬化使云計算輕松落地 61.2.1 虛擬化為云計算“鋪上了輕軌” 61.2.2 Docker的“燎原之火” 71.2.3 Docker的hello-world應用 91.3 KUBERNETES――云計算的新標桿 111.3.1 Kubernetes的橫空出世 111.3.2 Kubernetes的基本概念和架構 121.3.3 Kubernetes集群的部署 161.3.4 Kubernetes的“Hello World”應用 18第2章 機器學習 242.1 人工智能的第三次“沖擊波” 242.2 機器學習在生活中的應用 282.3 機器學習的主流框架 302.3.1 TensorFlow 302.3.2 PyTorch 322.3.3 scikit-learn 332.3.4 XGBoost 342.3.5 ONNX 352.4 機器學習的“HELLO WORLD” 362.4.1 MNIST數據集 362.4.2 MNIST模型訓練 37第2篇 KUBEFLOW:連接云計算和機器學習的“橋梁”第3章 KUBEFLOW概述 403.1 KUBEFLOW是什么 403.2 KUBEFLOW的發展 423.3 KUBEFLOW的核心組件 44第4章 KUBEFLOW的部署與應用 484.1 KUBEFLOW的安裝與部署 484.1.1 Kubeflow的部署工具Kfctl 484.1.2 Kubeflow Manifests與kustomize 494.1.3 Kubeflow與Kubernetes版本的兼容性 514.1.4 Kubeflow的安裝過程 524.1.5 安裝后檢查 544.2 KUBEFLOW的用戶故事 564.3 KUBEFLOW端到端的用戶案例 584.4 KUBEFLOW對IBM POWER平臺的支持 67第5章 KUBEFLOW PIPELINES流水線式機器學習 695.1 KUBEFLOW PIPELINES是什么 695.2 KUBEFLOW PIPELINES的基本概念 715.3 KUBEFLOW PIPELINES的架構 735.4 PIPELINES SDK 745.4.1 安裝Pipelines SDK 755.4.2 Pipelines SDK代碼分析 755.5 動手構建自己的PIPELINES 795.6 KUBEFLOW PIPELINES的實際應用 82第6章 KUBEFLOW OPERATOR自定義資源 946.1 KUBERNETES CRD簡述 946.2 TENSORFLOW OPERATOR 966.2.1 TFJob的前世今生 966.2.2 TFJob CRD 966.2.3 故障定位 1026.2.4 TFJob Python SDK 1036.2.5 TFJob的應用實例 1056.3 PYTORCH OPERATOR 1076.3.1 PyTorchJob簡介 1086.3.2 PyTorchJob的實際應用 1096.4 其他OPERATOR 1116.4.1 XGBoost Operator 1116.4.2 Caffe2 Operator 1136.4.3 MPI Operator 1146.4.4 MXNet Operator 1156.4.5 Chainer Operator 116第7章 KUBEFLOW KATIB超參調優 1187.1 機器學習中的超參調優 1187.2 什么是KATIB 1207.3 KATIB的安裝方法 1207.4 KATIB的架構 1217.5 KATIB的業務流程 1237.6 使用KATIB進行一次超參調優 125第8章 KFSERVING解決機器學習“最后一公里”的問題 1338.1 KFSERVING是什么 1338.2 ISTIO簡介 1358.2.1 Service Mesh的概念 1358.2.2 Istio的架構 1378.2.3 Istio的安裝方法 1388.3 KNATIVE簡介 1398.3.1 Knative的架構 1398.3.2 Knative Serving 1408.3.3 Knative Serving的安裝方法 1428.4 KFSERVING的架構分析 1428.4.1 KFServing的架構 1428.4.2 KFServing Data Plane 1448.4.3 KFServing Control Plane 1468.5 KFSERVING PYTHON SDK 1488.5.1 KFServing Python SDK的安裝方法 1498.5.2 KFServing Python SDK Client支持的API 1498.5.3 KFServing Python SDK的應用 1538.6 KFSERVING的應用實例 1568.6.1 使用PVC訓練模型并發布服務 1568.6.2 InferenceService Transformer的應用 157第9章 KUBEFLOW FAIRING帶機器學習“飛” 1609.1 KUBEFLOW FAIRING是什么 1609.2 KUBEFLOW FAIRING的安裝方法 1629.2.1 本地安裝 1629.2.2 在Kubeflow Jupyter Notebook中更新Kubeflow Fairing SDK 1639.3 KUBEFLOW FAIRING的架構分析 1659.4 KUBEFLOW FAIRING的源碼分析 1659.4.1 Kubeflow Fairing的入口程序文件Config.py 1659.4.2 Kubeflow Fairing Preprocessor 1669.4.3 Kubeflow Fairing Builder 1689.4.4 Kubeflow Fairing Deployer 1699.4.5 Kubeflow Fairing支持的High Level API 1719.5 KUBEFLOW FAIRING的應用實例 171第10章 KUBEFLOW METADATA 17610.1 KUBEFLOW METADATA簡述 17610.2 KUBEFLOW METADATA的架構與設計 17710.3 METADATA支持的元數據和數據表 18010.4 KUBEFLOW METADATA實戰 18310.4.1 安裝Kubeflow Metadata組件 18310.4.2 Kubeflow Metadata的應用實例 18410.4.3 Metadata的展示 186第11章 KUBEBENCH機器學習哪家強 18811.1 先從BENCHMARK說起 18811.2 KUBEBENCH的安裝方法 19011.3 KUBEBENCH的架構 19011.4 KUBEBENCH的實踐 193第12章 KUBEFLOW中的JUPYTER NOTEBOOK HUB 19512.1 JUPYTER NOTEBOOK簡述 19512.2 JUPYTER NOTEBOOK的架構及其運行原理 19612.3 KUBEFLOW JUPYTER NOTEBOOK的組件及其使用方法 197第3篇 KUBEFLOW的應用和展望第13章 KUBEFLOW的應用實戰 20513.1 在云平臺上進行機器學習 20513.2 基于KUBEFLOW的SEQ2SEQ機器學習案例 22013.2.1 Seq2Seq模型簡介 22013.2.2 在Kubeflow平臺上運行Seq2Seq案例 222第14章 KUBEFLOW前景展望和AI HUB 23314.1 KUBEFLOW 1.0的功能和計劃 23314.2 基于KUBEFLOW的AI HUB新模式 23414.3 智能云中的AIAAS(AI服務) 237