训练作业环境变量
解释说明
环境变量是训练作业运行时注入到容器中的键值对参数,可在启动脚本中通过shell脚本的$变量名命令或python脚本的os.environ.get()方法读取,用于向训练脚本传递运行时配置信息,无需修改代码即可灵活调整作业行为。
约束限制
每个训练作业配置的环境变量总数不超过100条。
使用场景
- 系统环境变量:由ModelArts平台自动注入,提供作业运行所需的平台信息。适用于脚本中获取作业ID、代码文件夹的父目录、容器加速卡数量、容器下标、容器地址域名等平台预定义信息,避免硬编码。
- 自定义环境变量:由用户手动配置,用于向脚本传递业务参数(如参数、数据路径等),实现同一脚本在不同参数下复用。
常用环境变量
表1和表2是常用环境变量,如需了解更多环境变量,请参考管理训练容器环境变量。
| 变量名 | 说明 | 示例 | 默认值 |
|---|---|---|---|
| MA_HOME | 训练作业的主目录。 | “MA_HOME=/home/ma-user” | /home/ma-user |
| MA_JOB_DIR | 训练算法文件夹所在的父目录。 | “MA_JOB_DIR=/home/ma-user/modelarts/user-job-dir” | /home/ma-user/modelarts/user-job-dir |
| MA_MOUNT_PATH | ModelArts挂载至训练容器内的路径,用于临时存放训练算法、算法输入、算法输出、日志等文件。 | “MA_MOUNT_PATH=/home/ma-user/modelarts” | /home/ma-user/modelarts |
| MA_LOG_DIR | 训练日志目录。 | “MA_LOG_DIR=/home/ma-user/modelarts/log” | /home/ma-user/modelarts/log |
| 变量名 | 说明 | 示例 | 默认值 |
|---|---|---|---|
| MA_CURRENT_IP | 作业容器IP。 | “MA_CURRENT_IP=192.168.23.38” | 作业容器IP,不固定 |
| MA_NUM_GPUS | 作业容器的加速卡数量。 | “MA_NUM_GPUS=8” | 0 |
| MA_TASK_NAME | 作业容器的角色名,例如:
| “MA_TASK_NAME=worker” | worker |
| MA_NUM_HOSTS | 实例数。系统自动从资源参数的“实例数”中读取。 | “MA_NUM_HOSTS=4” | 1 |
| VC_TASK_INDEX | 当前容器索引,容器从0开始编号。单机训练的时候,该字段无意义。在多机作业中,用户可以根据这个值来确定当前容器运行的算法逻辑。 | “VC_TASK_INDEX=0” | 0 |
| VC_WORKER_NUM | 训练作业使用的实例数量。 | “VC_WORKER_NUM=4” | 1 |
| VC_WORKER_HOSTS | 多节点训练时,每个节点的域名地址,按顺序以英文逗号分隔。 如PyTorch框架的Master实例地址可通过shell脚本获取: MASTER_ADDR="${VC_WORKER_HOSTS%%,*}" # MASTER_ADDR为用户自定义变量。 | “VC_WORKER_HOSTS=modelarts-job-a0978141-1712-4f9b-8a83-000000000000-worker-0.modelarts-job-a0978141-1712-4f9b-8a83-000000000000,modelarts-job-a0978141-1712-4f9b-8a83-000000000000-worker-1.ob-a0978141-1712-4f9b-8a83-000000000000” | 节点的域名地址,不固定 |