Kubeflow · Google Cloud Platform · Machine Learning · Kubernetes
如果数据科学行业也有热搜榜,那么机器学习、深度学习的话题热度一定是稳居榜首。然而你知道吗,虽然Machine Learning、Deep Learning如此火热,但据Google Cloud产品经理高级总监Rajen Sheth的说法:
世界上有百万名数据科学家、千万名软件开发人员,但可能只有几千名机器学习工程师能够实现深度学习的“概念变生产”。
认清这个现实后,Google联合世界各地的科技公司,推出了面向机器学习的服务——Kubeflow,将机器学习的“痛点”逐一击破。
看到这里,你是不是已经兴奋得开始搓手手,迫不及待想要了解这项前沿技术了?不要着急,我们一点一点说:
- 机器学习的四大痛点 - Kubernetes —— Kubeflow的基石 - Kubeflow的愿景 —— 让每个公司都能用上机器学习平台 - Kubeflow的实际应用场景 - 哪些公司需要Kubeflow/Kubernetes人才?
机器学习领域的四大痛点
随着机器学习和人工智能的迅猛发展,业界出现了许多开源的机器学习平台,但有四个痛点一直存在于机器学习领域之中:
痛点一:对计算资源的需求越来越高
机器学习和深度学习都必须依靠大规模的数据,进行不断的训练和试错,才能提高结果的准确度和表现。而更多的计算资源,就意味着,我们能够以更快的速度,在更大的数据集上进行迭代,为业务带来更多的可能性。
这也正是很多公司所做的事情:为机器学习和深度学习投入越来越多的资源。
但与此同时,这又带来了一个新的挑战。
痛点二:计算资源的高效利用和分配
当一个公司有了很多的计算资源,一个新的问题就诞生了:如何充分的利用这些资源,在不同的业务小组、不同的训练任务之间进行合理的分配。
很多公司的做法非常原始,每个业务小组可能会被分配一部分固定的资源,之后小组内部进行手动的调度和分配。这样一来,在公司层面,资源无法打通成为一个完整的资源池,资源的利用率和调度上都会存在低效、滞后的问题。
痛点三:大量人力花重复性劳动上
机器学习,绝不仅仅是“建模”而已。在真实的生产环境中,整个机器学习的Pipeline,还包括了环境配置、数据管道搭建、数据整合、分析、视觉化,模型训练,模型验证发布,监控日志等多个环节,涉及到不同的技术、服务和工具。
环节、过程复杂,举两个典型的例子:
- 不同任务对应不同的tensorflow和python版本,每次跑训练之前,都需要手动配置环境,非常繁琐。
- 在跑训练的时候,需要不断人肉监测每个机器的资源利用情况,不断调配参数,消耗人力。
痛点四:“上云”的可迁移性
机器学习的整个模型训练和服务的各个环节,其实是在不同环境中实现的。实验在实验环境中进行,训练在训练环境中进行,最终上生产线,一般又需要部署到云环境中去。如果没有资源的自动化整合和调度,是很难让各个环节的结果在不同环境中得到无差别复现的。
就拿云环境来说吧。“上云”现在已是行业大趋势,越来越多的公司部署了实施云化的策略,希望完成传统应用到云端的迁移。但是因为传统应用升级缓慢、架构臃肿、不能快速迭代、故障不能快速定位等一系列问题,使得往云上迁移的过程变得十分麻烦且缓慢。
为了解决上述这些问题,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,将机器学习的整个流程(包括数据处理、部署、监控、管理)自动化。
Kubeflow致力于让Kubernetes上进行的机器学习任务组件化、可移植、可扩展,它的优势具体体现在以下几个方面:
- 简化了在 Kubernetes 上面运行机器学习任务的流程, 实现了一套完整可用的自动化流水线。
- 实现了native的云原生,即本地训练好的模型,可以一键上云,使得本地开发和云开发在一个环境中,效率大大提高。
- 可扩展性好,能满足内部业务的定制化需求,自动调配计算资源。
Kubeflow的开发团队就表示,从事机器学习工作的人所使用的工具琳琅满目,而Kubeflow的重点,是无论遇到什么样的需求,都可以客制化自己的工作流程,提供多种基础架构能够简易、可重复且具备可携性的部署,也能依需求缩放规模。
Kubeflow的实际运用场景
坚持看到这里的同学可能会说,前面说的还是有点抽象,有没有什么我们看得见、摸得着的Kubeflow应用成果呢?
举个例子吧。Kuberneteschina曾在知乎发表文章,介绍了全球知名酒店提供商Booking.com是如何使用Kubeflow来支持深度学习的。
Booking在全球 220个国家拥有超过140万套的房源,平均每天有超过150万个酒店房间被预定。
为了给用户提供更好的体验,他们使用了图像标注技术,通过深度学习算法,为各种图像加上标签和评分,如是否为海景房、是否带阳台、床的舒适度等,使得用户在选择酒店时拥有了更多有效信息和评价标准。
而为了更好地支撑深度学习作业,Booking.com选择了 Kubernetes 作为底层调度平台, 结合 Hadoop 和 TensorFlow(即Kubeflow)。他们打通了大数据管理和模型训练、服务的流水线,实现了模型服务初步的负载均衡和弹性伸缩功能,大大提高了搭建和运行深度学习模型服务的效率。
哪些公司/岗位需要Kubeflow/Kubernetes人才?
Kubeflow对于大公司来说意义非凡。除了Booking.com,现在谷歌,微软,亚马逊,Intel以及国内的阿里云,华为云,小米云,京东云, 才云等等公司都在利用Kubeflow,并结合kubernetes对多种机器学习引擎进行多机多卡的大规模训练。
Amazon
Apple
百度
哪里可以学?
来Offer(www.laioffer.com)人工智能与数据强化课程,全新推出__【基于Kubeflow开发机器学习和AI算法Pipeline】__项目:
本项目将会带领同学,手把手在Kubeflow上部署Data Pipeline。让你的简历增添一个超前沿的技术栈,在面试中能自信应对Kubeflow相关问题!
想要获取更多课程详情,请点击:https://www.laioffer.com/zh/course/ai-and-data-engineering/