多节点训练#
本指南将带你启动一个 4 节点的 Ray 集群 (每个节点有 8 块 GPU ), 并使用 DeepSeek-R1-Distill-Qwen-1.5B 模型在 math 任务上运行分布式强化学习训练。
只要你根据实际情况修改 YAML 配置文件,这一套流程也可以扩展到任意数量的节点和 GPU。
准备工作#
开始前请确保以下几点已完成:
已将 RLinf 仓库克隆到所有节点都能访问的共享文件系统中。
每个节点都已启动对应的容器镜像。
步骤 1:启动 Ray 集群#
首先清除旧的缓存状态:
rm -f ray_utils/ray_head_ip.txt
然后在 每个节点 的 shell 中运行以下命令:
节点编号 |
命令 |
|---|---|
0(head 节点) |
|
1 |
|
2 |
|
3 |
|
当脚本成功运行后 head 节点 上的终端会输出如下内容(为简洁起见,下图为 2 节点、16 GPU 的示例):

每个 worker 节点 上的终端输出如下:

当所有四个启动脚本都打印出 Ray started,保持在 head 节点终端中,并检查集群是否已正确连接(此例为 4 × 8 = 32 张 GPU):
bash ray_utils/check_ray.sh 32
备注
check_ray.sh 的参数必须等于集群中GPU等加速器的总数。
如果一切正常,你将看到如下输出:

注意:为简洁起见,本文使用的是 2 节点 16 GPU 的截图。
步骤 2:启动训练任务#
我们提供了两种模式的启动示例:共享式模式 和 分离式模式
共享式模式#
所有训练阶段(rollout、inference、actor)共享 所有 GPU。 修改示例 YAML:
# examples/reasoning/config/math/qwen2.5-1.5b-grpo-megatron.yaml
cluster:
num_nodes: 4 # 根据你的集群情况修改
component_placement:
actor,rollout: all # “all” 表示使用所有可见 GPU
在 head 节点上运行:
bash examples/reasoning/run_main_grpo_math.sh \
qwen2.5-1.5b-grpo-megatron
分离式模式#
不同阶段使用不同 GPU 范围,支持更细粒度的流水线并行。 修改流水线 YAML 配置:
# examples/reasoning/config/math/qwen2.5-1.5b-grpo-megatron-pipeline.yaml
cluster:
num_nodes: 4
component_placement:
rollout: 0-19 # 使用 20 块 GPU
inference: 20-23 # 使用 4 块 GPU
actor: 24-31 # 使用 8 块 GPU
注意:
rollout + inference + actor使用的 GPU 总数必须等于总 GPU 数(此例中为32)。范围是 闭区间 (即包含起止编号)。
启动任务:
bash examples/reasoning/run_main_grpo_math.sh \
qwen2.5-1.5b-grpo-megatron-pipeline