Skip to content

feat(recipe): add Nemotron Nano 9B v2 GRPO recipe for Ascend - #110

Open
OnPathXD wants to merge 1 commit into
verl-project:mainfrom
OnPathXD:issue-70-nemotron-nano-9b-v2-final
Open

feat(recipe): add Nemotron Nano 9B v2 GRPO recipe for Ascend#110
OnPathXD wants to merge 1 commit into
verl-project:mainfrom
OnPathXD:issue-70-nemotron-nano-9b-v2-final

Conversation

@OnPathXD

@OnPathXD OnPathXD commented Sep 7, 2026

Copy link
Copy Markdown

适配范围

关联社区任务:#70

本 PR 提供 NVIDIA Nemotron Nano 9B v2 在 8 张 Ascend NPU 上执行 GRPO 训练的 recipe。训练侧使用 BF16 Megatron,rollout 侧使用 vLLM-Ascend async mode,reward 使用 DAPO rule reward。

实现沿用 verl 的 canonical Nemotron Nano Megatron GRPO 示例。针对模型的 Mamba2 层,单一 Bash 脚本通过 VERL_USE_EXTERNAL_MODULES 加载临时运行模块:训练与 prefill 接入 MindSpeed-LLM NPU SSD,单 token decode 使用可由 FULL_DECODE_ONLY 捕获的 NPU tensor 路径,不需要额外修改 verl 仓库源码。

文件职责

路径 内容
grpo/nemotron-nano-9b-v2/run_nemotron_nano_9b_v2_grpo_megatron_npu.sh 8 NPU 环境、Mamba2 运行时适配、Megatron/vLLM-Ascend 配置与训练入口
grpo/nemotron-nano-9b-v2/README.md 环境、模型与数据、复现命令、关键配置、指标定义与验收报告
grpo/nemotron-nano-9b-v2/assets/reward_curve.png reward 原始值与 10-step moving average
grpo/nemotron-nano-9b-v2/assets/loss_curve.png actor loss 原始值与 10-step moving average

八卡运行入口

准备模型及 DAPO-Math-17k、AIME-2024 parquet 后,从 verl 根目录执行:

ASCEND_RT_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 \
RAY_DATA_HOME=/path/to/workspace \
MODEL_PATH=/path/to/NVIDIA-Nemotron-Nano-9B-v2 \
TRAIN_FILE=/path/to/dapo-math-17k/data/dapo-math-17k.parquet \
TEST_FILE=/path/to/aime-2024/data/aime-2024.parquet \
CKPTS_DIR=/path/to/checkpoints/nemotron-nano-9b-v2-grpo \
TOTAL_TRAINING_STEPS=100 \
SAVE_FREQ=100 \
TEST_FREQ=-1 \
RESUME_MODE=disable \
VERL_USE_UV=0 \
bash /path/to/verl-ascend-recipe/grpo/nemotron-nano-9b-v2/run_nemotron_nano_9b_v2_grpo_megatron_npu.sh

验收配置使用 train batch size 32、每个 prompt 生成 16 条 response、PPO mini/micro batch size 32/8、prompt/response 上限 2048/1024、Megatron TP8、vLLM-Ascend TP8、512 个 rollout max sequences。图模式为 FULL_DECODE_ONLY,capture sizes 为 1 至 512 的二次幂。完整环境、参数和可覆盖项见 grpo/nemotron-nano-9b-v2/README.md

验收记录

平台:8 x Ascend 910B3。

从初始权重连续训练 13 小时 00 分 09 秒,完成 77 个 optimizer steps。

指标 结果
训练时长 / 完成步数 13 小时 00 分 09 秒 / 77
critic/rewards/mean 首 10 步 / 末 10 步 -0.946484 / -0.192188
reward 绝对增量 +0.754297
actor loss 均值 / 范围 0.018983 / 0.001587 至 0.062556
TPS 935.5607 tokens/s(8 NPU),116.9451 tokens/s/NPU
首 10 步单 NPU TPS 均值 / 最低值 124.4040 / 109.5558 tokens/s/NPU
平均 step 时间 599.9649 s
处理 token 总数 43,234,521

TPS 采用训练日志中的 perf/throughput 单 NPU 值,并乘以 8 得到聚合值。reward 首尾窗口增量为正,平均单 NPU TPS 高于 100 tokens/s。

核对结果

检查 结果
bash -n grpo/nemotron-nano-9b-v2/run_nemotron_nano_9b_v2_grpo_megatron_npu.sh passed
canonical example structure and naming passed
git diff --check passed
脱敏日志指标重新聚合 与提交表格一致
8 NPU 连续训练 13 小时 00 分 09 秒,77 steps
reward / 单 NPU TPS +0.754297 / 116.9451 tokens/s

Closes #70

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Q3 社区任务1] 基于Megatron+vllm_ascend完成Nemotron-9B的GRPO训练

1 participant