AIKraft/Skills/NeMo mBridge: многоузловой Slurm

NeMo mBridge: многоузловой Slurm

Convert single-node scripts to multi-node Slurm sbatch jobs and debug common multi-node failures. Covers srun-native vs uv run torch.distributed approaches, container setup, NCCL timeouts, OOM sizing for MoE models, and interactive allocation.

nvidia official Разработка

Что делает навык

Навык преобразует однонодовые скрипты запуска PyTorch в многонодовые задачи Slurm с поддержкой контейнеров Enroot и отлаживает типичные сбои multi-node. Он охватывает настройку окружения, выбор стратегии запуска и решение проблем с таймаутами NCCL или нехваткой памяти.

Когда применять

  • Конвертация однонодовых команд uv run python -m torch.distributed.run в многонодовые sbatch-скрипты для Bridge или Megatron
  • Отладка сбоев multi-node, включая анализ логов на наличие ошибок OOM, NCCL timeout или проблем с инициализацией распределенного запуска
  • Интерактивное выделение ресурсов (salloc + srun) для тестирования инференса или отладки конвертации моделей
  • Подбор параметров EP/TP для моделей MoE при возникновении ошибок OutOfMemoryError

Как работает

  1. Определить подход: использовать srun-native (предпочтительно для Bridge) или legacy uv run torch.distributed (для MLM pretrain_gpt.py)
  2. Настроить SBATCH-заголовки: для srun-native указать ntasks-per-node=8, для legacy — ntasks-per-node=1
  3. Обеспечить использование общей файловой системы для репозитория, данных, логов, HF_HOME, UV_CACHE_DIR и NEMO_HOME
  4. Использовать двухфазный паттерн запуска: сначала srun для однократного uv sync кэша, затем полный многонодовый запуск
  5. При отладке проверять логи: фильтровать реальные ошибки, искать первый упавший rank в секции Failures и проверять NCCL timeout
  6. Для MoE моделей рассчитывать размерность EP, чтобы количество экспертов на GPU соответствовало доступной памяти

Примеры запросов агенту

Преобразуй команду uv run python -m torch.distributed.run my_script.py в многонодовый sbatch-скрипт с поддержкой Enroot
Отладь ошибку NCCL timeout в логе job.log, где rank 0 завис на dist.barrier()
Почему возникает OOM при загрузке модели MoE с 256 экспертами и как подобрать EP для 8 GPU на узле?

Что понадобится

  • Доступ к кластеру с Slurm и Enroot
  • Общая файловая система (Lustre) для кэшей и данных
  • Контейнеры с предварительно установленным uv и необходимыми библиотеками

Описание составлено по SKILL.md навыка, сверено 05.10.2026.

Как подключить

1Скачать навык
# возьмите папку навыка «nemo-mbridge-multi-node-slurm» из репозитория: # https://github.com/nvidia/skills
2Положить папку с SKILL.md к навыкам ассистента
# положите папку навыка туда, где ассистент ищет skills: cp -r nemo-mbridge-multi-node-slurm/ ~/.claude/skills/nemo-mbridge-multi-node-slurm/

Навык — папка с файлом SKILL.md (описание + инструкции) и опциональными скриптами. Ассистент (Claude, Claude Code и совместимые) подхватывает его по описанию и следует шагам.