跳到主要内容

模型训练

路径:人工智能 --- 代码开发与训练 --- 模型训练

功能概述

系统支持创建训练任务,包括:

  • 从模型工厂中选择模型
  • 进行超参设置
  • 选择训练数据集
  • 提供资源规格来运行训练任务

启动模型训练任务时,系统支持分布式训练。

训练过程中,用户可以:

  • 查看任务详情,包括训练任务 ID、训练数据集、训练日志等信息
  • 启动可视化任务,通过 TensorBoard 或 MindInsight 展示训练可视化信息,支持任务运行日志获取
  • 利用系统提供的实验结果对比能力

创建项目

在开始训练和评估前,需要创建模型训练项目。

alt text

alt text

训练模型

创建训练任务

在 “创建模型训练” 页面中,从模型库的模型库中选择模型,填写如下参数:

  • 模型名称:点击浏览按钮,在弹出的模型列表中选择需要使用的模型,选择后会自动填写此模型的相关信息,包括标签、镜像、CPU 架构、conda 环境、训练可视化、分布式训练
  • 增量训练:如果模型支持增量训练,可以选择已有任务输出的权重文件作为预训练模型进行增量训练
  • 超参配置:可采用默认数值进行训练,也可根据需要修改参数配置
  • 数据配置:选择任意数据集。若选择了多个数据集,需要算法代码自行适配

alt text

查看任务详情

在任务列表中,点击任务的任务序号,可以查看训练详情,包括训练日志。等待训练状态变为 “已完成”,即模型训练完成。训练结束后,可以查看、下载包括权重文件在内的模型文件。

alt text

断点续训

对于中途中断的训练任务,可以从最近一次断点记录恢复训练。在训练任务列表中,点击任务右侧的 “更多 - 续训” 按钮,自动开始断点续训。

alt text

需要注意的是,不是所有模型都支持断点续训,需要满足以下条件:

  • 在模型代码中将模型断点数据输出到接收平台参数的 “任务输出路径” 中
  • 在续训时读取此路径中的断点数据
  • 在模型的训练配置中打开 “断点续训” 开关

评估模型

对于已经完成模型训练的任务,可以进一步评估模型。

alt text

创建评估任务

在训练列表中,点击训练任务右侧的 “评估” 按钮,对模型进行评估。进入 “创建模型评估” 页面,填写相关参数。

alt text

查看评估任务详情

点击评估序号,可以查看评估详情及评估指标、评估日志等信息。

alt text

训练可视化

支持TensorBoard和MindInsight两种对训练任务进行可视化的方式。 可视化需要满足下列要求:

  • 模型算法需要按照TensorBoard和MindInsight可视化规范,将可视化内容输出到训练任务输出路径。
  • 模型算法需要接收平台通过命令行参数的形式传递的训练任务输出路径。并需要在模型库-模型详情-训练配置中,编辑模型算法接收的命令行参数名称。
  • 运行训练任务时,任务列表“TensorBoard/MindInsight”列中点击启动按钮,等待状态变为运行中后,点击打开按钮,即可在新窗口中查看TensorBoard或MindInsight可视化内容。

alt text

alt text

alt text

实验对比

过程中,可以进行实验对比,包括模型训练后的训练对比、评估对比,以及代码开发后的调试训练对比,能够对比多次训练评估后的输出指标,并可视化展示对比结果。

提示

监控对比指标

在对比之前,需要在模型的算法代码中指定对比指标,并跟踪输出。此处使用平台提供的实验数据可视化 SDK 指定用于对比的训练、评估指标。

安装SDK

进入开发环境后,首先通过JupyterLab或SSH在命令行中安装aim

初始化

编写实验脚本。 导入aim包,并创建Run对象。一个Run对象通常对应一次模型训练或者评估实验。

from aim import Run
run = Run()

声明超参

记录实验参数,方便后续的观察和分析。

run['hparams'] = {
'learning_rate': 0.001,
'batch_size': 32,
}

记录指标

在训练或评估代码的合适处,调用track,记录指标。value为指标值,name为指标名称。

run.track(value, name='name')

完整示例

from aim import Run

run = Run()

run['hparams'] = {
'learning_rate': 0.001,
'batch_size': 32,
}

... # 模型训练或者评估代码
run.track(value1, name='name1')
... # 模型训练或者评估代码
run.track(value2, name='name2')

训练对比

打开一个模型训练项目,并完成了若干次的训练。

  • 点击项目详情页面的“训练对比”按钮,弹出选择训练任务弹框。
  • 在弹框中选择需要对比的训练任务,并加入穿梭框右侧的目标列表,点击“对比”按钮。
  • 在训练对比页面,可以查看指标的对比情况。
  • 训练对比页面中,点击“可视化对比”,可以查看指标的可视化对比情况。

评估对比

打开一个模型训练项目,并完成了若干次的评估。

  • 点击项目详情页面的“评估对比”按钮,弹出选择评估任务弹框。
  • 在弹框中选择需要对比的评估任务,并加入穿梭框右侧的目标列表,点击“对比”按钮。
  • 在评估对比页面,可以查看指标的对比情况。
  • 评估对比页面中,点击“可视化对比”,可以查看指标的可视化对比情况。

发布模型

模型训练或评估后,可以将训练输出的权重发布为新的模型或版本。 项目详情页面中,对于已经训练完成的任务,点击“更多-发布”按钮,进入发布页面。

在发布页面,填写以下参数:

  • 模型名称:若输入的名称与已有模型同名,则发布为已有模型的新版本,否则发布为新模型。
  • 描述:填写模型的描述信息。
  • 标签:可以新建或选择已有标签,便于描述和筛选模型。
  • 发布内容:从训练任务输出目录中选择文件,发布时会拷贝到新模型包的模型目录中。

填写完毕后点击发布按钮,即会按照上述信息将模型发布到模型库。在训练任务列表中,能看到此次发布的状态。

发布后配置更新

发布新模型的训练配置、评估配置、推理配置信息与训练模型相同。如需调整,请前往模型库的模型详情中更新。