Kubeflow:云计算和机器学习的桥梁
作 者: 何金池 等 著
出版时间: 2020
内容简介
当前的IT界有两大高速列车,一是以“Kubernetes”为标杆技术的云计算,二是以“Tensorflow和PyTorch”等为代表的机器学习。如何使二者结合起来,成为近期IT界讨论的热点。Kubeflow的横空出世,有效的连接起了Kubernetes 和各个机器学习的框架,提供了机器学习在Kubernetes上的端到端的解决方案。本书讲解Kubeflow以及其社区的技术栈,包括机器学习的流程编排技术Pipelines、并行模型训练技术TFJob和PyTorchJob等、超参调优技术Katib、服务发布KFServing,机器学习的Python SDK Fairing等,涉及到机器学习的各个方面。本书结合理论和实战,详细阐述了Kubeflow社区的新技术和新方案。最后,展望了Kubeflow的前景和AI Hub的发展趋势。
目录
第1篇 IT两大“高速列车”:云计算和机器学习
第1章 云计算和KUBERNETES\t2
1.1 云计算\t2
1.1.1 云计算的历史和发展\t2
1.1.2 为什么云计算会“飘”起来\t5
1.2 虚拟化使云计算轻松落地\t6
1.2.1 虚拟化为云计算“铺上了轻轨”\t6
1.2.2 Docker的“燎原之火”\t7
1.2.3 Docker的hello-world应用\t9
1.3 KUBERNETES――云计算的新标杆\t11
1.3.1 Kubernetes的横空出世\t11
1.3.2 Kubernetes的基本概念和架构\t12
1.3.3 Kubernetes集群的部署\t16
1.3.4 Kubernetes的“Hello World”应用\t18
第2章 机器学习\t24
2.1 人工智能的第三次“冲击波”\t24
2.2 机器学习在生活中的应用\t28
2.3 机器学习的主流框架\t30
2.3.1 TensorFlow\t30
2.3.2 PyTorch\t32
2.3.3 scikit-learn\t33
2.3.4 XGBoost\t34
2.3.5 ONNX\t35
2.4 机器学习的“HELLO WORLD”\t36
2.4.1 MNIST数据集\t36
2.4.2 MNIST模型训练\t37
第2篇 KUBEFLOW:连接云计算和机器学习的“桥梁”
第3章 KUBEFLOW概述\t40
3.1 KUBEFLOW是什么\t40
3.2 KUBEFLOW的发展\t42
3.3 KUBEFLOW的核心组件\t44
第4章 KUBEFLOW的部署与应用\t48
4.1 KUBEFLOW的安装与部署\t48
4.1.1 Kubeflow的部署工具Kfctl\t48
4.1.2 Kubeflow Manifests与kustomize\t49
4.1.3 Kubeflow与Kubernetes版本的兼容性\t51
4.1.4 Kubeflow的安装过程\t52
4.1.5 安装后检查\t54
4.2 KUBEFLOW的用户故事\t56
4.3 KUBEFLOW端到端的用户案例\t58
4.4 KUBEFLOW对IBM POWER平台的支持\t67
第5章 KUBEFLOW PIPELINES流水线式机器学习\t69
5.1 KUBEFLOW PIPELINES是什么\t69
5.2 KUBEFLOW PIPELINES的基本概念\t71
5.3 KUBEFLOW PIPELINES的架构\t73
5.4 PIPELINES SDK\t74
5.4.1 安装Pipelines SDK\t75
5.4.2 Pipelines SDK代码分析\t75
5.5 动手构建自己的PIPELINES\t79
5.6 KUBEFLOW PIPELINES的实际应用\t82
第6章 KUBEFLOW OPERATOR自定义资源\t94
6.1 KUBERNETES CRD简述\t94
6.2 TENSORFLOW OPERATOR\t96
6.2.1 TFJob的前世今生\t96
6.2.2 TFJob CRD\t96
6.2.3 故障定位\t102
6.2.4 TFJob Python SDK\t103
6.2.5 TFJob的应用实例\t105
6.3 PYTORCH OPERATOR\t107
6.3.1 PyTorchJob简介\t108
6.3.2 PyTorchJob的实际应用\t109
6.4 其他OPERATOR\t111
6.4.1 XGBoost Operator\t111
6.4.2 Caffe2 Operator\t113
6.4.3 MPI Operator\t114
6.4.4 MXNet Operator\t115
6.4.5 Chainer Operator\t116
第7章 KUBEFLOW KATIB超参调优\t118
7.1 机器学习中的超参调优\t118
7.2 什么是KATIB\t120
7.3 KATIB的安装方法\t120
7.4 KATIB的架构\t121
7.5 KATIB的业务流程\t123
7.6 使用KATIB进行一次超参调优\t125
第8章 KFSERVING解决机器学习“最后一公里”的问题\t133
8.1 KFSERVING是什么\t133
8.2 ISTIO简介\t135
8.2.1 Service Mesh的概念\t135
8.2.2 Istio的架构\t137
8.2.3 Istio的安装方法\t138
8.3 KNATIVE简介\t139
8.3.1 Knative的架构\t139
8.3.2 Knative Serving\t140
8.3.3 Knative Serving的安装方法\t142
8.4 KFSERVING的架构分析\t142
8.4.1 KFServing的架构\t142
8.4.2 KFServing Data Plane\t144
8.4.3 KFServing Control Plane\t146
8.5 KFSERVING PYTHON SDK\t148
8.5.1 KFServing Python SDK的安装方法\t149
8.5.2 KFServing Python SDK Client支持的API\t149
8.5.3 KFServing Python SDK的应用\t153
8.6 KFSERVING的应用实例\t156
8.6.1 使用PVC训练模型并发布服务\t156
8.6.2 InferenceService Transformer的应用\t157
第9章 KUBEFLOW FAIRING带机器学习“飞”\t160
9.1 KUBEFLOW FAIRING是什么\t160
9.2 KUBEFLOW FAIRING的安装方法\t162
9.2.1 本地安装\t162
9.2.2 在Kubeflow Jupyter Notebook中更新Kubeflow Fairing SDK\t163
9.3 KUBEFLOW FAIRING的架构分析\t165
9.4 KUBEFLOW FAIRING的源码分析\t165
9.4.1 Kubeflow Fairing的入口程序文件Config.py\t165
9.4.2 Kubeflow Fairing Preprocessor\t166
9.4.3 Kubeflow Fairing Builder\t168
9.4.4 Kubeflow Fairing Deployer\t169
9.4.5 Kubeflow Fairing支持的High Level API\t171
9.5 KUBEFLOW FAIRING的应用实例\t171
第10章 KUBEFLOW METADATA\t176
10.1 KUBEFLOW METADATA简述\t176
10.2 KUBEFLOW METADATA的架构与设计\t177
10.3 METADATA支持的元数据和数据表\t180
10.4 KUBEFLOW METADATA实战\t183
10.4.1 安装Kubeflow Metadata组件\t183
10.4.2 Kubeflow Metadata的应用实例\t184
10.4.3 Metadata的展示\t186
第11章 KUBEBENCH机器学习哪家强\t188
11.1 先从BENCHMARK说起\t188
11.2 KUBEBENCH的安装方法\t190
11.3 KUBEBENCH的架构\t190
11.4 KUBEBENCH的实践\t193
第12章 KUBEFLOW中的JUPYTER NOTEBOOK HUB\t195
12.1 JUPYTER NOTEBOOK简述\t195
12.2 JUPYTER NOTEBOOK的架构及其运行原理\t196
12.3 KUBEFLOW JUPYTER NOTEBOOK的组件及其使用方法\t197
第3篇 KUBEFLOW的应用和展望
第13章 KUBEFLOW的应用实战\t205
13.1 在云平台上进行机器学习\t205
13.2 基于KUBEFLOW的SEQ2SEQ机器学习案例\t220
13.2.1 Seq2Seq模型简介\t220
13.2.2 在Kubeflow平台上运行Seq2Seq案例\t222
第14章 KUBEFLOW前景展望和AI HUB\t233
14.1 KUBEFLOW 1.0的功能和计划\t233
14.2 基于KUBEFLOW的AI HUB新模式\t234
14.3 智能云中的AIAAS(AI服务)\t237