nemo-mbridge-perf-moe-long-context
NVIDIA/skills
В данной статье представлены рекомендации по обучению моделей «смеси экспертов» с длинными контекстными окнами, включая определение размера контекстного параллелизма, выборочный пересчет, выбор диспетчеров, а также практические шаблоны, полученные в ходе недавних экспериментов.
...Расширить всеОбучение с длинным контекстом в MoE
Стабильная документация: @docs/training/moe-optimization.md Карточка: @skills/nemo-mbridge-perf-moe-long-context/card.yaml
Что меняется при работе с длинным контекстом
Как только длина последовательности значительно превышает диапазон 4K, память внимания и резидентность активаций становятся доминирующими ограничениями. Для моделей MoE это обычно означает, что требуется некоторое сочетание следующих факторов:
- параллелизма контекста
- избирательного пересчёта
- снижение точности
- разгрузка ЦП для состояния оптимизатора
- диспетчера и макета PP, которые не тратят впустую оставшийся небольшой бюджет DP
Округлённые модели масштабирования
DSV3 на H100
Запуски DSV3 с длинным контекстом демонстрируют стабильную картину:
- выборочный пересчёт работает лучше, чем полный пересчёт, как только вы выходите за пределы самых коротких контекстов
- пропускная способность остается в довольно узком диапазоне от контекстов средней длины до очень длинных, если CP увеличено соответствующим образом
- по мере роста CP приоритет смещается с «вместимости памяти» на «осуществимость с учетом количества GPU»
Другими словами, длинный контекст не приводит к немедленному падению коэффициента использования, если разметка выбрана правильно, но он очень быстро расходует бюджет DP.
Qwen3-Next на GB200
Qwen3-Next ведёт себя скорее как чувствительная к памяти модель среднего масштаба:
- 8K и 32K остаются практичными при умеренном CP
- 64K возможно, но падение пропускной способности заметно, а памяти становится гораздо меньше
- улучшения компоновки конвейера и группированного GEMM важны почти так же, как CP
Qwen3 235B на GB200
Qwen3 235B показывает, что длинный контекст по-прежнему может быть эффективен на системах NVL72, когда TP, CP и HybridEP скоординированы. Лучшие конфигурации класса 128K — это не просто «рецепты» для «подгонки»; они могут оставаться высокоэффективными, если маршрутизация, параллелизм и повторные вычисления сбалансированы.
Практические правила определения размера CP
Начните с целевого размера фрагмента 4K: хорошим первоначальным приближением будет
CP ~= seq_len / 4096, затем округлите до практичной комбинации, являющейся степенью числа два.По возможности сохраняйте DP: масштабируемость с длинным контекстом становится неустойчивой, когда CP, EP, TP и PP вместе сжимают DP до предела.
Отдавайте предпочтение выборочному пересчёту: пересчитывайте модули, такие как
up_proj,norm,moe,moe_actилиmlp, прежде чем прибегать к полному пересчёту.Избегайте пересчёта с интенсивным использованием SDPA при очень длинном контексте: пересчёт внутренних компонентов внимания может добавить много работы, принося меньшую выгоду по памяти, чем пересчёт более мелких модулей со стороны MoE и MLP.
Используйте TP в качестве дополнительного рычага на системах NVL72: при работе с GB200 и GB300 можно иногда пожертвовать частью CP в пользу TP, сохраняя при этом эффективность.
Исходите из того, что GBS придётся уменьшить: по мере роста CP и снижения DP вам, возможно, потребуется уменьшить глобальный размер партии или принять более высокое значение GA.
Типичные семейства конфигураций
DSV3 на 128K на H100
TP=1 CP=32 EP=32 PP=8 VPP=4
Точность: класс FP8
Диспетчер: DeepEP
Пересчёт: up_proj, norm, moe, mlp
Дополнительная помощь памяти: разгрузка процессора оптимизатором
DSV3 с размером 256K на H100
TP=1 CP=64 EP=32 PP=8 EDP=2 VPP=4
Точность: класс FP8
Диспетчер: DeepEP
Пересчёт: up_proj, norm, moe, mlp
Дополнительная поддержка памяти: разгрузка ЦП с помощью оптимизатора
Qwen3 235B при 128K на GB200
TP=4 CP=4 EP=32 PP=4 VPP=12
Точность: BF16 или MXFP8
Диспетчер: HybridEP
Пересчёт: moe_act, norm
Граф CUDA: attn + moe_router + moe_preprocess
Рекомендации по пересчёту и CUDA-графу
Для обучения MoE с длинным контекстом:
- начните с выборочного пересчёта
- добавляйте графы CUDA только после того, как формы и маршрут прокладки станут стабильными
- при использовании CUDA-графов поддерживайте фиксированную длину последовательности и MBS
- если выполнение зависит от очень динамичных партий данных, отдавайте предпочтение «eager»-выполнению
Полезные ссылки:
- @docs/training/activation-recomputation.md
- @skills/nemo-mbridge-perf-cuda-graphs/SKILL.md
Ловушки
CP не заменяет EP или PP: он добавляет ещё одно измерение; он не заставляет остальные исчезнуть.
Хороший базовый вариант для 4K по-прежнему может оказаться плохим для длинного контекста: режим маршрутизации, выбор пересчёта и стратегия выгрузки часто требуют изменения.
Реальное ограничение становится количество графических процессоров: очень длинный контекст может выглядеть нормально в отдельном рецепте, но становится невозможным, как только EP и PP добавляются по-настоящему по всей модели.
Графы CUDA требуют статических форм: пакеты переменной длины и стратегии оптимизации с заполнением могут незаметно нарушить путь.
Поддержка контейнеров и ядер имеет большее значение при размере 128K+: пути с длинным контекстом чаще полагаются на более новые версии ядер и исправления ошибок, чем при запуске с коротким контекстом.
---
name: nemo-mbridge-perf-moe-long-context
description: Provides guidance for training Mixture-of-Experts models with long context windows, covering context parallelism sizing, selective recomputation, dispatcher choices, and practical patterns from recent experiments.
license: Apache-2.0
---
# MoE Long-Context Training
Stable docs: @docs/training/moe-optimization.md
Card: @skills/nemo-mbridge-perf-moe-long-context/card.yaml
## What Changes At Long Context
Once sequence length moves well past the 4K-class regime, attention memory and
activation residency become the dominant constraints. For MoE models, that
usually means you need some combination of:
- context parallelism
- selective recompute
- lower precision
- CPU offload for optimizer state
- a dispatcher and PP layout that do not waste the smaller remaining DP budget
## Rounded Scaling Patterns
### DSV3 on H100
The DSV3 long-context runs show a stable pattern:
- selective recompute works better than full recompute once you move past the
shortest contexts
- throughput stays in a fairly narrow band from mid-length through very long
contexts if CP is increased appropriately
- the trade shifts from "memory fit" to "GPU-count feasibility" as CP grows
In other words, long context does not immediately collapse utilization if the
layout is chosen well, but it does consume the DP budget very quickly.
### Qwen3-Next on GB200
Qwen3-Next behaves more like a memory-sensitive medium-scale model:
- 8K and 32K remain practical with moderate CP
- 64K is possible, but the throughput drop is noticeable and memory becomes
much tighter
- pipeline layout and grouped-GEMM improvements matter almost as much as CP
### Qwen3 235B on GB200
Qwen3 235B shows that long context can still be efficient on NVL72 systems when
TP, CP, and HybridEP are coordinated. The best 128K-class configurations are
not just "fit-only" recipes; they can remain highly efficient if routing,
parallelism, and recompute are balanced.
## CP Sizing Rules Of Thumb
1. **Start from a 4K shard target**: a good first guess is
`CP ~= seq_len / 4096`, then round to a practical power-of-two layout.
2. **Keep DP alive if possible**: long-context scaling becomes brittle once CP,
EP, TP, and PP together squeeze DP down to the floor.
3. **Prefer selective recompute**: recompute modules such as `up_proj`, `norm`,
`moe`, `moe_act`, or `mlp` before reaching for full recompute.
4. **Avoid SDPA-heavy recompute at very long context**: recomputing attention
internals can add a lot of work for less memory benefit than recomputing
smaller MoE and MLP-side modules.
5. **Use TP as another lever on NVL72 systems**: GB200 and GB300 runs can
sometimes trade some CP for TP while still staying efficient.
6. **Assume GBS will need to shrink**: as CP rises and DP falls, you may need
to reduce global batch size or accept higher GA.
## Representative Config Families
### DSV3 at 128K on H100
```text
TP=1 CP=32 EP=32 PP=8 VPP=4
Precision: FP8-class
Dispatcher: DeepEP
Recompute: up_proj, norm, moe, mlp
Extra memory help: optimizer CPU offload
```
### DSV3 at 256K on H100
```text
TP=1 CP=64 EP=32 PP=8 EDP=2 VPP=4
Precision: FP8-class
Dispatcher: DeepEP
Recompute: up_proj, norm, moe, mlp
Extra memory help: optimizer CPU offload
```
### Qwen3 235B at 128K on GB200
```text
TP=4 CP=4 EP=32 PP=4 VPP=12
Precision: BF16 or MXFP8
Dispatcher: HybridEP
Recompute: moe_act, norm
CUDA Graph: attn + moe_router + moe_preprocess
```
## Recompute And CUDA Graph Guidance
For long-context MoE training:
- start with selective recompute
- add CUDA graphs only after the shapes and routing path are stable
- keep sequence length and MBS fixed when using CUDA graphs
- if the run depends on highly dynamic batches, prefer eager execution
Useful references:
- @docs/training/activation-recomputation.md
- @skills/nemo-mbridge-perf-cuda-graphs/SKILL.md
## Pitfalls
1. **CP does not replace EP or PP**: it adds another dimension; it does not make
the others disappear.
2. **A good 4K baseline can still be a bad long-context baseline**: routing mode,
recompute choice, and offload strategy often need to change.
3. **GPU-count feasibility becomes the real constraint**: very long context can
look fine in a single recipe, then become impossible once EP and PP are added
honestly across the full model.
4. **CUDA graphs need static shapes**: variable-length batches and opportunistic
padding strategies can silently break the path.
5. **Container and kernel support matters more at 128K+**: long-context paths
tend to rely on newer kernels and bug fixes than short-context bring-up does.
Все файлы
1 файловУстановить nemo-mbridge-perf-moe-long-context
Скачайте файлы навыков и распакуйте их в каталог .claude/skills/.
Скачать ZIPКлонируйте репозиторий и скопируйте файлы навыка в свой проект.
git clone https://github.com/NVIDIA/skills/tree/main/skills/nemo-mbridge-perf-moe-long-context # Copy SKILL.md to your .claude/skills/ directory
Копировать





Дом
