【DSW Gallery】介绍如何使用命令行工具提交DLC任务

本文涉及的产品
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
交互式建模 PAI-DSW,每月250计算时 3个月
模型训练 PAI-DLC,100CU*H 3个月
简介: 本文介绍如何使用DLC命令行工具提交任务到指定的工作空间内. 同时,会介绍如何提交预付费和后付费的DLC训练任务

直接使用

请打开基于介绍如何使用命令行工具提交DLC任务,并点击右上角 “ 在DSW中打开” 。

image.png

概述

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

除了可以在PAI的控制台使用界面提交任务,PAI平台还提供了完善的SDK和OpenAPI,实现基于代码提交任务,使得PAI-DLC更灵活的应用到您的日常生产。

本文将介绍如何使用PAI-DLC提供的CLI,实现训练任务的提交。

如果您需要通过界面提交PAI-DLC公共资源组或专有资源组任务,请参见DLC命令行工具使用手册

前提条件

步骤一:安装DLC CLI

DLC命令行 Mac amd64版本下载链接

DLC命令行 Mac arm版本下载链接

DLC命令行 Linux版本下载链接

实际使用的时候,可以把DLC的命令行工具放入 /usr/local/bin中,chmod赋予DLC命令行执行的权限,并且使用下面的命令进行关联

exportdlc=/usr/local/bin/dlc


准备AI工作空间(必须)

工作空间是PAI的顶层概念,为团队提供统一的计算资源管理及人员权限管理能力,目的就是为AI开发者提供支持团队协作的全流程开发工具及AI资产管理能力。

PAI平台在开通时,会自动给用户 创建默认的工作空间

准备镜像(必须)

进行训练任务,需要明确指定计算节点所使用的镜像。PAI-DLC支持选择使用不同类型的镜像:

  • 社区镜像:由社区提供的标准镜像,不同的镜像的详情请参见社区镜像版本详情
  • PAI平台镜像:由阿里云PAI产品提供的多种官方镜像,支持不同的资源类型、Python版本及深度学习框架TensorFlow和PyTorch,镜像列表请参见公共镜像列表
  • 用户自定义镜像:可选择使用您添加到PAI的自定义的镜像,选择前,您需要先将自定义镜像添加到PAI中,操作详情请参见查看并添加镜像
  • 镜像地址:可选择使用您自定义的镜像,选择镜像地址后,您需要在配置框中配置公网环境下可访问的Docker Registry Image URL。

准备数据集(可选)

高质量的数据集是高精度模型的基础,是数据准备的核心目标。PAI平台提供了数据集管理模块,支持将各类数据(本地数据、阿里云存储中的数据等)注册为数据集,也支持扫描OSS文件夹生成索引数据集,为模型训练做准备。

准备代码源(可选)

进行模型训练任务提交等操作时,通常您需要提供自己的训练代码。PAI为您提供代码配置功能,便于您将需要使用的代码仓库创建为AI资产,方便在多个任务中引用。

步骤二:提交训练任务

以上准备好了训练需要的资源和配置,接下来会进行任务的提交。关于接口的更多说明,请参见API参考

配置命名行工具

在使用命令行工具之前,需要配置命令行工具,输入用户的ak,region以及所对应的region的DLC服务的endpoint

dlc config --access_id {.ak-id }       \
           --access_key {.ak-secret}  \
           --endpoint 'pai-dlc.{region-id}.aliyuncs.com' \   # region-id 例如cn-beijing/cn-hangzhou
           --region cn-hangzhou

创建预付费作业

独占资源组(也称为预付费资源组)是PAI推出的新功能,正在邀测阶段,如有需要,可以联系PAI团队。在预付费资源组中的资源为用户独占,用户可以提交DLC任务或者DSW实例,并且指定任务或者实例的资源量。当提交的任务超过资源组中的总量时,会自动排队,同时用户可以修改排队中的任务优先级来影响任务被执行的先后顺序。

值得注意的是,提交到资源组中的作业会遵循All-Or-Nothing(也叫Gang Scheduling)的原则,也即只有作业要求的所有worker都能得到资源保障的请求下,才会被调度执行;避免部分worker提交到集群,造成资源浪费。

