
# 执行训练任务
#### 步骤一：生成训练配置yaml文件
1. 生成模型训练config配置yaml文件，生成方式分为交互式、传参式两种，两者区别为传参式提前传入所需参数，交互式为命令执行后交互选择所需参数，客户自行选择其中一种方式即可。
   1. 交互式，命令如下：
      ```
      ascendfactory-cli config  --output_file_path=<output_file_path>
      ```
      
   
   2. 传参式，命令如下：
      ```
      ascendfactory-cli config --backend=<backend> --af_model_name=<af_model_name> --exp_name=<exp_name> --output_file_path=<output_file_path>
      ```
      - \<backend\>：所选框架类型，可选【mindspeed-llm，llamafactory，verl，mindspeed-rl，mindspeed-mm】。
      
      - \<af_model_name\>：训练模型
      
      - \<exp_name\>：所选实验类型，MindSpeed-LLM和Llama-Factory微调可选【full-4k, lora-4k等，具体以实际配置为准】；MindSpeed-LLM框架如果使用预训练方式，训练类型可选用【full-4k】实验类型，参考[本文档修改相关参数](https://support.huaweicloud.com/bestpractice-modelarts/modelarts_llm_train_590619.html)即可；VeRL实验类型为【ppo，grpo，dapo】；MindSpeed-RL实验类型为【grpo】；MindSpeed-MM实验类型为【full】。
      
      - \<output_file_path\>：yaml文件输出目录及文件名称，例如/path/to/xxx.yaml。
       
    
2. 修改生成config配置yaml文件中关键参数值，参数详情可参考[MindSpeed-LLM](https://support.huaweicloud.com/bestpractice-modelarts/modelarts_llm_train_590619.html)、[Llama-Factory](https://support.huaweicloud.com/bestpractice-modelarts/modelarts_llm_train_590620.html)、[VeRL](https://support.huaweicloud.com/bestpractice-modelarts/modelarts_llm_train_590621.html)、[12.1.4-MindSpeed-RL](https://support.huaweicloud.com/bestpractice-modelarts/modelarts_llm_train_590622.html)、[MindSpeed-MM](https://support.huaweicloud.com/bestpractice-modelarts/modelarts_llm_train_590659.html)【五选一】。
 
 #### 步骤二：启动训练任务
1. 在任意目录都可执行训练命令，如新建test_benchmark目录下。 预训练及微调阶段模型最小卡数参考[各模型支持的最小卡数和序列长度](https://support.huaweicloud.com/bestpractice-modelarts/modelarts_llm_train_590604.html)，按自己实际情况决定。
   单机\<可选\>：
   ```
   # 默认8卡
   ascendfactory-cli train <cfgs_yaml_file> --env.MASTER_ADDR=localhost --env.NNODES=1 --env.NODE_RANK=0
   # 指定设备卡数，如2卡
   ASCEND_RT_VISIBLE_DEVICES=0,1 ascendfactory-cli train <cfgs_yaml_file> --env.MASTER_ADDR=localhost --env.NNODES=1 --env.NODE_RANK=0
   # 指定修改yaml中某个参数内容，如af_output_dir等值，使用超参命令传递形式：
   ASCEND_RT_VISIBLE_DEVICES=0,1 ascendfactory-cli train <cfgs_yaml_file> --af_output_dir=xxx --env.MASTER_ADDR=localhost --env.NNODES=1 --env.NODE_RANK=0
   ```
   多机\<可选\>，多机同时执行：
   ```
   # 使用已修改完成yaml文件，不传参修改参数
   ascendfactory-cli train <cfgs_yaml_file> --env.MASTER_ADDR=localhost --env.NNODES=1 --env.NODE_RANK=0 
   # 指定修改yaml中某个参数内容，如af_output_dir等值，使用超参命令传递形式：
   ascendfactory-cli train <cfgs_yaml_file> --env.MASTER_ADDR=<master_addr> --env.NNODES=<nnodes> --env.NODE_RANK=<rank> --af_output_dir=xxx
   ```
   - \<cfgs_yaml_file\>：config配置yaml文件相对或绝对路径地址。
   
   
   
   - --env.MASTER_ADDR=\<master_addr\>：主master节点IP，一般选rank 0为主master。
   
   - --env.NNODES=\<nnodes\>：训练节点总个数。
   
   - --env.NODE_RANK=\<rank\>：节点ID，从0开始，一般选rank 0为主master。
   
   - --超参\<key\>：参数key可参考[MindSpeed-LLM](https://support.huaweicloud.com/bestpractice-modelarts/modelarts_llm_train_590619.html)、[Llama-Factory](https://support.huaweicloud.com/bestpractice-modelarts/modelarts_llm_train_590620.html)、[VeRL](https://support.huaweicloud.com/bestpractice-modelarts/modelarts_llm_train_590621.html)、[12.1.4-MindSpeed-RL](https://support.huaweicloud.com/bestpractice-modelarts/modelarts_llm_train_590622.html)、[MindSpeed-MM](https://support.huaweicloud.com/bestpractice-modelarts/modelarts_llm_train_590659.html)，根据要求选择。
    
 
