开源工具Arena,数据科学家再也不用为Kubernetes犯难啦!
摘要: 为什么要用Kubernetes去难为数据科学家呢?
2018年7月,阿里云将深度学习工具Arena贡献给了开源社区,数据科学家无需学习底层IT资源使用,即可在云端运行深度学习,一分钟内启动深度学习任务,十五分钟内创建异构计算集群。
为什么要有Arena这样的工具?
现在Kubernetres社区最流行的深度学习解决方案是KubeFlow,Arena是不是又重新造了个轮子?KubeFlow是基于Kubernetes构建的可组合,便携式, 可扩展的机器学习技术栈,支持实现从JupyterHub模型开发,TFJob模型训练到TF-serving,Seldon预测端到端的解决方案。但是KubeFlow需要用户精通Kubernetes,比如写一个TFJob的部署yaml文件,这对于机器学习平台最主要的使用者---数据科学家来说是非常有挑战的事情。
这与数据科学家的期望还有比较大的差距,数据科学家关心的是三件事:
- 数据从哪里来
- 如何运行机器学习的代码
- 训练结果(模型和日志)如何查看
数据科学家编写一些简单的脚本,在桌面机上运行机器学习代码,这是他们熟悉和喜欢的工作方式。但是利用桌面机进行模型训练,又会遇到由于硬盘空间有限导致处理数据量不足,无法使用分布式训练导致计算力受限等问题。
为此我们开发了Arena,用一个命令行工具屏蔽所有底层资源、环境管理、任务调度和GPU调度分配的复杂性,它帮助数据科学家以一种简单熟悉的方式提交训练任务并且检查训练进展。数据科学家在调用Arena的时候可以指定数据来源,代码下载和是否使用TensorBoard查看训练效果。
Arena有怎样的作用?
Arena目前支持单机训练和PS-Worker模式的分布式训练,其后端实现依赖于KubeFlow提供的TFJob,很快也会扩展到MPIJob,PytorchJob。
同时也支持实时训练的运维包括:
• 利用top命令监控GPU资源的分配和调度
• 支持CPU,GPU的资源监控
• 训练日志的实时查询
未来我们希望能够通过Arena实现深度学习生产流水线 - 集成训练数据管理,实验任务管理,模型开发,持续训练、评估,上线预测全流程。
Arena的目标就是让数据科学家简单的释放KubeFlow的洪荒之力,像桌面机上训练一样简单,同时又拥有了集群级别调度和管理的掌控性。为了能够更好的在社区内共享和合作,我们已经在github上开源了自己的代码,欢迎大家了解和使用,如果您觉得不错,请给我们点赞。如果您希望贡献代码,我们非常欢迎。
Arena背后的故事,阿里云容器深度学习解决方案
开源工具Arena脱胎于阿里云深度学习解决方案, 该方案已经支持多种深度学习框架(如Tensorflow、Caffe、Hovorod、Pytorch等),从始至终地支撑深度学习的整条生产流水线(集成训练数据管理、实验任务管理、模型开发、持续训练及评估、上线预测等环节)。
该方案深度整合阿里云资源与服务,高效使用CPU、GPU等异构资源,统一容器化编排管控,并提供多维度监控告警和运维平台。
写在最后
“深度学习为人工智能带来变革式的蓬勃发展,然而对计算和数据资源的依赖也急剧增加。” 阿里云相关技术负责人张凯表示:“基于容器和异构计算技术,阿里云为大规模训练提供端到端的支持,不断打磨使用更简单、功能更强大的深度学习解决方案。”
如《Kubeflow实战系列-五篇》、《打造深度学习的云端实验室-三篇》、《TensorFlow的实验-六篇》
作者:木环