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

简介: 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+LLaMA Factory微调Qwen2-VL模型,搭建文旅领域知识问答机器人
使用PAI和LLaMA Factory框架,基于全参方法微调 Qwen2-VL模型,使其能够进行文旅领域知识问答,同时通过人工测试验证了微调的效果。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
详解Vue3——#default=“scope”
详解Vue3——#default=“scope”
1506 0
|
人工智能 算法 PyTorch
TorchAcc:基于 TorchXLA 的分布式训练框架
阿里云研究员、阿里云人工智能平台 PAI 技术负责人--林伟在GTC 2024 大会 China AI Day 线上中文演讲专场上介绍了TorchAcc,这是一个基于 PyTorch/XLA 的大模型分布式训练框架。
|
28天前
|
人工智能 安全 专有云
深度访谈:阿里云×平头哥,模型推理提升13倍背后的秘密
2026年初,AI焦点正从“对话”转向“推理”:OpenClaw爆火、AI Coding成新基建、大模型迈向Agent化执行。算力瓶颈、成本压力与安全预警交织,推理效率成为产业主战场。本文深度对话阿里云与平头哥专家,剖析软硬协同、MoE优化、量化压缩等关键技术演进,揭示国产AI基础设施如何通过系统级创新突破“不可能三角”。
197 1
|
运维 资源调度 Kubernetes
Kubernetes Scheduler Framework 扩展: 1. Coscheduling
# 前言 ## 为什么Kubernetes需要Coscheduling功能? Kubernetes目前已经广泛的应用于在线服务编排,为了提升集群的的利用率和运行效率,我们希望将Kubernetes作为一个统一的管理平台来管理在线服务和离线作业。但是默认的调度器是以Pod为调度单元进行依次调度,不会考虑Pod之间的相互关系。但是很多数据计算类的作业具有All-or-Nothing特点,要求所有的
3609 0
|
5月前
|
Kubernetes 应用服务中间件 API
应对 Nginx Ingress 退役,是时候理清这些易混淆的概念了
本文希望提供一种更简单的方式,来理解这些容易混淆的技术概念:Nginx、Ingress、Ingress Controller、Ingress API、Nginx Ingress、Higress、Gateway API。
2541 158
|
4月前
|
人工智能 弹性计算 安全
2026年阿里云OpenClaw一键秒级部署教程,快速搭建专属AI助理!
2026年,阿里云推出OpenClaw一键秒级部署方案,预置镜像、简化配置,零基础用户几分钟即可搭建本地优先的AI数字员工。支持文件管理、日程安排、代码辅助与钉钉/飞书协同,数据全留在您服务器,安全可控,真正开箱即用!
1131 10
|
算法
学会二分法,有这一篇就够啦!
本文由blue撰写于2024年9月,深入讲解二分法这一基础但不简单的算法。文章从二分法的两大经典应用场景——二分查找与二分答案出发,详细解析其原理与实现。通过实例代码(如LeetCode第704题)和竞赛题目,探讨了不同区间定义(左闭右闭、左闭右开)下的实现方式,并延伸到寻找目标值首次/最后出现位置及二分答案的实际应用。适合初学者系统掌握二分法的核心思想与技巧。
1643 17
|
8月前
|
文字识别 测试技术 开发者
Qwen3-VL新成员 2B、32B来啦!更适合开发者体质
Qwen3-VL家族重磅推出2B与32B双版本,轻量高效与超强推理兼备,一模型通吃多模态与纯文本任务!
7235 12