下面的sample命令,就是提交一个DLC预付费的训练任务到46099这个工作空间,并且将任务调度到rgo80s1uv05bplin这个预付费资源组上面

dlc submit tf --name=test_2022  \--workers=1 \
    --worker_image=registry-vpc.cn-hangzhou.aliyuncs.com/pai-dlc/tensorflow-training:1.15-cpu-py36-ubuntu18.04 \
    --command="python /root/code/horovod/tf1.py" \
    --workspace_id='46099' \
    --resource_id='rgo80s1uv05bplin' \
    --worker_cpu="2" \
    --worker_memory='1Gi' \
    --code_source='code-738c8edd0e4a47e4b7fd805ec05914d7'

image.png

查看任务状态并获取日志:

查看任务的日志,需要指定任务的job_id以及pod_id。下面拿上面已经提交的任务为例

dlc logs dlcylztabt7alg7p dlcylztabt7alg7p-worker-0 --max_events_num=20

image.png

创建后付费多机分布式训练作业

后付费任务是DLC最先支持的一种业务模式,用户可以按需拉起所需要的资源,并且任务结束之后,资源就全部释放。

本文以Tensorflow多机分布式任务为例,展示如何使用DLC命令行工具创建多机分布式任务

下面的命令会创建一个2 worker,1 ps, 1 chief的TensorFlow多机分布式训练任务

./dlc submit tfjob --name=test2022 --workers=2 --worker_image=registry-vpc.cn-hangzhou.aliyuncs.com/pai-dlc/tensorflow-training:1.15-cpu-py36-ubuntu18.04 \
--command="python /root/code/horovod/tf-ps-worker-good7.py" \
--workspace_id='35206' \
--worker_spec='ecs.g6.large' \
--code_source="code-203baa3bf5404f04969501fdd8ec2950" \
--ps=1 \
--ps_image=registry-vpc.cn-hangzhou.aliyuncs.com/pai-dlc/tensorflow-training:1.15-cpu-py36-ubuntu18.04 \
--ps_spec='ecs.g6.large' \
--chief=1 \
--chief_image=registry-vpc.cn-hangzhou.aliyuncs.com/pai-dlc/tensorflow-training:1.15-cpu-py36-ubuntu18.04 \
--chief_spec='ecs.g6.large' \
--success_policy=ChiefWorker

image.png

对于TFJob来说,现在支持让用户自定义输入success policy:

--success_policy=ChiefWorker 这种模式下,TF分布式多机任务中的Chief的pod如果成功,那么就认为整个任务成功,任务会结束

--success_policy=AllWOrkers (Default) 这种模式下,TF分布式多机任务,必须所有的Workers全部成功,才会认为整个任务成功

查看任务yaml

可以用get job命令

./dlc get job dlc1fifr7w6ycnp

image.png

Stop 任务

可以用stop job命令

./dlc stop job dlc1fif7r7w6ycnq

image.png

步骤三:查看训练任务

当完成以上的PAI-DLC任务提交之后,可通过以下代码,实时查看任务运行的状态。 命令行工具支持多种维度去查询任务,具体可以用dlc get job -h查看详细参数列表,这里展示查询前面提交任务使用的预付费资源组中处于'Running'状态的任务

dlc get job --resource_id='rgo80s1uv05bplin' --status='Running'

image.png

