PPO配置参数简介

MindSpeed RL 通过将模型参数和训练配置解耦的层级化参数配置,来简化 PPO 训练的参数配置过程。RLXF 训练涉及到的所有配置文件均存储在 configs/ 路径下,其中 model 文件夹下存储了模型结构相关的配置文件,PPO 训练相关的模型参数文件以 ppo_trainer_模型名_模型大小_机器型号.yaml方式命名。在每个 ppo_trainer 配置文件中,需要包含 defaults、megatron_training、actor_config、rl_config、generate_config 字段的参数配置。

参数名 说明
defaults 负责引入模型配置文件,在 defaults 中应列举本配置文件中所需要用到的所有模型配置,模型配置可以在 megatron_training、actor_config 具体配置中通过 model 字段进行选择
megatron_training 训练引擎通用的默认参数配置
actor_config Actor 模型和 Reference 模型的训练配置参数
rl_config PPO 训练中的特有参数,以及相关模型的资源配置
generate_config 包含分词器设置、推理并行配置、vLLM 引擎参数及生成采样参数等

参数解析

相较于普通模型训练,PPO 增加一些特殊参数,以下将给出部分参数的意义解析。具体的参数配置格式请参照示例 配置文件

defaults:

引入模型配置(网络结构需要定义在model目录的yaml文件下):

  • model: qwen25_7b

megatron_training:

参数名 说明
stage 用于指定训练算法,使用 Ray PPO 训练须设置为 ray_ppo
global_batch_size 经过多少样本后 actor-train 和 rollout 权重同步
data_path 数据集路径配置,例如 /dataset/data,注意带前缀
tokenizer_name_or_path 分词器路径配置,可以配置为 HuggingFace 权重文件的文件夹路径,例如 /ckpt/qwen2.5_7b_hf/
其余参数 其余参数为 Megatron 训练中的特性配置

全量重计算

参数名 说明
recompute_granularity 对于内存非常有限的情况,全量重计算只保存 Transformer 层或层组的输入激活值,其他部分全部重新计算
recompute_num_layers 指定重计算分组层数或重计算层数
recompute_method 全量重计算的方法选择:
uniform:将 Transformer 层均匀划分组(每组大小由 recompute_num_layers 指定),按组存储输入和激活值
block:将前 recompute_num_layers 个 Transformer 层重计算,剩余层不进行重计算

actor_config:

配置 PPO 训练中 Actor 模型、Reference 模型和 Reward 模型的配置参数;当前支持不开启 Reward 模型,开启规则奖励进行打分,开启参数详见rl_config中的rule_reward参数。

参数名 说明
micro_batch_size 梯度累积的 mbs 大小
tensor_model_parallel_size TP 并行策略数
pipeline_model_parallel_size PP 并行策略数
lr 学习率
lr_decay_style 学习率衰减配置
min_lr 最小学习率
weight_decay 权重衰减,用于防止模型过拟合
lr_warmup_fraction 学习率预热比例,在训练初期逐渐增大学习率的比例
clip_grad 梯度裁剪系数
load 模型加载的路径
save 模型保存的路径
no_load_optim 续训加载优化器状态
no_load_rng 续训加载数据随机数生成器
no_save_optim 保存优化器状态
no_save_rng 保存数据随机数生成器

critic_config:

配置 PPO 训练中 Critic 模型参数。

参数名 说明
micro_batch_size 梯度累积的 mbs 大小
tensor_model_parallel_size TP 并行策略数
pipeline_model_parallel_size PP 并行策略数
lr 学习率
lr_decay_style 学习率衰减配置
min_lr 最小学习率
weight_decay 权重衰减,用于防止模型过拟合
lr_warmup_fraction 学习率预热比例,在训练初期逐渐增大学习率的比例
clip_grad 梯度裁剪系数
load 模型加载的路径
save 模型保存的路径
no_load_optim 续训加载优化器状态
no_load_rng 续训加载数据随机数生成器
no_save_optim 保存优化器状态
no_save_rng 保存数据随机数生成器

