前置条件
完成训练数据集准备,完成存储配置准备(ZOS/HPFS),详见我的数据集。
如果预置模型不满足开发要求,需要基于自有模型,需要完成模型文件准备,详见模型管理。
如果预置镜像不满足开发要求,需要基于自有镜像,需要完成镜像文件准备,详见我的镜像。
创建开发机
登录智算服务平台。
在左侧导航栏选择模型开发,选择目标开发机类型,平台支持JupyterLab和VSCode两种类型的开发机。
进入开发机创建页面,填写开发机创建的基本参数。
| 参数类型 | 参数名 | 说明 |
|---|---|---|
| 基本信息 | 名称 | 必填,开发机名称。 |
| 数据集配置 | 训练数据集 | 最多可添加5个,选择基础数据集或者标注数据集。 |
| 模型配置 | 模型来源 | 我的模型:最多5个,自有模型开启开发机任务。预置模型:最多5个,使用平台预置模型开启开发机任务。 |
| 模型文件 | 选择我的模型具体的模型文件及版本。选择预置模型文件及具体版本。 | |
| 存储配置 | ZOS对象存储 | 最多选择5个,如果没有提前创建,可以点击“去创建对象存储”完成创建。 |
| 存储配置 | HPFS并行文件系统 | 最多选择5个,如果没有提前创建,可以点击“去创建HPFS”完成创建。 |
| 环境配置 | 镜像来源 | 根据当前任务情况,选择支持选择系统预置镜像、自定义镜像、共享容器镜像和他人分享镜像。需要远程登录开发机时,可以选择平台打包好相关组件的带有”ssh”标签的镜像。 |
| 文件目录 | 平台可持久化的挂载目录,后续可以在该目录下读写文件,是用户间隔离的。 | |
| 资源配置 | 集群 | 支持公共集群和专属集群两种类型,其中专属集群需要提前购买。 |
| 资源配额 | 选择目标资源配额,展示当前总资源及使用情况。 | |
自定义分配 | 指对资源配额内的资源虚拟化切分使用(当前仅支持英伟达集群)。下文“算力虚拟化”章节展开介绍具体参数介绍。 | |
| 资源规格 | 选择当前任务所需要的资源规格。 | |
| 访问配置 | 启用SSH | 菜单默认隐藏,当用户被添加进白名单且选择了ssh镜像时可见。开启ssh开关后,平台会为用户创建一个EIP,当所有开发机被删除时才会释放该EIP,产生费用规则详见计费方式。 |
| SSH公钥 | 输入公钥不得超过10个,需要用分号分隔,详细说明见下文“远程登录开发机”章节。 |
点击“提交”,完成开发机任务创建。
开发机管理
启动开发机:创建完成后的开发机默认为“未启动”状态,用户可点击启动,开发机进入“启动中”-“运行中”状态。
打开开发机:当开发机进入“运行中”状态时,可以点击“打开”进入vscode的terminal运行终端。
停止开发机:停止当前正在运行的开发机。停止VSCode会释放容器和资源,在停止前将数据、代码、模型保存在系统提供的持久化挂载路径(/work/home)中,下次启动还可以加载出来。开发机实例从“停止中”-“未启动”状态。
开始训练:点击之后会携带当前开发机相关参数,进入训练任务创建界面。
删除开发机实例:删除当前不再使用的开发机实例。
查看配置:查看当前开发机实例的详细配置。
开发机中数据目录使用(重要)
1、cache存储:开发机默认自带cache持久化存储目录。每个用户的每一个开发机都默认赠送50GiB的/work/cache目录。
a) 目录隔离:在不同开发机的目录内容是隔离的,每启动一个开发机都是自己的一套cache。
b) 存储时间:cache存储在开发机停止后保存时间为5天。
c) 存储策略:cache存储为持久化存储,在不关闭开发机的情况下,可一直保存。
2、mount目录:数据和模型挂载mount目录,/work/mount/目录是用于使用和挂载平台上的数据集、模型、代码文件的,创建界面选择对应数据集和模型后,系统自动分配挂载路径,打开开发机即可看到这些路径,写代码直接读取这些路径即可读取数据和模型。
a) 存储时间:只在开发机运行中可使用,开发机关闭后mount目录会和容器取消挂载,也无法读取。
b) 目录隔离:在不同开发机的目录内容是隔离的,每启动一个开发机都是自己的一套mount。
c) 存储策略:mount目录为挂载使用,用户在mount对应子目录下写入的代码或者拖入的文件会自动转存回原始数据集、代码包或者模型存储中。
【注意】:自动转存的前提为文件或者文件夹写入到平台自动挂载的目录下,在/work/mount目录下手动创建的目录(比如:/work/mount/abc)不会做自动转存,同时开发机销毁后自动清理。启动训练任务
在/work/share/ 目录下创建自己的工作空间。
vscode启动单机训练任务
terminal 终端目前只支持单机训练任务,训练脚本跟tensorflow和pytorch 裸金属训练模式一样。
下方是在本机执行的单机多卡torchrun分布式参数示例:
DISTRIBUTED_ARGS="
--nproc_per_node 8 \
--nnodes 1 \
--node_rank 0 \
--master_addr localhost \
--master_port 65500
"
torchrun $DISTRIBUTED_ARGS telespeed/run/llama31/pretrain_gpt.py网页启动多机训练
下方是在平台执行多机多卡训练任务的torchrun分布式参数示例:
GPU_NUM_PER_NODE=8
DISTRIBUTED_ARGS="
--nproc_per_node $GPU_NUM_PER_NODE \
--nnodes $PET_NNODES \
--node_rank $PET_NODE_RANK \
--master_addr $PET_MASTER_ADDR \
--master_port $PET_MASTER_PORT
"
torchrun $DISTRIBUTED_ARGS telespeed/run/llama31/pretrain_gpt.py按照下图的步骤启动训练任务:
后续操作
开始训练任务:点击之后会携带当前开发机相关参数,进入训练任务创建界面。
保存至模型管理:将当前开发机实例中的模型文件保存到模型仓库中统一管理,模型仓库中会新增一个来源为“VSCode”的模型。后续可以基于此模型进行开发机、训练任务和服务部署任务。
保存至代码包:从代码文件夹中选择对应的文件保存至代码包,代码包列表中出现了上传来源为“VSCode”的代码包。后续可以基于此代码包进行训练任务和服务部署。
制作镜像:基于当前的开发机实例制作镜像并存为自定义镜像,将容器内的镜像打包至自定义镜像中,下次直接启动该镜像即可,镜像仓库中新增来源为“VSCode”的镜像。后续可以基于此镜像进行开发机、训练任务和服务部署。平台会打包系统内的预置安装程序等,不会打包容器内数据和外部挂载存储数据。
查看开发机监控
点击开发机名称,进入查看详情页面,切换到监控tab,可查看开发机的资源使用情况。目前平台的开发机都是单实例(Pod),此处监控都以实例维度展示。
图像展示:
放大与明细:点击指标右侧“>”箭头,可展开指标大图,大图展示对图像上点的统计细项,包括最大值、最小值、平均值、中位数、75分位数;
图例:点击图例,可以对线段进行展示/隐藏;
时间轴:滑动图像下方时间轴,可以在已选定时间的基础上,查看更小范围的监控。
监控指标
类别 | 指标 | 解释 |
CPU、内存与网络监控 | CPU使用率 | CPU在单位时间内,CPU被任务占用使用的时间占比。 |
CPU使用量 | CPU 实际使用的核数。 | |
内存使用率 | 已用内存占总内存的百分比。 | |
内存使用量 | 内存实际使用量。 | |
普通网络吞吐 | 传统以太网的实际数据传输速率,即单位时间内实际传输的数据量。 | |
显卡基础指标 | GPU/NPU使用率 | 在单位时间内,显卡被任务占用使用的时间占比。 |
GPU/NPU显存使用率 | 已用显存占总显存的百分比。 | |
GPU/NPU显存使用量 | 显存实际使用量。 | |
GPU/NPU卡温度 | 显卡温度。 | |
GPU/NPU功耗 | 显卡功耗。 | |
NPU卡健康状态
| 每张卡的NPU芯片健康状态。 取值范围:{0,1} 1:表示在过去一段时间间隔内芯片处于健康状态; 0:表示在过去一段时间间隔内出现了不健康状态。 |