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

本文涉及的产品
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
模型训练 PAI-DLC,100CU*H 3个月
交互式建模 PAI-DSW,每月250计算时 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+LLaMA Factory微调Qwen2-VL模型,搭建文旅领域知识问答机器人
使用PAI和LLaMA Factory框架,基于全参方法微调 Qwen2-VL模型,使其能够进行文旅领域知识问答,同时通过人工测试验证了微调的效果。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
|
人工智能 算法 PyTorch
TorchAcc:基于 TorchXLA 的分布式训练框架
阿里云研究员、阿里云人工智能平台 PAI 技术负责人--林伟在GTC 2024 大会 China AI Day 线上中文演讲专场上介绍了TorchAcc,这是一个基于 PyTorch/XLA 的大模型分布式训练框架。
|
12月前
|
存储 机器学习/深度学习 分布式计算
大数据技术——解锁数据的力量,引领未来趋势
【10月更文挑战第5天】大数据技术——解锁数据的力量,引领未来趋势
|
关系型数据库 MySQL Go
工厂模式+自动注册管理Go多包结构体
工厂模式+自动注册管理Go多包结构体
313 1
|
编解码 监控 数据可视化
一文带你快速设计精美可视化大屏
可视化大屏👉数据可视化大屏是将一些业务的关键指标通过数据可视化的方式展示到一块或多块LED大屏上,以大屏为主要展示载体的数据可视化设计。数据可视化大屏可以用于信息展示、数据分析、监控预警等多种场景,帮助用户快速了解数据的价值和意义。可视化大屏的优点1️⃣操作灵活:数据可视化大屏可以支持智能化布局和组件的自由排版,可以根据不同的需求和场景进行个性化的设计和展示。2️⃣信息展示更加全面。
一文带你快速设计精美可视化大屏
|
人工智能 前端开发 PyTorch
AI加速引擎PAI-TorchAcc:整体介绍与性能概述
PAI-TorchAcc(Torch Accelerator)是阿里云人工智能平台PAI开发的Pytorch上的大模型训练加速框架。PAI-TorchAcc提供了一套基于Pytorch的简洁、易用的接口,无需进行模型转换就可以无缝地接入HuggingFace上的模型,并用多种分布式策略进行训练加速。本文详细介绍PAI-TorchAcc的产品能力与性能。
|
机器学习/深度学习 人工智能 负载均衡
【AI大模型】分布式训练:深入探索与实践优化
在人工智能的浩瀚宇宙中,AI大模型以其惊人的性能和广泛的应用前景,正引领着技术创新的浪潮。然而,随着模型参数的指数级增长,传统的单机训练方式已难以满足需求。分布式训练作为应对这一挑战的关键技术,正逐渐成为AI研发中的标配。
545 5
|
11月前
|
设计模式 安全 Java
Java编程中的单例模式:理解与实践
【10月更文挑战第31天】在Java的世界里,单例模式是一种优雅的解决方案,它确保一个类只有一个实例,并提供一个全局访问点。本文将深入探讨单例模式的实现方式、使用场景及其优缺点,同时提供代码示例以加深理解。无论你是Java新手还是有经验的开发者,掌握单例模式都将是你技能库中的宝贵财富。
315 2
|
前端开发 JavaScript 数据库
从零开始搭建创业公司全新技术栈解决方案
创业公司在初期面临的挑战之一就是如何构建一个既能满足当前需求,又能适应未来发展的技术栈。本文将全面探讨从后端到前端,再到云原生技术和AI大模型应用的各个层面,帮助创业者了解如何选择合适的开发语言、框架、工具,以及如何制定有效的开发流程,从而搭建一个强大而稳定的技术体系。
927 1
从零开始搭建创业公司全新技术栈解决方案
idea启动java服务报错OutOfMemoryError: GC overhead limit exceeded解决方法
idea启动java服务报错OutOfMemoryError: GC overhead limit exceeded解决方法
3302 1
|
机器学习/深度学习 人工智能 Kubernetes
【DSW Gallery】介绍如何使用命令行工具提交DLC任务
本文介绍如何使用DLC命令行工具提交任务到指定的工作空间内. 同时,会介绍如何提交预付费和后付费的DLC训练任务
【DSW Gallery】介绍如何使用命令行工具提交DLC任务

热门文章

最新文章