From ed1d6d07cf264b85085241ea25fc72d01e546f15 Mon Sep 17 00:00:00 2001 From: Chen Cui Date: Thu, 28 May 2026 15:59:35 -0700 Subject: [PATCH 1/4] [skills] rename offloading and resiliency skills with nemo mbridge prefix Signed-off-by: Chen Cui --- docs/skills-index.md | 4 ++-- .../SKILL.md | 5 +++-- .../card.yaml | 0 .../evals/evals.json | 1 + .../SKILL.md | 19 ++++++++++--------- .../card.yaml | 8 ++++---- .../nemo-mbridge-resiliency/evals/evals.json | 1 + 7 files changed, 21 insertions(+), 17 deletions(-) rename skills/{perf-cpu-offloading => nemo-mbridge-perf-cpu-offloading}/SKILL.md (98%) rename skills/{perf-cpu-offloading => nemo-mbridge-perf-cpu-offloading}/card.yaml (100%) create mode 100644 skills/nemo-mbridge-perf-cpu-offloading/evals/evals.json rename skills/{resiliency => nemo-mbridge-resiliency}/SKILL.md (93%) rename skills/{resiliency => nemo-mbridge-resiliency}/card.yaml (95%) create mode 100644 skills/nemo-mbridge-resiliency/evals/evals.json diff --git a/docs/skills-index.md b/docs/skills-index.md index 7a2efbf3f0..47e640daad 100644 --- a/docs/skills-index.md +++ b/docs/skills-index.md @@ -49,7 +49,7 @@ skills/perf-moe-hardware-configs/SKILL skills/perf-moe-long-context/SKILL skills/perf-moe-optimization-workflow/SKILL skills/perf-moe-vlm-training/SKILL -skills/perf-cpu-offloading/SKILL +skills/nemo-mbridge-perf-cpu-offloading/SKILL ``` ```{toctree} @@ -63,5 +63,5 @@ skills/multi-node-slurm/SKILL :caption: Resiliency :maxdepth: 1 -skills/resiliency/SKILL +skills/nemo-mbridge-resiliency/SKILL ``` diff --git a/skills/perf-cpu-offloading/SKILL.md b/skills/nemo-mbridge-perf-cpu-offloading/SKILL.md similarity index 98% rename from skills/perf-cpu-offloading/SKILL.md rename to skills/nemo-mbridge-perf-cpu-offloading/SKILL.md index 16cccca913..1ea0d1ce9a 100644 --- a/skills/perf-cpu-offloading/SKILL.md +++ b/skills/nemo-mbridge-perf-cpu-offloading/SKILL.md @@ -1,6 +1,7 @@ --- -name: perf-cpu-offloading +name: nemo-mbridge-perf-cpu-offloading description: Validate and use CPU offloading in Megatron Bridge, including layer-level activation offloading and fractional optimizer state offloading with HybridDeviceOptimizer. +license: Apache-2.0 when_to_use: Enabling CPU offload to reduce GPU memory, or investigating a commit that changed CPU offloading config and caused OOM or a crash; 'cpu_offloading', 'optimizer_cpu_offload', 'optimizer_offload_fraction', 'HybridDeviceOptimizer', 'move optimizer to CPU'. --- @@ -9,7 +10,7 @@ when_to_use: Enabling CPU offload to reduce GPU memory, or investigating a commi ## References - Stable docs: @docs/training/cpu-offloading.md -- Structured metadata: @skills/perf-cpu-offloading/card.yaml +- Structured metadata: @skills/nemo-mbridge-perf-cpu-offloading/card.yaml ## What It Is diff --git a/skills/perf-cpu-offloading/card.yaml b/skills/nemo-mbridge-perf-cpu-offloading/card.yaml similarity index 100% rename from skills/perf-cpu-offloading/card.yaml rename to skills/nemo-mbridge-perf-cpu-offloading/card.yaml diff --git a/skills/nemo-mbridge-perf-cpu-offloading/evals/evals.json b/skills/nemo-mbridge-perf-cpu-offloading/evals/evals.json new file mode 100644 index 0000000000..fe51488c70 --- /dev/null +++ b/skills/nemo-mbridge-perf-cpu-offloading/evals/evals.json @@ -0,0 +1 @@ +[] diff --git a/skills/resiliency/SKILL.md b/skills/nemo-mbridge-resiliency/SKILL.md similarity index 93% rename from skills/resiliency/SKILL.md rename to skills/nemo-mbridge-resiliency/SKILL.md index a8124f0669..fe205999c0 100644 --- a/skills/resiliency/SKILL.md +++ b/skills/nemo-mbridge-resiliency/SKILL.md @@ -1,13 +1,14 @@ --- -name: resiliency +name: nemo-mbridge-resiliency description: Resiliency features in Megatron Bridge including fault tolerance, straggler detection, in-process restart, preemption, and re-run state machine. +license: Apache-2.0 when_to_use: Enabling resiliency features, or investigating a commit that caused training hangs, straggler detection failures, or broken restarts; 'fault tolerance', 'straggler detection', 'hang detection', 'automatic restart', 'in-process restart', 'preemption', 'nvidia-resiliency-ext'. --- # Resiliency -Stable docs: @docs/training/resiliency.md, @docs/training/checkpointing.md -Card: @skills/resiliency/card.yaml +Stable docs: @docs/training/nemo-mbridge-resiliency.md, @docs/training/checkpointing.md +Card: @skills/nemo-mbridge-resiliency/card.yaml ## Enablement @@ -221,16 +222,16 @@ cfg.checkpoint.non_persistent_local_ckpt_algo = "fully_parallel" - Config: `src/megatron/bridge/training/config.py` — `FaultToleranceConfig` - Runtime: `src/megatron/bridge/training/fault_tolerance.py` - Plugin: `src/megatron/bridge/recipes/run_plugins.py` — `FaultTolerancePlugin` -- Perf plugin: `scripts/performance/resiliency_plugins.py` +- Perf plugin: `scripts/performance/nemo-mbridge-resiliency_plugins.py` - Tests: `tests/unit_tests/training/test_fault_tolerance.py` -- Example: `examples/training_features/resiliency/fault_tolerance/` +- Example: `examples/training_features/nemo-mbridge-resiliency/fault_tolerance/` ### Straggler detection - Config: `src/megatron/bridge/training/config.py` — `NVRxStragglerDetectionConfig` - Runtime: `src/megatron/bridge/training/nvrx_straggler.py` - Train loop: `src/megatron/bridge/training/train.py` — `check_nvrx_straggler_detection` - Tests: `tests/unit_tests/training/test_nvrx_straggler.py`, `tests/functional_tests/training/test_nvrx_straggler.py` -- Example: `examples/training_features/resiliency/straggler_detection/` +- Example: `examples/training_features/nemo-mbridge-resiliency/straggler_detection/` ### In-process restart - Config: `src/megatron/bridge/training/config.py` — `InProcessRestartConfig` @@ -281,8 +282,8 @@ cfg.checkpoint.non_persistent_local_ckpt_algo = "fully_parallel" ### Fault tolerance ```bash -./examples/training_features/resiliency/fault_tolerance/run_fault_tolerance.sh -./examples/training_features/resiliency/fault_tolerance/run_fault_tolerance.sh --simulate-fault +./examples/training_features/nemo-mbridge-resiliency/fault_tolerance/run_fault_tolerance.sh +./examples/training_features/nemo-mbridge-resiliency/fault_tolerance/run_fault_tolerance.sh --simulate-fault ``` Look for `[FaultTolerance]` / `[RankMonitorServer]` log lines with section timeouts. Simulated fault should trigger restart from checkpoint. @@ -290,7 +291,7 @@ timeouts. Simulated fault should trigger restart from checkpoint. ### Straggler detection ```bash uv run python -m torch.distributed.run --nproc_per_node=2 \ - examples/training_features/resiliency/straggler_detection/straggler_detection_example.py + examples/training_features/nemo-mbridge-resiliency/straggler_detection/straggler_detection_example.py ``` Look for `GPU relative performance` and `GPU individual performance` reports with per-rank scores. diff --git a/skills/resiliency/card.yaml b/skills/nemo-mbridge-resiliency/card.yaml similarity index 95% rename from skills/resiliency/card.yaml rename to skills/nemo-mbridge-resiliency/card.yaml index 651be11a81..d2994d883d 100644 --- a/skills/resiliency/card.yaml +++ b/skills/nemo-mbridge-resiliency/card.yaml @@ -94,7 +94,7 @@ known_limitations: - Not all recipes enable resiliency features by default. - Preemption plugin is Slurm-specific. evidence: - - docs/training/resiliency.md + - docs/training/mbridge-resiliency.md - docs/training/checkpointing.md - src/megatron/bridge/training/fault_tolerance.py - src/megatron/bridge/training/nvrx_straggler.py @@ -103,7 +103,7 @@ evidence: - src/megatron/bridge/training/config.py - src/megatron/bridge/training/utils/sig_utils.py - src/megatron/bridge/recipes/run_plugins.py - - scripts/performance/resiliency_plugins.py + - scripts/performance/mbridge-resiliency_plugins.py - tests/unit_tests/training/test_fault_tolerance.py - tests/unit_tests/training/test_nvrx_straggler.py - tests/unit_tests/training/test_inprocess_restart.py @@ -111,8 +111,8 @@ evidence: - tests/functional_tests/training/test_nvrx_straggler.py - tests/functional_tests/training/test_inprocess_restart.py - tests/functional_tests/training/test_local_checkpointing.py - - examples/training_features/resiliency/fault_tolerance/ - - examples/training_features/resiliency/straggler_detection/ + - examples/training_features/mbridge-resiliency/fault_tolerance/ + - examples/training_features/mbridge-resiliency/straggler_detection/ follow_up_validation: - Add a Slurm-based FT end-to-end test with actual hang recovery. - Add a checked-in recipe that enables FT + straggler detection by default. diff --git a/skills/nemo-mbridge-resiliency/evals/evals.json b/skills/nemo-mbridge-resiliency/evals/evals.json new file mode 100644 index 0000000000..fe51488c70 --- /dev/null +++ b/skills/nemo-mbridge-resiliency/evals/evals.json @@ -0,0 +1 @@ +[] From adbb67e061ec9a5c59a74af202bd9a3639b74440 Mon Sep 17 00:00:00 2001 From: nvskills-svc-account Date: Thu, 28 May 2026 23:08:42 +0000 Subject: [PATCH 2/4] Attach NVSkills validation signatures Signed-off-by: nvskills-svc-account --- .../BENCHMARK.md | 72 +++++++++++++++++++ .../skill-card.md | 52 ++++++++++++++ .../skill.oms.sig | 1 + skills/nemo-mbridge-resiliency/BENCHMARK.md | 64 +++++++++++++++++ skills/nemo-mbridge-resiliency/skill-card.md | 50 +++++++++++++ skills/nemo-mbridge-resiliency/skill.oms.sig | 1 + 6 files changed, 240 insertions(+) create mode 100644 skills/nemo-mbridge-perf-cpu-offloading/BENCHMARK.md create mode 100644 skills/nemo-mbridge-perf-cpu-offloading/skill-card.md create mode 100644 skills/nemo-mbridge-perf-cpu-offloading/skill.oms.sig create mode 100644 skills/nemo-mbridge-resiliency/BENCHMARK.md create mode 100644 skills/nemo-mbridge-resiliency/skill-card.md create mode 100644 skills/nemo-mbridge-resiliency/skill.oms.sig diff --git a/skills/nemo-mbridge-perf-cpu-offloading/BENCHMARK.md b/skills/nemo-mbridge-perf-cpu-offloading/BENCHMARK.md new file mode 100644 index 0000000000..1b36aa131a --- /dev/null +++ b/skills/nemo-mbridge-perf-cpu-offloading/BENCHMARK.md @@ -0,0 +1,72 @@ +# Evaluation Report + +Evaluation of the `nemo-mbridge-perf-cpu-offloading` skill before publication through NVSkills-Eval. + +This benchmark summarizes 3-Tier Evaluation from NVSkills-Eval results for the skill. The goal is to document whether the skill is safe, discoverable, effective, and useful for agents before it is published for broader workflow use. + +## Evaluation Summary + +- Skill: `nemo-mbridge-perf-cpu-offloading` +- Evaluation date: 2026-05-28 +- NVSkills-Eval profile: `external` +- Overall verdict: FAIL +- Tier 3 live agent evaluation: not available in this report + +## Agents Used + +- Tier 3 agent details were not available in this report. + +## Metrics Used + +Reported benchmark dimensions: + +- Security: checks whether skill-assisted execution avoids unsafe behavior such as secret leakage, destructive commands, or unauthorized access. +- Correctness: checks whether the agent follows the expected workflow and produces the correct final output. +- Discoverability: checks whether the agent loads the skill when relevant and avoids using it when irrelevant. +- Effectiveness: checks whether the agent performs measurably better with the skill than without it. +- Efficiency: checks whether the agent uses fewer tokens and avoids redundant work. + +Underlying evaluation signals used in this run: + +- No Tier 3 evaluation signal details were available in this report. + +## Test Tasks + +Tier 3 evaluation task details were not available in this report. + +## Results + +Tier 3 dimension rollup was not available in this report. + +## Tier 1: Static Validation Summary + +Tier 1 validation passed with observations. NVSkills-Eval ran 9 checks and found 11 total findings. + +Top findings: + +- MEDIUM PII/gps_coordinates: GPS coordinates (location information) (`SKILL.md:101`) +- MEDIUM QUALITY/quality_correctness: SKILL_SPEC recommended field missing: 'metadata.author' (`skills/nemo-mbridge-perf-cpu-offloading/SKILL.md`) +- MEDIUM QUALITY/quality_correctness: SKILL_SPEC recommended field missing: 'metadata.tags' (`skills/nemo-mbridge-perf-cpu-offloading/SKILL.md`) +- MEDIUM SCHEMA/body_recommended_section: Missing recommended section: '## Instructions' (`skills/nemo-mbridge-perf-cpu-offloading/SKILL.md`) +- MEDIUM SCHEMA/body_recommended_section: Missing recommended section: '## Examples' (`skills/nemo-mbridge-perf-cpu-offloading/SKILL.md`) + +## Tier 2: Deduplication Summary + +Tier 2 validation reported findings. NVSkills-Eval ran 2 checks and found 1 total findings. + +Top findings: + +- HIGH DUPLICATE/duplicate: Duplicate content found within SKILL.md: + "### Activation CPU offloading (small/medium models only)" in SKILL.md (lines 46-58) + vs "### Activation offloading" in SKILL.md (lines 70-79) + vs "### Activation offloading" in SKILL.md (lines 82-89) + vs "### Activation offload (small model, PP=1)" in SKILL.md (lines 119-129) + vs "### Weight offload only (small model, PP=1)" in SKILL.md (lines 130-140) + vs "### Both activations and weights (small model, PP=1)" in SKILL.md (lines 141-156) + vs "### MCore activation offload constraints" in SKILL.md (lines 188-206) + vs "### MCore fine-grained offloading mutual exclusion" in SKILL.md (lines 214-222) + vs "### MCore model_parallel_config fields" in SKILL.md (lines 257-267) (`SKILL.md:46`) + +## Publication Recommendation + +The skill should be reviewed before NVSkills-Eval publication. Skill owners should address the findings above and rerun NVSkills-Eval to refresh this benchmark. diff --git a/skills/nemo-mbridge-perf-cpu-offloading/skill-card.md b/skills/nemo-mbridge-perf-cpu-offloading/skill-card.md new file mode 100644 index 0000000000..3aa5831187 --- /dev/null +++ b/skills/nemo-mbridge-perf-cpu-offloading/skill-card.md @@ -0,0 +1,52 @@ +## Description:
+Validate and use CPU offloading in Megatron Bridge, including layer-level activation offloading and fractional optimizer state offloading with HybridDeviceOptimizer.
+ +This skill is ready for commercial/non-commercial use.
+ +## Owner +NVIDIA
+ +### License/Terms of Use:
+Apache 2.0
+## Use Case:
+Developers and engineers enabling CPU offloading to reduce GPU memory pressure during large model training, or diagnosing offloading-related configuration errors and OOM crashes.
+ +### Deployment Geography for Use:
+Global
+ +## Known Risks and Mitigations:
+Risk: Review before execution as proposals could introduce incorrect or misleading guidance into skills.
+Mitigation: Review and scan skill before deployment.
+ +## Reference(s):
+- [CPU Offloading Documentation](docs/training/cpu-offloading.md)
+- [Skill Structured Metadata](skills/nemo-mbridge-perf-cpu-offloading/card.yaml)
+ + +## Skill Output:
+**Output Type(s):** [Configuration instructions, Shell commands, Analysis]
+**Output Format:** [Markdown with inline Python and bash code blocks]
+**Output Parameters:** [1D]
+**Other Properties Related to Output:** [None]
+ +## Evaluation Tasks:
+NVSkills-Eval 3-Tier Evaluation: 9 Tier 1 static validation checks and 2 Tier 2 deduplication checks. Tier 3 live agent evaluation was not available.
+ +## Evaluation Metrics Used:
+Reported benchmark dimensions:
+- Security: Checks whether skill-assisted execution avoids unsafe behavior such as secret leakage, destructive commands, or unauthorized access.
+- Correctness: Checks whether the agent follows the expected workflow and produces the correct final output.
+- Discoverability: Checks whether the agent loads the skill when relevant and avoids using it when irrelevant.
+- Effectiveness: Checks whether the agent performs measurably better with the skill than without it.
+- Efficiency: Checks whether the agent uses fewer tokens and avoids redundant work.
+ + + +## Skill Version(s):
+ed1d6d07 (source: git SHA, committed 2026-05-28)
+ +## Ethical Considerations:
+NVIDIA believes Trustworthy AI is a shared responsibility and we have established policies and practices to enable development for a wide array of AI applications. When downloaded or used in accordance with our terms of service, developers should work with their internal team to ensure this skill meets requirements for the relevant industry and use case and addresses unforeseen product misuse.
+ +(For Release on NVIDIA Platforms Only)
+Please report quality, risk, security vulnerabilities or NVIDIA AI Concerns [here](https://app.intigriti.com/programs/nvidia/nvidiavdp/detail).
diff --git a/skills/nemo-mbridge-perf-cpu-offloading/skill.oms.sig b/skills/nemo-mbridge-perf-cpu-offloading/skill.oms.sig new file mode 100644 index 0000000000..e31dcf40bd --- /dev/null +++ b/skills/nemo-mbridge-perf-cpu-offloading/skill.oms.sig @@ -0,0 +1 @@ +{"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"x509CertificateChain":{"certificates":[{"rawBytes":"MIICgzCCAgmgAwIBAgIUKIyS7SxNteQIiWzK1dWj85E6520wCgYIKoZIzj0EAwMwVTELMAkGA1UEBhMCVVMxGzAZBgNVBAoMEk5WSURJQSBDb3Jwb3JhdGlvbjEpMCcGA1UEAwwgTlZJRElBIEFnZW50IENhcGFiaWxpdGllcyBJQ0EgMDEwHhcNMjYwNDAxMDAwMDAwWhcNMjgwNDIyMTUzMzA5WjBUMQswCQYDVQQGEwJVUzEbMBkGA1UECgwSTlZJRElBIENvcnBvcmF0aW9uMSgwJgYDVQQDDB9OVklESUEgQWdlbnQgU2tpbGxzIFNpZ25pbmcgMDAxMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEYoRM9bQl/dGlwSRNi6bTpIJUXH8Nv9GciP6LSflJYYMLCc296kpyuTSsk5ddbAWiDcFX3C/ydX3jwc+qCLYP6uHy9XphyLjOQ27Yb2J6rBLVtRBS1mgGco/Gr7fL6ODco4GaMIGXMB0GA1UdDgQWBBRQ/5ZW3nJ6lmo9SVk7I15o7UGmpTAfBgNVHSMEGDAWgBRPGpILxMBBleJSsBGjrMKsby1CgjAMBgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDA3BggrBgEFBQcBAQQrMCkwJwYIKwYBBQUHMAGGG2h0dHA6Ly9vY3NwLm5kaXMubnZpZGlhLmNvbTAKBggqhkjOPQQDAwNoADBlAjAUygu/GiOCIXrgGr4SmLgeEVDcEitfFUv7ALbvLVGVyMysB3mxmO/uInZfXzWcJZsCMQDxuoxj4ZmO30jhkPIcCxGFCOvnUsnfU3TfGcouYm4M6iRpbKvtVnHPiy4bi6pcKf0="},{"rawBytes":"MIICiDCCAg6gAwIBAgIUZsIuSv9NkpJCNqtYEfCouVv5BzowCgYIKoZIzj0EAwMwUTELMAkGA1UEBhMCVVMxGzAZBgNVBAoMEk5WSURJQSBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcTlZJRElBIEFnZW50IENhcGFiaWxpdGllcyBDQTAgFw0yNjA0MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowVTELMAkGA1UEBhMCVVMxGzAZBgNVBAoMEk5WSURJQSBDb3Jwb3JhdGlvbjEpMCcGA1UEAwwgTlZJRElBIEFnZW50IENhcGFiaWxpdGllcyBJQ0EgMDEwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASI72cR3ctKGg4VWnB3bNja6g1Z2PnOmFEopkPof+QeIcPk9rT+g9MjJnq51EQXL93a7C2GJ9J985G4o2V85VD7wJ1RaXhluHW2rf3y8bQGeAYaKMr5s/hUgn+M3/9WlWejgaAwgZ0wHQYDVR0OBBYEFE8akgvEwEGV4lKwEaOswqxvLUKCMB8GA1UdIwQYMBaAFItnoAjjfuCEUvzyvWyI2vOGvwPjMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMDcGCCsGAQUFBwEBBCswKTAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AubmRpcy5udmlkaWEuY29tMAoGCCqGSM49BAMDA2gAMGUCMQCeIMMfAbyzPDacw2MxG+Yt1cikrJX/DVxiGfXuHmkkXn6VgSzE79+lkqDErpVO2gYCMCNEColOyvUvkzZGUEI1hQ3PfMgi3FIo9tHoBKMw4/wGBLFpu/0ubtmbBXM6/UMOEw=="},{"rawBytes":"MIICRTCCAcygAwIBAgIUeJdY3rV86EdvFmG7L8LJBsyQFYkwCgYIKoZIzj0EAwMwUTELMAkGA1UEBhMCVVMxGzAZBgNVBAoMEk5WSURJQSBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcTlZJRElBIEFnZW50IENhcGFiaWxpdGllcyBDQTAgFw0yNjA0MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowUTELMAkGA1UEBhMCVVMxGzAZBgNVBAoMEk5WSURJQSBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcTlZJRElBIEFnZW50IENhcGFiaWxpdGllcyBDQTB2MBAGByqGSM49AgEGBSuBBAAiA2IABAYpiXCDjJ9NT2eSDhyHJVSw1Tbze18cGG2F/578oWvHxg23eQAhNRYdq88i1iOshZSO6C29doKui5Xpmo/7Ctw9Sx4PP2RzOmIuOLCuTdNtKcTRwi4GEsd5BAFvWj42M6NjMGEwHQYDVR0OBBYEFItnoAjjfuCEUvzyvWyI2vOGvwPjMB8GA1UdIwQYMBaAFItnoAjjfuCEUvzyvWyI2vOGvwPjMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMDA2cAMGQCMCwtAjWLaNwgGWNCgdyNoTyvNhqWRECRJV2r3+7w8g0PL6NHLOsbkgE09BH95h8XlgIwTaQmbbUh2ChAJ5TA1wRiVDnCcvbzHlZl2jM2FcwQQZlk19LOAbyGMRixbu2Ww/rj"}]},"tlogEntries":[]},"dsseEnvelope":{"payload":"ewogICJfdHlwZSI6ICJodHRwczovL2luLXRvdG8uaW8vU3RhdGVtZW50L3YxIiwKICAic3ViamVjdCI6IFsKICAgIHsKICAgICAgIm5hbWUiOiAibmVtby1tYnJpZGdlLXBlcmYtY3B1LW9mZmxvYWRpbmciLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMGI2YjBmZjNlNTUyZDg3MGY5M2U5MTBhYzVmNzg4YTMxM2RlNjI4OGY4YjIyZjhiY2I4NjNmMTQ4OGYyN2RjZSIKICAgICAgfQogICAgfQogIF0sCiAgInByZWRpY2F0ZVR5cGUiOiAiaHR0cHM6Ly9tb2RlbF9zaWduaW5nL3NpZ25hdHVyZS92MS4wIiwKICAicHJlZGljYXRlIjogewogICAgInNlcmlhbGl6YXRpb24iOiB7CiAgICAgICJpZ25vcmVfcGF0aHMiOiBbCiAgICAgICAgIi5naXRhdHRyaWJ1dGVzIiwKICAgICAgICAiLmdpdCIsCiAgICAgICAgIi5naXRodWIiLAogICAgICAgICIuZ2l0aWdub3JlIgogICAgICBdLAogICAgICAibWV0aG9kIjogImZpbGVzIiwKICAgICAgImFsbG93X3N5bWxpbmtzIjogZmFsc2UsCiAgICAgICJoYXNoX3R5cGUiOiAic2hhMjU2IgogICAgfSwKICAgICJyZXNvdXJjZXMiOiBbCiAgICAgIHsKICAgICAgICAibmFtZSI6ICJCRU5DSE1BUksubWQiLAogICAgICAgICJkaWdlc3QiOiAiMzNiYmU4ZDQwYTZkMDg4ZDBjNTZlZTQ5YmJlOTFmYTExNmY2YmQwOWMzMzgxNWIwNTk2NGNjOTBkNjEyOTczZCIsCiAgICAgICAgImFsZ29yaXRobSI6ICJzaGEyNTYiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibmFtZSI6ICJTS0lMTC5tZCIsCiAgICAgICAgImRpZ2VzdCI6ICIwMDBkOTE4ODM4YzhiNWQ5ZDM0ZmQ1NDYwNmU3N2Q1ZWRjOWYwYzZhYjE1NTM0MjE0ZDA5YWI3MWU0OTVhYjg5IiwKICAgICAgICAiYWxnb3JpdGhtIjogInNoYTI1NiIKICAgICAgfSwKICAgICAgewogICAgICAgICJuYW1lIjogImNhcmQueWFtbCIsCiAgICAgICAgImRpZ2VzdCI6ICI1NjBjNDRiYzllNWNkZjRiN2RiOWU5Mzc2MmUzZDIwNzY1MTYwMGM5MjQxYWFhYzM1NGMzNmI2YWE4ZmUwODAzIiwKICAgICAgICAiYWxnb3JpdGhtIjogInNoYTI1NiIKICAgICAgfSwKICAgICAgewogICAgICAgICJuYW1lIjogImV2YWxzL2V2YWxzLmpzb24iLAogICAgICAgICJkaWdlc3QiOiAiMzc1MTdlNWYzZGM2NjgxOWY2MWY1YTdiYjhhY2UxOTIxMjgyNDE1ZjEwNTUxZDJkZWZhNWMzZWIwOTg1YjU3MCIsCiAgICAgICAgImFsZ29yaXRobSI6ICJzaGEyNTYiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibmFtZSI6ICJza2lsbC1jYXJkLm1kIiwKICAgICAgICAiZGlnZXN0IjogIjk1ZjRjYjQwMzBjODAzNDEzYmE3NjFiNmMyZDAzYjQxYTE5NzM2ZTFjMTIzZTk2MTUyYzFjYmQyMzE5MWExODciLAogICAgICAgICJhbGdvcml0aG0iOiAic2hhMjU2IgogICAgICB9CiAgICBdCiAgfQp9","payloadType":"application/vnd.in-toto+json","signatures":[{"sig":"MGUCMQCbP/7cnTyHRgfPVLRxTxuSOL2yFQfJwQ7J5RdmH+3QjwCX9DCnmp5+ruZqqmkQl24CME56I3et5ju117cxQkXe4iyKsu5r86zSHy6G9IYahYYj4sLYCWl1q6Ps2y0u/IoWLw==","keyid":""}]}} \ No newline at end of file diff --git a/skills/nemo-mbridge-resiliency/BENCHMARK.md b/skills/nemo-mbridge-resiliency/BENCHMARK.md new file mode 100644 index 0000000000..4685878a7b --- /dev/null +++ b/skills/nemo-mbridge-resiliency/BENCHMARK.md @@ -0,0 +1,64 @@ +# Evaluation Report + +Evaluation of the `nemo-mbridge-resiliency` skill before publication through NVSkills-Eval. + +This benchmark summarizes 3-Tier Evaluation from NVSkills-Eval results for the skill. The goal is to document whether the skill is safe, discoverable, effective, and useful for agents before it is published for broader workflow use. + +## Evaluation Summary + +- Skill: `nemo-mbridge-resiliency` +- Evaluation date: 2026-05-28 +- NVSkills-Eval profile: `external` +- Overall verdict: PASS +- Tier 3 live agent evaluation: not available in this report + +## Agents Used + +- Tier 3 agent details were not available in this report. + +## Metrics Used + +Reported benchmark dimensions: + +- Security: checks whether skill-assisted execution avoids unsafe behavior such as secret leakage, destructive commands, or unauthorized access. +- Correctness: checks whether the agent follows the expected workflow and produces the correct final output. +- Discoverability: checks whether the agent loads the skill when relevant and avoids using it when irrelevant. +- Effectiveness: checks whether the agent performs measurably better with the skill than without it. +- Efficiency: checks whether the agent uses fewer tokens and avoids redundant work. + +Underlying evaluation signals used in this run: + +- No Tier 3 evaluation signal details were available in this report. + +## Test Tasks + +Tier 3 evaluation task details were not available in this report. + +## Results + +Tier 3 dimension rollup was not available in this report. + +## Tier 1: Static Validation Summary + +Tier 1 validation passed with observations. NVSkills-Eval ran 9 checks and found 12 total findings. + +Top findings: + +- MEDIUM QUALITY/quality_correctness: SKILL_SPEC recommended field missing: 'metadata.author' (`skills/nemo-mbridge-resiliency/SKILL.md`) +- MEDIUM QUALITY/quality_correctness: SKILL_SPEC recommended field missing: 'metadata.tags' (`skills/nemo-mbridge-resiliency/SKILL.md`) +- MEDIUM SCHEMA/body_recommended_section: Missing recommended section: '## Instructions' (`skills/nemo-mbridge-resiliency/SKILL.md`) +- MEDIUM SCHEMA/body_recommended_section: Missing recommended section: '## Examples' (`skills/nemo-mbridge-resiliency/SKILL.md`) +- MEDIUM SCHEMA/author_missing: Author not specified in metadata (`skills/nemo-mbridge-resiliency/SKILL.md`) + +## Tier 2: Deduplication Summary + +Tier 2 validation passed. NVSkills-Eval ran 2 checks and found 0 total findings. + +Notable observations: + +- Context Deduplication: Collected 1 file(s) +- Inter-Skill Deduplication: Parsed skill 'nemo-mbridge-resiliency': 144 char description + +## Publication Recommendation + +The skill is suitable to proceed toward NVSkills-Eval publication based on this benchmark. Skill owners should keep this file with the skill and refresh it when the evaluation dataset, skill behavior, or target agents materially change. diff --git a/skills/nemo-mbridge-resiliency/skill-card.md b/skills/nemo-mbridge-resiliency/skill-card.md new file mode 100644 index 0000000000..d5ef34817c --- /dev/null +++ b/skills/nemo-mbridge-resiliency/skill-card.md @@ -0,0 +1,50 @@ +## Description:
+Resiliency features in Megatron Bridge including fault tolerance, straggler detection, in-process restart, preemption, and re-run state machine.
+ +This skill is ready for commercial/non-commercial use.
+ +## Owner +NVIDIA
+ +### License/Terms of Use:
+Apache 2.0
+## Use Case:
+Developers and engineers enabling resiliency features (fault tolerance, straggler detection, in-process restart, preemption, async checkpointing) for distributed GPU training jobs with Megatron Bridge.
+ +### Deployment Geography for Use:
+Global
+ +## Known Risks and Mitigations:
+Risk: Review before execution as proposals could introduce incorrect or misleading guidance into skills.
+Mitigation: Review and scan skill before deployment.
+ +## Reference(s):
+- [Megatron Bridge Resiliency Documentation](docs/training/nemo-mbridge-resiliency.md)
+- [Checkpointing Documentation](docs/training/checkpointing.md)
+- [Megatron Bridge Documentation](https://docs.nvidia.com/nemo/megatron-bridge/latest/)
+ + +## Skill Output:
+**Output Type(s):** [Configuration instructions, Shell commands, Code]
+**Output Format:** [Markdown with inline Python and bash code blocks]
+**Output Parameters:** [1D]
+**Other Properties Related to Output:** [None]
+ +## Evaluation Metrics Used:
+Reported benchmark dimensions:
+- Security: Checks whether skill-assisted execution avoids unsafe behavior such as secret leakage, destructive commands, or unauthorized access.
+- Correctness: Checks whether the agent follows the expected workflow and produces the correct final output.
+- Discoverability: Checks whether the agent loads the skill when relevant and avoids using it when irrelevant.
+- Effectiveness: Checks whether the agent performs measurably better with the skill than without it.
+- Efficiency: Checks whether the agent uses fewer tokens and avoids redundant work.
+ + + +## Skill Version(s):
+ed1d6d07 (source: git SHA, committed 2026-05-28)
+ +## Ethical Considerations:
+NVIDIA believes Trustworthy AI is a shared responsibility and we have established policies and practices to enable development for a wide array of AI applications. When downloaded or used in accordance with our terms of service, developers should work with their internal team to ensure this skill meets requirements for the relevant industry and use case and addresses unforeseen product misuse.
+ +(For Release on NVIDIA Platforms Only)
+Please report quality, risk, security vulnerabilities or NVIDIA AI Concerns [here](https://app.intigriti.com/programs/nvidia/nvidiavdp/detail).
diff --git a/skills/nemo-mbridge-resiliency/skill.oms.sig b/skills/nemo-mbridge-resiliency/skill.oms.sig new file mode 100644 index 0000000000..e93b083b4c --- /dev/null +++ b/skills/nemo-mbridge-resiliency/skill.oms.sig @@ -0,0 +1 @@ +{"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"x509CertificateChain":{"certificates":[{"rawBytes":"MIICgzCCAgmgAwIBAgIUKIyS7SxNteQIiWzK1dWj85E6520wCgYIKoZIzj0EAwMwVTELMAkGA1UEBhMCVVMxGzAZBgNVBAoMEk5WSURJQSBDb3Jwb3JhdGlvbjEpMCcGA1UEAwwgTlZJRElBIEFnZW50IENhcGFiaWxpdGllcyBJQ0EgMDEwHhcNMjYwNDAxMDAwMDAwWhcNMjgwNDIyMTUzMzA5WjBUMQswCQYDVQQGEwJVUzEbMBkGA1UECgwSTlZJRElBIENvcnBvcmF0aW9uMSgwJgYDVQQDDB9OVklESUEgQWdlbnQgU2tpbGxzIFNpZ25pbmcgMDAxMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEYoRM9bQl/dGlwSRNi6bTpIJUXH8Nv9GciP6LSflJYYMLCc296kpyuTSsk5ddbAWiDcFX3C/ydX3jwc+qCLYP6uHy9XphyLjOQ27Yb2J6rBLVtRBS1mgGco/Gr7fL6ODco4GaMIGXMB0GA1UdDgQWBBRQ/5ZW3nJ6lmo9SVk7I15o7UGmpTAfBgNVHSMEGDAWgBRPGpILxMBBleJSsBGjrMKsby1CgjAMBgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDA3BggrBgEFBQcBAQQrMCkwJwYIKwYBBQUHMAGGG2h0dHA6Ly9vY3NwLm5kaXMubnZpZGlhLmNvbTAKBggqhkjOPQQDAwNoADBlAjAUygu/GiOCIXrgGr4SmLgeEVDcEitfFUv7ALbvLVGVyMysB3mxmO/uInZfXzWcJZsCMQDxuoxj4ZmO30jhkPIcCxGFCOvnUsnfU3TfGcouYm4M6iRpbKvtVnHPiy4bi6pcKf0="},{"rawBytes":"MIICiDCCAg6gAwIBAgIUZsIuSv9NkpJCNqtYEfCouVv5BzowCgYIKoZIzj0EAwMwUTELMAkGA1UEBhMCVVMxGzAZBgNVBAoMEk5WSURJQSBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcTlZJRElBIEFnZW50IENhcGFiaWxpdGllcyBDQTAgFw0yNjA0MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowVTELMAkGA1UEBhMCVVMxGzAZBgNVBAoMEk5WSURJQSBDb3Jwb3JhdGlvbjEpMCcGA1UEAwwgTlZJRElBIEFnZW50IENhcGFiaWxpdGllcyBJQ0EgMDEwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASI72cR3ctKGg4VWnB3bNja6g1Z2PnOmFEopkPof+QeIcPk9rT+g9MjJnq51EQXL93a7C2GJ9J985G4o2V85VD7wJ1RaXhluHW2rf3y8bQGeAYaKMr5s/hUgn+M3/9WlWejgaAwgZ0wHQYDVR0OBBYEFE8akgvEwEGV4lKwEaOswqxvLUKCMB8GA1UdIwQYMBaAFItnoAjjfuCEUvzyvWyI2vOGvwPjMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMDcGCCsGAQUFBwEBBCswKTAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AubmRpcy5udmlkaWEuY29tMAoGCCqGSM49BAMDA2gAMGUCMQCeIMMfAbyzPDacw2MxG+Yt1cikrJX/DVxiGfXuHmkkXn6VgSzE79+lkqDErpVO2gYCMCNEColOyvUvkzZGUEI1hQ3PfMgi3FIo9tHoBKMw4/wGBLFpu/0ubtmbBXM6/UMOEw=="},{"rawBytes":"MIICRTCCAcygAwIBAgIUeJdY3rV86EdvFmG7L8LJBsyQFYkwCgYIKoZIzj0EAwMwUTELMAkGA1UEBhMCVVMxGzAZBgNVBAoMEk5WSURJQSBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcTlZJRElBIEFnZW50IENhcGFiaWxpdGllcyBDQTAgFw0yNjA0MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowUTELMAkGA1UEBhMCVVMxGzAZBgNVBAoMEk5WSURJQSBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcTlZJRElBIEFnZW50IENhcGFiaWxpdGllcyBDQTB2MBAGByqGSM49AgEGBSuBBAAiA2IABAYpiXCDjJ9NT2eSDhyHJVSw1Tbze18cGG2F/578oWvHxg23eQAhNRYdq88i1iOshZSO6C29doKui5Xpmo/7Ctw9Sx4PP2RzOmIuOLCuTdNtKcTRwi4GEsd5BAFvWj42M6NjMGEwHQYDVR0OBBYEFItnoAjjfuCEUvzyvWyI2vOGvwPjMB8GA1UdIwQYMBaAFItnoAjjfuCEUvzyvWyI2vOGvwPjMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMDA2cAMGQCMCwtAjWLaNwgGWNCgdyNoTyvNhqWRECRJV2r3+7w8g0PL6NHLOsbkgE09BH95h8XlgIwTaQmbbUh2ChAJ5TA1wRiVDnCcvbzHlZl2jM2FcwQQZlk19LOAbyGMRixbu2Ww/rj"}]},"tlogEntries":[]},"dsseEnvelope":{"payload":"ewogICJfdHlwZSI6ICJodHRwczovL2luLXRvdG8uaW8vU3RhdGVtZW50L3YxIiwKICAic3ViamVjdCI6IFsKICAgIHsKICAgICAgIm5hbWUiOiAibmVtby1tYnJpZGdlLXJlc2lsaWVuY3kiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiOTkzZGQ3MzUyMmFkYzRkZjdjOWNkODdiODZhMDlkOTY5OWVmODdjMzczZDA0NTYwN2MxZTkwMGQ0YzBiOTYwMSIKICAgICAgfQogICAgfQogIF0sCiAgInByZWRpY2F0ZVR5cGUiOiAiaHR0cHM6Ly9tb2RlbF9zaWduaW5nL3NpZ25hdHVyZS92MS4wIiwKICAicHJlZGljYXRlIjogewogICAgInJlc291cmNlcyI6IFsKICAgICAgewogICAgICAgICJkaWdlc3QiOiAiN2E2Yzc3ZGIzNDg2MzMzOTRkNTFhNGNlYzE1MmQ1ODEwZGNmYWU2NzZkOGMwNjQxZWU3ZWJmYjk1Y2UzMDI4YyIsCiAgICAgICAgIm5hbWUiOiAiQkVOQ0hNQVJLLm1kIiwKICAgICAgICAiYWxnb3JpdGhtIjogInNoYTI1NiIKICAgICAgfSwKICAgICAgewogICAgICAgICJkaWdlc3QiOiAiY2Y4NTBiYWVlN2M3OTIwYTI2ZjU4OWM4YTQyZWRlNTZlYTkzNTAxMWU1MTQ2MWE4ZTE2YTc1NTYxODE5ZjVhNyIsCiAgICAgICAgIm5hbWUiOiAiU0tJTEwubWQiLAogICAgICAgICJhbGdvcml0aG0iOiAic2hhMjU2IgogICAgICB9LAogICAgICB7CiAgICAgICAgImRpZ2VzdCI6ICI2N2I0NmI1MzQ3MWI3NWMyODA1OGMyOGJiNzBlYjU4MDRmODcwZTk4MmViNWJhMzAxOTNiNTc4ZDVlNTM0MDIyIiwKICAgICAgICAibmFtZSI6ICJjYXJkLnlhbWwiLAogICAgICAgICJhbGdvcml0aG0iOiAic2hhMjU2IgogICAgICB9LAogICAgICB7CiAgICAgICAgImRpZ2VzdCI6ICIzNzUxN2U1ZjNkYzY2ODE5ZjYxZjVhN2JiOGFjZTE5MjEyODI0MTVmMTA1NTFkMmRlZmE1YzNlYjA5ODViNTcwIiwKICAgICAgICAibmFtZSI6ICJldmFscy9ldmFscy5qc29uIiwKICAgICAgICAiYWxnb3JpdGhtIjogInNoYTI1NiIKICAgICAgfSwKICAgICAgewogICAgICAgICJkaWdlc3QiOiAiNjg2M2ViYmJjZWJkODI5ZjA4NjJiZDA4Y2I1MDM3YmQzOWE0ZTQyYmFiMTNmMzhiMzljYzA1ODcwOWFiYWU3NCIsCiAgICAgICAgIm5hbWUiOiAic2tpbGwtY2FyZC5tZCIsCiAgICAgICAgImFsZ29yaXRobSI6ICJzaGEyNTYiCiAgICAgIH0KICAgIF0sCiAgICAic2VyaWFsaXphdGlvbiI6IHsKICAgICAgImhhc2hfdHlwZSI6ICJzaGEyNTYiLAogICAgICAibWV0aG9kIjogImZpbGVzIiwKICAgICAgImFsbG93X3N5bWxpbmtzIjogZmFsc2UsCiAgICAgICJpZ25vcmVfcGF0aHMiOiBbCiAgICAgICAgIi5naXQiLAogICAgICAgICIuZ2l0aHViIiwKICAgICAgICAiLmdpdGF0dHJpYnV0ZXMiLAogICAgICAgICIuZ2l0aWdub3JlIgogICAgICBdCiAgICB9CiAgfQp9","payloadType":"application/vnd.in-toto+json","signatures":[{"sig":"MGUCMBd0ju11zcrOnAD21/gqATsuyo1ct0ePK44Cu+KhmZ8dLN/zGdO+/ImkKDTQyUiYNQIxAP814Y9QF9MEEFbPMJEosPpFTdP2nWqtZJM8/k+rrOKKr80IuUTah5NV01ILWIIzzQ==","keyid":""}]}} \ No newline at end of file From b058d061dc2d47fe8015e3f26d4d1dbcbcacc5b6 Mon Sep 17 00:00:00 2001 From: Chen Cui Date: Thu, 28 May 2026 16:27:06 -0700 Subject: [PATCH 3/4] [skills] fix offloading and resiliency references Signed-off-by: Chen Cui --- docs/training/cpu-offloading.md | 6 +++--- docs/training/resiliency.md | 8 ++++---- skills/nemo-mbridge-resiliency/SKILL.md | 2 +- skills/nemo-mbridge-resiliency/card.yaml | 8 ++++---- skills/nemo-mbridge-resiliency/skill-card.md | 2 +- 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/docs/training/cpu-offloading.md b/docs/training/cpu-offloading.md index 81ee640685..56a8a239ff 100644 --- a/docs/training/cpu-offloading.md +++ b/docs/training/cpu-offloading.md @@ -5,7 +5,7 @@ during training, trading throughput for the ability to train models or configurations that would otherwise not fit in GPU memory. For operational setup, code anchors, and verification commands, see -[skills/perf-cpu-offloading/SKILL.md](../skills/perf-cpu-offloading/SKILL.md). +[skills/nemo-mbridge-perf-cpu-offloading/SKILL.md](../skills/nemo-mbridge-perf-cpu-offloading/SKILL.md). ## What It Is @@ -96,7 +96,7 @@ CPU offloading is configured through two independent config namespaces: `model.cpu_offloading_num_layers`, and related `model.cpu_offloading_*` fields For config examples, parameter tables, and runnable commands, see -[skills/perf-cpu-offloading/SKILL.md](../skills/perf-cpu-offloading/SKILL.md). +[skills/nemo-mbridge-perf-cpu-offloading/SKILL.md](../skills/nemo-mbridge-perf-cpu-offloading/SKILL.md). ## Common Failure Modes @@ -115,4 +115,4 @@ For config examples, parameter tables, and runnable commands, see - [docs/training/megatron-fsdp.md](megatron-fsdp.md) - [docs/training/optimizer-scheduler.md](optimizer-scheduler.md) - [docs/training/cuda-graphs.md](cuda-graphs.md) -- [skills/perf-cpu-offloading/SKILL.md](../skills/perf-cpu-offloading/SKILL.md) +- [skills/nemo-mbridge-perf-cpu-offloading/SKILL.md](../skills/nemo-mbridge-perf-cpu-offloading/SKILL.md) diff --git a/docs/training/resiliency.md b/docs/training/resiliency.md index 0b67c10965..002cf00960 100644 --- a/docs/training/resiliency.md +++ b/docs/training/resiliency.md @@ -7,7 +7,7 @@ due to failures and interruptions during training. This page is the stable overview for what each resiliency feature is, when to use it, and which constraints are durable. For operational setup, config knobs, -parameter tables, code anchors, and verification commands, see [skills/resiliency/SKILL.md](../skills/resiliency/SKILL.md). +parameter tables, code anchors, and verification commands, see [skills/nemo-mbridge-resiliency/SKILL.md](../skills/nemo-mbridge-resiliency/SKILL.md). ## What It Is @@ -124,7 +124,7 @@ Local checkpointing is useful when: - Node-local storage must have sufficient capacity for at least one checkpoint - Replication degree must be configured to survive the expected failure rate -- Requires compatible checkpoint format (see [skills/resiliency/SKILL.md](../skills/resiliency/SKILL.md)) +- Requires compatible checkpoint format (see [skills/nemo-mbridge-resiliency/SKILL.md](../skills/nemo-mbridge-resiliency/SKILL.md)) ## Re-run State Machine @@ -186,7 +186,7 @@ with job-level fault tolerance. - [docs/training/checkpointing.md](checkpointing.md) - [docs/performance-guide.md](../performance-guide.md) -- [skills/resiliency/SKILL.md](../skills/resiliency/SKILL.md) -- [skills/resiliency/card.yaml](../skills/resiliency/card.yaml) +- [skills/nemo-mbridge-resiliency/SKILL.md](../skills/nemo-mbridge-resiliency/SKILL.md) +- [skills/nemo-mbridge-resiliency/card.yaml](../skills/nemo-mbridge-resiliency/card.yaml) - [NVIDIA Resiliency Extension](https://github.com/NVIDIA/nvidia-resiliency-ext) - [In-Process Restart Guide](https://nvidia.github.io/nvidia-resiliency-ext/inprocess/index.html) diff --git a/skills/nemo-mbridge-resiliency/SKILL.md b/skills/nemo-mbridge-resiliency/SKILL.md index fe205999c0..643ade7933 100644 --- a/skills/nemo-mbridge-resiliency/SKILL.md +++ b/skills/nemo-mbridge-resiliency/SKILL.md @@ -7,7 +7,7 @@ when_to_use: Enabling resiliency features, or investigating a commit that caused # Resiliency -Stable docs: @docs/training/nemo-mbridge-resiliency.md, @docs/training/checkpointing.md +Stable docs: @docs/training/resiliency.md, @docs/training/checkpointing.md Card: @skills/nemo-mbridge-resiliency/card.yaml ## Enablement diff --git a/skills/nemo-mbridge-resiliency/card.yaml b/skills/nemo-mbridge-resiliency/card.yaml index d2994d883d..ad6be8b779 100644 --- a/skills/nemo-mbridge-resiliency/card.yaml +++ b/skills/nemo-mbridge-resiliency/card.yaml @@ -94,7 +94,7 @@ known_limitations: - Not all recipes enable resiliency features by default. - Preemption plugin is Slurm-specific. evidence: - - docs/training/mbridge-resiliency.md + - docs/training/resiliency.md - docs/training/checkpointing.md - src/megatron/bridge/training/fault_tolerance.py - src/megatron/bridge/training/nvrx_straggler.py @@ -103,7 +103,7 @@ evidence: - src/megatron/bridge/training/config.py - src/megatron/bridge/training/utils/sig_utils.py - src/megatron/bridge/recipes/run_plugins.py - - scripts/performance/mbridge-resiliency_plugins.py + - scripts/performance/nemo-mbridge-resiliency_plugins.py - tests/unit_tests/training/test_fault_tolerance.py - tests/unit_tests/training/test_nvrx_straggler.py - tests/unit_tests/training/test_inprocess_restart.py @@ -111,8 +111,8 @@ evidence: - tests/functional_tests/training/test_nvrx_straggler.py - tests/functional_tests/training/test_inprocess_restart.py - tests/functional_tests/training/test_local_checkpointing.py - - examples/training_features/mbridge-resiliency/fault_tolerance/ - - examples/training_features/mbridge-resiliency/straggler_detection/ + - examples/training_features/nemo-mbridge-resiliency/fault_tolerance/ + - examples/training_features/nemo-mbridge-resiliency/straggler_detection/ follow_up_validation: - Add a Slurm-based FT end-to-end test with actual hang recovery. - Add a checked-in recipe that enables FT + straggler detection by default. diff --git a/skills/nemo-mbridge-resiliency/skill-card.md b/skills/nemo-mbridge-resiliency/skill-card.md index d5ef34817c..bb0769e896 100644 --- a/skills/nemo-mbridge-resiliency/skill-card.md +++ b/skills/nemo-mbridge-resiliency/skill-card.md @@ -19,7 +19,7 @@ Risk: Review before execution as proposals could introduce incorrect or misleadi Mitigation: Review and scan skill before deployment.
## Reference(s):
-- [Megatron Bridge Resiliency Documentation](docs/training/nemo-mbridge-resiliency.md)
+- [Megatron Bridge Resiliency Documentation](docs/training/resiliency.md)
- [Checkpointing Documentation](docs/training/checkpointing.md)
- [Megatron Bridge Documentation](https://docs.nvidia.com/nemo/megatron-bridge/latest/)
From 7e449defe7556ccc52237e3e62df1cf058dc3946 Mon Sep 17 00:00:00 2001 From: nvskills-svc-account Date: Thu, 28 May 2026 23:34:33 +0000 Subject: [PATCH 4/4] Attach NVSkills validation signatures Signed-off-by: nvskills-svc-account --- skills/nemo-mbridge-perf-cpu-offloading/BENCHMARK.md | 2 +- skills/nemo-mbridge-perf-cpu-offloading/skill-card.md | 7 ++++--- skills/nemo-mbridge-perf-cpu-offloading/skill.oms.sig | 2 +- skills/nemo-mbridge-resiliency/BENCHMARK.md | 6 +++--- skills/nemo-mbridge-resiliency/skill-card.md | 11 +++++++---- skills/nemo-mbridge-resiliency/skill.oms.sig | 2 +- 6 files changed, 17 insertions(+), 13 deletions(-) diff --git a/skills/nemo-mbridge-perf-cpu-offloading/BENCHMARK.md b/skills/nemo-mbridge-perf-cpu-offloading/BENCHMARK.md index 1b36aa131a..a2c677a23f 100644 --- a/skills/nemo-mbridge-perf-cpu-offloading/BENCHMARK.md +++ b/skills/nemo-mbridge-perf-cpu-offloading/BENCHMARK.md @@ -40,7 +40,7 @@ Tier 3 dimension rollup was not available in this report. ## Tier 1: Static Validation Summary -Tier 1 validation passed with observations. NVSkills-Eval ran 9 checks and found 11 total findings. +Tier 1 validation reported findings. NVSkills-Eval ran 9 checks and found 14 total findings. Top findings: diff --git a/skills/nemo-mbridge-perf-cpu-offloading/skill-card.md b/skills/nemo-mbridge-perf-cpu-offloading/skill-card.md index 3aa5831187..29f33c550e 100644 --- a/skills/nemo-mbridge-perf-cpu-offloading/skill-card.md +++ b/skills/nemo-mbridge-perf-cpu-offloading/skill-card.md @@ -9,7 +9,7 @@ NVIDIA
### License/Terms of Use:
Apache 2.0
## Use Case:
-Developers and engineers enabling CPU offloading to reduce GPU memory pressure during large model training, or diagnosing offloading-related configuration errors and OOM crashes.
+Developers and engineers enabling CPU offload to reduce GPU memory pressure during LLM training, or investigating commits that changed CPU offloading configuration and caused OOM or crashes.
### Deployment Geography for Use:
Global
@@ -20,6 +20,7 @@ Mitigation: Review and scan skill before deployment.
## Reference(s):
- [CPU Offloading Documentation](docs/training/cpu-offloading.md)
+- [Performance Tuning Guide](docs/performance-guide.md)
- [Skill Structured Metadata](skills/nemo-mbridge-perf-cpu-offloading/card.yaml)
@@ -30,7 +31,7 @@ Mitigation: Review and scan skill before deployment.
**Other Properties Related to Output:** [None]
## Evaluation Tasks:
-NVSkills-Eval 3-Tier Evaluation: 9 Tier 1 static validation checks and 2 Tier 2 deduplication checks. Tier 3 live agent evaluation was not available.
+Evaluated via NVSkills-Eval 3-Tier Evaluation (external profile) on 2026-05-28. Tier 1 static validation ran 9 checks with 14 findings. Tier 2 deduplication ran 2 checks with 1 finding. Tier 3 live agent evaluation was not available.
## Evaluation Metrics Used:
Reported benchmark dimensions:
@@ -43,7 +44,7 @@ Reported benchmark dimensions:
## Skill Version(s):
-ed1d6d07 (source: git SHA, committed 2026-05-28)
+b058d061 (source: git SHA, committed 2026-05-28)
## Ethical Considerations:
NVIDIA believes Trustworthy AI is a shared responsibility and we have established policies and practices to enable development for a wide array of AI applications. When downloaded or used in accordance with our terms of service, developers should work with their internal team to ensure this skill meets requirements for the relevant industry and use case and addresses unforeseen product misuse.
diff --git a/skills/nemo-mbridge-perf-cpu-offloading/skill.oms.sig b/skills/nemo-mbridge-perf-cpu-offloading/skill.oms.sig index e31dcf40bd..92947f761d 100644 --- a/skills/nemo-mbridge-perf-cpu-offloading/skill.oms.sig +++ b/skills/nemo-mbridge-perf-cpu-offloading/skill.oms.sig @@ -1 +1 @@ -{"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"x509CertificateChain":{"certificates":[{"rawBytes":"MIICgzCCAgmgAwIBAgIUKIyS7SxNteQIiWzK1dWj85E6520wCgYIKoZIzj0EAwMwVTELMAkGA1UEBhMCVVMxGzAZBgNVBAoMEk5WSURJQSBDb3Jwb3JhdGlvbjEpMCcGA1UEAwwgTlZJRElBIEFnZW50IENhcGFiaWxpdGllcyBJQ0EgMDEwHhcNMjYwNDAxMDAwMDAwWhcNMjgwNDIyMTUzMzA5WjBUMQswCQYDVQQGEwJVUzEbMBkGA1UECgwSTlZJRElBIENvcnBvcmF0aW9uMSgwJgYDVQQDDB9OVklESUEgQWdlbnQgU2tpbGxzIFNpZ25pbmcgMDAxMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEYoRM9bQl/dGlwSRNi6bTpIJUXH8Nv9GciP6LSflJYYMLCc296kpyuTSsk5ddbAWiDcFX3C/ydX3jwc+qCLYP6uHy9XphyLjOQ27Yb2J6rBLVtRBS1mgGco/Gr7fL6ODco4GaMIGXMB0GA1UdDgQWBBRQ/5ZW3nJ6lmo9SVk7I15o7UGmpTAfBgNVHSMEGDAWgBRPGpILxMBBleJSsBGjrMKsby1CgjAMBgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDA3BggrBgEFBQcBAQQrMCkwJwYIKwYBBQUHMAGGG2h0dHA6Ly9vY3NwLm5kaXMubnZpZGlhLmNvbTAKBggqhkjOPQQDAwNoADBlAjAUygu/GiOCIXrgGr4SmLgeEVDcEitfFUv7ALbvLVGVyMysB3mxmO/uInZfXzWcJZsCMQDxuoxj4ZmO30jhkPIcCxGFCOvnUsnfU3TfGcouYm4M6iRpbKvtVnHPiy4bi6pcKf0="},{"rawBytes":"MIICiDCCAg6gAwIBAgIUZsIuSv9NkpJCNqtYEfCouVv5BzowCgYIKoZIzj0EAwMwUTELMAkGA1UEBhMCVVMxGzAZBgNVBAoMEk5WSURJQSBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcTlZJRElBIEFnZW50IENhcGFiaWxpdGllcyBDQTAgFw0yNjA0MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowVTELMAkGA1UEBhMCVVMxGzAZBgNVBAoMEk5WSURJQSBDb3Jwb3JhdGlvbjEpMCcGA1UEAwwgTlZJRElBIEFnZW50IENhcGFiaWxpdGllcyBJQ0EgMDEwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASI72cR3ctKGg4VWnB3bNja6g1Z2PnOmFEopkPof+QeIcPk9rT+g9MjJnq51EQXL93a7C2GJ9J985G4o2V85VD7wJ1RaXhluHW2rf3y8bQGeAYaKMr5s/hUgn+M3/9WlWejgaAwgZ0wHQYDVR0OBBYEFE8akgvEwEGV4lKwEaOswqxvLUKCMB8GA1UdIwQYMBaAFItnoAjjfuCEUvzyvWyI2vOGvwPjMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMDcGCCsGAQUFBwEBBCswKTAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AubmRpcy5udmlkaWEuY29tMAoGCCqGSM49BAMDA2gAMGUCMQCeIMMfAbyzPDacw2MxG+Yt1cikrJX/DVxiGfXuHmkkXn6VgSzE79+lkqDErpVO2gYCMCNEColOyvUvkzZGUEI1hQ3PfMgi3FIo9tHoBKMw4/wGBLFpu/0ubtmbBXM6/UMOEw=="},{"rawBytes":"MIICRTCCAcygAwIBAgIUeJdY3rV86EdvFmG7L8LJBsyQFYkwCgYIKoZIzj0EAwMwUTELMAkGA1UEBhMCVVMxGzAZBgNVBAoMEk5WSURJQSBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcTlZJRElBIEFnZW50IENhcGFiaWxpdGllcyBDQTAgFw0yNjA0MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowUTELMAkGA1UEBhMCVVMxGzAZBgNVBAoMEk5WSURJQSBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcTlZJRElBIEFnZW50IENhcGFiaWxpdGllcyBDQTB2MBAGByqGSM49AgEGBSuBBAAiA2IABAYpiXCDjJ9NT2eSDhyHJVSw1Tbze18cGG2F/578oWvHxg23eQAhNRYdq88i1iOshZSO6C29doKui5Xpmo/7Ctw9Sx4PP2RzOmIuOLCuTdNtKcTRwi4GEsd5BAFvWj42M6NjMGEwHQYDVR0OBBYEFItnoAjjfuCEUvzyvWyI2vOGvwPjMB8GA1UdIwQYMBaAFItnoAjjfuCEUvzyvWyI2vOGvwPjMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMDA2cAMGQCMCwtAjWLaNwgGWNCgdyNoTyvNhqWRECRJV2r3+7w8g0PL6NHLOsbkgE09BH95h8XlgIwTaQmbbUh2ChAJ5TA1wRiVDnCcvbzHlZl2jM2FcwQQZlk19LOAbyGMRixbu2Ww/rj"}]},"tlogEntries":[]},"dsseEnvelope":{"payload":"ewogICJfdHlwZSI6ICJodHRwczovL2luLXRvdG8uaW8vU3RhdGVtZW50L3YxIiwKICAic3ViamVjdCI6IFsKICAgIHsKICAgICAgIm5hbWUiOiAibmVtby1tYnJpZGdlLXBlcmYtY3B1LW9mZmxvYWRpbmciLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMGI2YjBmZjNlNTUyZDg3MGY5M2U5MTBhYzVmNzg4YTMxM2RlNjI4OGY4YjIyZjhiY2I4NjNmMTQ4OGYyN2RjZSIKICAgICAgfQogICAgfQogIF0sCiAgInByZWRpY2F0ZVR5cGUiOiAiaHR0cHM6Ly9tb2RlbF9zaWduaW5nL3NpZ25hdHVyZS92MS4wIiwKICAicHJlZGljYXRlIjogewogICAgInNlcmlhbGl6YXRpb24iOiB7CiAgICAgICJpZ25vcmVfcGF0aHMiOiBbCiAgICAgICAgIi5naXRhdHRyaWJ1dGVzIiwKICAgICAgICAiLmdpdCIsCiAgICAgICAgIi5naXRodWIiLAogICAgICAgICIuZ2l0aWdub3JlIgogICAgICBdLAogICAgICAibWV0aG9kIjogImZpbGVzIiwKICAgICAgImFsbG93X3N5bWxpbmtzIjogZmFsc2UsCiAgICAgICJoYXNoX3R5cGUiOiAic2hhMjU2IgogICAgfSwKICAgICJyZXNvdXJjZXMiOiBbCiAgICAgIHsKICAgICAgICAibmFtZSI6ICJCRU5DSE1BUksubWQiLAogICAgICAgICJkaWdlc3QiOiAiMzNiYmU4ZDQwYTZkMDg4ZDBjNTZlZTQ5YmJlOTFmYTExNmY2YmQwOWMzMzgxNWIwNTk2NGNjOTBkNjEyOTczZCIsCiAgICAgICAgImFsZ29yaXRobSI6ICJzaGEyNTYiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibmFtZSI6ICJTS0lMTC5tZCIsCiAgICAgICAgImRpZ2VzdCI6ICIwMDBkOTE4ODM4YzhiNWQ5ZDM0ZmQ1NDYwNmU3N2Q1ZWRjOWYwYzZhYjE1NTM0MjE0ZDA5YWI3MWU0OTVhYjg5IiwKICAgICAgICAiYWxnb3JpdGhtIjogInNoYTI1NiIKICAgICAgfSwKICAgICAgewogICAgICAgICJuYW1lIjogImNhcmQueWFtbCIsCiAgICAgICAgImRpZ2VzdCI6ICI1NjBjNDRiYzllNWNkZjRiN2RiOWU5Mzc2MmUzZDIwNzY1MTYwMGM5MjQxYWFhYzM1NGMzNmI2YWE4ZmUwODAzIiwKICAgICAgICAiYWxnb3JpdGhtIjogInNoYTI1NiIKICAgICAgfSwKICAgICAgewogICAgICAgICJuYW1lIjogImV2YWxzL2V2YWxzLmpzb24iLAogICAgICAgICJkaWdlc3QiOiAiMzc1MTdlNWYzZGM2NjgxOWY2MWY1YTdiYjhhY2UxOTIxMjgyNDE1ZjEwNTUxZDJkZWZhNWMzZWIwOTg1YjU3MCIsCiAgICAgICAgImFsZ29yaXRobSI6ICJzaGEyNTYiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibmFtZSI6ICJza2lsbC1jYXJkLm1kIiwKICAgICAgICAiZGlnZXN0IjogIjk1ZjRjYjQwMzBjODAzNDEzYmE3NjFiNmMyZDAzYjQxYTE5NzM2ZTFjMTIzZTk2MTUyYzFjYmQyMzE5MWExODciLAogICAgICAgICJhbGdvcml0aG0iOiAic2hhMjU2IgogICAgICB9CiAgICBdCiAgfQp9","payloadType":"application/vnd.in-toto+json","signatures":[{"sig":"MGUCMQCbP/7cnTyHRgfPVLRxTxuSOL2yFQfJwQ7J5RdmH+3QjwCX9DCnmp5+ruZqqmkQl24CME56I3et5ju117cxQkXe4iyKsu5r86zSHy6G9IYahYYj4sLYCWl1q6Ps2y0u/IoWLw==","keyid":""}]}} \ No newline at end of file +{"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"x509CertificateChain":{"certificates":[{"rawBytes":"MIICgzCCAgmgAwIBAgIUKIyS7SxNteQIiWzK1dWj85E6520wCgYIKoZIzj0EAwMwVTELMAkGA1UEBhMCVVMxGzAZBgNVBAoMEk5WSURJQSBDb3Jwb3JhdGlvbjEpMCcGA1UEAwwgTlZJRElBIEFnZW50IENhcGFiaWxpdGllcyBJQ0EgMDEwHhcNMjYwNDAxMDAwMDAwWhcNMjgwNDIyMTUzMzA5WjBUMQswCQYDVQQGEwJVUzEbMBkGA1UECgwSTlZJRElBIENvcnBvcmF0aW9uMSgwJgYDVQQDDB9OVklESUEgQWdlbnQgU2tpbGxzIFNpZ25pbmcgMDAxMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEYoRM9bQl/dGlwSRNi6bTpIJUXH8Nv9GciP6LSflJYYMLCc296kpyuTSsk5ddbAWiDcFX3C/ydX3jwc+qCLYP6uHy9XphyLjOQ27Yb2J6rBLVtRBS1mgGco/Gr7fL6ODco4GaMIGXMB0GA1UdDgQWBBRQ/5ZW3nJ6lmo9SVk7I15o7UGmpTAfBgNVHSMEGDAWgBRPGpILxMBBleJSsBGjrMKsby1CgjAMBgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDA3BggrBgEFBQcBAQQrMCkwJwYIKwYBBQUHMAGGG2h0dHA6Ly9vY3NwLm5kaXMubnZpZGlhLmNvbTAKBggqhkjOPQQDAwNoADBlAjAUygu/GiOCIXrgGr4SmLgeEVDcEitfFUv7ALbvLVGVyMysB3mxmO/uInZfXzWcJZsCMQDxuoxj4ZmO30jhkPIcCxGFCOvnUsnfU3TfGcouYm4M6iRpbKvtVnHPiy4bi6pcKf0="},{"rawBytes":"MIICiDCCAg6gAwIBAgIUZsIuSv9NkpJCNqtYEfCouVv5BzowCgYIKoZIzj0EAwMwUTELMAkGA1UEBhMCVVMxGzAZBgNVBAoMEk5WSURJQSBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcTlZJRElBIEFnZW50IENhcGFiaWxpdGllcyBDQTAgFw0yNjA0MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowVTELMAkGA1UEBhMCVVMxGzAZBgNVBAoMEk5WSURJQSBDb3Jwb3JhdGlvbjEpMCcGA1UEAwwgTlZJRElBIEFnZW50IENhcGFiaWxpdGllcyBJQ0EgMDEwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASI72cR3ctKGg4VWnB3bNja6g1Z2PnOmFEopkPof+QeIcPk9rT+g9MjJnq51EQXL93a7C2GJ9J985G4o2V85VD7wJ1RaXhluHW2rf3y8bQGeAYaKMr5s/hUgn+M3/9WlWejgaAwgZ0wHQYDVR0OBBYEFE8akgvEwEGV4lKwEaOswqxvLUKCMB8GA1UdIwQYMBaAFItnoAjjfuCEUvzyvWyI2vOGvwPjMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMDcGCCsGAQUFBwEBBCswKTAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AubmRpcy5udmlkaWEuY29tMAoGCCqGSM49BAMDA2gAMGUCMQCeIMMfAbyzPDacw2MxG+Yt1cikrJX/DVxiGfXuHmkkXn6VgSzE79+lkqDErpVO2gYCMCNEColOyvUvkzZGUEI1hQ3PfMgi3FIo9tHoBKMw4/wGBLFpu/0ubtmbBXM6/UMOEw=="},{"rawBytes":"MIICRTCCAcygAwIBAgIUeJdY3rV86EdvFmG7L8LJBsyQFYkwCgYIKoZIzj0EAwMwUTELMAkGA1UEBhMCVVMxGzAZBgNVBAoMEk5WSURJQSBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcTlZJRElBIEFnZW50IENhcGFiaWxpdGllcyBDQTAgFw0yNjA0MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowUTELMAkGA1UEBhMCVVMxGzAZBgNVBAoMEk5WSURJQSBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcTlZJRElBIEFnZW50IENhcGFiaWxpdGllcyBDQTB2MBAGByqGSM49AgEGBSuBBAAiA2IABAYpiXCDjJ9NT2eSDhyHJVSw1Tbze18cGG2F/578oWvHxg23eQAhNRYdq88i1iOshZSO6C29doKui5Xpmo/7Ctw9Sx4PP2RzOmIuOLCuTdNtKcTRwi4GEsd5BAFvWj42M6NjMGEwHQYDVR0OBBYEFItnoAjjfuCEUvzyvWyI2vOGvwPjMB8GA1UdIwQYMBaAFItnoAjjfuCEUvzyvWyI2vOGvwPjMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMDA2cAMGQCMCwtAjWLaNwgGWNCgdyNoTyvNhqWRECRJV2r3+7w8g0PL6NHLOsbkgE09BH95h8XlgIwTaQmbbUh2ChAJ5TA1wRiVDnCcvbzHlZl2jM2FcwQQZlk19LOAbyGMRixbu2Ww/rj"}]},"tlogEntries":[]},"dsseEnvelope":{"payload":"ewogICJfdHlwZSI6ICJodHRwczovL2luLXRvdG8uaW8vU3RhdGVtZW50L3YxIiwKICAic3ViamVjdCI6IFsKICAgIHsKICAgICAgIm5hbWUiOiAibmVtby1tYnJpZGdlLXBlcmYtY3B1LW9mZmxvYWRpbmciLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMjBlZmI1ZDc5NGQ0ZThmMTI5MDI2ODZmOWJjYzM1NTczNTMxODRlYjM3NjA3MGMyZGMwNTE5OGI2NDgxZGUxMCIKICAgICAgfQogICAgfQogIF0sCiAgInByZWRpY2F0ZVR5cGUiOiAiaHR0cHM6Ly9tb2RlbF9zaWduaW5nL3NpZ25hdHVyZS92MS4wIiwKICAicHJlZGljYXRlIjogewogICAgInNlcmlhbGl6YXRpb24iOiB7CiAgICAgICJpZ25vcmVfcGF0aHMiOiBbCiAgICAgICAgIi5naXQiLAogICAgICAgICIuZ2l0aWdub3JlIiwKICAgICAgICAiLmdpdGh1YiIsCiAgICAgICAgIi5naXRhdHRyaWJ1dGVzIgogICAgICBdLAogICAgICAibWV0aG9kIjogImZpbGVzIiwKICAgICAgImFsbG93X3N5bWxpbmtzIjogZmFsc2UsCiAgICAgICJoYXNoX3R5cGUiOiAic2hhMjU2IgogICAgfSwKICAgICJyZXNvdXJjZXMiOiBbCiAgICAgIHsKICAgICAgICAiZGlnZXN0IjogImI4OWM5MTdlNWRmYjUwNDU5MTZiZGNjNWM0N2Y5OWMwNzYxNzQxMDAyZjY1OWZkYWEwZWEyMGFjODU0YTYzYTIiLAogICAgICAgICJhbGdvcml0aG0iOiAic2hhMjU2IiwKICAgICAgICAibmFtZSI6ICJCRU5DSE1BUksubWQiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiZGlnZXN0IjogIjAwMGQ5MTg4MzhjOGI1ZDlkMzRmZDU0NjA2ZTc3ZDVlZGM5ZjBjNmFiMTU1MzQyMTRkMDlhYjcxZTQ5NWFiODkiLAogICAgICAgICJhbGdvcml0aG0iOiAic2hhMjU2IiwKICAgICAgICAibmFtZSI6ICJTS0lMTC5tZCIKICAgICAgfSwKICAgICAgewogICAgICAgICJkaWdlc3QiOiAiNTYwYzQ0YmM5ZTVjZGY0YjdkYjllOTM3NjJlM2QyMDc2NTE2MDBjOTI0MWFhYWMzNTRjMzZiNmFhOGZlMDgwMyIsCiAgICAgICAgImFsZ29yaXRobSI6ICJzaGEyNTYiLAogICAgICAgICJuYW1lIjogImNhcmQueWFtbCIKICAgICAgfSwKICAgICAgewogICAgICAgICJkaWdlc3QiOiAiMzc1MTdlNWYzZGM2NjgxOWY2MWY1YTdiYjhhY2UxOTIxMjgyNDE1ZjEwNTUxZDJkZWZhNWMzZWIwOTg1YjU3MCIsCiAgICAgICAgImFsZ29yaXRobSI6ICJzaGEyNTYiLAogICAgICAgICJuYW1lIjogImV2YWxzL2V2YWxzLmpzb24iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiZGlnZXN0IjogIjcyY2Y0MmU2ZGNlNjJkZTJhZGFkZmEwYWZhMWViMjFmZmZmNjRjYTNkYmQyOWUwNjg1MDMxNTRlY2I3MDI2MmIiLAogICAgICAgICJhbGdvcml0aG0iOiAic2hhMjU2IiwKICAgICAgICAibmFtZSI6ICJza2lsbC1jYXJkLm1kIgogICAgICB9CiAgICBdCiAgfQp9","payloadType":"application/vnd.in-toto+json","signatures":[{"sig":"MGQCMFt1geIwKurmInB7R6Byvc2dyzKNpcZAVAwC6YlEBQCSQPv6gp1SFOJT5WcpOUwJ+AIwIef9cewjrZpG+AphYzG1VUYF+KBsegzL/Wn5sBBBWf+i/n9UnAZYYxoQpM5jDVJs","keyid":""}]}} \ No newline at end of file diff --git a/skills/nemo-mbridge-resiliency/BENCHMARK.md b/skills/nemo-mbridge-resiliency/BENCHMARK.md index 4685878a7b..ce93c99e27 100644 --- a/skills/nemo-mbridge-resiliency/BENCHMARK.md +++ b/skills/nemo-mbridge-resiliency/BENCHMARK.md @@ -9,7 +9,7 @@ This benchmark summarizes 3-Tier Evaluation from NVSkills-Eval results for the s - Skill: `nemo-mbridge-resiliency` - Evaluation date: 2026-05-28 - NVSkills-Eval profile: `external` -- Overall verdict: PASS +- Overall verdict: FAIL - Tier 3 live agent evaluation: not available in this report ## Agents Used @@ -40,7 +40,7 @@ Tier 3 dimension rollup was not available in this report. ## Tier 1: Static Validation Summary -Tier 1 validation passed with observations. NVSkills-Eval ran 9 checks and found 12 total findings. +Tier 1 validation reported findings. NVSkills-Eval ran 9 checks and found 15 total findings. Top findings: @@ -61,4 +61,4 @@ Notable observations: ## Publication Recommendation -The skill is suitable to proceed toward NVSkills-Eval publication based on this benchmark. Skill owners should keep this file with the skill and refresh it when the evaluation dataset, skill behavior, or target agents materially change. +The skill should be reviewed before NVSkills-Eval publication. Skill owners should address the findings above and rerun NVSkills-Eval to refresh this benchmark. diff --git a/skills/nemo-mbridge-resiliency/skill-card.md b/skills/nemo-mbridge-resiliency/skill-card.md index bb0769e896..80a94fc5b4 100644 --- a/skills/nemo-mbridge-resiliency/skill-card.md +++ b/skills/nemo-mbridge-resiliency/skill-card.md @@ -9,7 +9,7 @@ NVIDIA
### License/Terms of Use:
Apache 2.0
## Use Case:
-Developers and engineers enabling resiliency features (fault tolerance, straggler detection, in-process restart, preemption, async checkpointing) for distributed GPU training jobs with Megatron Bridge.
+Developers and engineers enabling resiliency features for distributed GPU training, including fault tolerance, straggler detection, preemption handling, and automatic restart capabilities in Megatron Bridge workloads.
### Deployment Geography for Use:
Global
@@ -19,9 +19,9 @@ Risk: Review before execution as proposals could introduce incorrect or misleadi Mitigation: Review and scan skill before deployment.
## Reference(s):
-- [Megatron Bridge Resiliency Documentation](docs/training/resiliency.md)
+- [Resiliency Documentation](docs/training/resiliency.md)
- [Checkpointing Documentation](docs/training/checkpointing.md)
-- [Megatron Bridge Documentation](https://docs.nvidia.com/nemo/megatron-bridge/latest/)
+- [NVIDIA NeMo Megatron Bridge Documentation](https://docs.nvidia.com/nemo/megatron-bridge/latest/)
## Skill Output:
@@ -30,6 +30,9 @@ Mitigation: Review and scan skill before deployment.
**Output Parameters:** [1D]
**Other Properties Related to Output:** [None]
+## Evaluation Tasks:
+Evaluated through NVSkills-Eval 3-Tier evaluation framework with external profile on 2026-05-28.
+ ## Evaluation Metrics Used:
Reported benchmark dimensions:
- Security: Checks whether skill-assisted execution avoids unsafe behavior such as secret leakage, destructive commands, or unauthorized access.
@@ -41,7 +44,7 @@ Reported benchmark dimensions:
## Skill Version(s):
-ed1d6d07 (source: git SHA, committed 2026-05-28)
+v0.2.0rc6-1467-gb058d061 (source: git tag)
## Ethical Considerations:
NVIDIA believes Trustworthy AI is a shared responsibility and we have established policies and practices to enable development for a wide array of AI applications. When downloaded or used in accordance with our terms of service, developers should work with their internal team to ensure this skill meets requirements for the relevant industry and use case and addresses unforeseen product misuse.
diff --git a/skills/nemo-mbridge-resiliency/skill.oms.sig b/skills/nemo-mbridge-resiliency/skill.oms.sig index e93b083b4c..7635fe193c 100644 --- a/skills/nemo-mbridge-resiliency/skill.oms.sig +++ b/skills/nemo-mbridge-resiliency/skill.oms.sig @@ -1 +1 @@ -{"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"x509CertificateChain":{"certificates":[{"rawBytes":"MIICgzCCAgmgAwIBAgIUKIyS7SxNteQIiWzK1dWj85E6520wCgYIKoZIzj0EAwMwVTELMAkGA1UEBhMCVVMxGzAZBgNVBAoMEk5WSURJQSBDb3Jwb3JhdGlvbjEpMCcGA1UEAwwgTlZJRElBIEFnZW50IENhcGFiaWxpdGllcyBJQ0EgMDEwHhcNMjYwNDAxMDAwMDAwWhcNMjgwNDIyMTUzMzA5WjBUMQswCQYDVQQGEwJVUzEbMBkGA1UECgwSTlZJRElBIENvcnBvcmF0aW9uMSgwJgYDVQQDDB9OVklESUEgQWdlbnQgU2tpbGxzIFNpZ25pbmcgMDAxMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEYoRM9bQl/dGlwSRNi6bTpIJUXH8Nv9GciP6LSflJYYMLCc296kpyuTSsk5ddbAWiDcFX3C/ydX3jwc+qCLYP6uHy9XphyLjOQ27Yb2J6rBLVtRBS1mgGco/Gr7fL6ODco4GaMIGXMB0GA1UdDgQWBBRQ/5ZW3nJ6lmo9SVk7I15o7UGmpTAfBgNVHSMEGDAWgBRPGpILxMBBleJSsBGjrMKsby1CgjAMBgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDA3BggrBgEFBQcBAQQrMCkwJwYIKwYBBQUHMAGGG2h0dHA6Ly9vY3NwLm5kaXMubnZpZGlhLmNvbTAKBggqhkjOPQQDAwNoADBlAjAUygu/GiOCIXrgGr4SmLgeEVDcEitfFUv7ALbvLVGVyMysB3mxmO/uInZfXzWcJZsCMQDxuoxj4ZmO30jhkPIcCxGFCOvnUsnfU3TfGcouYm4M6iRpbKvtVnHPiy4bi6pcKf0="},{"rawBytes":"MIICiDCCAg6gAwIBAgIUZsIuSv9NkpJCNqtYEfCouVv5BzowCgYIKoZIzj0EAwMwUTELMAkGA1UEBhMCVVMxGzAZBgNVBAoMEk5WSURJQSBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcTlZJRElBIEFnZW50IENhcGFiaWxpdGllcyBDQTAgFw0yNjA0MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowVTELMAkGA1UEBhMCVVMxGzAZBgNVBAoMEk5WSURJQSBDb3Jwb3JhdGlvbjEpMCcGA1UEAwwgTlZJRElBIEFnZW50IENhcGFiaWxpdGllcyBJQ0EgMDEwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASI72cR3ctKGg4VWnB3bNja6g1Z2PnOmFEopkPof+QeIcPk9rT+g9MjJnq51EQXL93a7C2GJ9J985G4o2V85VD7wJ1RaXhluHW2rf3y8bQGeAYaKMr5s/hUgn+M3/9WlWejgaAwgZ0wHQYDVR0OBBYEFE8akgvEwEGV4lKwEaOswqxvLUKCMB8GA1UdIwQYMBaAFItnoAjjfuCEUvzyvWyI2vOGvwPjMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMDcGCCsGAQUFBwEBBCswKTAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AubmRpcy5udmlkaWEuY29tMAoGCCqGSM49BAMDA2gAMGUCMQCeIMMfAbyzPDacw2MxG+Yt1cikrJX/DVxiGfXuHmkkXn6VgSzE79+lkqDErpVO2gYCMCNEColOyvUvkzZGUEI1hQ3PfMgi3FIo9tHoBKMw4/wGBLFpu/0ubtmbBXM6/UMOEw=="},{"rawBytes":"MIICRTCCAcygAwIBAgIUeJdY3rV86EdvFmG7L8LJBsyQFYkwCgYIKoZIzj0EAwMwUTELMAkGA1UEBhMCVVMxGzAZBgNVBAoMEk5WSURJQSBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcTlZJRElBIEFnZW50IENhcGFiaWxpdGllcyBDQTAgFw0yNjA0MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowUTELMAkGA1UEBhMCVVMxGzAZBgNVBAoMEk5WSURJQSBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcTlZJRElBIEFnZW50IENhcGFiaWxpdGllcyBDQTB2MBAGByqGSM49AgEGBSuBBAAiA2IABAYpiXCDjJ9NT2eSDhyHJVSw1Tbze18cGG2F/578oWvHxg23eQAhNRYdq88i1iOshZSO6C29doKui5Xpmo/7Ctw9Sx4PP2RzOmIuOLCuTdNtKcTRwi4GEsd5BAFvWj42M6NjMGEwHQYDVR0OBBYEFItnoAjjfuCEUvzyvWyI2vOGvwPjMB8GA1UdIwQYMBaAFItnoAjjfuCEUvzyvWyI2vOGvwPjMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMDA2cAMGQCMCwtAjWLaNwgGWNCgdyNoTyvNhqWRECRJV2r3+7w8g0PL6NHLOsbkgE09BH95h8XlgIwTaQmbbUh2ChAJ5TA1wRiVDnCcvbzHlZl2jM2FcwQQZlk19LOAbyGMRixbu2Ww/rj"}]},"tlogEntries":[]},"dsseEnvelope":{"payload":"ewogICJfdHlwZSI6ICJodHRwczovL2luLXRvdG8uaW8vU3RhdGVtZW50L3YxIiwKICAic3ViamVjdCI6IFsKICAgIHsKICAgICAgIm5hbWUiOiAibmVtby1tYnJpZGdlLXJlc2lsaWVuY3kiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiOTkzZGQ3MzUyMmFkYzRkZjdjOWNkODdiODZhMDlkOTY5OWVmODdjMzczZDA0NTYwN2MxZTkwMGQ0YzBiOTYwMSIKICAgICAgfQogICAgfQogIF0sCiAgInByZWRpY2F0ZVR5cGUiOiAiaHR0cHM6Ly9tb2RlbF9zaWduaW5nL3NpZ25hdHVyZS92MS4wIiwKICAicHJlZGljYXRlIjogewogICAgInJlc291cmNlcyI6IFsKICAgICAgewogICAgICAgICJkaWdlc3QiOiAiN2E2Yzc3ZGIzNDg2MzMzOTRkNTFhNGNlYzE1MmQ1ODEwZGNmYWU2NzZkOGMwNjQxZWU3ZWJmYjk1Y2UzMDI4YyIsCiAgICAgICAgIm5hbWUiOiAiQkVOQ0hNQVJLLm1kIiwKICAgICAgICAiYWxnb3JpdGhtIjogInNoYTI1NiIKICAgICAgfSwKICAgICAgewogICAgICAgICJkaWdlc3QiOiAiY2Y4NTBiYWVlN2M3OTIwYTI2ZjU4OWM4YTQyZWRlNTZlYTkzNTAxMWU1MTQ2MWE4ZTE2YTc1NTYxODE5ZjVhNyIsCiAgICAgICAgIm5hbWUiOiAiU0tJTEwubWQiLAogICAgICAgICJhbGdvcml0aG0iOiAic2hhMjU2IgogICAgICB9LAogICAgICB7CiAgICAgICAgImRpZ2VzdCI6ICI2N2I0NmI1MzQ3MWI3NWMyODA1OGMyOGJiNzBlYjU4MDRmODcwZTk4MmViNWJhMzAxOTNiNTc4ZDVlNTM0MDIyIiwKICAgICAgICAibmFtZSI6ICJjYXJkLnlhbWwiLAogICAgICAgICJhbGdvcml0aG0iOiAic2hhMjU2IgogICAgICB9LAogICAgICB7CiAgICAgICAgImRpZ2VzdCI6ICIzNzUxN2U1ZjNkYzY2ODE5ZjYxZjVhN2JiOGFjZTE5MjEyODI0MTVmMTA1NTFkMmRlZmE1YzNlYjA5ODViNTcwIiwKICAgICAgICAibmFtZSI6ICJldmFscy9ldmFscy5qc29uIiwKICAgICAgICAiYWxnb3JpdGhtIjogInNoYTI1NiIKICAgICAgfSwKICAgICAgewogICAgICAgICJkaWdlc3QiOiAiNjg2M2ViYmJjZWJkODI5ZjA4NjJiZDA4Y2I1MDM3YmQzOWE0ZTQyYmFiMTNmMzhiMzljYzA1ODcwOWFiYWU3NCIsCiAgICAgICAgIm5hbWUiOiAic2tpbGwtY2FyZC5tZCIsCiAgICAgICAgImFsZ29yaXRobSI6ICJzaGEyNTYiCiAgICAgIH0KICAgIF0sCiAgICAic2VyaWFsaXphdGlvbiI6IHsKICAgICAgImhhc2hfdHlwZSI6ICJzaGEyNTYiLAogICAgICAibWV0aG9kIjogImZpbGVzIiwKICAgICAgImFsbG93X3N5bWxpbmtzIjogZmFsc2UsCiAgICAgICJpZ25vcmVfcGF0aHMiOiBbCiAgICAgICAgIi5naXQiLAogICAgICAgICIuZ2l0aHViIiwKICAgICAgICAiLmdpdGF0dHJpYnV0ZXMiLAogICAgICAgICIuZ2l0aWdub3JlIgogICAgICBdCiAgICB9CiAgfQp9","payloadType":"application/vnd.in-toto+json","signatures":[{"sig":"MGUCMBd0ju11zcrOnAD21/gqATsuyo1ct0ePK44Cu+KhmZ8dLN/zGdO+/ImkKDTQyUiYNQIxAP814Y9QF9MEEFbPMJEosPpFTdP2nWqtZJM8/k+rrOKKr80IuUTah5NV01ILWIIzzQ==","keyid":""}]}} \ No newline at end of file +{"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"x509CertificateChain":{"certificates":[{"rawBytes":"MIICgzCCAgmgAwIBAgIUKIyS7SxNteQIiWzK1dWj85E6520wCgYIKoZIzj0EAwMwVTELMAkGA1UEBhMCVVMxGzAZBgNVBAoMEk5WSURJQSBDb3Jwb3JhdGlvbjEpMCcGA1UEAwwgTlZJRElBIEFnZW50IENhcGFiaWxpdGllcyBJQ0EgMDEwHhcNMjYwNDAxMDAwMDAwWhcNMjgwNDIyMTUzMzA5WjBUMQswCQYDVQQGEwJVUzEbMBkGA1UECgwSTlZJRElBIENvcnBvcmF0aW9uMSgwJgYDVQQDDB9OVklESUEgQWdlbnQgU2tpbGxzIFNpZ25pbmcgMDAxMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEYoRM9bQl/dGlwSRNi6bTpIJUXH8Nv9GciP6LSflJYYMLCc296kpyuTSsk5ddbAWiDcFX3C/ydX3jwc+qCLYP6uHy9XphyLjOQ27Yb2J6rBLVtRBS1mgGco/Gr7fL6ODco4GaMIGXMB0GA1UdDgQWBBRQ/5ZW3nJ6lmo9SVk7I15o7UGmpTAfBgNVHSMEGDAWgBRPGpILxMBBleJSsBGjrMKsby1CgjAMBgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDA3BggrBgEFBQcBAQQrMCkwJwYIKwYBBQUHMAGGG2h0dHA6Ly9vY3NwLm5kaXMubnZpZGlhLmNvbTAKBggqhkjOPQQDAwNoADBlAjAUygu/GiOCIXrgGr4SmLgeEVDcEitfFUv7ALbvLVGVyMysB3mxmO/uInZfXzWcJZsCMQDxuoxj4ZmO30jhkPIcCxGFCOvnUsnfU3TfGcouYm4M6iRpbKvtVnHPiy4bi6pcKf0="},{"rawBytes":"MIICiDCCAg6gAwIBAgIUZsIuSv9NkpJCNqtYEfCouVv5BzowCgYIKoZIzj0EAwMwUTELMAkGA1UEBhMCVVMxGzAZBgNVBAoMEk5WSURJQSBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcTlZJRElBIEFnZW50IENhcGFiaWxpdGllcyBDQTAgFw0yNjA0MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowVTELMAkGA1UEBhMCVVMxGzAZBgNVBAoMEk5WSURJQSBDb3Jwb3JhdGlvbjEpMCcGA1UEAwwgTlZJRElBIEFnZW50IENhcGFiaWxpdGllcyBJQ0EgMDEwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASI72cR3ctKGg4VWnB3bNja6g1Z2PnOmFEopkPof+QeIcPk9rT+g9MjJnq51EQXL93a7C2GJ9J985G4o2V85VD7wJ1RaXhluHW2rf3y8bQGeAYaKMr5s/hUgn+M3/9WlWejgaAwgZ0wHQYDVR0OBBYEFE8akgvEwEGV4lKwEaOswqxvLUKCMB8GA1UdIwQYMBaAFItnoAjjfuCEUvzyvWyI2vOGvwPjMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMDcGCCsGAQUFBwEBBCswKTAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AubmRpcy5udmlkaWEuY29tMAoGCCqGSM49BAMDA2gAMGUCMQCeIMMfAbyzPDacw2MxG+Yt1cikrJX/DVxiGfXuHmkkXn6VgSzE79+lkqDErpVO2gYCMCNEColOyvUvkzZGUEI1hQ3PfMgi3FIo9tHoBKMw4/wGBLFpu/0ubtmbBXM6/UMOEw=="},{"rawBytes":"MIICRTCCAcygAwIBAgIUeJdY3rV86EdvFmG7L8LJBsyQFYkwCgYIKoZIzj0EAwMwUTELMAkGA1UEBhMCVVMxGzAZBgNVBAoMEk5WSURJQSBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcTlZJRElBIEFnZW50IENhcGFiaWxpdGllcyBDQTAgFw0yNjA0MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowUTELMAkGA1UEBhMCVVMxGzAZBgNVBAoMEk5WSURJQSBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcTlZJRElBIEFnZW50IENhcGFiaWxpdGllcyBDQTB2MBAGByqGSM49AgEGBSuBBAAiA2IABAYpiXCDjJ9NT2eSDhyHJVSw1Tbze18cGG2F/578oWvHxg23eQAhNRYdq88i1iOshZSO6C29doKui5Xpmo/7Ctw9Sx4PP2RzOmIuOLCuTdNtKcTRwi4GEsd5BAFvWj42M6NjMGEwHQYDVR0OBBYEFItnoAjjfuCEUvzyvWyI2vOGvwPjMB8GA1UdIwQYMBaAFItnoAjjfuCEUvzyvWyI2vOGvwPjMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMDA2cAMGQCMCwtAjWLaNwgGWNCgdyNoTyvNhqWRECRJV2r3+7w8g0PL6NHLOsbkgE09BH95h8XlgIwTaQmbbUh2ChAJ5TA1wRiVDnCcvbzHlZl2jM2FcwQQZlk19LOAbyGMRixbu2Ww/rj"}]},"tlogEntries":[]},"dsseEnvelope":{"payload":"ewogICJfdHlwZSI6ICJodHRwczovL2luLXRvdG8uaW8vU3RhdGVtZW50L3YxIiwKICAic3ViamVjdCI6IFsKICAgIHsKICAgICAgIm5hbWUiOiAibmVtby1tYnJpZGdlLXJlc2lsaWVuY3kiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNGU1OTdiNzcwYWZjODUxY2EwMjliYzI3ZDgxYTUwZTQ1ZGRkOTM0NThlZjMwOWIwYzIxOTU2M2Y0ZjRmZmRjMiIKICAgICAgfQogICAgfQogIF0sCiAgInByZWRpY2F0ZVR5cGUiOiAiaHR0cHM6Ly9tb2RlbF9zaWduaW5nL3NpZ25hdHVyZS92MS4wIiwKICAicHJlZGljYXRlIjogewogICAgInJlc291cmNlcyI6IFsKICAgICAgewogICAgICAgICJkaWdlc3QiOiAiMmRiZGRiMzM4NWJhMjlmODZlM2JiZjI5ODM1NWU1NDdjYzEyZjcyNDdmZjY0Y2UyYTA4NTAyMGNlMDIxMDIzYyIsCiAgICAgICAgImFsZ29yaXRobSI6ICJzaGEyNTYiLAogICAgICAgICJuYW1lIjogIkJFTkNITUFSSy5tZCIKICAgICAgfSwKICAgICAgewogICAgICAgICJkaWdlc3QiOiAiMDI2YzdlNGQ5YjA5OTRmOWQ1YmM4ZGEzZDU4ZTI1MDRkMzgzNmI5NTdiYzkwYWM1Y2I0YzU2ZTgxNmQ4Y2JlZiIsCiAgICAgICAgImFsZ29yaXRobSI6ICJzaGEyNTYiLAogICAgICAgICJuYW1lIjogIlNLSUxMLm1kIgogICAgICB9LAogICAgICB7CiAgICAgICAgImRpZ2VzdCI6ICI3ZGVhOGVlOWVlMzA5YmNhMGQ0MWNiZDA5OTI5NDhiZDkzOGVlYTQxNmQyNGJhOGRjY2VlYjU5MzQ5MDdjMTczIiwKICAgICAgICAiYWxnb3JpdGhtIjogInNoYTI1NiIsCiAgICAgICAgIm5hbWUiOiAiY2FyZC55YW1sIgogICAgICB9LAogICAgICB7CiAgICAgICAgImRpZ2VzdCI6ICIzNzUxN2U1ZjNkYzY2ODE5ZjYxZjVhN2JiOGFjZTE5MjEyODI0MTVmMTA1NTFkMmRlZmE1YzNlYjA5ODViNTcwIiwKICAgICAgICAiYWxnb3JpdGhtIjogInNoYTI1NiIsCiAgICAgICAgIm5hbWUiOiAiZXZhbHMvZXZhbHMuanNvbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJkaWdlc3QiOiAiY2M1NjlkZjhhN2E3MDhhNWE3NGRmMTMzNThmY2Q5ZWUxNzY5Zjk2MmI2YjNlYmFmMWIzZmE2NTFmNDA4OTY4MiIsCiAgICAgICAgImFsZ29yaXRobSI6ICJzaGEyNTYiLAogICAgICAgICJuYW1lIjogInNraWxsLWNhcmQubWQiCiAgICAgIH0KICAgIF0sCiAgICAic2VyaWFsaXphdGlvbiI6IHsKICAgICAgImFsbG93X3N5bWxpbmtzIjogZmFsc2UsCiAgICAgICJoYXNoX3R5cGUiOiAic2hhMjU2IiwKICAgICAgImlnbm9yZV9wYXRocyI6IFsKICAgICAgICAiLmdpdCIsCiAgICAgICAgIi5naXRhdHRyaWJ1dGVzIiwKICAgICAgICAiLmdpdGlnbm9yZSIsCiAgICAgICAgIi5naXRodWIiCiAgICAgIF0sCiAgICAgICJtZXRob2QiOiAiZmlsZXMiCiAgICB9CiAgfQp9","payloadType":"application/vnd.in-toto+json","signatures":[{"sig":"MGUCMCu+JH7t0ghpQud1jLocPWK69WwKongxzNbxDKABOH9MqqZE5MrsfUrncgoUxNAAtgIxAMJ5qq14V7U3Y7Bypc2mdU91q3xdtPSlkhgYppZ+XSiJeWvgNEFhj1ChBS9E0adX0w==","keyid":""}]}} \ No newline at end of file