一键导入
testing
Testing conventions for NeMo-RL. Covers Ray actor coverage pragmas, nightly test requirements, and recipe naming rules.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Testing conventions for NeMo-RL. Covers Ray actor coverage pragmas, nightly test requirements, and recipe naming rules.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Configuration conventions for NeMo-RL. YAML is the single source of truth for defaults. Covers BaseModel/TypedDict usage, dataclass for internal classes, exemplar YAML updates, and forbidden default patterns.
Error handling guidelines for NeMo-RL. Covers exception specificity, minimal try bodies, and else blocks.
Code style guidelines for NeMo-RL (Python and shell). Covers naming, indentation, comments, docstrings, reflection avoidance, and uv usage.
Interactive code review for NVIDIA-NeMo/RL pull requests. Checks out PR locally, reads existing comments, applies coding guidelines from skills, previews findings, and posts review comments. Also supports reviewing the current branch locally.
Build and dependency management for NeMo-RL. Covers Docker image building and running, uv usage, venv setup, and adding dependencies.
CI/CD reference for NeMo-RL. Covers GitHub Actions pipeline structure, CI triggering via /ok to test, and CI failure investigation.
| name | testing |
| description | Testing conventions for NeMo-RL. Covers Ray actor coverage pragmas, nightly test requirements, and recipe naming rules. |
| when_to_use | Writing or reviewing tests; adding a nightly test; naming a recipe; 'coverage pragma', 'Ray actor test', 'nightly test requirement', 'how to name recipes', during code review of test files. |
For any source file under nemo_rl/*.py that defines a class or function decorated with @ray.remote, add a coverage pragma because these run in separate Ray processes and are not reliably tracked by coverage.
Place # pragma: no cover on the class or def line:
import ray
@ray.remote # pragma: no cover
class RolloutActor:
def run(self) -> None:
...
@ray.remote # pragma: no cover
def remote_eval(batch):
...
When adding support for a new model, add a corresponding nightly test consisting of:
examples/configs/recipes/Place in the appropriate domain subdirectory (examples/configs/recipes/llm/ or examples/configs/recipes/vlm/). Name it following the recipe naming rules below.
tests/test_suites/Create a shell script in the matching domain (tests/test_suites/llm/ or tests/test_suites/vlm/). Source any common environment (e.g., common.env) and invoke the training entrypoint with uv run ... --config <path-to-yaml>. Match the driver script filename to the YAML base name with .sh.
Append the driver script path (relative to tests/test_suites/) to @tests/test_suites/nightly.txt.
<algo>-<model>-<nodes>n<gpus>g-<strategy-and-params>[-modifiers][-long][.vN].(yaml|sh)
sft, dpo, grpo, etc.llama3.1-8b-instruct, qwen2.5-7b-instruct, etc.1n8g, 4n8g, 8n8gfsdp2tp1, tp4pp2, megatron, dtensor2tp1sp, actckpt, fp8, noncolocated, quickExamples:
sft-llama3.1-8b-1n8g-fsdp2tp1-long.yaml
grpo-llama3.1-8b-instruct-1n8g-megatron-fp8.yaml
grpo-qwen2.5-7b-instruct-4n8g-fsdp2tp4sp.v3.yaml
vlm_<algo>-<model>-<nodes>n<gpus>g-<strategy>[-modifiers][.vN].(yaml|sh)
examples/configs/recipes/
llm/<name>.yaml
vlm/<name>.yaml
tests/test_suites/
llm/<name>.sh
vlm/<name>.sh
nightly.txt