相关实践学习
使用PAI+LLaMA Factory微调Qwen2-VL模型,搭建文旅领域知识问答机器人
使用PAI和LLaMA Factory框架,基于全参方法微调 Qwen2-VL模型,使其能够进行文旅领域知识问答,同时通过人工测试验证了微调的效果。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
conda常用操作和配置镜像源
conda常用操作和配置镜像源
28843 0
|
缓存 Linux 开发工具
CentOS 7- 配置阿里镜像源
阿里镜像官方地址http://mirrors.aliyun.com/ 1、点击官方提供的相应系统的帮助 :2、查看不同版本的系统操作: 下载源1、安装wget yum install -y wget2、下载CentOS 7的repo文件wget -O /etc/yum.
251841 0
|
7月前
|
机器学习/深度学习 人工智能 开发者
DeepSeek安装部署指南,基于阿里云PAI零代码,小白也能轻松搞定!
阿里云PAI平台支持零代码一键部署DeepSeek-V3和DeepSeek-R1大模型,用户可轻松实现从训练到部署再到推理的全流程。通过PAI Model Gallery,开发者只需简单几步即可完成模型部署,享受高效便捷的AI开发体验。具体步骤包括:开通PAI服务、进入控制台选择模型、一键部署并获取调用信息。整个过程简单快捷,极大降低了使用门槛。
1799 43
|
6月前
|
机器学习/深度学习 人工智能 自然语言处理
云上一键部署通义千问 QwQ-32B 模型,阿里云 PAI 最佳实践
3月6日阿里云发布并开源了全新推理模型通义千问 QwQ-32B,在一系列权威基准测试中,千问QwQ-32B模型表现异常出色,几乎完全超越了OpenAI-o1-mini,性能比肩Deepseek-R1,且部署成本大幅降低。并集成了与智能体 Agent 相关的能力,够在使用工具的同时进行批判性思考,并根据环境反馈调整推理过程。阿里云人工智能平台 PAI-Model Gallery 现已经支持一键部署 QwQ-32B,本实践带您部署体验专属 QwQ-32B模型服务。
|
7月前
|
人工智能 自然语言处理 搜索推荐
全网首发 | PAI Model Gallery一键部署阶跃星辰Step-Video-T2V、Step-Audio-Chat模型
Step-Video-T2V 是一个最先进的 (SoTA) 文本转视频预训练模型,具有 300 亿个参数,能够生成高达 204 帧的视频;Step-Audio 则是行业内首个产品级的开源语音交互模型,通过结合 130B 参数的大语言模型,语音识别模型与语音合成模型,实现了端到端的文本、语音对话生成,能和用户自然地进行高质量对话。PAI Model Gallery 已支持阶跃星辰最新发布的 Step-Video-T2V 文生视频模型与 Step-Audio-Chat 大语言模型的一键部署,本文将详细介绍具体操作步骤。
|
机器学习/深度学习 人工智能 物联网
大模型时代,还缺一只雨燕 | SWIFT:魔搭社区轻量级微调推理框架
伴随着大数据的发展和强大的分布式并行计算能力,以预训练+微调的模型开发范式渐渐成为深度学习领域的主流。 2023年各家推出的大模型浩如烟海,如GPT4、Llama、ChatGLM、Baichuan、RWKV、Stable-Diffusion等。这些模型在达到越来越好的效果的同时也需要越来越多的算力资源:全量finetune它们动辄需要几十至上百G显存训练部署,一般的实验室和个人开发者无力承担。
|
缓存 分布式计算 监控
DSW、DLC、EAS
DSW、DLC、EAS 是分别表示 "分布式共享内存"、"数据加载与缓存"、"增强型自动调度"的缩写,是 tuemo 工具中常用的三种技术。 1. DSW 分布式共享内存(Distributed Shared Memory)
1259 1
|
存储 机器学习/深度学习 Kubernetes
【DSW Gallery】如何在DLC中进行Pytorch DDP分布式训练任务
本文基于Pytorch 1.8版本,介绍了如何使用DLC进行Pytorch DDP分布式训练任务.
【DSW Gallery】如何在DLC中进行Pytorch DDP分布式训练任务
|
机器学习/深度学习 人工智能 Kubernetes
【DSW Gallery】介绍如何使用SDK提交DLC训练任务
您可以通过Python SDK的方式提交PAI-DLC任务,本文介绍如何通过Python SDK提交使用公共DLC资源组或专有DLC资源组的训练任务,核心步骤包括下载Python SDK、安装Python SDK及创建并提交任务。
【DSW Gallery】介绍如何使用SDK提交DLC训练任务
|
分布式计算 监控 PyTorch
【DSW Gallery】如何在DLC上提交ElasticBatch任务
ElasticBatch是一种分布式离线弹性批量推理作业类型, 本文将介绍ElasticBatch SDK接口以及如何在DLC上提交ElasticBatch任务。
【DSW Gallery】如何在DLC上提交ElasticBatch任务