更新时间:2023-09-06 GMT+08:00

使用自定义镜像训练模型

如果您开发算法时使用的框架并不是常用框架,您可以将算法构建为一个自定义镜像,通过自定义镜像创建训练作业。

前提条件

  • 数据已完成准备:已在ModelArts中创建可用的数据集,或者您已将用于训练的数据集上传至OBS目录。
  • 如果“算法来源”“自定义”,请按照规范完成镜像制作,并上传至SWR服务,请参考训练作业自定义镜像规范
  • 训练脚本已上传至OBS目录。
  • 已在OBS创建至少1个空的文件夹,用于存储训练输出的内容。
  • 由于训练作业运行需消耗资源,确保帐户未欠费。
  • 确保您使用的OBS目录与ModelArts在同一区域。

注意事项

  • 训练作业指定的数据集目录中,用于训练的数据名称(如图片名称、音频文件名、标注文件名称等),名称长度限制为0~255英文字符。如果数据集目录下,部分数据的文件名称超过255英文字符,训练作业将不会使用此数据,使用符合要求的数据继续进行训练。如果数据集目录下,所有数据的文件名称都超过了255英文字符,导致训练作业无数据可用,则会最终导致训练作业失败。
  • 训练脚本中,“数据来源”“训练输出位置”,两个参数必须为OBS路径。当需要对路径中进行读写交互时,建议使用MoXing接口进行读写操作。

创建训练作业

  1. 登录ModelArts管理控制台,在左侧导航栏中选择“训练管理 > 训练作业”,默认进入“训练作业”列表。
  2. 在训练作业列表中,单击左上角“创建”,进入“创建训练作业”页面。
  3. 在创建训练作业页面,填写训练作业相关参数,然后单击“下一步”
    1. 填写基本信息。

      您可以根据实际情况填写“名称”“描述”信息。

    2. 填写作业参数。包含数据来源、算法来源等关键信息,详情请参见表1
      表1 作业参数说明

      参数名称

      子参数

      说明

      一键式参数配置

      -

      如果您在ModelArts已保存作业参数,您可以根据界面提示,选择已有的作业参数,快速完成训练作业的参数配置。

      算法来源

      自定义

      自定义镜像的相关规范请参见训练作业自定义镜像规范

      • “镜像地址”:镜像上传到SWR后生成的地址。
      • “代码目录”:训练代码文件存储的OBS路径。
      • “运行命令”:镜像启动后的运行命令,根据实际情况填写。

      数据来源

      数据集

      从ModelArts数据管理中选择可用的数据集及其版本。

      • “选择数据集”:从右侧下拉框中选择ModelArts系统中已有的数据集。当ModelArts无可用数据集时,此下拉框为空。
      • “选择版本”:根据“选择数据集”指定的数据集选择其版本。

      数据存储位置

      从OBS桶中选择训练数据。在“数据存储位置”右侧,单击“选择”,从弹出的对话框中,选择数据存储的OBS桶及其文件夹。

      训练输出位置

      -

      选择训练结果的存储位置。

      说明:

      为避免出现错误,建议选择一个空目录用作“训练输出位置”。请勿将数据集存储的目录作为训练输出位置。

      环境变量

      -

      请根据您的镜像文件,添加环境变量,此参数为可选。单击“增加环境变量”可增加多个变量参数。

      作业日志路径

      -

      选择作业运行中产生的日志文件存储路径。

    3. 选择用于训练作业的资源。
      表2 资源参数说明

      参数名称

      说明

      资源池

      选择训练作业资源池。

      公共资源池又可以选择CPU或GPU两种类型,不同类型的资源池,其收费标准不同,详情请参见产品价格详情

      类型

      当选择公共资源池时,选择资源类型。目前支持CPU和GPU两种类型。

      GPU资源性能更佳,CPU资源性价比更高。如果您选择的算法已定义使用CPU或GPU,界面将自动呈现此资源类型,请务必根据要求选择。

      不同的资源类型的数据盘容量是不同的,详细介绍参考训练环境中不同规格资源“/cache”目录的大小

      规格

      针对不同的资源类型,选择资源规格。

      计算节点个数

      选择计算节点的个数。如果节点个数设置为1,表示后台的计算模式是单机模式;如果节点个数设置大于1,表示后台的计算模式为分布式的。请根据实际编码情况选择计算模式。

    4. 配置订阅消息,并设置是否将当前训练作业中的参数保存为作业参数。
      图1 配置训练作业订阅消息
      表3 订阅消息及作业参数参数说明

      参数名称

      说明

      订阅消息

      订阅消息使用消息通知服务,在事件列表中选择需要监控的资源池状态,在事件发生时发送消息通知。

      此参数为可选参数,您可以根据实际情况设置是否打开开关。如果开启订阅消息,请根据实际情况填写如下参数。

      • “主题名”:订阅消息主题名称。您可以单击创建主题,在消息通知服务中创建主题。
      • “事件列表”:订阅事件。当前可选择“OnJobRunning”“OnJobSucceeded”“OnJobFailed”三种事件,分别代表训练运行中、运行成功、运行失败。

      保存作业参数

      勾选此参数,表示将当前训练作业设置的作业参数保存,方便后续一键复制使用。

      勾选“保存训练参数”,然后填写“作业参数名称”“作业参数描述”,即可完成当前参数配置的保存。训练作业创建成功后,您可以从ModelArts的作业参数列表中查看保存的信息,详细操作指导请参见管理作业参数

    5. 完成参数填写后,单击“下一步”
  4. “规格确认”页面,确认填写信息无误后,单击“提交”,完成训练作业的创建。训练作业一般需要运行一段时间,根据您选择的数据量和资源不同,训练时间将耗时几分钟到几十分钟不等。

    完成自定义镜像作业创建后,系统默认授权ModelArts获取镜像运行。在第一次运行自定义镜像作业时,ModelArts进行自定义镜像审核,审核内容请参见训练作业自定义镜像规范,审核失败的原因可在日志查看,用户根据日志做相应的修改。

    图2 审核镜像失败

    镜像审核成功后,后台就会开始启动用户自定义镜像容器,跑自定义镜像训练作业。您可以前往训练作业列表,查看训练作业的基本情况。在训练作业列表中,刚创建的训练作业“状态”“初始化”,当训练作业的“状态”变为“运行成功”时,表示训练作业运行结束,其生成的模型将存储至对应的“训练输出位置”中。当训练作业的“状态”变为“运行失败”时,您可以单击训练作业的名称,进入详情页面,通过查看日志等手段处理问题。

    图3 运行日志
    • 训练作业创建完成后,将立即启动,运行过程中将按照您选择的资源按需计费。
    • 审核成功后,再次使用相同镜像创建训练作业的时候,不会再次审核。
    • 自定义镜像的默认用户必须为“uid”“1101”的用户。