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 放到别的卡上
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 会在作业成功后
自动跑前两条。