
# 模型训练使用流程
AI模型开发的过程，称之为Modeling，一般包含两个阶段：
- 开发阶段：准备并配置环境，调试代码，使代码能够开始进行深度学习训练，推荐在ModelArts开发环境中调试。
- 实验阶段：调整数据集、调整超参等，通过多轮实验，训练出理想的模型，推荐在ModelArts训练中进行实验。
两个过程可以相互转换。如开发阶段代码稳定后，则会进入实验阶段，通过不断尝试调整超参来迭代模型；或在实验阶段，有一个可以优化训练的性能的想法，则会回到开发阶段，重新优化代码。
图1模型开发过程   
![](https://support.huaweicloud.com/develop-modelarts/figure/zh-cn_image_0000002665002077.png "点击放大")
ModelArts提供了模型训练的功能，方便您查看训练情况并不断调整您的模型参数。您还可以基于不同的数据，选择不同规格的资源池用于模型训练。
请参考以下指导在ModelArts上训练模型。
表1模型训练流程 
| 操作任务                                                          | 子任务           | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
|:---|:---|:---|
| 准备工作                                                          | 准备训练代码        | 模型训练必备要素包括训练代码、训练框架、训练数据。 训练代码包含训练作业的启动文件或启动命令、训练依赖包等内容。 - 当使用预置框架创建训练作业时，训练代码的开发规范可以参考[开发用于预置框架训练的代码](https://support.huaweicloud.com/develop-modelarts/develop-modelarts-0008.html)。  - 当使用自定义镜像创建训练作业时，训练代码的开发规范可以参考[开发用于预置框架训练的代码](https://support.huaweicloud.com/develop-modelarts/develop-modelarts-1416.html)。                                                            |
| 准备工作                                                          | 准备训练框架（即训练镜像） | 模型训练有多种训练框架来源，具体可以参考[准备模型训练镜像](https://support.huaweicloud.com/develop-modelarts/develop-modelarts-1417.html)。 - ModelArts平台提供了模型训练常用的预置框架，可以直接使用。  - 当预置框架不满足训练要求时，支持用户构建自定义镜像用于训练。                                                                                                                                                                                                                                            |
| 准备工作                                                          | 准备训练数据        | 训练数据除了训练数据集，也可以是预测模型。在创建训练作业前，需要先准备好训练数据。 - 当训练数据可以直接使用，无需二次处理时，可以直接将数据上传至OBS桶。在创建训练作业时，训练的输入参数位置可以直接填写OBS桶路径。  - 当训练数据集的数据未标注或者需要进一步的数据预处理，可以先将数据导入ModelArts数据管理模块进行数据预处理。在创建训练作业时，训练的输入参数位置可以选择数据管理模块的数据集。                                                                                                                                                        |
| 创建调试训练作业                                                      | 调试训练作业        | 模型训练前，需先对代码进行调试，ModelArts提供多种方式创建调试训练作业。 - ModelArts提供了云化版本的JupyterLab，无需关注安装配置，即开即用。调试模式的训练作业支持连接JupyterLab，云上调试和运行代码，调试完成的代码可以直接创建生产训练作业。参考[使用JupyterLab创建并调试训练作业](https://support.huaweicloud.com/develop-modelarts/develop-modelarts-0042.html)。  - ModelArts也提供了本地IDE的方式开发模型，通过开启SSH远程开发，本地IDE可以远程连接到调试训练作业中，进行调试和运行代码。本地IDE方式不影响用户的编码习惯，并且调试完成的代码可以零成本直接创建生产训练作业。   |
| 创建算法                                                          | 创建算法          | 创建生产训练作业之前，需要先准备算法，可以是用户自己准备的算法，也可以使用从AI Gallery订阅的算法。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| 创建生产训练作业  | 训练作业基础功能      | - ModelArts支持通过Console控制台的可视化界面创建训练作业，创建时基于算法来源和训练框架又区分多种创建方式，具体请参见[表2]。  - ModelArts也支持通过调用API接口创建训练作业，请参见[以PyTorch框架创建训练作业](https://support.huaweicloud.com/api-modelarts/modelarts_03_0407.html)。                                                                                                                                                                       |
| 创建生产训练作业  | 训练作业进阶功能      | ModelArts还支持以下训练进阶功能，例如： - 增量训练  - 分布式训练  - 训练加速  - 训练高可靠性                                                                                                              |
| 查看训练结果和日志                                                     | 查看训练作业详情      | 训练作业运行中或运行结束后，可以在训练作业详情页面查看训练作业的参数设置，训练作业事件等。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| 查看训练结果和日志                                                     | 查看训练作业日志      | 训练日志用于记录训练作业运行过程和异常信息，可以通过查看训练作业日志定位作业运行中出现的问题。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
   
 表2训练作业的创建方式介绍 
| 创建方式          | 适用场景                                                            |
|:---|:---|
| 使用预置框架创建训练作业  | 如果您已在本地使用一些常用框架完成算法开发，您可以选择常用框架，创建训练作业来构建模型                     |
| 使用自定义镜像创建训练作业 | 如果您开发算法时使用的框架并不是常用框架，您可以将算法构建为一个自定义镜像，通过自定义镜像创建训练作业。            |
| 使用已有算法创建训练作业  | 算法管理中，管理了用户自己创建的算法和AI Gallery订阅的算法，您可以使用算法管理中的算法，快速创建训练作业，构建模型。 |
| 使用订阅算法创建训练作业  | AI Gallery中提供了现成的算法，供用户使用，您可以直接订阅AI Gallery中的算法，快速创建训练作业，构建模型。  |
   
