nemo-mbridge-mlm-bridge-training — скилл для Claude Code
Скилл помогает запускать обучение Megatron-LM и Megatron Bridge, сравнивать кривые потерь и разбирать расхождения после изменений.
npx skills add NVIDIA/skills --skill nemo-mbridge-mlm-bridge-training -a claude-codeЧто делает nemo-mbridge-mlm-bridge-training
Скилл описывает запуск Megatron-LM и Megatron Bridge на тестовых или реальных данных. Он даёт схему корреляционной проверки: для Bridge используется рецепт vanilla_gpt_pretrain_config и scripts/training/run_recipe.py, для MLM — 3rdparty/Megatron-LM/pretrain_gpt.py. Запуск обоих вариантов выполняется через uv run python -m torch.distributed.run.
Внутри есть таблицы соответствий аргументов, примеры для одной и двух GPU, список рецептов для GPT, Llama, Qwen и DeepSeek, а также команды для переключения версии Megatron-Core. Для MLM нужен PYTHONPATH=3rdparty/Megatron-LM:$PYTHONPATH. Перед новым запуском Bridge удаляйте nemo_experiments, потому что старые чекпойнты подхватываются автоматически. При коротком train.train_iters задавайте параметры планировщика, иначе появится ошибка проверки.
Какие задачи решает
- запустить корреляционный прогон MLM и Bridge
- сопоставить значения
lm lossв двух логах - перевести аргументы MLM в параметры Bridge
- провести обучение на двух GPU с TP=2
- найти причину расхождения кривых потерь
Примеры запросов агенту
- «Проведи корреляционный тест MLM и Bridge с рецептом
vanilla_gpt_pretrain_configи проверьlm lossв логах.» - «Покажи команду для запуска
3rdparty/Megatron-LM/pretrain_gpt.pyна двух GPU с TP=2.» - «Почему после изменения коммита разошлись кривые потерь? Сравни настройки MLM и Bridge.»
Как установить nemo-mbridge-mlm-bridge-training
1Через Skills CLI (Vercel)
npx skills add NVIDIA/skills --skill nemo-mbridge-mlm-bridge-training -a claude-code2Вручную: положить файлы
~/.claude/skills/nemo-mbridge-mlm-bridge-training/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/nemo-mbridge-mlm-bridge-training/
1Через Skills CLI (Vercel)
npx skills add NVIDIA/skills --skill nemo-mbridge-mlm-bridge-training -a codex2Вручную: положить файлы
.agents/skills/nemo-mbridge-mlm-bridge-training/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add NVIDIA/skills --skill nemo-mbridge-mlm-bridge-training -a cursor2Вручную: положить файлы
.cursor/skills/nemo-mbridge-mlm-bridge-training/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install NVIDIA/skills nemo-mbridge-mlm-bridge-training2Вручную: положить файлы
.github/skills/nemo-mbridge-mlm-bridge-training/SKILL.md1Через Skills CLI (Vercel)
npx skills add NVIDIA/skills --skill nemo-mbridge-mlm-bridge-training -a gemini-cli2Командой платформы
gemini skills install https://github.com/NVIDIA/skills --path skills/nemo-mbridge-mlm-bridge-trainingВручную: положить файлы
.devin/skills/nemo-mbridge-mlm-bridge-training/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add NVIDIA/skills --skill nemo-mbridge-mlm-bridge-training -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о nemo-mbridge-mlm-bridge-training
Как установить nemo-mbridge-mlm-bridge-training в Claude Code?
Выполните npx skills add NVIDIA/skills --skill nemo-mbridge-mlm-bridge-training -a claude-code, затем повторите npx skills add NVIDIA/skills --skill nemo-mbridge-mlm-bridge-training -a claude-code. Файл скилла находится по пути ~/.claude/skills/nemo-mbridge-mlm-bridge-training/SKILL.md.
Что делает nemo-mbridge-mlm-bridge-training?
Скилл помогает запускать Megatron-LM и Megatron Bridge, сопоставлять их конфигурации и проверять, совпадают ли значения потерь при одинаковых параметрах. Он также содержит примеры мног GPU и готовые рецепты.
Что нужно настроить для запуска MLM?
Для MLM добавьте 3rdparty/Megatron-LM в PYTHONPATH и запускайте обучение через uv run python -m torch.distributed.run. Для свежего прогона Bridge сначала удалите nemo_experiments.
Исходный текст
SKILL.md · Apache-2.0
--- name: nemo-mbridge-mlm-bridge-training description: Run Megatron-LM (MLM) and Megatron Bridge training with mock or real data. Covers correlation testing, available recipes, and multi-GPU examples. license: Apache-2.0 when_to_use: Running training, comparing MLM vs Bridge loss curves, translating MLM CLI args to Bridge config, or investigating why loss curves diverged after a commit; 'how do I run training', 'MLM vs Bridge', 'correlation test'. --- # MLM vs Bridge Training For how they differ, the arg mapping tables, gotchas, and translation script, see: - @docs/megatron-lm-to-megatron-bridge.md ## First Answer Checklist For MLM-vs-Bridge correlation questions, always name these items up front: 1. Bridge recipe: `vanilla_gpt_pretrain_config`. 2. Bridge entry point: `scripts/training/run_recipe.py`. 3. MLM entry point: `3rdparty/Megatron-LM/pretrain_gpt.py`. 4. Launch wrapper for both: `uv run python -m torch.distributed.run`. 5. Fresh-run cleanup: `rm -rf nemo_experiments` before the Bridge run. Also state that MLM needs `PYTHONPATH=3rdparty/Megatron-LM:$PYTHONPATH`, matched Bridge and MLM losses should agree within BF16 rounding, and files under `3rdparty/Megatron-LM/` should not be modified from this repo. ## Correlation Testing Use `vanilla_gpt_pretrain_config` for loss-correlation testing. This recipe uses bare `GPTModelProvider` defaults (LayerNorm, GeLU, learned_absolute position embeddings, `vocab_size` inherited from tokenizer) — matching MLM `pretrain_gpt.py` defaults with no args. ### MLM Correlation Run (2L/256H, 1 GPU) ```bash PYTHONPATH=3rdparty/Megatron-LM:$PYTHONPATH \ uv run python -m torch.distributed.run --nproc_per_node=1 \ 3rdparty/Megatron-LM/pretrain_gpt.py \ --num-layers 2 --hidden-size 256 --num-attention-heads 4 \ --ffn-hidden-size 1024 --seq-length 512 --max-position-embeddings 512 \ --micro-batch-size 4 --global-batch-size 32 \ --train-iters 10 --eval-iters 2 --eval-interval 10 \ --mock-data --bf16 --use-mcore-models \ --tokenizer-type NullTokenizer --vocab-size 32000 \ --lr 3e-4 --min-lr 3e-5 --seed 1234 --log-interval 1 ``` ### Bridge Correlation Run (same config, 1 GPU) ```bash rm -rf nemo_experiments && \ uv run python -m torch.distributed.run --nproc_per_node=1 \ scripts/training/run_recipe.py \ --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.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 \ scheduler.lr_warmup_iters=1 scheduler.lr_decay_iters=10 \ rng.seed=1234 logger.log_interval=1 ``` ### Verification With matched parameters the LM losses should be nearly identical at each iteration. Compare `lm loss` values from both logs — they should agree to within BF16 rounding. ## Multi-GPU Examples ### MLM 2-GPU with TP=2 ```bash PYTHONPATH=3rdparty/Megatron-LM:$PYTHONPATH \ uv run python -m torch.distributed.run --nproc_per_node=2 \ 3rdparty/Megatron-LM/pretrain_gpt.py \ --tensor-model-parallel-size 2 --sequence-parallel \ --num-layers 4 --hidden-size 256 --num-attention-heads 4 \ --seq-length 1024 --max-position-embeddings 1024 \ --micro-batch-size 2 --global-batch-size 16 \ --train-iters 10 --eval-iters 2 --eval-interval 10 \ --mock-data --bf16 --use-mcore-models \ --tokenizer-type NullTokenizer --vocab-size 1024 \ --lr 1e-4 --log-interval 1 ``` ### Bridge 2-GPU with TP=2 ```bash rm -rf nemo_experiments && \ uv run python -m torch.distributed.run --nproc_per_node=2 \ scripts/training/run_recipe.py \ --recipe vanilla_gpt_pretrain_config \ 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.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 \ logger.log_interval=1 ``` ## Available Recipes Common recipes (use with `--recipe`): - `vanilla_gpt_pretrain_config` — Minimal GPT (bare GPTModelProvider defaults, ideal for correlation testing and custom configs) - `llama32_1b_pretrain_config` — Llama 3.2 1B (16L, 2048H, GBS=512, seq=8192) - `llama3_8b_pretrain_config` — Llama 3 8B - `qwen3_8b_pretrain_config` — Qwen3 8B - `deepseek_v2_lite_pretrain_config` — DeepSeek-V2-Lite 16B MoE SFT/PEFT variants use `_sft_config` / `_peft_config` suffix. ## Megatron-Core Submodule For what the submodule is and why two versions exist, see @docs/megatron-lm-to-megatron-bridge.md. ### Check current version ```bash ./scripts/switch_mcore.sh status ``` ### Switch to dev for testing newer MCore features ```bash ./scripts/switch_mcore.sh dev # uv sync (without --locked) since lockfile is for main uv sync ``` ### Switch back to main ```bash ./scripts/switch_mcore.sh main ``` ### After pulling latest main When you pull the latest Bridge main branch, the submodule pointer may have been updated. Re-sync the submodule: ```bash git submodule update --init 3rdparty/Megatron-LM ``` ## Pitfalls 1. **Always `rm -rf nemo_experiments`** before a fresh correlation run. Bridge auto-resumes from stale checkpoints silently. 2. **`uv run` required**: Always use `uv run python -m torch.distributed.run` (not bare `torchrun` or `python`). 3. **MLM PYTHONPATH**: Must include `3rdparty/Megatron-LM` so `gpt_builders.py` is importable. 4. **Scheduler overrides**: When overriding `train.train_iters` to a small value, also set `scheduler.lr_warmup_iters` and `scheduler.lr_decay_iters` or you get an assertion error. 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. 7. **`uv sync --locked` fails after switching to dev**: The lockfile is generated against the main MCore commit. Use `uv sync` (without `--locked`) when on dev.
© NVIDIA · Apache-2.0 · NVIDIA/skills