训练任务
Octopus平台为用户提供训练任务管理(支持分布式训练),任务实时日志,产物(模型)管理等多种功能。
创建训练任务
- 在左侧菜单栏中选择“训练服务 > 训练任务”。
- 单击“新建训练任务”,填写基本信息。
- 名称:任务组名称,包含中英文、数字、“_”“-”,不得超过64个字符。
- 描述:简要描述任务,不包含“@^\#$%&*<>'|"/”,不得超过256个字符。
- 资源规格:当前项目中可用的资源规格。
- 计算节点个数:用于运行训练任务的训练节点个数。
- 优先级:设定任务的优先级,数值取[-50,50]的整数,数字越大,优先级越高。
- 选择算法。
- 训练算法:根据业务所需选择算法,自定义算法需提前在“训练服务 > 算法管理”中创建成功。
当训练算法的“类型”选择为“仅镜像 (包含算法文件)”时,且训练任务的资源规格为ModelArts类型时,容器启动使用的默认用户为ma-user,需确保该用户拥有调用算法文件和运行依赖的相关权限。
- 参数列表:由算法携带,可修改参数值。
- 环境变量:由算法携带,可修改参数值。
- 运行用户ID:运行用户ID(uid)为任务启动时使用的用户ID, 该参数为选填参数, 范围0-65535, 默认值为1000。注意指定的用户ID需要提前在自定义镜像中预置。
- 训练算法:根据业务所需选择算法,自定义算法需提前在“训练服务 > 算法管理”中创建成功。
- 选择需要归档的模型仓库。
模型仓库需提前在“数据资产 > 模型管理”中创建成功。
- 常规训练:基于数据集和用户算法训练新模型。
- 增量训练:基于用户导入的模型或已完成训练模型版本(可通过${MODEL}获取该模型版本的文件路径)和新数据集使用选择的算法再次进行训练,生成精度更高的新模型。同常规训练不同的是需要额外选择(最多选择10个模型版本)输入模型和版本,输出模型仓库。
- 选择数据输入
支持从“数据资产”下的“数据集”中选择数据集作为输入。
样本类型与所选训练算法一致,且至少有一个已发布版本(或待发布区有导入成功的版本)且标注状态为“已标注”的数据集才能被筛选到。
支持从“数据资产”下的“数据缓存”中选择“缓存成功”或“缓存过期”的数据集缓存作为输入。数据集/数据缓存一共最多支持选择10条。
- 选择资源挂载。
如果2中的“资源规格”选择的是ModelArts类型的集群,可添加资源挂载,最多支持10条。目前支持挂载的资源只有“数据集”。
“数据输入”选择的数据集会在算法启动前下载到容器本地。因此数据集越大,等待时间越长;且下载的数据集占用计算节点自身的数据盘,因此有大小限制。不同类型计算节点的可用存储空间请咨询运维人员。
“资源挂载”选择的数据集并不占用计算节点自身的存储空间,也无需耗费时间提前下载,而是通过通过网络存储协议直接挂载到本地。优点是快速便捷,无大小限制;缺点是数据加载速度相对较慢。
- 单击“创建”,在任务列表或分组可查看新建训练任务。
训练任务相关操作
在“训练任务”列表,可对训练任务进行以下操作:
| 任务 | 操作步骤 |
|---|---|
| 查找任务 | 在搜索输入框中输入搜索条件,按回车键即可查询。 |
| 查看任务详情 | 单击任务名称,可在任务详情页查看该任务详情、资源挂载、参数信息、任务日志和资源占用情况。
|
| 删除任务 |
|
| 重建任务 | 单击操作栏内的“重建”,输入新任务名称(“任务组名-自定义名称”)和“删除原任务”选项,重建任务时可调整除算法外的所有信息。 |
| 停止任务 | 对于运行中、等待中的任务,用户可以单击操作栏的“停止”终止任务。 |
| 作业状态 | 作业状态描述 | 是否占用GPU资源 | 重建 | 删除 | 停止 |
|---|---|---|---|---|---|
| 排队中 | 训练任务已创建成功,进入任务队列等待系统调度。 | - | - | √ | √ |
| 提交中 | 训练任务已被系统调度,正在向平台提交。 | √ | - | - | - |
| 提交失败 | 训练任务向平台提交失败。 | - | √ | √ | - |
| 等待中 | 训练任务向平台提交成功,暂未运行。 | √ | - | √ | √ |
| 运行中 | 训练任务向平台提交成功,处于运行中。 | √ | - | - | √ |
| 运行异常 | 训练任务运行失败。 | - | √ | √ | - |
| 已完成 | 训练任务运行成功。 | - | √ | √ | - |
| 停止中 | 单击“停止”后尚未停止。 | √ | - | - | - |
| 停止失败 | 单击“停止”后停止失败。 | √ | - | √ | - |
| 已停止 | 训练任务已停止。 | - | √ | √ | - |
| 删除中 | 单击“删除”后尚未删除。 | √ | - | - | - |
| 删除失败 | 单击“删除”后删除失败。 | 仅等待中的任务单击“删除”且删除失败的任务可能会占用 | - | √ | - |
训练任务日志查看和下载
训练任务运行的过程中生成日志,训练任务模块提供了日志的查看以及下载功能,支持用户查看训练任务的运行情况。CCE平台训练任务生成的日志文件有以下四种:
- train-{id}-{index}.log:用户实际训练任务的训练日志。
- train-{id}-{index}-init.log:Octopus平台提供的前置数据的准备日志。
- train-{id}-{index}-sidecar.log:Octopus平台提供的任务流程控制日志,包括日志同步、结果上传。
- octopus-train-{id}-{index}-supplemental.logs: Octopus平台任务异常退出或停止产生的错误信息输出日志,运行正常时不产生该日志。
{id}为该训练任务ID,{index}为节点编号,例如单节点single-0,多节点distributed-0 distributed-1。
详情页,单击“任务日志”,可查看该训练任务日志详情。支持在线浏览或下载至本地。如果日志较多,用户可在搜索框中输入关键字,查找指定日志内容。
在日志服务页面中的日志列表部分详细展示了该训练任务包含的日志文件的大小以及最新写入时间。单击文件后的“查看”,算法训练的详细执行过程会在日志详情部分展示。用户也可在日志文件后的“操作”栏中,单击“下载”,即可将该日志文件下载到本地查看。
训练指标可视化
训练任务运行的过程中,可实时监控训练指标,并在页面展示可视化趋势。平台支持展示最多六张折线图信息,使用该功能用户需对接平台可视化指标规范。
功能介绍:
若用户已对接训练指标规范,在训练任务详情页,单击 训练指标 页签,可查看算法输出的指标趋势。
图表功能包括:
1、最多支持6张图渲染,每张图支持单纵轴或双纵轴,支持多系列数据
2、折线图支持全屏
3、支持下载PNG图片和CSV原始表单数据
4、支持折线平滑
5、支持区域选择
对接规范:
用户需将需要观测的指标记录,按以下文件格式写入到指定路径。其中路径定义为"METRICS"环境变量定义的地址,参考文件如下图。

