
# VeRL
本章节主要描述训练所需的yaml配置文件（通过ascendfactory-cli config 命令生成）、配置参数说明，用户可根据实际自行选择其需要的参数。
#### yaml文件配置
根据以下步骤修改yaml文件。
![](https://support.huaweicloud.com/bestpractice-modelarts/figure/zh-cn_image_0000002470740426.png)
表1模型训练脚本参数 
| 参数                                                                         | 示例值                                                                                                                    | 参数说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
|:---|:---|:---|
| af_output_dir                                                              | /home/ma-user/verl                                                                                                     | **【必修改】**训练输出结果                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| backend_config.data.train_files                                            | /data/geometry3k/train.parquet                                                                                         | **【必修改】**预处理完成后的训练集                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| backend_config.data.val_files                                              | /data/geometry3k/test.parquet                                                                                          | **【必修改】**预处理完成后的验证集                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| backend_config.actor_rollout_ref.model.path                                | /model/Qwen2.5-VL-32B-Instruct                                                                                         | **【必修改】**Huggingface模型路径。这可以是本地路径或 HDFS路径。                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| backend_config.data.train_batch_size                                       | 32                                                                                                                     | 一次训练采样的批量大小。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| backend_config.actor_rollout_ref.actor.ppo_mini_batch_size                 | 8                                                                                                                      | 批量大小拆分为多个子批次。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| backend_config.actor_rollout_ref.actor.ppo_micro_batch_size_per_gpu        | 1                                                                                                                      | 训练 Actor 时，在单个设备上进行一次 前向传播 的数据量大小。                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| backend_config.actor_rollout_ref.rollout.log_prob_micro_batch_size_per_gpu | 1                                                                                                                      | 在Rollout过程中，每一步计算Log Probability时，在单个设备上进行一次前向传播的数据量大小。                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| backend_config.actor_rollout_ref.ref.log_prob_micro_batch_size_per_gpu     | 1                                                                                                                      | 在参考策略（Reference Policy）的 Log Probability 计算中，在单个设备上进行一次 前向传播 的数据量大小。                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| backend_config.trainer.total_epochs                                        | 5                                                                                                                      | 【可选】训练轮数，用户根据自己实际选择训练轮数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| backend_config.actor_rollout_ref.rollout.tensor_model_parallel_size        | 4                                                                                                                      | vllm推理时模型切分。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| backend_config.data.image_key                                              | images                                                                                                                 | **【多模态模型】**数据集中图像所在的字段。默认值为'images。                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| engine_kwargs.vllm.disable_mm_preprocessor_cache                           | True                                                                                                                   | **【多模态模型】**是否禁用多模态模型的预处理器缓存。默认值为False。                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| backend_config.data.max_prompt_length                                      | 1024                                                                                                                   | 最大提示长度。所有提示都将是left-padded到此长度。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| backend_config.data.max_response_length                                    | 1024                                                                                                                   | 最大响应长度。RL算法中Rollout阶段最大的生成长度                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| backend_config.actor_rollout_ref.rollout.max_num_batched_tokens            | 18432                                                                                                                  | max_response_length+max_prompt_length大于8k，长序列时设置为两参数之和，默认为8192                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| backend_config.actor_rollout_ref.actor.ulysses_sequence_parallel_size      | 1                                                                                                                      | 序列并行，长序列使用，默认1，max_response_length值\>8K时，取值一般为(max_response_length/2048)取整                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| backend_config.data.shuffle                                                | True                                                                                                                   | 是否对dataloader中的数据进行shuffle。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| backend_config.data.truncation                                             | 'error'                                                                                                                | 如果 input_ids 或 prompt length 超过 max_prompt_length，则进行截断。默认值为 'error'，不允许超过 max_prompt_length。                                                                                                                                                                                                                                                                                                                                                                                                                    |
| backend_config.actor_rollout_ref.actor.optim.lr                            | 1e-6                                                                                                                   | actor学习率                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| backend_config.actor_rollout_ref.model.use_remove_padding                  | True                                                                                                                   | 是否移除padding。 - True：是  - False：否   |
| backend_config.actor_rollout_ref.actor.use_kl_loss                         | True                                                                                                                   | 是否Actor中使用KL loss，如果使用则不会在奖励功能中使用 KL。默认为True。                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| backend_config.actor_rollout_ref.actor.kl_loss_coef                        | 0.01                                                                                                                   | kl 损失的系数。默认值为 0.001                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| backend_config.actor_rollout_ref.actor.kl_loss_type                        | low_var_kl                                                                                                             | 如何计算参与者和参考策略之间的 kl 散度；默认选择low_var_kl                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| backend_config.actor_rollout_ref.actor.entropy_coeff                       | 0                                                                                                                      | 计算PPO损失，一般设置为0                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| backend_config.actor_rollout_ref.actor.use_torch_compile                   | False                                                                                                                  | 是否JIT编译加速，支持False                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| backend_config.actor_rollout_ref.model.enable_gradient_checkpointing       | True                                                                                                                   | 是否为 Actor 启用 Gradient Checkpointing                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| backend_config.actor_rollout_ref.rollout.name                              | vllm                                                                                                                   | 推理框架名称 vllm                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| backend_config.actor_rollout_ref.rollout.gpu_memory_utilization            | 0.4                                                                                                                    | 用于 vLLM 实例的总 device内存的比例                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| backend_config.actor_rollout_ref.rollout.n                                 | 4                                                                                                                      | 将一个批次的数据重复 n 次（并且在重复过程中进行交错）                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| backend_config.trainer.logger                                              | \['console','tensorboard'\]                                                                                            | 日志后台，可选择【'wandb', 'console' ,'tensorboard'】                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| backend_config.trainer.val_before_train                                    | False                                                                                                                  | 是否在训练开始前跑验证集测试 - True：验证  - False：不验证         |
| backend_config.trainer.resume_mode                                         | auto                                                                                                                   | 默认值为auto。如果设置为"auto"，将自动从默认保存的路径加载中断时最新保存训练权重继续训练，开启【**断点续训** 】，如需指定权重参数加载路径则设置为"resume_path"，并设置resume_from_path参数值；如果设置为"disable"，表示关闭【**断点续训**】模式。                                                                                                                                                                                                                                                                                                                                                            |
| backend_config.trainer.resume_from_path                                    | null                                                                                                                   | 默认值为null。如果开启【**断点续训**】模式，需指定权重参数加载路径可设置此值，目的方便用户指定权重基于此权重继续训练。                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| backend_config.trainer.save_freq                                           | -1                                                                                                                     | 模型权重参数的保存频率（按迭代次数）。默认值为-1，不保存权重参数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| backend_config.actor_rollout_ref.actor.ppo_max_token_len_per_gpu           | 2048                                                                                                                   | 一个 PPO micro batch size 中，单个 GPU 能处理的最大 Token 总数。通常设置为 n \* ({data.max_prompt_length} + {data.max_response_length})                                                                                                                                                                                                                                                                                                                                                                                              |
| backend_config.critic.model.path                                           | /model/Qwen2.5-VL-32B-Instruct                                                                                         | **【PPO算法必修改】**Huggingface模型路径。这可以是本地路径或 HDFS路径。                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| backend_config.reward_model.model.path                                     | /model/Qwen2.5-VL-32B-Instruct                                                                                         | **【PPO算法必修改】**reward模型，不建议设置为训练模型。Huggingface模型路径，这可以是本地路径或 HDFS路径。                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| backend_config.actor_rollout_ref.rollout.mode                              | async                                                                                                                  | **【** **多轮对话Agent训练** **必修改】** 是否启用异步推理。默认值为sync。                                                                                                                                                                                                                                                                                                                                                                                    |
| backend_config.actor_rollout_ref.rollout.multi_turn.enable                 | true                                                                                                                   | **【** **多轮对话Agent训练** **必修改】**是否启用多轮对话模式。默认值为False。                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| backend_config.actor_rollout_ref.rollout.multi_turn.tool_config_path       | "/home/ma-user/AscendFactory/src/open_source/verl/examples/sglang_multiturn/config/tool_config/gsm8k_tool_config.yaml" | **【** **多轮对话Agent训练** **必修改】**工具配置文件路径，定义模型可以调用的外部工具。                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| backend_config.data.return_raw_chat                                        | true                                                                                                                   | **【** **多轮对话Agent训练** **必修改】**是否返回未应用聊天模板的原始 response。默认值为False。                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| backend_config.actor_rollout_ref.rollout.multi_turn.max_assistant_turns    | 5                                                                                                                      | **【** **多轮对话Agent训练** **】**用于限制助手（系统）在对话中的最大参与轮数。在多轮对话场景中，助手每次轮次需要调用外部工具或执行复杂推理，设置该参数可避免助手过度参与导致系统资源消耗过大或对话过程失控。                                                                                                                                                                                                                                                                                                                                                                                                 |
| backend_config.actor_rollout_ref.rollout.multi_turn.max_user_turns         | 5                                                                                                                      | **【** **多轮对话Agent训练** **】**用于限制用户（或提问者）的最大参与轮数。在实际应用中，用户通常需要完成多轮提问、补充说明或验证结果，该参数确保对话不会因用户持续提问而无限延长。                                                                                                                                                                                                                                                                                                                                                                                                              |
| backend_config.actor_rollout_ref.model.lora_rank                           | 32                                                                                                                     | **【Lora】**Lora适配器矩阵的秩，值越小表明引入的参数越少。                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| backend_config.actor_rollout_ref.model.lora_alpha                          | 32                                                                                                                     | **【Lora】**Lora适配器的缩放系数，LoRA 中的低秩矩阵会乘以 α / rank 来对权重进行缩放，用于调节微调的强度。                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| backend_config.actor_rollout_ref.model.target_modules                      | all-linear                                                                                                             | **【Lora】**将 LoRA 适配器应用于模型中所有线性层，目前verl必须设置all-linear。                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| backend_config.actor_rollout_ref.rollout.load_format                       | safetensors                                                                                                            | **【Lora】**在加载模型时使用 safetensors 格式, verl lora下会对vllm打patch,直接通过safetensors的形式给vllm传lora传输，所以lora下必须设置为safetensors。                                                                                                                                                                                                                                                                                                                                                                                                |
| backend_config.trainer.n_gpus_per_node                                     | 4                                                                                                                      | **【one-step-off-policy】**训推分离后每个节点分配给训练的NPU卡数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| backend_config.rollout.n_gpus_per_node                                     | 12                                                                                                                     | **【one-step-off-policy】**训推分离后每个节点分配给推理的NPU卡数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
   
