训练 DeepSeek 671b

最后更新: 08/20/2025.

verl 集成了 Megatron,以支持大规模的 MoE 模型,例如 Qwen3-235B-A22Bdeepseek-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