训练 DeepSeek 671b

最后更新时间:2025 年 8 月 20 日。

verl 集成了 Megatron,支持 Qwen3-235B-A22Bdeepseek-ai/DeepSeek-V3 等大型 MoE 模型。这是一项持续进行的社区努力。

在此过程中,社区为 verl 添加了以下功能和优化,使其能够支持更大的模型:

  • 在 rollout 和训练之间进行逐张量权重重分片 (per tensor weight resharding)

  • 通过 Megatron 实现上下文并行和专家并行 (context parallelism and expert parallelism)

  • Megatron 的动态批次大小 (序列平衡) (dynamic batch size (sequence balance))

  • 减少与 Ray 相关的序列化开销

  • 优化器卸载、重计算和高效内核 (optimizer offloading, recomputation, and efficient kernels)

  • 各种调试指标和实用工具

  • 混合优化器 (hybrid optimizer)

现在 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 构建。

该镜像是在 Hopper GPU 上使用 DeepEP 构建的。它不支持非 Hopper GPU,例如 A100。您可能需要重新安装 DeepEP 以便与 A100 配合使用。

OFFLOAD_FRACTION=1 时,系统的最低要求会降低。对于 DeepSeek-V3,最少可以使用 96 个 H20 (96GB) GPU;对于 Qwen3-235B-A22B,最少可以使用 32 个 H20 (96GB) GPU。但是,此配置将每个节点使用 1.6TB 的 CPU 内存。如果 CPU 内存不足或需要更快的训练速度,可以添加更多节点。

DeepSeek 671b

对于 DeepSeek-V3 671b,请参考 examples/grpo_trainer/run_deepseek671b_math_megatron_96gb.sh

在 RL 训练期间,MTP 和量化 (quantilization) 被禁用。

要训练您的项目,请根据可用 GPU 的数量配置以下环境变量。这些是推荐的设置,可以根据您的具体硬件进行调整。

GPU 数量

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 的数量配置以下环境变量。这些是推荐的设置,可以根据您的具体硬件进行调整。

GPU 数量

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 的数量配置以下环境变量。这些是推荐的设置,可以根据您的具体硬件进行调整。

GPU 数量

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