Kubeflow:连接云计算和机器学习的“桥梁”

陈晓猛

2020-08-28

当前的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,后半部分来自Tensor**Flow**。

但目前看来,flow代表的不止是TensorFlow,而是所有AI平台,包括PyTorch、MXNet、XGBoost等,因为Kubeflow社区支持大部分机器学习框架,所以我们可以将flow理解为“流”技术的统称。

03Kubeflow能做什么?

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服务)

读者评论

相关博文

  • 社区使用反馈专区

    陈晓猛 2016-10-04

    尊敬的博文视点用户您好: 欢迎您访问本站,您在本站点访问过程中遇到任何问题,均可以在本页留言,我们会根据您的意见和建议,对网站进行不断的优化和改进,给您带来更好的访问体验! 同时,您被采纳的意见和建议,管理员也会赠送您相应的积分...

    陈晓猛 2016-10-04
    5421 735 3 7
  • 迎战“双12”!《Unity3D实战核心技术详解》独家预售开启!

    陈晓猛 2016-12-05

    时隔一周,让大家时刻挂念的《Unity3D实战核心技术详解》终于开放预售啦! 这本书不仅满足了很多年轻人的学习欲望,并且与实际开发相结合,能够解决工作中真实遇到的问题。预售期间优惠多多,实在不容错过! Unity 3D实战核心技术详解 ...

    陈晓猛 2016-12-05
    3299 36 0 1
  • czk 2017-07-29
    5866 28 0 1