VeRL
本章节主要描述训练所需的yaml配置文件(通过ascendfactory-cli config 命令生成)、配置参数说明,用户可根据实际自行选择其需要的参数。
yaml文件配置
根据以下步骤修改yaml文件。

参数 | 示例值 | 参数说明 |
|---|---|---|
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。
|
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 | 是否在训练开始前跑验证集测试
|
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路径。 |