rl_config:

参数名 说明
use_integrated_worker 是否开启全共卡模式
blocking 是否开启异步
actor_forward_micro_batch_size actor model 前向计算 logp 的 mbs 大小
ref_forward_micro_batch_size ref model 前向计算 logp 的 mbs 大小
adv_estimator 优势计算方法
kl_ctrl_type kl loss 计算方法
init_kl_coef kl loss 所占权重
mini_batch_size 每 mini batch size 之后 actor 会更新一次
max_prompt_length PPO 训练中最大 prompt 长度
clip_ratio Actor 模型训练计算损失函数时的 clip 比例,一般取值范围 [0.1,0.3] 最大取值范围[0,1],该数值越大允许策略更新的幅度越大
cliprange_value Critic 模型训练计算损失函数时的 clip 比例,一般取值范围 [0.1,0.3] 最大取值范围[0,1],该数值越大允许策略更新的幅度越大
entropy_coeff entropy loss 所占权重
n_samples_per_prompt 每条prompt的重用次数,一条 prompt 输入能输出 n 条 response
guarantee_order 是否开启TransferDock保序
shuffle_mini_batch Actor 训练时是否对 minibatch 进行 shuffle
actor_resource 分配给 Actor 、Reference模型的显卡数量

显卡资源配置

```
actor_resource:
    num_npus: 4
critic_resource:
    num_npus: 4
```

规则奖励配置

参数名 说明
rule_reward 开启后,使用规则奖励进行打分
verifier_function 选择使用的规则奖励模型方法,例如 ["acc", "strict_format"]
verifier_weight 配置规则奖励模型权重,例如 [1.0, 1.0]

日志配置

tensorboard开关(若use_tensorboard和use_wandb同时为True,则tensorboard不生效):

参数名 说明
use_tensorboard 配置为 True 时打开 tensorboard(若 use_tensorboarduse_wandb 同时为 True,则 tensorboard 不生效)

wandb开关:

参数名 说明
use_wandb 配置为 True 时打开 wandb
wandb_project wandb project 名称配置
wandb_exp_name wandb 实验名称配置
wandb_save_dir 本地存储 wandb 数据的路径

generate_config:

推理时的并行配置

参数名 说明
infer_tensor_parallel_size TP并行策略数
infer_pipeline_parallel_size PP并行策略数,当前未支持该功能,设置为 '1'
infer_expert_parallel_size EP并行策略数

resharding 相关配置

参数名 说明
trust_remote_code 是否信任远程代码执行
offload_train_optimizer 卸载训练节点优化器
offload_train_grad 卸载训练节点梯度
offload_train_param 卸载模型权重

vllm 模型相关设置

vllm 模型参数 可以参照 vllm官网参数介绍

参数名 说明
max_num_seqs vllm 推理并发最大样本限制
max_model_len vllm 能够处理的最大输入序列长度(prompt+response)
max_num_batched_tokens vllm 单步能处理的最大 token 数量
enforce_eager 使能PyTorch eager模式,默认开启,仅 DeepSeek V3 开启 torchair_graph 时需要关闭
torchair_graph DeepSeek V3 使能 torchair 图模式
enable_expert_parallel MOE 模型使能专家切分,需要 MOE 模型支持
dtype vllm 推理所使用的数据类型
gpu_memory_utilization GPU 内存利用率,指定推理时使用 GPU 内存的比例
num_scheduler_steps 在一个完整的调度周期内,调度器会将批处理请求分成多少个子步骤来执行

采样配置

参数名 说明
logprobs 是否生成logprobs
max_tokens 单条response最大生成token数量
top_p vllm 筛选出概率累积和达到top_p的token集合,随后只在这个集合里进行采样
top_k vllm 会先选出概率最高的 top_k 个 token,然后在这 top_k 个 token 范围内进行采样
min_p vllm 过滤掉概率低于 min_p 的token,不参与后续的采样过程
temperature 采样时的随机性参数
detokenize 是否将输出token重新转为文本