有奖捉虫:行业应用 & 管理与支持文档专题 HOT

简介

任务创建完成后,会在任务列表页面展示该条训练任务记录,列表展示了任务名称,训练框架,训练模式,计费模式,占用资源,标签,训练开始时间,运行时间,状态,监控和操作。操作包括发布到模型仓库,复制任务,停止/启动任务、删除任务和 Tensorboard 。

复制任务

当用户需要进行多个训练任务进行对比,以比较不同数据集或者不同超参配置的训练效果时,可选择复制训练任务,单击复制训练任务将跳转到创建任务窗口,用户可在原任务配置信息基础上进行简单修改,即可快速创建一个任务。

Tensorboard

平台支持读取 CFS 和 COS 中的 summary 数据生成 Tensorboard 监控面板,具体操作步骤如下:
单击任务列表 > 操作栏中的 Tensorboard 按钮,开始配置 Tensorboard 任务。
?
?
若您的训练输出文件存储在 CFS 中,则选择 CFS 为 summary 输出存储,选择存储路径为您当前训练任务配置的 CFS 文件系统和源路径(若您配置了多个,则需要选择其中一个),填写您的 summary 数据所在的容器内目录(平台默认会将您的 CFS 系统挂载的容器本地路径展示出来,您只需要填写 summary 文件具体所在的子目录),如下图所示:
?
?
?
若您的训练输出文件存储在 COS 中,则选择 COS 为 summary 输出存储,需要注意的是,如果选择了 COS,存储路径默认为任务配置的训练输出 COS 路径 + /< job_id> + /summary,summary 目录默认为/opt/ml/summary/(容器内路径),用户无需配置,因此您需要在训练代码中提前将 summary 监控数据输出到/opt/ml/summary/中,如若不然,则无法创建 Tensorboard 面板。
?
?
完成配置后,单击确定,即可进入 Tensorboard 信息页,此时单击页面中的 点击跳转 ,即可跳转至 Tensorboard 面板。
?
?
启动Tensorboard 可能需要1-2分钟,在此期间,请不要关闭重定向页面。
?
?
?
?
当前 Tensorboard 服务免费提供给用户使用,您可能会遇到平台资源不足的情况,如您在此服务中遇见“不可用”的状态,还请您耐心等待,稍后重试。

停止/启动任务

正在训练的任务用户可以选择手停,停止后的任务可进行重新启动。

发布到模型仓库

训练完成的任务可将输出发布到模型仓库。单击发布到模型仓库,可选择新建模型或者添加已有模型版本。
若选择新建模型,则需输入模型名称;若选择添加已有模型版本,则需要选择模型仓库中的模型,自动生成版本号(新增版本默认版本号自动加1)。

删除任务

训练完成/已停止的任务用户可手动删除记录。

任务详情

单击训练任务名称,可进入任务详情页。

基本信息

基本配置页显示了训练任务的基本配置信息、作业参数信息和资源配置信息。其中任务的标签可以进行更新。

实例列表

实例列表页展示了当前训练任务的实例清单,在此页面可查看实例 ID,占用资源,状态。此外,训练实例可支持直接进入实例容器,用户可在页面上单击进入容器,进入 webshell 页面,用户可执行命令行操作训练实例容器。

监控

任务监控有两个维度,第一是训练指标监控,第二是资源监控。其中训练指标监控页展示了用户自定义上报的监控指标信息。用户训练过程中的指标监控信息需要用户在训练脚本中按照平台规则进行上报(如何上报请查看 Tikit-提交训练任务 文档中的push_training_metrics()指令)。资源监控信息展示了训练任务的 CPU 使用率,MEM 使用率,MEM 使用量,GPU 使用率,显存使用率和显存使用量信息;整卡任务会展示细粒度卡维度监控指标,同时若您提交了整机训练任务,还可以查看节点RDMA使用监控信息。

训练指标上报代码示例:

## 在valide函数中,上传训练指标 acc1和acc5
?
def validate(val_loader, model, criterion, epoch, args):
batch_time = AverageMeter('Time', ':6.3f')
losses = AverageMeter('Loss', ':.4e')
top1 = AverageMeter('Acc@1', ':6.2f')
top5 = AverageMeter('Acc@5', ':6.2f')
progress = ProgressMeter(
len(val_loader),
[batch_time, losses, top1, top5],
prefix='Test: ')
?
# switch to evaluate mode
model.eval()
?
with torch.no_grad():
end = time.time()
for i, (images, target) in enumerate(val_loader):
if args.gpu is not None:
images = images.cuda(args.gpu, non_blocking=True)
target = target.cuda(args.gpu, non_blocking=True)
?
# compute output
output = model(images)
loss = criterion(output, target)
?
# measure accuracy and record loss
acc1, acc5 = accuracy(output, target, topk=(1, 5))
losses.update(loss.item(), images.size(0))
top1.update(acc1[0], images.size(0))
top5.update(acc5[0], images.size(0))
?
# measure elapsed time
batch_time.update(time.time() - end)
end = time.time()
?
if i % args.print_freq == 0:
progress.display(i)
?
## 调用Tikit指令上传指标
client.push_training_metrics(int(time.time()), {"acc1": float(format(top1.avg, '.3f')), "acc5": float(format(top5.avg, '.3f'))}, epoch=epoch)
# TODO: this should also be done with the ProgressMeter
print('TIACC - * Acc@1 {top1.avg:.3f} Acc@5 {top5.avg:.3f} Epoch={epoch}'
.format(top1=top1, top5=top5, epoch=epoch))
?
return top1.avg
任务完成后,可以在“任务式建模/监控”下查看指标(可能会存在一点延迟)。

训练日志

训练任务页展示了实例维度的训练日志,日志可实时刷新查看,也可通过时间选择查看该训练任务的历史日志。平台默认为用户存储最长15天的日志,若您需要持久化存储使用或者使用日志检索等功能,请使用 CLS 日志投递。用户也可在当前页选择开启 CLS 日志投递或者关闭 CLS 日志服务。

事件

平台支持查看任务运行过程中产生的事件,用户可基于事件进行问题的诊断。当前平台部分事件已经接入了腾讯云可观测平台事件总线。TI-ONE 任务式建模支持推送 任务被抢占(taskPreempted)任务自动重启(taskRestarted)任务执行失败(taskExecuteFailed) 几类事件,您可在事件总线-事件规则 配置告警推送(详情请查看事件总线告警配置指引也可在 告警管理 中针对具体的任务配置事件告警推送策略(详情请查看 配置事件告警)。

消息提示

若您在腾讯云消息中心配置了消息接收渠道,当训练任务完成或者异常中止时,您将会收到相应的任务状态消息提示。


http://www.vxiaotou.com