1.5.1 训练任务组件和流程
Trainjob 基本组件和训练流程
下图是使用 Cloud-ML Trainjob 的基本组件和训练流程。其中1,2,3为用户操作步骤,a,b,c 为平台处理流程。
Cloud-ML Trainjob 的运行依赖两个外部基础设施,Docker Registry 和 FDS,其中 Docker Registry 管理 Docker 镜像。Cloud-ML 平台已经预先定义的许多深度学习框架的镜像存储其中,用户也可以把自己的镜像托管进来,由Cloud-ML平台执行;FDS是Cloud-ML依赖的后端存储系统,用户的训练数据,训练的中间数据、结果、日志等,如果需要保存,用户指定地址,Cloud-ML自动存储。
Trainjob
训练用户的基本操作过程如下:
1. 准备代码,用户需要在本地准备一份调试好的训练代码,要确保符合基本项目规范。具体参见后面介绍;
2. 提交任务,项目代码准备完成后,用户即可提交任务。目前Cloud-ML提供两种任务提交方式,命令行和Web界面,后面有详细介绍;
3. 查看结果,后续用户随时可以通过命令行或者 Web 页面查看训练任务状态,包括训练模型及其他产出。
Trainjob
训练平台的基本处理流程如下:
a. 创建环境,平台收到用户提交的任务后, 从 Docker Registry 中下载用户指定的镜像,并为用户创建运行时;如果一切正常,执行后面的操作;有任何异常,比如资源不足,节点故障,Cloud-ML会通过事件的方式告诉用户;
b. 执行训练,运行环境创建完成后,平台下载用户指定的训练代码并执行。内部的逻辑是,下载代码、解压、安装依赖包(如果代码里面指定了所需的依赖包)、执行代码,执行过程产生的日志,平台提供接口方便用户查看;
c. 保存训练模型和(/或)中间结果,这一步可选。用户训练过程中如果有需要保存的中间结果、临时数据、日志等需要保存,平台将结果保存到用户指定的地方,供训练后使用。
注: Cloud-ML 的运行时由 Docker 管理,所有任务都运行于容器中,Cloud-ML 已经准备了许多深度学习框架的镜像,用户直接指定对应版本镜像名称即可;对于有特殊需求的用户,Cloud-ML 支持使用自己制作的镜像。
在接下来的几个部分,我们将通过教程的形式,一步一步让用户上手Cloud-ML平台。