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

本文涉及的产品
交互式建模 PAI-DSW,每月250计算时 3个月
模型训练 PAI-DLC,100CU*H 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
简介: 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)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
|
7月前
|
机器学习/深度学习 存储 分布式计算
机器学习PAI常见问题之DLC的数据写入到另外一个阿里云主账号的OSS中如何解决
PAI(平台为智能,Platform for Artificial Intelligence)是阿里云提供的一个全面的人工智能开发平台,旨在为开发者提供机器学习、深度学习等人工智能技术的模型训练、优化和部署服务。以下是PAI平台使用中的一些常见问题及其答案汇总,帮助用户解决在使用过程中遇到的问题。
|
4月前
|
消息中间件 SQL DataWorks
DataWorks产品使用合集之节点冻结后还是发送基线告警,该如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
DataWorks产品使用合集之节点冻结后还是发送基线告警,该如何解决
|
6月前
|
存储 运维 Serverless
Serverless 应用引擎产品使用合集之部署SD界面没有看见NAS启用的选项,是什么原因
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
6月前
|
弹性计算 分布式计算 DataWorks
DataWorks产品使用合集之在脚本离线同步节点如何修改集成资源组
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
7月前
|
搜索推荐 语音技术 开发工具
ModelScope问题之文档部署到阿里云EAS 调用模型报错如何解决
ModelScope模型报错是指在使用ModelScope平台进行模型训练或部署时遇到的错误和问题;本合集将收集ModelScope模型报错的常见情况和排查方法,帮助用户快速定位问题并采取有效措施。
383 1
|
7月前
|
机器学习/深度学习 IDE TensorFlow
进入DSW后,如何把工作环境切换为GPU状态
进入DSW后,如何把工作环境切换为GPU状态
221 2
|
存储 机器学习/深度学习 人工智能
【DSW Gallery】如何在DLC训练任务中挂载OSS
阿里云对象存储OSS(Object Storage Service)是一款海量、安全、低成本、高可靠的云存储服务。本文将介绍如何使用在DLC训练任务中挂载OSS,使用读写本地文件的方式来访问OSS中的数据。
【DSW Gallery】如何在DLC训练任务中挂载OSS
|
机器学习/深度学习 人工智能 Kubernetes
【DSW Gallery】介绍如何使用命令行工具提交DLC任务
本文介绍如何使用DLC命令行工具提交任务到指定的工作空间内. 同时,会介绍如何提交预付费和后付费的DLC训练任务
【DSW Gallery】介绍如何使用命令行工具提交DLC任务
|
分布式计算 监控 PyTorch
【DSW Gallery】如何在DLC上提交ElasticBatch任务
ElasticBatch是一种分布式离线弹性批量推理作业类型, 本文将介绍ElasticBatch SDK接口以及如何在DLC上提交ElasticBatch任务。
【DSW Gallery】如何在DLC上提交ElasticBatch任务
|
存储 机器学习/深度学习 Kubernetes
【DSW Gallery】如何在DLC中进行Pytorch DDP分布式训练任务
本文基于Pytorch 1.8版本,介绍了如何使用DLC进行Pytorch DDP分布式训练任务.
【DSW Gallery】如何在DLC中进行Pytorch DDP分布式训练任务

热门文章

最新文章