【DSW Gallery】如何提交开启AIMaster容错监控的DLC任务

本文涉及的产品
交互式建模 PAI-DSW,5000CU*H 3个月
简介: AIMaster是一个管控组件,起到任务监控、容错判断以及资源控制等作用。本文将介绍如何使用Python SDK提交开启AIMaster容错监控的DLC任务。

直接使用

请打开如何提交开启AIMaster容错监控的DLC任务,并点击右上角 “ 在DSW中打开” 。

image.png

概览

PAI-DLC(Deep Learning Containers)是基于阿里巴巴容器服务ACK(Alibaba Cloud Container Service for Kubernetes)的深度学习训练平台,为您提供灵活、稳定、易用和极致性能的深度学习训练环境。

为了提高大规模分布式深度学习任务鲁棒性,PAI-DLC提供了基于AIMaster的容错监控功能。AIMaster是一个管控组件,当任务开启AIMaster容错监控功能后,会拉起一个AIMaster实例和任务其他实例一起运行,起到任务监控、容错判断以及资源控制等作用。

本文将介绍如何使用PAI-DLC Python SDK提交开启AIMaster容错监控的DLC任务。

前提条件

步骤一:安装Python SDK

执行以下命令安装PAI-DLC的Python SDK

!pip install alibabacloud-pai-dlc20201203 -U -q

步骤二:提交开启AIMaster容错监控任务

在PAI-DLC Python SDK中和AIMaster容错监控相关的关键字段如下所示,在JobSettings中通过enable_error_monitoring_in_aimaster参数开启AIMaster容错监控,通过error_monitoring_args参数设置具体的容错监控参数。

from alibabacloud_pai_dlc20201203.models import JobSettings, CreateJobRequest
settings = JobSettings(
    enable_error_monitoring_in_aimaster = True,
    error_monitoring_args = ""
)
create_job_req = CreateJobRequest(
    ...
    settings = settings,
)

下面将分别给出开启AIMaster容错监控的PyTorch任务示例以及TensorFlow任务示例。

PyTorch任务示例

下面的示例假设是PyTorch同步训练任务,在运行过程中意外发生hang。 示例任务开启了AIMaster容错监控,设置的容错监控参数为:开启任务重启、开启任务hang检测。在任务运行过程中,当AIMaster检测到任务hang后将会重启任务。

import time
from alibabacloud_pai_dlc20201203.client import Client
from alibabacloud_pai_dlc20201203.models import CreateJobRequest, JobSpec, JobSettings
from alibabacloud_tea_openapi.models import Config
workspace_id = "***已有的AI工作空间ID***"
region_id = "cn-hangzhou" # Region,可以是cn-hangzhou,cn-shanghai,cn-shenzhen等
config = Config(
    access_key_id="***你的access_key_id***",
    access_key_secret="***你的access_key_secret***",
    region_id=region_id,
    endpoint= "pai-dlc.{}.aliyuncs.com".format(region_id))
dlc_client = Client(config)
worker_spec = JobSpec(
    type = "Worker",
    pod_count = 2,
    image = "registry.{}.aliyuncs.com/pai-dlc/pytorch-training:1.8PAI-gpu-py36-cu101-ubuntu18.04".format(region_id),
    ecs_spec = "ecs.c6.large",)
settings = JobSettings(
    enable_error_monitoring_in_aimaster = True,
    error_monitoring_args = "--job-execution-mode=Sync --enable-job-restart=True \
                            --enable-job-hang-detection=True --job-hang-interval=20 \
                            --max-num-of-same-error=1")
create_job_req = CreateJobRequest(
    display_name = "TestJobHangWithRetry",
    job_type = "PyTorchJob",
    workspace_id = workspace_id,
    job_specs = [worker_spec],
    user_command = "sleep 10240",
    settings = settings, )
create_job_resp = dlc_client.create_job(create_job_req)
job_id = create_job_resp.body.job_id
while True:
    job = dlc_client.get_job(job_id).body
    print('job is {}'.format(job.status))
    if job.status in ('Succeeded', 'Failed', 'Stopped'):
        break
    time.sleep(10)

任务提交后,您可以到DLC-Web上查看任务详细运行信息。上述任务运行过程如下图所示,由于任务发生过重启,所以存在重复实例名。

image.png

TensorFlow任务示例

下面示例是TensorFlow异步训练任务,在任务运行过程中,worker-0训练到一定步数会自动出错,完整测试代码见链接

该示例任务开启了AIMaster容错监控,容错策略配置的OnFailure,只要worker运行出错会无条件重启。

import time
from alibabacloud_pai_dlc20201203.client import Client
from alibabacloud_pai_dlc20201203.models import CreateJobRequest, JobSpec, JobSettings
from alibabacloud_tea_openapi.models import Config
workspace_id = "***已有的AI工作空间ID***"
region_id = "cn-hangzhou" # Region,可以是cn-hangzhou,cn-shanghai,cn-shenzhen等
config = Config(
    access_key_id="***你的access_key_id***",
    access_key_secret="***你的access_key_secret***",
    region_id=region_id,
    endpoint= "pai-dlc.{}.aliyuncs.com".format(region_id))
dlc_client = Client(config)
docker_image = "registry.{}.aliyuncs.com/pai-dlc/tensorflow-training:1.15-cpu-py36-ubuntu18.04".format(region_id)
ps_spec = JobSpec(
    type = "PS",
    pod_count = 1,
    image = docker_image,
    ecs_spec = "ecs.c6.large",)
