
# MindSpeed-MM-RL
MindSpeed-MM-RL针对多模态模型的强化学习任务，本章节主要描述该框架训练所需的yaml配置文件（通过ascendfactory-cli config 命令生成）、配置参数说明，用户可根据实际自行选择其需要的参数。
#### yaml文件参数配置
![](https://support.huaweicloud.com/bestpractice-modelarts/figure/zh-cn_image_0000002509604597.png "点击放大")
1. 数据集及模型路径设置如下表所示。
表1数据集及模型路径设置 
| 参数                                                             | 示例值                                                              | 参数说明                         |
|:---|:---|:---|
| backend_config.megatron_training.tokenizer_name_or_path        | /home/ma-user/AscendFactory/ckpts/hf_path/Qwen2.5-VL-7B-Instruct | **【必修改】**转换前的权重路径。请根据实际规划修改。 |
| backend_config.data.dataset_param.basic_parameters.dataset_dir | /home/dataset/geo3k/                                             | **【必修改】**数据集路径。请根据实际规划修改。    |
   
2. 权重转换设置，详解如下。
| 参数                                                                  | 示例值                                                                                                                                                                                                                                                   | 参数说明                                                                |
|:---|:---|:---|
| backend_config.convert_ckpt_hf2mg.cfg.mm_dir                        | /home/ma-user/AscendFactory/ckpts/mm_path/converted_weight_TP${backend_config.training.tensor-model-parallel-size}_PP${backend_config.training.pipeline-model-parallel-size}                                                                          | **【必修改】**转换后保存目录。请根据实际规划修改。                                         |
| backend_config.convert_ckpt_hf2mg.cfg.hf_config.hf_dir              | ${backend_config.data.dataset_param.preprocess_parameters.model_name_or_path}                                                                                                                                                                         | huggingface权重目录。                                                    |
| backend_config.convert_ckpt_hf2mg.cfg.parallel_config.llm_pp_layers | - 1 - 10 - 10 - 7     | llm在每个卡上切分的层数，注意要和微调时backend_config.model中配置的pipeline_num_layers一致。 |
| backend_config.convert_ckpt_hf2mg.cfg.parallel_config.vit_pp_layers | - 32 - 0 - 0 - 0   | vit在每个卡上切分的层数，注意要和微调时backend_config.model中配置的pipeline_num_layers一致。 |
| backend_config.convert_ckpt_mg2hf.cfg.parallel_config.tp_size       | 1                                                                                                                                                                                                                                                     | tp并行数量，注意要和megatron_training中的配置一致。                                 |
| backend_config.convert_ckpt_mg2hf.cfg.save_hf_dir                   | ${af_output_dir}/ckpt_converted_mg2hf                                                                                                                                                                                                                 | 训练任务完成后转换回hf模型格式的目录。                                                |
| backend_config.convert_ckpt_mg2hf.cfg.parallel_config.llm_pp_layers | - 1 - 10 - 10 - 7     | llm在每个卡上切分的层数，注意要和微调时backend_config.model中配置的pipeline_num_layers一致。 |
| backend_config.convert_ckpt_mg2hf.cfg.parallel_config.vit_pp_layers | - 32 - 0 - 0 - 0 | vit在每个卡上切分的层数，注意要和微调时backend_config.model中配置的pipeline_num_layers一致。 |
| backend_config.convert_ckpt_mg2hf.cfg.parallel_config.tp_size       | 1                                                                                                                                                                                                                                                     | tp并行数量，注意要和megatron_training中的配置一致。                                 |
   
3. 训练场景、权重文件、输出目录及其他重要参数设置，详解如下。
| 参数                                                       | 示例值                       | 参数说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
|:---|:---|:---|
| af_output_dir                                            | /home/ma-user/ws/save_dir | **【必修改】**训练任务结束生成日志及权重文件目录                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| backend_config.actor_config.micro_batch_size             | 1                         | 表示流水线并行中一个micro batch所处理的样本量。在流水线并行中，为了减少气泡时间，会将一个step的数据切分成多个micro batch。 该值与tensor-model-parallel-size和pipeline-model-parallel-size以及模型大小相关，可根据实际情况进行调整，简称MBS。                                                                                                                                                                                                                                                                                                                                                                                                  |
| backend_config.megatron_training.global_batch_size       | 128                       | 表示训练中所有机器一个step所处理的样本量。影响每一次训练迭代的时长，简称GBS。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| backend_config.actor_config.tensor_model_parallel_size   | 8                         | 表示张量并行，简称TP。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| backend_config.actor_config.pipeline_model_parallel_size | 4                         | 表示流水线并行。一般此值与训练节点数相等，与权重转换时设置的值相等，简称PP。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| backend_config.actor_config.lr                           | 2.5e-5                    | 学习率设置。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| backend_config.actor_config.min_lr                       | 2.5e-6                    | 最小学习率设置。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| backend_config.megatron_training.train_iters             | 10                        | 非必填。表示训练step迭代次数，有默认值                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| backend_config.megatron_training.save_interval           | 1000                      | 用于模型中间版本地保存。 - 当参数值\>=TRAIN_ITERS时，生成模型仅保存经过TRAIN_ITERS次训练后的最后一个版本。  - 当参数值\<TRAIN_ITERS时，生成模型会每经过SAVE_INTERVAL次，保存一次模型版本。   模型版本保存次数=TRAIN_ITERS//SAVE_INTERVAL+1 |
   
