Add ModelOpt QAD skill for Slurm workflows#2010
Conversation
Signed-off-by: Meng Xin <mxin@nvidia.com>
Signed-off-by: Meng Xin <mxin@nvidia.com>
Signed-off-by: Meng Xin <mxin@nvidia.com>
Signed-off-by: Meng Xin <mxin@nvidia.com>
Signed-off-by: Meng Xin <mxin@nvidia.com>
|
Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually. Contributors can view more details about this message here. |
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Enterprise Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #2010 +/- ##
==========================================
- Coverage 78.47% 75.81% -2.67%
==========================================
Files 518 518
Lines 58574 58574
==========================================
- Hits 45967 44406 -1561
- Misses 12607 14168 +1561
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Signed-off-by: Meng Xin <mxin@nvidia.com>
Signed-off-by: Meng Xin <mxin@nvidia.com>
Signed-off-by: Meng Xin <mxin@nvidia.com> # Conflicts: # examples/megatron_bridge/distill.py
What does this PR do?
Type of change: new feature
Adds a general Slurm-only QAD skill based on the supported Megatron Bridge
workflow. The skill:
PTQ configuration or recipe;
using its master-rank quantizer summary as a scoped
amaxsanity check;nvidia/Nemotron-Cascade-2-SFT-Datatoken budget and uses Megatron sequencepacking;
1e-5with cosine decay, a 1000-step cap, andGBS 512;
batches every 25 steps, saves every 50 steps, and monitors a decreasing
smoothed loss trend;
benchmark recovery and the loss trend justify more training;
duplicating mutable commands from the Megatron Bridge README.
Also exposes Megatron Bridge
save_interval,exit_interval, andexit_duration_in_minsthroughexamples/megatron_bridge/distill.py, with example-test coverage for checkpointand ModelOpt-state preservation at an early exit.
Usage
Testing
PYTHONPATH=$PWD pre-commit run --all-filesYAML/recipe validation, launcher reference validation, Bandit, generated
arguments, symlink synchronization, and Markdown lint.
python ~/.codex/skills/.system/skill-creator/scripts/quick_validate.py .agents/skills/qadSkill is valid!Qwen3-0.6B result-bearing validation:
Resources: one exclusive node, 8 H100 GPUs
Container:
nvcr.io/nvidia/nemo:26.06Quantization: NVFP4, group size 16, embedding excluded
QAD topology: TP=1, PP=1, CP=4, EP=1, DP=2
Training validation configuration: sequence length 32768, MBS=1, GBS=8,
train_iters=1000, LR1e-5/ minimum LR1e-6, 50 warmup iterations,cosine decay,
eval_interval=150,exit_interval=150,exit_duration_in_mins=220This result-bearing run used the then-current coupled eval/save cadence. The
final skill now validates two batches every 25 steps and saves every 50; the
example test covers the independent checkpoint cadence.
The reduced GBS 8 is intentionally validation-only; the skill retains GBS 512
as the production default.
Data: exactly 10,000,000 sampled tokens from four
nvidia/Nemotron-Cascade-2-SFT-Dataconfigs:Megatron built packed 32K GPT samples from the materialized prefixes; the full
dataset was not downloaded.
QAD loss was finite and decreased from
0.2640341at iteration 10 to0.1060580at iteration 150. Final gradient norm was0.747, with zeroskipped and zero NaN iterations. Validation distillation loss was
0.09715855.The iteration-150 checkpoint saved successfully with
modelopt_state, andboth PTQ and QAD-150 exported to unified Hugging Face format.
Identical full MMLU 0-shot comparison through the Megatron evaluator:
QAD-150 recovered
0.05889475 / 0.06665718 = 88.35%of the measured PTQ gap,so validation stopped at the early evidence gate rather than continuing
blindly toward 1000 iterations.
Before your PR is "Ready for review"
you follow guidance in
CONTRIBUTING.md: N/Alifecycle flags.
Additional Information
All seven branch commits are cryptographically signed and include a
Signed-off-bytrailer.