训练 DeepSeek 671b
最后更新: 08/20/2025.
verl 集成了 Megatron,以支持大规模的 MoE 模型,例如 Qwen3-235B-A22B 和 deepseek-ai/DeepSeek-V3。这是一项正在进行的社区努力。
在这个过程中,社区添加了以下功能和优化,使 verl 能够处理更大的模型:
rollout 和训练之间的按张量权重重新分片
通过 megatron 启用的上下文并行和专家并行
megatron 的动态批大小(序列平衡)
减少 Ray 相关的序列化开销
优化器卸载、重新计算以及高效内核
各种调试指标和工具
混合优化器
现在 megatron 后端支持的模型列表更广泛:
DeepSeek-V3
Moonlight
Qwen3
Qwen2.5-VL(即将合并)
Qwen2
Mixtral
开始使用
准备工作
推荐的带有预构建 Megatron 依赖的镜像为 verlai/verl:app-verl0.4-vllm0.8.5-mcore0.13.0-preview,该镜像使用 docker/verl0.4-cu124-torch2.6-fa2.7.4/Dockerfile.app.vllm.mcore0.13.preview 中的 Dockerfile 构建。
该镜像在配备 DeepEP 的 Hopper GPU 上构建。不支持非 Hopper GPU,例如 A100。你可能需要重新安装 DeepEP 以便与 A100 配合工作。
当 OFFLOAD_FRACTION=1 时,系统的最低要求降低。它可以在至少 96 个 H20(96GB)GPU 上运行 DeepSeek-V3,也可以在至少 32 个 H20(96GB)GPU 上运行 Qwen3-235B-A22B。不过,此配置将使用每个节点 1.6TB 的 CPU 内存。如果你 CPU 内存不足或需要更快的训练速度,可以添加更多节点。
DeepSeek 671b
对于 DeepSeek-V3 671b,请参考 examples/grpo_trainer/run_deepseek671b_math_megatron_96gb.sh。
在 RL 训练过程中,MTP(多教师蒸馏)和量化被禁用。
要训练你的项目,请根据可用 GPU 的数量配置以下环境变量。这些是推荐设置,可根据你的具体硬件进行调整。
num gpus |
NNODES |
TP |
PP |
EP |
OFFLOAD_FRACTION |
OFFLOAD_OPTIM |
LAST_LAYER |
|---|---|---|---|---|---|---|---|
96 |
12 |
8 |
12 |
8 |
1. |
False |
6 |
128 |
16 |
8 |
16 |
8 |
0.5 |
True |
1 |
256 |
32 |
8 |
16 |
8 |
0. |
True |
1 |
512 |
64 |
1 |
16 |
32 |
0 |
True |
1 |
Qwen3 235b
对于 Qwen3-235b,请参考 examples/grpo_trainer/run_qwen3-235b_megatron_96gb.sh。
要训练你的项目,请根据可用 GPU 的数量配置以下环境变量。这些是推荐设置,可根据你的具体硬件进行调整。
num gpus |
NNODES |
TP |
PP |
EP |
OFFLOAD_FRACTION |
OFFLOAD_OPTIM |
LAST_LAYER |
|---|---|---|---|---|---|---|---|
32 |
4 |
4 |
8 |
4 |
1. |
False |
6 |
64 |
8 |
4 |
8 |
4 |
0.5 |
True |
6 |
128 |
16 |
4 |
8 |
4 |
0 |
True |
6 |
256 |
32 |
4 |
8 |
4 |
0 |
True |
6 |
基准测试
以下是 DeepSeek / Qwen3-235B 的一些基准测试结果。所有配置与基于 GPU 数量的推荐设置匹配。
模型 |
GPU 数量 |
平均响应长度 |
rollout 时间(秒) |
GPU 内存(GB) |
CPU 内存(GB) |
MFU |
步骤时间(秒) |
|---|---|---|---|---|---|---|---|
DeepSeek 671b |
96 |
1960 |
1050 |
66 |
1500 |
0.19 |
1700 |
Qwen3-30B-A3B MOE
对于 Qwen3-30b,请参考 examples/grpo_trainer/run_qwen3moe-30b_megatron_96gb.sh。
要训练你的项目,请根据可用 GPU 的数量配置以下环境变量。这些是推荐设置,可根据你的具体硬件进行调整。
num gpus |
NNODES |
TP |
PP |
EP |
OFFLOAD_FRACTION |
OFFLOAD_OPTIM |
MFU |
|---|---|---|---|---|---|---|---|
8 |
1 |
1 |
1 |
8 |
1. |
True |
0.4 |
16 |
2 |
1 |
1 |
8 |
1. |
True |
0.37 |
32 |
4 |
1 |
1 |
8 |
1. |
True |
0.31 |
即将推出的优化
社区将继续优化大规模 MoE 模型,正在进行的努力包括:
进一步优化内存消耗,并为各种机器类型提供推荐/调优配置
优化长上下文 RL 训练性能
使用 SGLang x Megatron 提升性能
我们邀请社区一起尝试并改进 verl。与我们在 slack/wechat/Github issues 上联系!
致谢
@vermouth1992 @ISEEKYAN @ETOgaosion @yzlnew @ShareLer @BearBiscuit05 @ccclyu @ann-qin-lu @SwordFaith @zzong2006 @zhaochenyang20 @ocss884 @eric-haibin-lin @chenhaiq @techkang