性能调优指南

射线PPO

为了实现最佳性能,我们建议分配节点 vLLM:Actor:Critic = 1:1:1

  • 例如,对于一个拥有48个A100 GPU的70B模型,建议将16个A100 GPU分配给vLLM引擎,16个GPU分配给Actor模型,剩下的16个GPU分配给Critic模型。

  • 启用 --colocate_critic_reward, --colocate_actor_ref 选项以合并节点。

  • 你应该尽可能增加rollout_micro_batch_size(并最小化vLLM引擎的TP大小)。在训练阶段,较大的--micro_train_batch_size更好,并启用--packing_samples

  • 当有足够的GPU时,请禁用--adam_offload并启用--overlap_comm

  • 对于多节点的RLHF,请使用--vllm_sync_backend nccl与vLLM 0.7.2+。

  • 在vLLM生成中启用enable_prefix_caching,当n_samples_per_prompts > 1时。

  • 当模型大小和上下文长度较小时,使用混合引擎 --colocate_all_models--vllm_enable_sleep 而不是分布式 RLHF。

  • 对于大型基础模型,如果发生OOM,请不要使用任何--colocate_xxxx选项。

SFT/RM/DPO/PPO 训练

  • 在训练脚本中启用 --packing_samples

批量推理