前置条件
完成训练数据集准备,完成存储配置准备(ZOS/HPFS),详见我的数据集。
如果预置模型不满足开发要求,需要基于自有模型,需要完成模型文件准备,详见模型管理。
如果预置镜像不满足开发要求,需要基于自有镜像,需要完成镜像文件准备,详见我的镜像。
创建开发机
登录智算服务平台。
在左侧导航栏选择开发机,选择目标开发机类型,平台支持JupyterLab和VSCode两种类型的开发机。
进入开发机创建页面,填写开发机创建的基本参数。
参数类型 | 参数名 | 说明 |
---|---|---|
基本信息 | 名称 | 必填,开发机名称。 |
数据集配置 | 训练数据集 | 最多可添加5个,选择基础数据集或者标注数据集。 |
模型配置 | 模型来源 | 我的模型:最多5个,自有模型开启开发机任务。预置模型:最多5个,使用平台预置模型开启开发机任务。 |
模型配置 | 模型文件 | 选择我的模型具体的模型文件及版本。选择预置模型文件及具体版本。 |
存储配置 | ZOS对象存储 | 最多选择5个,如果没有提前创建,可以点击“去创建对象存储”完成创建。 |
存储配置 | HPFS并行文件系统 | 最多选择5个,如果没有提前创建,可以点击“去创建HPFS”完成创建。 |
环境配置 | 镜像来源 | 根据当前任务情况,选择支持选择系统预置镜像、自定义镜像、共享容器镜像和他人分享镜像。 |
环境配置 | 文件目录 | 平台可持久化的挂载目录,后续可以在该目录下读写文件,是用户间隔离的。 |
资源配置 | 集群 | 支持公共集群和专属集群两种类型,其中专属集群需要提前购买。 |
资源配置 | 队列 | 选择目标队列,展示当前总资源及使用情况。 |
资源配置 | 资源规格 | 选择当前任务所需要的资源规格。 |
点击“提交”,完成开发机任务创建。
开发机管理
启动开发机:创建完成后的开发机默认为“未启动”状态,用户可点击启动,开发机进入“启动中”-“运行中”状态。
打开开发机:当开发机进入“运行中”状态时,可以点击“打开”进入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”的镜像。后续可以基于此镜像进行开发机、训练任务和服务部署。平台会打包系统内的预置安装程序等,不会打包容器内数据和外部挂载存储数据。