·
Last changedVersion:
This version passed the hardening gate. Hardening applied 3 targeted changes and preserved all other text. Classified findings before hardening: 2. Classified findings closed: 0. Classified findings remaining: 2. Unclassified scanner findings remaining: 0. Review findings closed: 1. Review findings remaining: 12.
1
1
1
1
Expand | File | Group | Subtype | Severity | Status |
|---|---|---|---|---|---|
BENCHMARK.md | Sensitive Data & Secret Exposure | Agent snooping | Medium | Open | |
SKILL.md | Malicious Code & Command Execution | Command injection | Low | Open |
2 findings
Stable docs: @docs/training/resiliency.md, @docs/training/checkpointing.md Card: @skills/nemo-mbridge-resiliency/card.yaml
| Plugin parameter | Default | Description |
|---|---|---|
| 3 | Max restarts within same job |
| 2 | Max new job launches on failure |
| 1800 | First heartbeat timeout (seconds) |
| 300 | Subsequent heartbeat timeout (seconds) |
Launch with ft_launcher (not torchrun):
| Config parameter | Default | Description |
|---|---|---|
| False | Enable fault tolerance |
| False | Auto-compute optimal timeouts |
| False | Enable fault simulation for testing |
|
|
|
| None | Specific rank to fault (random if None) |
| 0 | Base delay before simulating fault |
Section-based timeout monitoring covers setup, training steps, checkpointing,
and out-of-section time independently. Timeouts are saved to ft_state.json
for subsequent runs when calc_ft_timeouts=True.
| Parameter | Default | Description |
|---|---|---|
| False | Enable straggler detection |
| 300.0 | Seconds between straggler checks |
| True | Compare ranks against each other |
| True | Track per-rank degradation over time |
| 0.7 | Threshold for relative performance (0-1) |
| 0.7 | Threshold for individual performance (0-1) |
| False | Terminate training on straggler |
| 5 | Number of best/worst scores to print |
| 1 | Profiling interval for detector |
| Plugin parameter | Default | Description |
|---|---|---|
| 60 | Seconds before job limit to send signal |
| True | Enable signal handler in training |
| False | Enable for dataloader workers |
| Parameter | Default | Description |
|---|---|---|
|
|
|
| True | Check for NaN in loss |
| False | Check for unexpectedly large loss |
| 10.0 | Loss flagged if > factor * max observed (increase for large models) |
Exit codes: 16 = resume to disambiguate, 17 = failed validation.
| Parameter | Default | Description |
|---|---|---|
| False | Enable in-process restart |
| None | Ranks executing workload (rest are warm reserves) |
|
|
|
| None | Max restart attempts (None = unlimited) |
| 60.0 | Detect GIL-released hangs (seconds) |
| 90.0 | Force-terminate hung ranks (seconds) |
| 30.0 | Heartbeat interval (seconds) |
| 60.0 | Missing heartbeat timeout (seconds) |
| 120.0 | Distributed barrier timeout (seconds) |
| 120.0 | Completion barrier timeout (seconds) |
| True | Clear CUDA cache during restart |
| None | Max rank faults before terminating |
| None | Directory for monitor logs |
Required environment variables:
The PyTorch NCCL watchdog timeout must exceed hard_timeout. NeMo-Run's
Slurm Executor is not supported; launch directly with srun --kill-on-bad-exit=0.
src/megatron/bridge/training/config.py — FaultToleranceConfigsrc/megatron/bridge/training/fault_tolerance.pysrc/megatron/bridge/recipes/run_plugins.py — FaultTolerancePluginscripts/performance/nemo-mbridge-resiliency_plugins.pytests/unit_tests/training/test_fault_tolerance.pyexamples/training_features/nemo-mbridge-resiliency/fault_tolerance/src/megatron/bridge/training/config.py — NVRxStragglerDetectionConfigsrc/megatron/bridge/training/nvrx_straggler.pysrc/megatron/bridge/training/train.py — check_nvrx_straggler_detectiontests/unit_tests/training/test_nvrx_straggler.py, tests/functional_tests/training/test_nvrx_straggler.pyexamples/training_features/nemo-mbridge-resiliency/straggler_detection/src/megatron/bridge/training/config.py — InProcessRestartConfigsrc/megatron/bridge/training/inprocess_restart.pysrc/megatron/bridge/training/pretrain.py — maybe_wrap_for_inprocess_restarttests/unit_tests/training/test_inprocess_restart.py, tests/functional_tests/training/test_inprocess_restart.pysrc/megatron/bridge/recipes/run_plugins.py — PreemptionPluginsrc/megatron/bridge/training/utils/sig_utils.pytests/unit_tests/recipes/test_run_plugins.pysrc/megatron/bridge/training/config.py — RerunStateMachineConfigsrc/megatron/bridge/training/initialize.py — init_rerun_statesrc/megatron/bridge/training/checkpointing.py — schedule_async_savesrc/megatron/bridge/training/checkpointing.py — LocalCheckpointManagertests/functional_tests/training/test_local_checkpointing.pyft_launcher, not torchrun: Direct FaultToleranceConfig requires
ft_launcher. Using torchrun silently disables FT. For non-Slurm,
set GROUP_RANK=0.
Async save requires torch_dist: async_save=True only works with
ckpt_format="torch_dist". Other formats silently fail or error.
IPR + NeMo-Run: In-process restart is not compatible with NeMo-Run or Slurm preemption plugins. Requires specific PyTorch/NCCL versions and env vars.
NVRx vs legacy straggler: Two detectors exist. Use NVRx
(nvrx_straggler); do not enable both.
stop_if_detected default: NVRx logs but does not stop training by
default. Set stop_if_detected=True for automatic termination.
NCCL watchdog vs hard_timeout: For IPR, NCCL watchdog timeout must
exceed hard_timeout or PyTorch kills the process before recovery.
Rerun state machine is alpha: Use check_for_nan_in_loss=True for
NaN detection, but don't rely on full rerun workflows yet.
Look for [FaultTolerance] / [RankMonitorServer] log lines with section
timeouts.
Look for GPU relative performance and GPU individual performance reports
with per-rank scores.
Look for Scheduling async checkpoint save in logs. Training iterations
should continue while checkpoint files are being written.
Requires compatible PyTorch/NCCL versions.
Get started with chainctlchainctl skill install public/nvidia/nemo-mbridge-resiliency:latest
Bring Chainguard's hardening pipeline to your first-party skills — custom rulesets, automated remediation, full audit trail.
skills.cgr.dev/public/github.com/nvidia/skills/nemo-mbridge-resiliency:latest
Apache-2.0
BENCHMARK.md
HARDENING.md
LICENSE
SKILL.md
card.yaml
evals/evals.json
skill-card.md
skill.oms.sig