更新时间:2025-08-14 GMT+08:00
分享

VeRL

本章节主要描述训练所需的yaml配置文件、配置参数说明,用户可根据实际自行选择其需要的参数。

yaml文件配置

根据以下步骤修改yaml文件,以下参数aaa.bbb为aaa区域的bbb参数值,如backend_config.data.train_files指backend_config区域中data.train_files参数:

表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})

相关文档