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