diff --git a/skills/nemo-mbridge-mlm-bridge-training/BENCHMARK.md b/skills/nemo-mbridge-mlm-bridge-training/BENCHMARK.md
index 0b660773..54e1588b 100644
--- a/skills/nemo-mbridge-mlm-bridge-training/BENCHMARK.md
+++ b/skills/nemo-mbridge-mlm-bridge-training/BENCHMARK.md
@@ -7,11 +7,11 @@ This benchmark summarizes 3-Tier Evaluation from NVSkills-Eval results for the s
## Evaluation Summary
- Skill: `nemo-mbridge-mlm-bridge-training`
-- Evaluation date: 2026-06-02
+- Evaluation date: 2026-07-15
- NVSkills-Eval profile: `external`
-- Environment: `local`
+- Environment: `astra-sandbox`
- Dataset: 1 evaluation tasks
-- Attempts per task: 2
+- Attempts per task: 1
- Pass threshold: 50%
- Overall verdict: PASS
@@ -54,34 +54,28 @@ Task composition is derived from the evaluation dataset when possible. Entries w
| Dimension | Num | `claude-code` | `codex` |
|---|---:|---:|---:|
-| Security | 2 | 100% (+0%) | 100% (+0%) |
-| Correctness | 2 | 100% (+0%) | 88% (+0%) |
-| Discoverability | 2 | 100% (+0%) | 62% (+0%) |
-| Effectiveness | 2 | 100% (+0%) | 100% (+0%) |
-| Efficiency | 2 | 93% (-0%) | 60% (-0%) |
+| Security | 1 | 100% (+0%) | 100% (+0%) |
+| Correctness | 1 | 100% (+100%) | 97% (+25%) |
+| Discoverability | 1 | 100% (+100%) | 97% (+64%) |
+| Effectiveness | 1 | 100% (+95%) | 100% (+0%) |
+| Efficiency | 1 | 94% (+67%) | 96% (+59%) |
Score values show skill-assisted performance. Values in parentheses show uplift versus the no-skill baseline when baseline data is available.
## Tier 1: Static Validation Summary
-Tier 1 validation passed with observations. NVSkills-Eval ran 9 checks and found 12 total findings.
+Tier 1 validation passed with observations. NVSkills-Eval ran 1 checks and found 4 total findings.
Top findings:
-- MEDIUM QUALITY/quality_correctness: SKILL_SPEC recommended field missing: 'metadata.author' (`skills/nemo-mbridge-mlm-bridge-training/SKILL.md`)
-- MEDIUM QUALITY/quality_correctness: SKILL_SPEC recommended field missing: 'metadata.tags' (`skills/nemo-mbridge-mlm-bridge-training/SKILL.md`)
- MEDIUM SCHEMA/body_recommended_section: Missing recommended section: '## Instructions' (`skills/nemo-mbridge-mlm-bridge-training/SKILL.md`)
- MEDIUM SCHEMA/body_recommended_section: Missing recommended section: '## Examples' (`skills/nemo-mbridge-mlm-bridge-training/SKILL.md`)
- MEDIUM SCHEMA/author_missing: Author not specified in metadata (`skills/nemo-mbridge-mlm-bridge-training/SKILL.md`)
+- LOW SCHEMA/unexpected_file: Unexpected 'card.yaml' in skill root (`skills/nemo-mbridge-mlm-bridge-training/card.yaml`)
## 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-mlm-bridge-training': 145 char description
+This tier was not run or did not produce findings in this report.
## Publication Recommendation
diff --git a/skills/nemo-mbridge-mlm-bridge-training/SKILL.md b/skills/nemo-mbridge-mlm-bridge-training/SKILL.md
index c059545e..f20904ce 100644
--- a/skills/nemo-mbridge-mlm-bridge-training/SKILL.md
+++ b/skills/nemo-mbridge-mlm-bridge-training/SKILL.md
@@ -57,7 +57,7 @@ uv run python -m torch.distributed.run --nproc_per_node=1 \
--recipe vanilla_gpt_pretrain_config \
model.num_layers=2 model.hidden_size=256 \
model.num_attention_heads=4 model.ffn_hidden_size=1024 \
- model.seq_length=512 dataset.sequence_length=512 \
+ model.seq_length=512 dataset.seq_length=512 \
train.train_iters=10 train.global_batch_size=32 train.micro_batch_size=4 \
validation.eval_interval=10 validation.eval_iters=2 \
optimizer.lr=3e-4 optimizer.min_lr=3e-5 \
@@ -99,7 +99,7 @@ uv run python -m torch.distributed.run --nproc_per_node=2 \
model.tensor_model_parallel_size=2 model.sequence_parallel=true \
model.num_layers=4 model.hidden_size=256 \
model.num_attention_heads=4 model.ffn_hidden_size=1024 \
- model.seq_length=1024 dataset.sequence_length=1024 \
+ model.seq_length=1024 dataset.seq_length=1024 \
train.train_iters=10 train.global_batch_size=16 train.micro_batch_size=2 \
validation.eval_interval=10 validation.eval_iters=2 \
scheduler.lr_warmup_iters=2 scheduler.lr_decay_iters=10 \
@@ -169,7 +169,7 @@ git submodule update --init 3rdparty/Megatron-LM
value, also set `scheduler.lr_warmup_iters` and `scheduler.lr_decay_iters`
or you get an assertion error.
-5. **Use `dataset.sequence_length`** in CLI overrides, not `dataset.seq_length`.
+5. **Use `dataset.seq_length`** in CLI overrides for both pretraining and fine-tuning datasets.
6. **MoE OOM**: Large MoE models require full activation recomputation and
typically multi-node EP. TP does NOT reduce per-GPU expert memory.
diff --git a/skills/nemo-mbridge-mlm-bridge-training/card.yaml b/skills/nemo-mbridge-mlm-bridge-training/card.yaml
index 45b1f555..8cb7c912 100644
--- a/skills/nemo-mbridge-mlm-bridge-training/card.yaml
+++ b/skills/nemo-mbridge-mlm-bridge-training/card.yaml
@@ -28,7 +28,7 @@ recommended_path:
known_constraints:
- MLM requires --eval-iters and --eval-interval (no defaults).
- Bridge scheduler asserts lr_warmup_iters < lr_decay_iters.
- - Use dataset.sequence_length (not dataset.seq_length) in CLI overrides.
+ - Use dataset.seq_length in CLI overrides for both pretraining and fine-tuning datasets.
- MLM requires PYTHONPATH to include 3rdparty/Megatron-LM.
- Bridge auto-resumes from nemo_experiments/ if previous checkpoint exists.
known_limitations:
diff --git a/skills/nemo-mbridge-mlm-bridge-training/skill-card.md b/skills/nemo-mbridge-mlm-bridge-training/skill-card.md
index 3af7a92a..311f5e59 100644
--- a/skills/nemo-mbridge-mlm-bridge-training/skill-card.md
+++ b/skills/nemo-mbridge-mlm-bridge-training/skill-card.md
@@ -1,5 +1,5 @@
## Description:
-Run Megatron-LM (MLM) and Megatron Bridge training with mock or real data, covering correlation testing, available recipes, and multi-GPU examples.
+Run Megatron-LM (MLM) and Megatron Bridge training with mock or real data. Covers correlation testing, available recipes, and multi-GPU examples.
This skill is ready for commercial/non-commercial use.
@@ -9,22 +9,29 @@ NVIDIA
### License/Terms of Use:
Apache 2.0
## Use Case:
-Developers and engineers running Megatron-LM or Megatron Bridge training, comparing MLM vs Bridge loss curves, translating MLM CLI args to Bridge config, or debugging correlation divergences.
+Developers and engineers running Megatron-LM and Megatron Bridge training, comparing MLM vs Bridge loss curves, translating MLM CLI arguments to Bridge config, and investigating training correlation issues.
### Deployment Geography for Use:
Global
+## Requirements / Dependencies:
+**Requires API Key or External Credential:** [Not Specified]
+**Credential Type(s):** [None identified]
+
+Do not include secrets in prompts/logs/output; use least-privilege credentials; rotate keys as appropriate.
+
## 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-LM to Megatron Bridge Guide](docs/megatron-lm-to-megatron-bridge.md)
-- [Megatron Bridge Documentation](https://docs.nvidia.com/nemo/megatron-bridge/latest/)
+- [Bridge Training Entry Point (run_recipe.py)](scripts/training/run_recipe.py)
+- [NeMo Megatron Bridge Documentation](https://docs.nvidia.com/nemo/megatron-bridge/latest/)
## Skill Output:
-**Output Type(s):** [Shell commands, Configuration instructions, Analysis]
+**Output Type(s):** [Shell commands, Configuration instructions]
**Output Format:** [Markdown with inline bash code blocks]
**Output Parameters:** [1D]
**Other Properties Related to Output:** [None]
@@ -36,7 +43,7 @@ Mitigation: Review and scan skill before deployment.
## Evaluation Tasks:
-Evaluated against 1 evaluation task (positive skill-activation) with 2 attempts per task via NVSkills-Eval external profile.
+Evaluated against 1 internal skill task (positive activation) in astra-sandbox environment using NVSkills-Eval external profile.
## Evaluation Metrics Used:
Reported benchmark dimensions:
@@ -60,14 +67,14 @@ Underlying evaluation signals used in this run:
## Evaluation Results:
| Dimension | Num | `claude-code` | `codex` |
|---|---:|---:|---:|
-| Security | 2 | 100% (+0%) | 100% (+0%) |
-| Correctness | 2 | 100% (+0%) | 88% (+0%) |
-| Discoverability | 2 | 100% (+0%) | 62% (+0%) |
-| Effectiveness | 2 | 100% (+0%) | 100% (+0%) |
-| Efficiency | 2 | 93% (-0%) | 60% (-0%) |
+| Security | 1 | 100% (+0%) | 100% (+0%) |
+| Correctness | 1 | 100% (+100%) | 97% (+25%) |
+| Discoverability | 1 | 100% (+100%) | 97% (+64%) |
+| Effectiveness | 1 | 100% (+95%) | 100% (+0%) |
+| Efficiency | 1 | 94% (+67%) | 96% (+59%) |
## Skill Version(s):
-b0f64d72 (source: git SHA, committed 2026-06-02)
+1.0.0+b7643bd (source: pyproject.toml)
## 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-mlm-bridge-training/skill.oms.sig b/skills/nemo-mbridge-mlm-bridge-training/skill.oms.sig
index 71005633..2001fb8f 100644
--- a/skills/nemo-mbridge-mlm-bridge-training/skill.oms.sig
+++ b/skills/nemo-mbridge-mlm-bridge-training/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":"ewogICJfdHlwZSI6ICJodHRwczovL2luLXRvdG8uaW8vU3RhdGVtZW50L3YxIiwKICAic3ViamVjdCI6IFsKICAgIHsKICAgICAgIm5hbWUiOiAibmVtby1tYnJpZGdlLW1sbS1icmlkZ2UtdHJhaW5pbmciLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMjA3Njg0OGM0NTQ3YzU0MTg0YjI0MjE2ZTM1Y2NmODkxYWQ1MTYxYTEzZjVhNjU0YWU3MjQ2NmIyMTc4YWM1ZCIKICAgICAgfQogICAgfQogIF0sCiAgInByZWRpY2F0ZVR5cGUiOiAiaHR0cHM6Ly9tb2RlbF9zaWduaW5nL3NpZ25hdHVyZS92MS4wIiwKICAicHJlZGljYXRlIjogewogICAgInJlc291cmNlcyI6IFsKICAgICAgewogICAgICAgICJuYW1lIjogIkJFTkNITUFSSy5tZCIsCiAgICAgICAgImRpZ2VzdCI6ICJlMDFmNjVmZjk1MGM1ZTBhMTM0YzM1Yzg0ZmI0ODQ0YjkxOTBlNDhmMTMyZWNhMTVkYWZiZDViNzkxNTA5ZDQ1IiwKICAgICAgICAiYWxnb3JpdGhtIjogInNoYTI1NiIKICAgICAgfSwKICAgICAgewogICAgICAgICJuYW1lIjogIlNLSUxMLm1kIiwKICAgICAgICAiZGlnZXN0IjogIjJjYWVlMzk1NDA5YWNhNTZiNWMzZGJkZTkwZDE0MWFjMzc4YmFlMWE4ZTQ0NGUyM2Q3M2U2MWExMWRhODc5ZGQiLAogICAgICAgICJhbGdvcml0aG0iOiAic2hhMjU2IgogICAgICB9LAogICAgICB7CiAgICAgICAgIm5hbWUiOiAiY2FyZC55YW1sIiwKICAgICAgICAiZGlnZXN0IjogImI5MGRmYWE0MmQyMGUxNTJjYTI2YjBlMDNkOGIxZjY5YjU2YzM2Yjg0YmJmYjA1MDZlMmQ4Y2Y4MTJmOWYxNzciLAogICAgICAgICJhbGdvcml0aG0iOiAic2hhMjU2IgogICAgICB9LAogICAgICB7CiAgICAgICAgIm5hbWUiOiAiZXZhbHMvZXZhbHMuanNvbiIsCiAgICAgICAgImRpZ2VzdCI6ICIyM2QyNmQzMWM0ZGQ0M2Y0NjQ2OTUyZDRiZjk5NDhlMTdhNjAwYWFkZTczN2MyYzM1N2YwZDdiYzA3ZDM5MDk4IiwKICAgICAgICAiYWxnb3JpdGhtIjogInNoYTI1NiIKICAgICAgfSwKICAgICAgewogICAgICAgICJuYW1lIjogInNraWxsLWNhcmQubWQiLAogICAgICAgICJkaWdlc3QiOiAiMWY0YWJiMGUxNjZiODlhMzg2ZDBhMDY3NDU1M2M3OWNmYWQyMjUxNzA3ODI4OWNlNGNkZDM2MDMwMDZmOTZkOSIsCiAgICAgICAgImFsZ29yaXRobSI6ICJzaGEyNTYiCiAgICAgIH0KICAgIF0sCiAgICAic2VyaWFsaXphdGlvbiI6IHsKICAgICAgImlnbm9yZV9wYXRocyI6IFsKICAgICAgICAiLmdpdGF0dHJpYnV0ZXMiLAogICAgICAgICIuZ2l0aHViIiwKICAgICAgICAiLmdpdCIsCiAgICAgICAgIi5naXRpZ25vcmUiCiAgICAgIF0sCiAgICAgICJhbGxvd19zeW1saW5rcyI6IGZhbHNlLAogICAgICAiaGFzaF90eXBlIjogInNoYTI1NiIsCiAgICAgICJtZXRob2QiOiAiZmlsZXMiCiAgICB9CiAgfQp9","payloadType":"application/vnd.in-toto+json","signatures":[{"sig":"MGQCMG3Jjn1qc0DtljajZCYqos3Hxo6d/dh6moV6VqpaH6jldahsi0Li7SGbF6w26zt3SwIwP9xszKA0NfyAI9ibT1gzuVegSJ6Z8vTvxV3LxvDU9lpuHryNb3QPn28ikUP1hGRO","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":"ewogICJfdHlwZSI6ICJodHRwczovL2luLXRvdG8uaW8vU3RhdGVtZW50L3YxIiwKICAic3ViamVjdCI6IFsKICAgIHsKICAgICAgIm5hbWUiOiAibmVtby1tYnJpZGdlLW1sbS1icmlkZ2UtdHJhaW5pbmciLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiYzNhNDRjMWFhMmI5ODJmODE0ZDhjOTZkMjE4Y2VmYWNlNzBlODJjZjkyN2Q0NGJmYjFiZmEzZWVjZDc4MzIzMyIKICAgICAgfQogICAgfQogIF0sCiAgInByZWRpY2F0ZVR5cGUiOiAiaHR0cHM6Ly9tb2RlbF9zaWduaW5nL3NpZ25hdHVyZS92MS4wIiwKICAicHJlZGljYXRlIjogewogICAgInJlc291cmNlcyI6IFsKICAgICAgewogICAgICAgICJkaWdlc3QiOiAiNjA1MzkxZjI2ZjAwOTA1NDk4NTMwOTUxMjkxODFhZTIwMTMyMjRjMjg0MTFmNmYxOGY1N2UyYzY1ODI2ZWQ2ZSIsCiAgICAgICAgImFsZ29yaXRobSI6ICJzaGEyNTYiLAogICAgICAgICJuYW1lIjogIkJFTkNITUFSSy5tZCIKICAgICAgfSwKICAgICAgewogICAgICAgICJkaWdlc3QiOiAiN2VhZTk3NmViNDlhNzNlODdkMWU3N2E1Mjk1YzNhNzllNGYxZmFjN2E3MGRkMDY0M2NiZmZjNWQ0ZDM4MDFjMSIsCiAgICAgICAgImFsZ29yaXRobSI6ICJzaGEyNTYiLAogICAgICAgICJuYW1lIjogIlNLSUxMLm1kIgogICAgICB9LAogICAgICB7CiAgICAgICAgImRpZ2VzdCI6ICJlODMwNmU4NjQ0MGFkN2YzYjgwN2ZlNzQ1ODI5MjhmMzRjMmEzMDUwZDUxMGE3ZGMwZGRjNjk1OWVkOGU4MzYzIiwKICAgICAgICAiYWxnb3JpdGhtIjogInNoYTI1NiIsCiAgICAgICAgIm5hbWUiOiAiY2FyZC55YW1sIgogICAgICB9LAogICAgICB7CiAgICAgICAgImRpZ2VzdCI6ICIyM2QyNmQzMWM0ZGQ0M2Y0NjQ2OTUyZDRiZjk5NDhlMTdhNjAwYWFkZTczN2MyYzM1N2YwZDdiYzA3ZDM5MDk4IiwKICAgICAgICAiYWxnb3JpdGhtIjogInNoYTI1NiIsCiAgICAgICAgIm5hbWUiOiAiZXZhbHMvZXZhbHMuanNvbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJkaWdlc3QiOiAiOWU4MGMzYTdhZDIxNWQ4NzgyMzc5ZTZhZDE4NTMxMmNjYTJiNjQ4NmM2MGU5ZDlhODExYWU2NzQ0NThjY2E2OSIsCiAgICAgICAgImFsZ29yaXRobSI6ICJzaGEyNTYiLAogICAgICAgICJuYW1lIjogInNraWxsLWNhcmQubWQiCiAgICAgIH0KICAgIF0sCiAgICAic2VyaWFsaXphdGlvbiI6IHsKICAgICAgImhhc2hfdHlwZSI6ICJzaGEyNTYiLAogICAgICAiaWdub3JlX3BhdGhzIjogWwogICAgICAgICIuZ2l0aWdub3JlIiwKICAgICAgICAiLmdpdCIsCiAgICAgICAgIi5naXRhdHRyaWJ1dGVzIiwKICAgICAgICAiLmdpdGh1YiIKICAgICAgXSwKICAgICAgImFsbG93X3N5bWxpbmtzIjogZmFsc2UsCiAgICAgICJtZXRob2QiOiAiZmlsZXMiCiAgICB9CiAgfQp9","payloadType":"application/vnd.in-toto+json","signatures":[{"sig":"MGUCMHMrwkKx/FrVi3+7AV5le48dj3xnni58TPn7yeMDcTSLRvneLkdSUKRZy76viF0DdQIxAJ2aOHu5OJ+WVlETrTZJk8a/gu82+rZgW5WduCAn5TmYDL0IljX2jZUhDhbMKw7RBQ==","keyid":""}]}}
\ No newline at end of file
diff --git a/skills/nemo-mbridge-perf-sequence-packing/BENCHMARK.md b/skills/nemo-mbridge-perf-sequence-packing/BENCHMARK.md
index 99362c04..430426c7 100644
--- a/skills/nemo-mbridge-perf-sequence-packing/BENCHMARK.md
+++ b/skills/nemo-mbridge-perf-sequence-packing/BENCHMARK.md
@@ -7,7 +7,7 @@ This benchmark summarizes 3-Tier Evaluation from NVSkills-Eval results for the s
## Evaluation Summary
- Skill: `nemo-mbridge-perf-sequence-packing`
-- Evaluation date: 2026-07-14
+- Evaluation date: 2026-07-15
- NVSkills-Eval profile: `external`
- Environment: `astra-sandbox`
- Dataset: 1 evaluation tasks
@@ -55,10 +55,10 @@ Task composition is derived from the evaluation dataset when possible. Entries w
| Dimension | Num | `claude-code` | `codex` |
|---|---:|---:|---:|
| Security | 1 | 100% (+0%) | 100% (+0%) |
-| Correctness | 1 | 100% (+100%) | 94% (+19%) |
-| Discoverability | 1 | 100% (+100%) | 81% (+44%) |
-| Effectiveness | 1 | 96% (+96%) | 89% (+7%) |
-| Efficiency | 1 | 94% (+67%) | 70% (+27%) |
+| Correctness | 1 | 100% (+100%) | 97% (+42%) |
+| Discoverability | 1 | 100% (+100%) | 97% (+69%) |
+| Effectiveness | 1 | 95% (+95%) | 94% (+48%) |
+| Efficiency | 1 | 94% (+67%) | 96% (+77%) |
Score values show skill-assisted performance. Values in parentheses show uplift versus the no-skill baseline when baseline data is available.
diff --git a/skills/nemo-mbridge-perf-sequence-packing/SKILL.md b/skills/nemo-mbridge-perf-sequence-packing/SKILL.md
index ad55770d..d47626d3 100644
--- a/skills/nemo-mbridge-perf-sequence-packing/SKILL.md
+++ b/skills/nemo-mbridge-perf-sequence-packing/SKILL.md
@@ -76,19 +76,22 @@ cfg.model.context_parallel_size = 2
LLM packed SFT config surface:
-```110:125:src/megatron/bridge/recipes/utils/finetune_utils.py
-dataset_kwargs = {"chat": True, "use_hf_tokenizer_chat_template": True}
+```128:143:src/megatron/bridge/recipes/utils/dataset_utils.py
+dataset_kwargs = {}
offline_packing_specs = None
-if packed_sequence:
+if enable_offline_packing:
dataset_kwargs["pad_to_max_length"] = True
offline_packing_specs = PackedSequenceSpecs(packed_sequence_size=seq_length, pad_seq_to_mult=pad_seq_to_mult)
-return _text_hf_dataset_provider(
- ...
- enable_offline_packing=packed_sequence,
+return _text_hf_dataset_config(
+ source=HFDatasetSourceConfig(dataset_name="squad"),
+ preprocessing=PromptCompletionSFTPreprocessingConfig(separator=" "),
+ seq_length=seq_length,
+ enable_offline_packing=enable_offline_packing,
offline_packing_specs=offline_packing_specs,
dataset_kwargs=dataset_kwargs,
- ...
+ val_proportion=0.1,
+ num_workers=1,
)
```
diff --git a/skills/nemo-mbridge-perf-sequence-packing/card.yaml b/skills/nemo-mbridge-perf-sequence-packing/card.yaml
index 448b584a..bbf14485 100644
--- a/skills/nemo-mbridge-perf-sequence-packing/card.yaml
+++ b/skills/nemo-mbridge-perf-sequence-packing/card.yaml
@@ -80,7 +80,7 @@ evidence:
- src/megatron/bridge/data/sequence_batching.py
- src/megatron/bridge/training/vlm_step.py
- src/megatron/bridge/training/config.py
- - src/megatron/bridge/recipes/utils/finetune_utils.py
+ - src/megatron/bridge/recipes/utils/dataset_utils.py
- src/megatron/bridge/recipes/common.py
- src/megatron/bridge/recipes/llama/h100/llama3.py
- src/megatron/bridge/recipes/qwen/h100/qwen3_next.py
diff --git a/skills/nemo-mbridge-perf-sequence-packing/skill-card.md b/skills/nemo-mbridge-perf-sequence-packing/skill-card.md
index f3a97d1a..08b03760 100644
--- a/skills/nemo-mbridge-perf-sequence-packing/skill-card.md
+++ b/skills/nemo-mbridge-perf-sequence-packing/skill-card.md
@@ -9,7 +9,7 @@ NVIDIA
### License/Terms of Use:
Apache 2.0
## Use Case:
-Developers and engineers enabling sequence packing or long-context SFT in Megatron-Bridge, or investigating commits that broke packing behavior.
+Developers and engineers enabling sequence packing or long-context training in Megatron-Bridge, including configuring offline packed SFT for LLMs, in-batch packing for VLMs, and context parallelism constraints.
### Deployment Geography for Use:
Global
@@ -25,24 +25,24 @@ Risk: Review before execution as proposals could introduce incorrect or misleadi
Mitigation: Review and scan skill before deployment.
## Reference(s):
-- [Performance Tuning Guide](docs/performance-guide.md)
- [Megatron Bridge Documentation](https://docs.nvidia.com/nemo/megatron-bridge/latest/)
+- [Performance Tuning Guide](docs/performance-guide.md)
## Skill Output:
-**Output Type(s):** [Configuration instructions, Code]
+**Output Type(s):** [Analysis, Configuration instructions, Shell commands]
**Output Format:** [Markdown with inline Python code blocks]
**Output Parameters:** [1D]
**Other Properties Related to Output:** [None]
## Evaluation Agents Used:
-- claude-code
-- codex
+- Claude Code (`claude-code`)
+- Codex (`codex`)
## Evaluation Tasks:
-Evaluated against 1 internal skill evaluation task (positive activation case).
+Evaluated against 1 internal skill task in the NVSkills-Eval external profile.
## Evaluation Metrics Used:
Reported benchmark dimensions:
@@ -67,10 +67,15 @@ Underlying evaluation signals used in this run:
| Dimension | Num | `claude-code` | `codex` |
|---|---:|---:|---:|
| Security | 1 | 100% (+0%) | 100% (+0%) |
-| Correctness | 1 | 100% (+100%) | 94% (+19%) |
-| Discoverability | 1 | 100% (+100%) | 81% (+44%) |
-| Effectiveness | 1 | 96% (+96%) | 89% (+7%) |
-| Efficiency | 1 | 94% (+67%) | 70% (+27%) |
+| Correctness | 1 | 100% (+100%) | 97% (+42%) |
+| Discoverability | 1 | 100% (+100%) | 97% (+69%) |
+| Effectiveness | 1 | 95% (+95%) | 94% (+48%) |
+| Efficiency | 1 | 94% (+67%) | 96% (+77%) |
+
+## Testing Completed:
+**[x] Agent Red-Teaming**
+**[ ] Network Security**
+**[ ] Product Security**
## Skill Version(s):
1.0.0+b7643bd (source: pyproject.toml)
diff --git a/skills/nemo-mbridge-perf-sequence-packing/skill.oms.sig b/skills/nemo-mbridge-perf-sequence-packing/skill.oms.sig
index be671d13..edc9ae55 100644
--- a/skills/nemo-mbridge-perf-sequence-packing/skill.oms.sig
+++ b/skills/nemo-mbridge-perf-sequence-packing/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":"ewogICJfdHlwZSI6ICJodHRwczovL2luLXRvdG8uaW8vU3RhdGVtZW50L3YxIiwKICAic3ViamVjdCI6IFsKICAgIHsKICAgICAgIm5hbWUiOiAibmVtby1tYnJpZGdlLXBlcmYtc2VxdWVuY2UtcGFja2luZyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI5ODAyYTgyYWY3NTBmM2Q5NTgxNmU1MmRjM2VjMWUwNzE0MTE3MjhmZWM1MWRkMzcwNzBlNTU5NzAyYTc3ODBiIgogICAgICB9CiAgICB9CiAgXSwKICAicHJlZGljYXRlVHlwZSI6ICJodHRwczovL21vZGVsX3NpZ25pbmcvc2lnbmF0dXJlL3YxLjAiLAogICJwcmVkaWNhdGUiOiB7CiAgICAicmVzb3VyY2VzIjogWwogICAgICB7CiAgICAgICAgIm5hbWUiOiAiQkVOQ0hNQVJLLm1kIiwKICAgICAgICAiZGlnZXN0IjogImE5ODVkYzNmYWFjYTQ0MmZiNzI3NmY2N2Q0ODU2ZDE3NjIwZGQxYWFmOTcyYTIzYjAwMDZmNjViOTY3N2JkYjMiLAogICAgICAgICJhbGdvcml0aG0iOiAic2hhMjU2IgogICAgICB9LAogICAgICB7CiAgICAgICAgIm5hbWUiOiAiU0tJTEwubWQiLAogICAgICAgICJkaWdlc3QiOiAiOWNiNzFmMGE1ZGI3ODU1Y2ZkN2MwNTBjODVhMWZjMTFhZmE3NmZjY2U2NjU1OTM5YjQ3YTZmOGUwZWIwYmJhZCIsCiAgICAgICAgImFsZ29yaXRobSI6ICJzaGEyNTYiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibmFtZSI6ICJjYXJkLnlhbWwiLAogICAgICAgICJkaWdlc3QiOiAiYzhmOWM5M2IyMjQ3YjkwYzQ0MWY4NjczMzgxYWRlZWM1ZjJlZTJjMTViMzMyNjNhNzAyOWVjYzAwYTdiNjg5MyIsCiAgICAgICAgImFsZ29yaXRobSI6ICJzaGEyNTYiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibmFtZSI6ICJldmFscy9ldmFscy5qc29uIiwKICAgICAgICAiZGlnZXN0IjogIjM4OGRiNzljYjdkMzE3ZWUzMzlkN2NmMzgwM2E4M2JkZTkxMzY0YjE5NmUyMDlmMzUxODY1Y2FjMDUyOWIwN2IiLAogICAgICAgICJhbGdvcml0aG0iOiAic2hhMjU2IgogICAgICB9LAogICAgICB7CiAgICAgICAgIm5hbWUiOiAic2tpbGwtY2FyZC5tZCIsCiAgICAgICAgImRpZ2VzdCI6ICIxZmE0MjMwNWVjNTBmMjZkNmYxMjllZDA2NGI1MTIyNDIxZmJjYWQ2MjExMDZhMWZiM2ZjOWM3M2ExYThmZmJkIiwKICAgICAgICAiYWxnb3JpdGhtIjogInNoYTI1NiIKICAgICAgfQogICAgXSwKICAgICJzZXJpYWxpemF0aW9uIjogewogICAgICAiaGFzaF90eXBlIjogInNoYTI1NiIsCiAgICAgICJhbGxvd19zeW1saW5rcyI6IGZhbHNlLAogICAgICAibWV0aG9kIjogImZpbGVzIiwKICAgICAgImlnbm9yZV9wYXRocyI6IFsKICAgICAgICAiLmdpdCIsCiAgICAgICAgIi5naXRhdHRyaWJ1dGVzIiwKICAgICAgICAiLmdpdGh1YiIsCiAgICAgICAgIi5naXRpZ25vcmUiCiAgICAgIF0KICAgIH0KICB9Cn0=","payloadType":"application/vnd.in-toto+json","signatures":[{"sig":"MGUCMCC8O3W8W0lMPUv6F0cjZXShOAjoUABWFNVEFCrf/qQWRGpHJdKGzHzSGNoMwZLS9gIxAP89j/bHHx1/mpd9JIE8h0AfxKzU8su5gN3TxJ++Zmsa2QHOFDpuU/qQw3tyVB9yTA==","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":"ewogICJfdHlwZSI6ICJodHRwczovL2luLXRvdG8uaW8vU3RhdGVtZW50L3YxIiwKICAic3ViamVjdCI6IFsKICAgIHsKICAgICAgIm5hbWUiOiAibmVtby1tYnJpZGdlLXBlcmYtc2VxdWVuY2UtcGFja2luZyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI0ZTRmMDM4OTE3NTBlNzBlMzIzNDdiZTExYTM1NDEyMDBjZmIwNjY2MmY1OGFhMTI1YzhlZWU4YTM2NWY2ZTQzIgogICAgICB9CiAgICB9CiAgXSwKICAicHJlZGljYXRlVHlwZSI6ICJodHRwczovL21vZGVsX3NpZ25pbmcvc2lnbmF0dXJlL3YxLjAiLAogICJwcmVkaWNhdGUiOiB7CiAgICAicmVzb3VyY2VzIjogWwogICAgICB7CiAgICAgICAgIm5hbWUiOiAiQkVOQ0hNQVJLLm1kIiwKICAgICAgICAiYWxnb3JpdGhtIjogInNoYTI1NiIsCiAgICAgICAgImRpZ2VzdCI6ICI4NDM4ZjljODMwOTFlODI0YmM1NmRjNmJiNjNkZTc1MGZjNGQwYjFhOGY1MTU3NTk5OTliZTI0MzdlNjhlY2QyIgogICAgICB9LAogICAgICB7CiAgICAgICAgIm5hbWUiOiAiU0tJTEwubWQiLAogICAgICAgICJhbGdvcml0aG0iOiAic2hhMjU2IiwKICAgICAgICAiZGlnZXN0IjogIjNiOTFlOTI1ZjIyY2MxMjBiYTZlZDA1ZmZhNmFjYjQxN2I3NjEyNGQwMWRmYzZjNzc0YmIxNjc3MDJmNzkwYWUiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibmFtZSI6ICJjYXJkLnlhbWwiLAogICAgICAgICJhbGdvcml0aG0iOiAic2hhMjU2IiwKICAgICAgICAiZGlnZXN0IjogIjg5ODZlZjUwMTM2ZTViYmNhZjlmY2E5ZjUxYjU4NDBiNTM2MzQ3MzY0ODZiOTM3YWQ0YmIyNmVlOGExODY5YzEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibmFtZSI6ICJldmFscy9ldmFscy5qc29uIiwKICAgICAgICAiYWxnb3JpdGhtIjogInNoYTI1NiIsCiAgICAgICAgImRpZ2VzdCI6ICIzODhkYjc5Y2I3ZDMxN2VlMzM5ZDdjZjM4MDNhODNiZGU5MTM2NGIxOTZlMjA5ZjM1MTg2NWNhYzA1MjliMDdiIgogICAgICB9LAogICAgICB7CiAgICAgICAgIm5hbWUiOiAic2tpbGwtY2FyZC5tZCIsCiAgICAgICAgImFsZ29yaXRobSI6ICJzaGEyNTYiLAogICAgICAgICJkaWdlc3QiOiAiYTk2ZWE1YzMzYzNkYTA3MjBkMTYyZjQxMzk3YzhjYTQ5YTFjNmM1N2NhZjkyYTVhZDg5YWFiODQ2OTUzNDRjMyIKICAgICAgfQogICAgXSwKICAgICJzZXJpYWxpemF0aW9uIjogewogICAgICAiaGFzaF90eXBlIjogInNoYTI1NiIsCiAgICAgICJtZXRob2QiOiAiZmlsZXMiLAogICAgICAiYWxsb3dfc3ltbGlua3MiOiBmYWxzZSwKICAgICAgImlnbm9yZV9wYXRocyI6IFsKICAgICAgICAiLmdpdGF0dHJpYnV0ZXMiLAogICAgICAgICIuZ2l0IiwKICAgICAgICAiLmdpdGh1YiIsCiAgICAgICAgIi5naXRpZ25vcmUiCiAgICAgIF0KICAgIH0KICB9Cn0=","payloadType":"application/vnd.in-toto+json","signatures":[{"sig":"MGUCMQCIIfg4Z7OFbO0zsvv+iiycQhQCIT4S5hUR8kMs+4QgR4j33XvVupCEEKEe0EKJshECMH0h+3h9UoB0hwQ+C5SeeEC2Tq9Mg1g1w0L2DqembsxJaHRTUWBwrH6zrtlRgp0lQQ==","keyid":""}]}}
\ No newline at end of file
diff --git a/skills/nemotron-retrieval-recipes/BENCHMARK.md b/skills/nemotron-retrieval-recipes/BENCHMARK.md
index c0298042..a565d9ab 100644
--- a/skills/nemotron-retrieval-recipes/BENCHMARK.md
+++ b/skills/nemotron-retrieval-recipes/BENCHMARK.md
@@ -7,11 +7,11 @@ This benchmark summarizes 3-Tier Evaluation from NVSkills-Eval results for the s
## Evaluation Summary
- Skill: `nemotron-retrieval-recipes`
-- Evaluation date: 2026-05-29
+- Evaluation date: 2026-07-15
- NVSkills-Eval profile: `external`
-- Environment: `local`
-- Dataset: 14 evaluation tasks
-- Attempts per task: 2
+- Environment: `astra-sandbox`
+- Dataset: 40 evaluation tasks
+- Attempts per task: 1
- Pass threshold: 50%
- Overall verdict: PASS
@@ -42,46 +42,31 @@ Underlying evaluation signals used in this run:
## Test Tasks
-The benchmark dataset contained 14 evaluation tasks:
-
-- Positive tasks: 12 tasks where the skill was expected to activate.
-- Negative tasks: 2 tasks where no skill was expected.
-- Unlabeled tasks: 0 tasks where positive/negative intent could not be inferred.
-
-Task composition is derived from the evaluation dataset when possible. Entries with `expected_skill` set are treated as positive skill-activation cases, while entries with `expected_skill: null` are treated as negative activation cases.
+The benchmark included 40 recorded Tier 3 trials, but the source evaluation dataset was not available in this report payload.
## Results
| Dimension | Num | `claude-code` | `codex` |
|---|---:|---:|---:|
-| Security | 8 | 100% (+11%) | 96% (+14%) |
-| Correctness | 8 | 85% (+3%) | 87% (+12%) |
-| Discoverability | 8 | 56% (+12%) | 63% (+8%) |
-| Effectiveness | 8 | 88% (+2%) | 90% (+23%) |
-| Efficiency | 8 | 48% (+12%) | 54% (+4%) |
+| Security | 8 | 100% (+0%) | 100% (+0%) |
+| Correctness | 8 | 96% (+45%) | 90% (+28%) |
+| Discoverability | 8 | 90% (+54%) | 84% (+42%) |
+| Effectiveness | 8 | 89% (+36%) | 85% (+24%) |
+| Efficiency | 8 | 83% (+40%) | 82% (+33%) |
Score values show skill-assisted performance. Values in parentheses show uplift versus the no-skill baseline when baseline data is available.
## Tier 1: Static Validation Summary
-Tier 1 validation passed. NVSkills-Eval ran 9 checks and found 0 total findings.
+Tier 1 validation passed. NVSkills-Eval ran 1 checks and found 0 total findings.
Notable observations:
-- SECURITY: No security vulnerabilities detected (secrets, API keys, credentials)
- SCHEMA: Found skill manifest: SKILL.md
-- VERSION: No semantic version label present; resource will use commit-hash history (opting back out of an existing label is allowed)
-- PII: Scanning 5 files for PII
-- LICENSE: no findings reported.
## Tier 2: Deduplication Summary
-Tier 2 validation passed. NVSkills-Eval ran 2 checks and found 0 total findings.
-
-Notable observations:
-
-- Context Deduplication: Collected 5 file(s)
-- Inter-Skill Deduplication: Parsed skill 'nemotron-retrieval-recipes': 125 char description
+This tier was not run or did not produce findings in this report.
## Publication Recommendation
diff --git a/skills/nemotron-retrieval-recipes/SKILL.md b/skills/nemotron-retrieval-recipes/SKILL.md
index 9528347c..99bc7dea 100644
--- a/skills/nemotron-retrieval-recipes/SKILL.md
+++ b/skills/nemotron-retrieval-recipes/SKILL.md
@@ -1,6 +1,6 @@
---
name: nemotron-retrieval-recipes
-version: "0.1.0"
+version: "0.2.0"
author: "NVIDIA Nemotron Team "
license: Apache-2.0
tags:
@@ -38,7 +38,7 @@ Use it only for tasks tied to the public Nemotron `embed` or `rerank` recipe flo
## Security Notes
-Use `Bash` for repo-scoped inspection, help, dry-run, and user-approved execution commands. Do not run API, GPU, Docker, Slurm, NIM, or other long-running work unless the user explicitly asks for it. Never run broad environment dumps or commands that expose secret values. Prefer dotlist overrides and config review over editing recipe defaults.
+Use `Bash` for repo-scoped inspection, help, dry-run, and user-approved execution commands. Do not run API, GPU, Docker, Slurm, NIM, or other long-running work unless the user explicitly asks for it. Before Stage 0 SDG for either family, confirm the user's data-governance policy permits sending corpus content to the configured inference endpoints; otherwise use an approved private or air-gapped path. Never run broad environment dumps or commands that expose secret values. Prefer dotlist overrides and config review over editing recipe defaults.
## Source Priority
@@ -55,9 +55,9 @@ For runnable commands, treat the current checkout as authoritative. If a require
- Repo environment: `uv sync --all-extras` or the smallest relevant extra documented by the checkout.
- Stage 0 SDG: `NVIDIA_API_KEY`; never ask users to paste secret values.
-- Stage 1-4 GPU work: CUDA/NVIDIA driver availability and enough VRAM.
-- Stage 4 export: NeMo Export-Deploy container when using TensorRT.
-- Stage 5 deploy: Docker, NGC access, and `NGC_API_KEY`.
+- Stages 1–3 GPU work: CUDA/NVIDIA driver availability and enough VRAM.
+- Stage 4 export: NeMo Export-Deploy container when using TensorRT. The default Nemotron 3 Embed profile intentionally skips export.
+- Stage 5 deploy: Docker. Default Nemotron 3 Embed can use the checked-in vLLM path with `backend=vllm`, or a compatible `NEMOTRON3_EMBED_NIM_IMAGE` with `backend=nim`; Llama Embed and rerank deployment may require NGC access and `NGC_API_KEY`.
- Remote execution: root `env.toml` profile for `--run` or `--batch`; load `references/remote.md` when remote scheduling, logs, or GPU placement matter.
## Instructions
@@ -66,41 +66,46 @@ For runnable commands, treat the current checkout as authoritative. If a require
- Use `references/embed.md` for embedding, embed, bi-encoder, vector search, first-stage retrieval, low Recall@k, missing relevant documents, NIM embeddings, or `nemotron embed`.
- Use `references/rerank.md` for rerank, reranker, cross-encoder, second-stage retrieval, acceptable recall but poor top-rank ordering, low nDCG with good Recall, or `nemotron rerank`.
- Use both references only when the user asks about both families or asks which family to choose.
-2. Choose the model to tune from the retrieval failure mode.
+2. For `embed`, choose one model profile before composing stage commands.
+ - Run `uv run nemotron embed info` when the requested model is unclear.
+ - Use `-c default` for `nvidia/Nemotron-3-Embed-1B-BF16`.
+ - Use `-c llama` for `nvidia/llama-nemotron-embed-1b-v2` and its export path.
+ - Carry the selected profile and `artifact_root` through every stage; never combine artifacts from the two profiles.
+3. Choose the model family to tune from the retrieval failure mode.
- Prefer embedding fine-tuning when relevant documents are absent from the candidate set.
- Prefer reranker fine-tuning when relevant documents are retrieved but ordered poorly near the top.
- For production retrieval stacks, remember that these are complementary: embed first, rerank candidates second.
-3. Identify the intent: plan a run, execute a stage, debug a failure, tune hyperparameters, interpret metrics, export/deploy a model, inspect configs, or propose dotlist overrides.
-4. Inspect the current public surface before acting:
+4. Identify the intent: plan a run, execute a stage, debug a failure, tune hyperparameters, interpret metrics, export/deploy a model, inspect configs, or propose dotlist overrides.
+5. Inspect the current public surface before acting:
- Recipe files: `src/nemotron/recipes/