chief_spec = JobSpec(
    type = "Worker",
    pod_count = 1,
    image = docker_image,
    ecs_spec = "ecs.c6.large",)
worker_spec = JobSpec(
    type = "Chief",
    pod_count = 1,
    image = docker_image,
    ecs_spec = "ecs.c6.large",)
job_spec = [ps_spec, chief_spec, worker_spec]
settings = JobSettings(
    enable_error_monitoring_in_aimaster = True,
    error_monitoring_args = "--job-execution-mode=Async --fault-tolerant-policy=OnFailure")
create_job_req = CreateJobRequest(
    display_name = "TestPsJobWithWorkerRetry",
    job_type = "TFJob",
    workspace_id = workspace_id,
    job_specs = job_spec,
    user_command = "wget https://pai-dlc-regression-test.oss-cn-beijing.aliyuncs.com/fault-tolerance/ps_job_test.py && python ps_job_test.py",
    settings = settings, )
create_job_resp = dlc_client.create_job(create_job_req)
job_id = create_job_resp.body.job_id
while True:
    job = dlc_client.get_job(job_id).body
    print('job is {}'.format(job.status))
    if job.status in ('Succeeded', 'Failed', 'Stopped'):
        break
    time.sleep(10)

任务提交后,您可以到DLC-Web上查看任务详细运行信息。上述任务运行过程如下图所示,由于worker-0实例发生过重启,所以存在重复实例名。

image.png

相关实践学习
使用PAI-EAS一键部署ChatGLM及LangChain应用
本场景中主要介绍如何使用模型在线服务(PAI-EAS)部署ChatGLM的AI-Web应用以及启动WebUI进行模型推理,并通过LangChain集成自己的业务数据。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
|
5月前
|
Serverless
Serverless 应用引擎中,sae2.0绑定域名出问题了,提交了之后没显示出来,然后再添加就提示已存在,是必现,为什么?
Serverless 应用引擎中,sae2.0绑定域名出问题了,提交了之后没显示出来,然后再添加就提示已存在,是必现,为什么?
202 1
|
1天前
|
机器学习/深度学习 存储 分布式计算
机器学习PAI常见问题之DLC的数据写入到另外一个阿里云主账号的OSS中如何解决
PAI(平台为智能,Platform for Artificial Intelligence)是阿里云提供的一个全面的人工智能开发平台,旨在为开发者提供机器学习、深度学习等人工智能技术的模型训练、优化和部署服务。以下是PAI平台使用中的一些常见问题及其答案汇总,帮助用户解决在使用过程中遇到的问题。
|
4天前
|
Java Serverless 测试技术
Serverless 应用引擎常见问题之上传自定义jar包自动vpc启动报错如何解决
Serverless 应用引擎(Serverless Application Engine, SAE)是一种完全托管的应用平台,它允许开发者无需管理服务器即可构建和部署应用。以下是Serverless 应用引擎使用过程中的一些常见问题及其答案的汇总:
28 4
|
1月前
|
搜索推荐 语音技术 开发工具
ModelScope问题之文档部署到阿里云EAS 调用模型报错如何解决
ModelScope模型报错是指在使用ModelScope平台进行模型训练或部署时遇到的错误和问题;本合集将收集ModelScope模型报错的常见情况和排查方法,帮助用户快速定位问题并采取有效措施。
148 1
|
存储 机器学习/深度学习 Kubernetes
【DSW Gallery】如何在DLC中进行Pytorch DDP分布式训练任务
本文基于Pytorch 1.8版本,介绍了如何使用DLC进行Pytorch DDP分布式训练任务.
【DSW Gallery】如何在DLC中进行Pytorch DDP分布式训练任务
|
机器学习/深度学习 人工智能 Kubernetes
【DSW Gallery】介绍如何使用命令行工具提交DLC任务
本文介绍如何使用DLC命令行工具提交任务到指定的工作空间内. 同时,会介绍如何提交预付费和后付费的DLC训练任务
【DSW Gallery】介绍如何使用命令行工具提交DLC任务
|
分布式计算 监控 PyTorch
【DSW Gallery】如何在DLC上提交ElasticBatch任务
ElasticBatch是一种分布式离线弹性批量推理作业类型, 本文将介绍ElasticBatch SDK接口以及如何在DLC上提交ElasticBatch任务。
【DSW Gallery】如何在DLC上提交ElasticBatch任务
|
机器学习/深度学习 JSON 运维
如何在 PAI-EAS 定时自动部署模型服务|学习笔记
快速学习如何在 PAI-EAS 定时自动部署模型服务。
167 0
如何在 PAI-EAS 定时自动部署模型服务|学习笔记
|
机器学习/深度学习 SQL 分布式计算
如何将模型更新到 OSS 实现离线更新|学习笔记
快速学习如何将模型更新到 OSS 实现离线更新。
175 0
如何将模型更新到 OSS 实现离线更新|学习笔记
|
机器学习/深度学习 数据采集 人工智能
如何将 Studio 模型部署到 EAS 和 Dataworks 调度的任务|学习笔记
快速学习如何将 Studio 模型部署到 EAS 和 Dataworks 调度的任务。
159 0
如何将 Studio 模型部署到 EAS 和 Dataworks 调度的任务|学习笔记

热门文章

最新文章

相关产品

  • 人工智能平台 PAI