跳转到主要内容
NeMo-RL 是完整后训练栈的默认 catalog,版本 0.7.0。方法有 nemo-rl/sft、dpo、grpo、 grpo-lora、ppo、rm、distillation、maxrl、opsd。 有两件事你不必做:传 --observability-url,以及自己调 tuneplane.report。这个框架的 observability 是 platform:集成启用原生 TensorBoard 输出(logger.tensorboard_enabled)。 独立采集器读取事件文件,不修改 NeMo-RL 的 logger 类;显式配置的外部 tracker 仍可使用。

创建并调参

模型和数据集来自 configs/base/ 和一个 configs/models/ 片段,所以提交通常不需要 --model 或 --train-data。分层怎么解析见 config.yaml。

提交

适配器会用服务端注入的环境变量覆盖四个键。不要在你的配置里跟它们较劲:

把 rollout 放到别的卡上

有独立的 rollout pool 时,适配器会设 policy.generation.colocated.enabled=false,并从 TUNEPLANE_POOL_TOPOLOGY 填入共卡资源数。你不需要为此维护一份非共卡的覆盖 YAML。 多 pool 需要一个 kubernetes 或 slurm Fleet。Node Fleet 支持单个同构资源池,最多跨 8 台机器。

用你自己的 run.py

recipe 的入口是带版本的 NeMo-RL 文件。如果 recipe 声明了 experiment_override 而那个文件在你的 实验目录里存在,你的胜出 —— 带自定义数据集或工具环境的实验就是这样自带 run.py 的。 JobSpec 里的 spec.source.entrypoint 会被拒绝。你不能从提交的 JSON 里覆盖 recipe。 容器需要 NEMO_RL_DIR,由部署方以 TUNEPLANE_NEMO_RL_DIR 设置,在 NGC 镜像里通常是 /opt/nemo-rl。没有它,提交会失败并点名缺的那项配置。

确认成功

tp job logs 会显示 Ray 启动,然后是第一个训练 step。Charts 标签页会填入 train/reward、 validation/accuracy、train/entropy、train/kl_penalty 和 train/token_mult_prob_error。 盯住最后那个。超过 1% 到 2%,训练器和 rollout 引擎之间的权重同步就是坏的,此时一条看起来很好的 reward 曲线不可信。

训练之后

这里的格式是 nemo-dcp 和 nemo-megatron。提交时加 --then export --then eval 会在作业成功后 自动跑前两条。

下一步

流水线 · 评测 · agent 环境讲 GRPO 和 PPO 对着工具环境跑