如果数据科学行业也有热搜榜,那么机器学习、深度学习的话题热度一定是稳居榜首。然而你知道吗,虽然Machine Learning、Deep Learning如此火热,但据Google Cloud产品经理高级总监Rajen Sheth的说法:

世界上有百万名数据科学家、千万名软件开发人员,但可能只有几千名机器学习工程师能够实现深度学习的“概念变生产”。

认清这个现实后,Google联合世界各地的科技公司,推出了面向机器学习的服务——Kubeflow,将机器学习的“痛点”逐一击破。

23850db51e77e21bca489d95b5d9dd21

看到这里,你是不是已经兴奋得开始搓手手,迫不及待想要了解这项前沿技术了?不要着急,我们一点一点说:

- 机器学习的四大痛点 - Kubernetes —— Kubeflow的基石 - Kubeflow的愿景 —— 让每个公司都能用上机器学习平台 - Kubeflow的实际应用场景 - 哪些公司需要Kubeflow/Kubernetes人才?


机器学习领域的四大痛点

随着机器学习和人工智能的迅猛发展,业界出现了许多开源的机器学习平台,但有四个痛点一直存在于机器学习领域之中:

痛点一:对计算资源的需求越来越高

机器学习和深度学习都必须依靠大规模的数据,进行不断的训练和试错,才能提高结果的准确度和表现。而更多的计算资源,就意味着,我们能够以更快的速度,在更大的数据集上进行迭代,为业务带来更多的可能性。

这也正是很多公司所做的事情:为机器学习和深度学习投入越来越多的资源。

但与此同时,这又带来了一个新的挑战。

痛点二:计算资源的高效利用和分配

当一个公司有了很多的计算资源,一个新的问题就诞生了:如何充分的利用这些资源,在不同的业务小组、不同的训练任务之间进行合理的分配。

很多公司的做法非常原始,每个业务小组可能会被分配一部分固定的资源,之后小组内部进行手动的调度和分配。这样一来,在公司层面,资源无法打通成为一个完整的资源池,资源的利用率和调度上都会存在低效、滞后的问题。

18b4ec91c2ff570643d2a740ad884f53

痛点三:大量人力花重复性劳动上

机器学习,绝不仅仅是“建模”而已。在真实的生产环境中,整个机器学习的Pipeline,还包括了环境配置、数据管道搭建、数据整合、分析、视觉化,模型训练,模型验证发布,监控日志等多个环节,涉及到不同的技术、服务和工具。

b2d77cdd73e53d78a20aa557d9d0fb0f

环节、过程复杂,举两个典型的例子:

  • 不同任务对应不同的tensorflow和python版本,每次跑训练之前,都需要手动配置环境,非常繁琐。
  • 在跑训练的时候,需要不断人肉监测每个机器的资源利用情况,不断调配参数,消耗人力。

痛点四:“上云”的可迁移性

机器学习的整个模型训练和服务的各个环节,其实是在不同环境中实现的。实验在实验环境中进行,训练在训练环境中进行,最终上生产线,一般又需要部署到云环境中去。如果没有资源的自动化整合和调度,是很难让各个环节的结果在不同环境中得到无差别复现的。

就拿云环境来说吧。“上云”现在已是行业大趋势,越来越多的公司部署了实施云化的策略,希望完成传统应用到云端的迁移。但是因为传统应用升级缓慢、架构臃肿、不能快速迭代、故障不能快速定位等一系列问题,使得往云上迁移的过程变得十分麻烦且缓慢。

c1d879d81602487dce16d41fc9886a6f

为了解决上述这些问题,Kubernetes和Kubeflow相继“闪亮登场”。


Kubernetes —— Kubeflow的基石

Google 公司于 2014 年启动了 Kubernetes项目,到现在只有不到5年的发展历史。虽然还是个年轻的技术,但Kubernetes逐渐成为各大公司管理机器学习任务的首选。

