
# VeRL
本章节主要描述训练所需的yaml配置文件、配置参数说明，用户可根据实际自行选择其需要的参数。
#### yaml文件配置
根据以下步骤修改yaml文件，以下参数aaa.bbb为aaa区域的bbb参数值，如backend_config.data.train_files指backend_config区域中data.train_files参数：
![](https://support.huaweicloud.com/bestpractice-modelarts/figure/zh-cn_image_0000002430846605.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})                                                                                                                                                                                                                |
   
