【VeRL】Qwen3-30B-A3B-DAPO NPU实践指导

作者:昇腾实战派
知识地图链接: 【强化学习】知识地图-CSDN博客

背景概述

在大模型训练过程中,如何高效利用NPU硬件资源并保证训练稳定性是开发者面临的重要挑战。本文基于实际项目经验,分享了在NPU环境下使用VLLM+FSDP后端进行Qwen3-30B模型DAPO训练的完整实践方案。通过详细的版本配置、核心参数调优和部署指导,为开发者提供了一套可复现的高效训练方案。

一、版本信息

硬件平台:Atlas 800T A2

软件版本信息:

组件名称 版本号 备注
HDK 25.0.rc1
Python 3.11
CANN 8.3.RC1 Q3商发版本
torch 2.7.1
torch_npu 2.7.1 Q3商发版本
vllm v0.11.0 https://github.com/vllm-project/vllm/tree/v0.11.0
vllm-ascend v0.11.0rc1 https://github.com/vllm-project/vllm-ascend/tree/v0.11.0rc1
verl main commit: 7d44f22f1a2d30ec1c405f2c6216bf1e1477cc60

二、核心参数

本文以VLLM+FSDP后端为例,启动脚本参考:verl-recipe/dapo/run_dapo_qwen3_moe_30b_base_fsdp_npu.sh at main · verl-project/verl-recipe

根据verl官方仓库的脚本,2机32卡可直接拉起训练,下面介绍一些核心参数

2.1 数据配置

复制代码
data.val_files="${TEST_FILE}" \
data.prompt_key=prompt \
data.max_prompt_length=2048 \
data.max_response_length=20480 \
data.gen_batch_size=1536 \
data.train_batch_size=512 \

参数说明:

  • 指定数据集路径和关键字段
  • 限制prompt和response的最大长度
  • 设置推理和训练的batch size

2.2 并行配置

2.2.1 Actor并行配置

python 复制代码
     actor_rollout_ref.actor.ulysses_sequence_parallel_size=8 \
     actor_rollout_ref.actor.fsdp_config.fsdp_size=-1 \
     actor_rollout_ref.actor.fsdp_config.param_offload=True \
     actor_rollout_ref.actor.fsdp_config.optimizer_offload=True \

配置要点:

  • 采用FSDP全分片 + Ulysses序列并行
  • SP建议设置为8或16,有助于负载均衡
  • offload功能将actor的权重、梯度和优化器状态卸载到CPU

2.2.2 Rollout并行配置

rollout使用TP并行

复制代码
     actor_rollout_ref.rollout.tensor_model_parallel_size=4 \

三、数据集准备

使用dapo-math数据集,执行以下命令进行数据准备:

复制代码
 bash recipe/dapo/prepare_dapo_data.sh

四、部署指导

4.1 安装torch & torch_npu

复制代码
 pip install torch==2.7.1
 pip install torch-npu==2.7.1

4.2 安装vllm & vllm-ascend

复制代码
 # Install vLLM
 git clone --depth 1 --branch v0.11.0 https://github.com/vllm-project/vllm
 cd vllm
 VLLM_TARGET_DEVICE=empty pip install -v -e .
 
 # Install vLLM Ascend
 git clone  --depth 1 --branch v0.11.0rc1 https://github.com/vllm-project/vllm-ascend.git
 cd vllm-ascend
 pip install -v -e .

4.3 安装verl

复制代码
 git clone https://github.com/volcengine/verl.git
 cd verl
 pip install -r requirements-npu.txt
 pip install -e .

4.4 启动训练

在Ray集群的head节点上执行启动脚本:

复制代码
 bash recipe/dapo/run_dapo_qwen3_moe_30b_base_fsdp_npu.sh

五、复现结果样例

5.1 精度数据

5.2 性能数据

相关推荐
uzong15 分钟前
AI Agent 是什么,如何理解它,未来挑战和思考
人工智能·后端·架构
2401_8955213416 分钟前
spring-ai 下载不了依赖spring-ai-openai-spring-boot-starter
java·人工智能·spring
冬奇Lab20 分钟前
从 Prompt 工程师到 Harness 工程师:AI 协作范式的三次进化
人工智能
jixinghuifu31 分钟前
理性权衡:手机系统更新,别盲目也别抗拒
人工智能·安全·智能手机
LJ979511134 分钟前
从被动救火到主动防御:Infoseek舆情监测系统的技术架构与实战拆解
人工智能
CareyWYR1 小时前
每周AI论文速递(260323-260327)
人工智能
guoji77881 小时前
安全与对齐的深层博弈:Gemini 3.1 Pro 安全护栏与对抗测试深度拆解
人工智能·安全
实在智能RPA2 小时前
实在 Agent 和通用大模型有什么不一样?深度拆解 AI Agent 的感知、决策与执行逻辑
人工智能·ai
独隅2 小时前
PyTorch 模型部署的 Docker 配置与性能调优深入指南
人工智能·pytorch·docker