1、元信息文件:metrics.json(固定名称) 记录图表基础信息,如名称、x轴、y轴、多系列legend信息、平滑选项等,参考格式如下:
{
"id": "任务ID",
"metas": [
{
"name": "指标/图名称", // 不可重复 (1-16位中英文、数字、-、_)
"x": "X轴名称", (1-16位中英文、数字、-、_)
"ys": ["左Y轴名称", "右Y轴名称"], // 若仅有1项,则默认仅左Y轴 (1-16位中英文、数字、-、_)
"series": ["系列1名称", "系列2名称"], // 最多支持4个系列,该项不为空时,约束ys仅包含单Y轴 (1-16位中英文、数字、-、_)
"description": "指标/图描述信息", (1-64位中英文、数字、-、_)
"smooth": "false", // 是否平滑处理,默认为false
"with_timestamp": "false" // 默认不携带时间戳(当前版本未规划,保持默认值)
}
]
} 上述文档中,metas中可包括最多6个图表项,其中name唯一,作为数据文件名称索引。
2、指标数据文件:acc.csv(示例) xx.csv为单个指标数据文件(xx为图名称),数据文件中不包括表头,使用CSV文件驱动,参考格式如下:
1,2.31,8.92 2,2.31,8.92 3,2.31,8.92 4,2.31,8.92 5,2.31,8.92 6,2.31,8.92 7,2.31,8.92 8,2.31,8.92 9,2.31,8.92 10,2.31,8.92
上述数据与metrics.json文件对应,第1列为x轴数据。若该图为双纵轴数据,则第2列和第3列分别对应左y轴和右y轴数据;若该图为单y轴、双系列数据,则第2列和第3列分别对应系列1和系列2数据(多legends)。
- 平台单个指标最多支持保存5000个点,若超过该数量会对数据进行压缩,压缩方式为前序数据等比降采样,以此保证最新数据高采样率刷新
- 联系华为工程师获取可视化指标记录python-sdk,可实现算法直接调用,免去上述文件记录步骤,调用sdk接口实现图表初始化和数据记录
资源占用情况
在任务运行中,资源占用情况模块显示任务占用的CPU、内存、GPU/显存利用率、占用率百分比的折线图。默认显示CPU占用情况折线图。
- 双击任一图例:显示全部资源占用折线图。
- 单击指定图例:只显示该图例折线图。
此模块也可显示多个计算节点运行任务时,资源占用的情况。
- 如果选择2个计算节点运行任务,则可选择查看单个节点资源占用情况。
- 如果1个计算节点上存在多张GPU,则会显示所有GPU占用情况。
资源占用情况功能模块,需要用户在制作自定义镜像时安装psutil与pynvml,参考命令如下:pip install psutil pynvml
如果未安装psutil与pynvml,则页面无法显示资源使用状况。