谈到机器学习工作流平台,Google的工程经验非常丰富,它的TensorFlow Extended机器学习平台支撑了Google的搜索,翻译,视频等核心业务;更重要的是其对机器学习领域工程效率问题的理解深刻,
Google的Kubeflow团队于2018年底开源了Kubeflow Pipelines(KFP), KFP的设计与Google内部机器学习平台TensorFlow Extended一脉相承,唯一的区别是KFP运行在Kubenretes的平台上,TFX是运行在Borg之上的。
什么是Kubeflow Pipelines
Kubeflow Pipelines平台包括:
能够运行和追踪实验的管理控制台
能够执行多个机器学习步骤的工作流引擎(Argo)
用来自定义工作流的SDK,目前只支持Python
而Kubeflow Pipelines的目标在于:
端到端的任务编排: 支持编排和组织复杂的机器学习工作流,该工作流可以被直接触发,定时触发,也可以由事件触发,甚至可以实现由数据的变化触发
简单的实验管理: 帮助数据科学家尝试众多的想法和框架,以及管理各种试验。并实现从实验到生产的轻松过渡。
通过组件化方便重用: 通过重用Pipelines和组件快速创建端到端解决方案,无需每次从0开始的重新构建。
在阿里云上运行Kubeflow Pipeline
看到Kubeflow Piplines的能力,大家是不是都摩拳擦掌,想一睹为快?但是目前国内想使用Kubeflow Pipeline有两个挑战:
Pipelines需要通过Kubeflow部署;而Kubeflow默认组件过多,同时通过Ksonnet部署Kubeflow也是很复杂的事情。
Pipelines本身和谷歌云平台有深度耦合,无法在运行其他云平台上或者裸金属服务器的环境。
为了方便国内的用户安装Kubeflow Pipelines,阿里云容器服务团队提供了基于Kustomize的Kubeflow Pipelines部署方案。和普通的Kubeflow基础服务不同,Kubeflow Pipelines需要依赖于mysql和minio这些有状态服务,也就需要考虑如何持久化和备份数据。在本例子中,我们借助阿里云SSD云盘作为数据持久化的方案,分别自动的为mysql和minio创建SSD云盘。
您可以在阿里云上尝试一下单独部署最新版本Kubeflow Pipelines。
前提条件
在Linux和Mac OS环境,可以执行