性能调优指南
射线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
批量推理
在vLLM生成中启用enable_prefix_caching,当
best_of_n> 1时。