MindFormers进行单机八卡调用时报错No parameter is entered. Notice that the program will run on default 8 cards.

1 系统环境

硬件环境(Ascend/GPU/CPU): Ascend
MindSpore版本: mindspore=2.2.13
执行模式(PyNative/ Graph):不限
Python版本: Python=3.9
MF版本: r1.0
操作系统平台: 不限

2 报错信息

2.1 问题描述

实执行如下命令出现报错。

(base) [root@bms910 mindformers]# bash scripts/msrun_launcher.sh "run_mindformer.py --config {CONFIG_PATH} --run_mode {train/finetune/eval/predict}"复制

2.2 报错信息

No parameter is entered. Notice that the program will run on default 8 cards.
Running Command: msrun --worker_num=8    --local_worker_num=8    --master_port=8118    --log_dir=output/msrun_log    --join=False    --cluster_time_out=600 run_mindformer.py --config {CONFIG_PATH} --run_mode {train/finetune/eval/predict}
Please check log files in output/msrun_log复制

3 根因分析

执行命令有误
查看mindforers的文档

# 1. 单机多卡快速启动方式,默认8卡启动  
bash scripts/msrun_launcher.sh "run_mindformer.py \  
  --config {CONFIG_PATH} \  
  --run_mode {train/finetune/eval/predict}"  
  
# 2. 单机多卡快速启动方式,仅设置使用卡数即可  
bash scripts/msrun_launcher.sh "run_mindformer.py \  
  --config {CONFIG_PATH} \  
  --run_mode {train/finetune/eval/predict}" WORKER_NUM  
  
# 3. 单机多卡自定义启动方式  
bash scripts/msrun_launcher.sh "run_mindformer.py \  
  --config {CONFIG_PATH} \  
  --run_mode {train/finetune/eval/predict}" \  
  WORKER_NUM MASTER_PORT LOG_DIR JOIN CLUSTER_TIME_OUT

使用如下:

# 单机多卡快速启动方式,默认8卡启动  
bash scripts/msrun_launcher.sh "run_mindformer.py \  
  --config path/to/xxx.yaml \  
  --run_mode finetune"  
  
# 单机多卡快速启动方式  
bash scripts/msrun_launcher.sh "run_mindformer.py \  
  --config path/to/xxx.yaml \  
  --run_mode finetune" 8  
  
# 单机多卡自定义启动方式  
bash scripts/msrun_launcher.sh "run_mindformer.py \  
  --config path/to/xxx.yaml \  
  --run_mode finetune" \  
  8 8118 output/msrun_log False 300

4 解决方案

修改命令,给出正确的执行命令。如果是训练llama模型则是

bash scripts/msrun_launcher.sh "run_mindformer.py \
  --config  configs/llama/run_llama_7b.yaml \
  --run_mode train"