KubeFlow是基于Kubernetes构建的可组合,便携式, 可扩展的机器学习技术栈,支持实现从JupyterHub模型开发,TFJob模型训练到TF-serving,Seldon预测端到端的解决方案。但是KubeFlow需要用户精通Kubernetes,比如写一个TFJob的部署yaml文件,这对于机器学习平台最主要的使用者---数据科学家来说是非常有挑战的事情。
这与数据科学家的期望还有比较大的差距,数据科学家关心的是三件事:
- 数据从哪里来
- 如何运行机器学习的代码
- 训练结果(模型和日志)如何查看
数据科学家编写一些简单的脚本,在桌面机上运行机器学习代码,这是他们熟悉和喜欢的工作方式。但是利用桌面机进行模型训练,又会遇到由于硬盘空间有限导致处理数据量不足,无法使用分布式训练导致计算力受限等问题。
为此我们开发了Arena,用一个命令行工具屏蔽所有底层资源、环境管理、任务调度和GPU调度分配的复杂性,它帮助数据科学家以一种简单熟悉的方式提交训练任务并且检查训练进展。数据科学家在调用Arena的时候可以指定数据来源,代码下载和是否使用TensorBoard查看训练效果。
Arena目前支持单机训练和PS-Worker模式的分布式训练,其后端实现依赖于KubeFlow提供的TFJob,很快也会扩展到MPIJob,PytorchJob。
未来我们希望能够通过Arena实现深度学习生产流水线 - 集成训练数据管理,实验任务管理,模型开发,持续训练、评估,上线预测全流程。
同时也支持实时训练的运维包括:
- 利用top命令监控GPU资源的分配和调度
- 支持CPU,GPU的资源监控
- 训练日志的实时查询
Arena的目标就是让数据科学家简单的释放KubeFlow的洪荒之力,像桌面机上训练一样简单,同时又拥有了集群级别调度和管理的掌控性。为了能够更好的在社区内共享和合作,我们已经在github上开源了自己的代码:https://github.com/AliyunContainerService/arena,欢迎大家了解和使用,如果您觉得不错,请给我们点赞。如果您希望贡献代码,我们非常欢迎。
以下是使用文档:
视频Demo: