查看训练作业监控指标-九游平台
场景介绍
在训练作业运行过程中,如果用户能在模型训练出问题(例如loss值异常)的情况下能收到告警并及时处理,可以节省大量时间和资源,避免无效运行作业导致的浪费。同时通过指标监控可以实时掌握训练作业的进度,了解模型在不同阶段的训练状态。
当前modelarts standard训练作业模块在训练作业详情页的“资源占用情况”页签中提供了训练作业占用的cpu、gpu或npu资源使用情况,具体参见支持在modelarts控制台上直接查看的监控指标。
除了在modelarts控制台训练作业详情页可以查看训练作业的指标外,更多指标可以登录到aom控制台查看,具体参见在aom控制台查看modelarts所有监控指标。
除此外,modelarts还支持自定义一些指标信息采集上报到aom系统,比如训练日志常见打印loss值、step耗时、gpu throughput等指标信息,方便观察指标变化趋势,或对比不同训练作业指标情况,具体参见自定义监控指标上报到aom。
支持在modelarts控制台上直接查看的监控指标
支持在modelarts的控制台上直接查看的训练监控指标如表1和表2所示。
指标 |
说明 |
查看方式 |
---|---|---|
cpuusage |
单个训练作业cpu使用率。 |
在modelarts控制台的训练作业详情页中查看。 具体操作及约束限制请参见查看训练作业资源占用情况章节。 |
gpumemusage |
单个训练作业gpu内存使用率。 |
|
gpuutil |
单个训练作业gpu使用情况。 |
|
memusage |
单个训练作业内存使用率。 |
|
npumemusage |
单个训练作业npu内存使用率。 |
|
npuutil |
单个训练作业npu使用情况。 |
指标 |
说明 |
查看方式 |
---|---|---|
训练作业资源利用率 |
每个训练作业的cpu、gpu或npu资源利用率。 |
在modelarts控制台总览页的“训练作业资源利用情况”版块查看。 |
卡时 |
每个训练作业运行时长和占用卡数。 |
在modelarts控制台总览页的“训练作业资源利用情况”版块查看。 |
自定义监控指标上报到aom
除了modelarts控制台可以直接查看的训练作业相关指标外,还支持自定义监控指标上报到aom控制台查看。配置步骤如下。
- 准备训练代码,在训练代码中增加指标监控的代码。具体代码示例如下。准备训练代码的其它要求请参见。
代码中倒数第2行的region = "cn-southwest-2"参数值请替换成实际region值,region取值可以参考。
代码中增加监控指标数据,具体参数解释参考。
# coding: utf-8 import os from huaweicloudsdkaom.v2 import * from huaweicloudsdkaom.v2.region.aom_region import aomregion from huaweicloudsdkcore.auth.credentials import basiccredentials from huaweicloudsdkcore.exceptions import exceptions from moxing.framework import cloud_utils def report2aom(request,region): auth = cloud_utils.get_auth() #ak、sk和临时token值,系统会自动获取无需在代码中填写。 ak = auth.ak sk = auth.sk securitytoken = auth.token projectid = os.environ.get("ma_iam_project_id") credentials = basiccredentials(ak, sk, projectid).with_security_token(securitytoken) client = aomclient.new_builder() \ .with_credentials(credentials) \ .with_region(aomregion.value_of(region)) \ .build() try: response = client.add_metric_data(request) print(response) except exception as e: print(e) if __name__ == "__main__": request = addmetricdatarequest() listvaluesbody = [ #下面填上对应的指标名称、类型、单位、数值,比如step_time、loss值等 valuedata( metric_name="step_time", #监控指标名称,例如step_time type="float", #指标的数据类型,取值范围只能是"int"或"float"。 unit="ms", #数据的单位。长度不超过32个字符,此处举例为ms value=135.572 #指标数据的值。取值范围有效的数值类型。最小值0 ), valuedata( metric_name="loss", type="float", value=0.6932 ) ] listdimensionsmetric = [ #下面填上想查看的指标维度,比如线程、host等等 dimension2( name="cluster_name",#此处仅为举例示意,请替换为实际需要查看的指标维度 value="fab2c5cf438b4f0c851fdcdf"# 此处仅为举例示意,请替换为实际参数值 ), dimension2( name="user_name", value="modelarts_02" # 此处仅为举例示意,请替换为实际参数值 ), dimension2( name="user_id", value="04f258c8fb00d42a1f6xxx" # 此处仅为举例示意,请替换为实际参数值 ) ] metricbody = metriciteminfo( dimensions=listdimensionsmetric, namespace="nopaas.esc" #保持默认值即可,无需修改 ) listbodybody = [ metricdataitem( collect_time=int(round(time.time()*1000)), #监控指标数据收集时间,为最新的时间戳,ms为单位 metric=metricbody, values=listvaluesbody ) ] request.body = listbodybody region = "cn-southwest-2" #请根据实际region替换 response = report2aom(request,region)
- 在训练代码中加入命令,用于加载对应的依赖包。如果使用的是自定义镜像,也可以在制作镜像时安装以下依赖,具体参见。
pip install huaweicloudsdkaom pip install huaweicloudsdkcore
- 创建训练作业并运行,具体参考创建生产训练作业(默认页面)章节。
- 登录aom控制台,在“指标浏览”页面,通过指定“指标”查看上报的指标数据。
图1 aom上查看指标数据
- 参考告警上报配置方法章节设置aom告警和通知机制。
相关文档
意见反馈
文档内容是否对您有帮助?
如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