分布式训练
更新时间:2025-08-22 04:34:06
分布式训练为开发者和企业提供灵活、稳定、易用和高性能的机器学习训练环境。支持多种算法框架,能够处理大规模的分布式深度学习任务,用户可以通过【分布式训练】简单配置训练角色的数量及实例规格后,发起单机或大规模的分布式训练任务。
操作步骤
通过控制台创建
- 左侧导航栏,【模型开发与训练】->【分布式训练】,进入分布式训练控制台页面;
- 单击列表页面左上方的【创建】进入创建页面;
- 在创建页面填写相关参数,具体参数如下:
| 参数名称 | 参数说明 |
|---|---|
任务名称 |
|
任务标签 |
|
TensorBoard |
|
镜像选择 |
|
计算框架 |
|
任务配置 |
选择 DeepSpeed 、 Colossal-AI 计算框架时,操作详情见 选择 其他 框架类型时:
|
WebTerminal | 开启 WebTerminal 可在任务运行后,通过浏览器进入每个训练节点容器内的命令行终端,用于任务调试。 |
存储挂载 | |
网络秒级监控 |
|
训练代码 |
|
环境变量 |
|
| 环境诊断 |
|
| 挂起检测 |
|
| 自动重试 |
|
通过命令行创建
-
根据您使用的操作系统下载Linux64或Mac版本的命令行工具。
-
Linux 版本请把命令行工具安装在 /usr/local/bin 目录或其他 PATH 目录下,并添加可执行权限,例如:
sudo mv bita /usr/local/binsudo chmod +x /usr/local/bin/bita -
macOS 版本请把命令行工具放在终端访问的对应目录下即可使用。
-
安装好命令行工具后,通过命令行工具登录环境
bita login -u <username> -p <password> -e <url>其中:
--username:用户登录的用户名--password:用户登录的密码-e:系统访问的路径 https://www.bitahub.com
-
通过yaml文件,可以进行任务的提交,命令如下:
bita apply -f [filename.yaml]
平台预置环境变量
在使用 PyTorch 或 TensorFlow 等框架时,需要获取 master 节点的 IP 或域名信息,平台提供预置的环境变量用于获取各个节点的地址。
比如创建分布式训练任务 job1 有1个 master 节点、2个 worker 节点:
- **VC\_{role全大写}\_HOSTS:**当前 role(节点组)所有节点的地址,以逗号分隔。
- VC\_MASTER\_HOSTS=job1-master-0.job1-worker
- VC\_WORKER\_HOSTS=job1-worker-0.job1-worker,job1-worker-1.job1-worker
- **VC\_{role全大写}\_NUM:**每个 role(节点组)的节点数量。
- VC\_MASTER\_NUM=1
- VC\_WORKER\_NUM=2
- **VC\_TASK\_NAMES:**所有 role(节点组)名称,以逗号分隔。
- VC\_TASK\_NAMES=master,worker
- **VC\_TASK\_INDEX:**当前节点在当前 role(节点组)中的序号,如:
- 在 master 第1个节点中:VC\_TASK\_INDEX=0
- 在 worker 第1个节点中:VC\_TASK\_INDEX=0
- 在 worker 第2个节点中:VC\_TASK\_INDEX=1
说明:除了VC\_TASK\_INDEX在每个节点中的值都不一定相同,其余环境变量在每个节点中都相同
获取 worker 节点组的第1个节点地址,可使用下面的命令
export WORKER0=`echo ${VC_WORKER_HOSTS} | awk -F , '{print $1}'`