Kubernetes 是一个自动化部署、伸缩和操作应用程序容器的开源平台。简单点来说,我们可以把Kubernetes理解成一个分布式集群管理的工具。

一个公司有很多不同机器来运行不同的服务,而Kubernetes的作用,就是把这些机器整合成一个“操作系统”。在这个“操作系统”上,各种各样的service、application、job(比如机器学习的数据库、网页、前端)的部署、scaling,都可以实现自动化。

而Kubeflow,就是专用于Kubernetes的机器学习专案。

Kubeflow的愿景:让每个公司都能用上机器学习平台

Kubeflow并没有“创造”一个新的服务,而是将已有的、常用的机器学习工具,比如Tensorflow、Jupyter Notebooks等等,整合到Kubernetes这个平台上,形成一个一体的pipeline,将机器学习的整个流程(包括数据处理、部署、监控、管理)自动化。

1e55bf72af2a7d13db0953127aa6b741

Kubeflow致力于让Kubernetes上进行的机器学习任务组件化、可移植、可扩展,它的优势具体体现在以下几个方面:

  1. 简化了在 Kubernetes 上面运行机器学习任务的流程, 实现了一套完整可用的自动化流水线。
  2. 实现了native的云原生,即本地训练好的模型,可以一键上云,使得本地开发和云开发在一个环境中,效率大大提高。
  3. 可扩展性好,能满足内部业务的定制化需求,自动调配计算资源。

Kubeflow的开发团队就表示,从事机器学习工作的人所使用的工具琳琅满目,而Kubeflow的重点,是无论遇到什么样的需求,都可以客制化自己的工作流程,提供多种基础架构能够简易、可重复且具备可携性的部署,也能依需求缩放规模。

Kubeflow的实际运用场景

坚持看到这里的同学可能会说,前面说的还是有点抽象,有没有什么我们看得见、摸得着的Kubeflow应用成果呢?

举个例子吧。Kuberneteschina曾在知乎发表文章,介绍了全球知名酒店提供商Booking.com是如何使用Kubeflow来支持深度学习的。

ddcbf5c8e243be88d64f906f19fbe289

Booking在全球 220个国家拥有超过140万套的房源,平均每天有超过150万个酒店房间被预定。

为了给用户提供更好的体验,他们使用了图像标注技术,通过深度学习算法,为各种图像加上标签和评分,如是否为海景房、是否带阳台、床的舒适度等,使得用户在选择酒店时拥有了更多有效信息和评价标准。

而为了更好地支撑深度学习作业,Booking.com选择了 Kubernetes 作为底层调度平台, 结合 Hadoop 和 TensorFlow(即Kubeflow)。他们打通了大数据管理和模型训练、服务的流水线,实现了模型服务初步的负载均衡和弹性伸缩功能,大大提高了搭建和运行深度学习模型服务的效率。


哪些公司/岗位需要Kubeflow/Kubernetes人才?

Kubeflow对于大公司来说意义非凡。除了Booking.com,现在谷歌,微软,亚马逊,Intel以及国内的阿里云,华为云,小米云,京东云, 才云等等公司都在利用Kubeflow,并结合kubernetes对多种机器学习引擎进行多机多卡的大规模训练。

Amazon 94cb62afc8903d945e791d96f99b534b

Apple 64a2eae40617960261697af11eee03f4

百度 e55eb9018b9c16224486f0621001fb30


哪里可以学?

来Offer(www.laioffer.com)人工智能与数据强化课程,全新推出__【基于Kubeflow开发机器学习和AI算法Pipeline】__项目:

ee586fdefc29b30faa7f1854f676e6aa

本项目将会带领同学,手把手在Kubeflow上部署Data Pipeline。让你的简历增添一个超前沿的技术栈,在面试中能自信应对Kubeflow相关问题!

想要获取更多课程详情,请点击:https://www.laioffer.com/zh/course/ai-and-data-engineering/