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