nemo-mbridge-perf-moe-long-context
NVIDIA/skills
Bietet Anleitungen zum Training von „Mixture-of-Experts“-Modellen mit langen Kontextfenstern, darunter die Festlegung der Kontextparallelität, selektive Neuberechnung, die Auswahl von Dispatchern sowie praktische Muster aus aktuellen Experimenten.
...Alle erweiternMoE-Training mit langem Kontext
Stabile Dokumentation: @docs/training/moe-optimization.md Karte: @skills/nemo-mbridge-perf-moe-long-context/card.yaml
Was sich bei langen Kontexten ändert
Sobald die Sequenzlänge deutlich über den Bereich der 4K-Klasse hinausgeht, werden das Aufmerksamkeitsspeicher und die Aktivierungsresidenz zu den dominierenden Einschränkungen. Für MoE-Modelle bedeutet das in der Regel, dass eine Kombination aus folgenden Faktoren erforderlich ist:
- Kontextparallelität
- selektive Neuberechnung
- geringere Genauigkeit
- CPU-Auslagerung des Optimiererstatus
- einen Dispatcher und ein PP-Layout, die das verbleibende, geringere DP-Budget nicht verschwenden
Gerundete Skalierungsmuster
DSV3 auf H100
Die DSV3-Läufe mit langem Kontext zeigen ein stabiles Muster:
- Die selektive Neuberechnung funktioniert besser als die vollständige Neuberechnung, sobald man die kürzesten Kontexte hinter sich gelassen hat
- Der Durchsatz bleibt bei mittellangen bis sehr langen Kontexten in einem relativ engen Bereich, sofern die CP entsprechend erhöht wird
- verlagert sich der Kompromiss mit steigendem CP von „Speicherpassung“ hin zur „Machbarkeit hinsichtlich der GPU-Anzahl“
Mit anderen Worten: Lange Kontexte führen nicht sofort zu einem Einbruch der Auslastung, wenn das Layout gut gewählt ist, verbrauchen jedoch das DP-Budget sehr schnell.
Qwen3-Next auf GB200
Qwen3-Next verhält sich eher wie ein speicherempfindliches Modell mittlerer Größe:
- 8K und 32K bleiben bei moderatem CP praktikabel
- 64K ist möglich, aber der Durchsatzrückgang ist spürbar und der Speicher wird deutlich knapper
- Verbesserungen beim Pipeline-Layout und bei gruppierten GEMMs sind fast genauso wichtig wie die CP
Qwen3 235B auf GB200
Qwen3 235B zeigt, dass lange Kontexte auf NVL72-Systemen immer noch effizient sein können, wenn TP, CP und HybridEP aufeinander abgestimmt sind. Die besten Konfigurationen der 128K-Klasse sind nicht nur „Fit-only“-Rezepte; sie können hoch effizient bleiben, wenn Routing, Parallelität und Neuberechnung ausgewogen sind.
Faustregeln für die CP-Dimensionierung
Beginnen Sie mit einem 4K-Shard-Ziel: Ein guter erster Anhaltspunkt ist
CP ~= seq_len / 4096, anschließend auf ein praktisches „Power-of-Two“-Layout runden.Halten Sie DP nach Möglichkeit am Leben: Die Skalierung bei langen Kontexten wird instabil, sobald CP, EP, TP und PP gemeinsam DP auf den Mindestwert drücken.
Bevorzugen Sie selektives Neuberechnen: Berechnen Sie Module wie
up_proj,norm,moe,moe_actodermlpneu, bevor Sie auf eine vollständige Neuberechnung zurückgreifen.Vermeide SDPA-intensive Neuberechnungen bei sehr langem Kontext: Die Neuberechnung der internen Attention-Strukturen kann viel Arbeit verursachen und bringt dabei weniger Speichervorteile als die Neuberechnung kleinerer Module auf der MoE- und MLP-Seite.
Nutzen Sie TP als weiteren Hebel auf NVL72-Systemen: Bei GB200- und GB300-Läufen lässt sich manchmal ein Teil von CP gegen TP eintauschen, ohne dass die Effizienz darunter leidet.
Gehen Sie davon aus, dass GBS verkleinert werden muss: Wenn CP steigt und DP sinkt, müssen Sie möglicherweise die globale Batchgröße reduzieren oder eine höhere GA in Kauf nehmen.
Repräsentative Konfigurationsfamilien
DSV3 mit 128K auf H100
TP=1 CP=32 EP=32 PP=8 VPP=4
Genauigkeit: FP8-Klasse
Dispatcher: DeepEP
Neuberechnung: up_proj, norm, moe, mlp
Zusätzliche Speicherunterstützung: CPU-Offload durch den Optimierer
DSV3 mit 256K auf H100
TP=1 CP=64 EP=32 PP=8 EDP=2 VPP=4
Genauigkeit: FP8-Klasse
Dispatcher: DeepEP
Neuberechnung: up_proj, norm, moe, mlp
Zusätzliche Speicherunterstützung: CPU-Offload durch den Optimierer
Qwen3 235B bei 128K auf GB200
TP=4 CP=4 EP=32 PP=4 VPP=12
Genauigkeit: BF16 oder MXFP8
Dispatcher: HybridEP
Neuberechnung: moe_act, norm
CUDA-Graph: attn + moe_router + moe_preprocess
Leitfaden zu „Recompute“ und CUDA-Graph
Für MoE-Training mit langem Kontext:
- Beginnen Sie mit selektiver Neuberechnung
- Fügen Sie CUDA-Graphen erst hinzu, wenn die Shapes und der Routing-Pfad stabil sind
- Halten Sie bei der Verwendung von CUDA-Graphen die Sequenzlänge und den MBS konstant
- Wenn der Lauf von stark dynamischen Batches abhängt, Eager-Ausführung bevorzugen
Nützliche Referenzen:
- @docs/training/activation-recomputation.md
- @skills/nemo-mbridge-perf-cuda-graphs/SKILL.md
Fallstricke
CP ersetzt weder EP noch PP: Es fügt eine weitere Dimension hinzu; es lässt die anderen nicht verschwinden.
Eine gute 4K-Baseline kann dennoch eine schlechte Baseline für lange Kontexte sein: Routing-Modus, Wahl der Neuberechnung und Offload-Strategie müssen oft angepasst werden.
Die Machbarkeit hinsichtlich der Anzahl der GPUs wird zur eigentlichen Einschränkung: Ein sehr langer Kontext kann in einem einzelnen Rezept gut aussehen, wird dann aber unmöglich, sobald EP und PP konsequent über das gesamte Modell hinweg hinzugefügt werden.
CUDA-Graphen benötigen statische Strukturen: Batches variabler Länge und opportunistische Auffüllstrategien können den Pfad unbemerkt unterbrechen.
Die Unterstützung von Containern und Kerneln gewinnt ab 128K+ an Bedeutung: Pfade mit langem Kontext sind tendenziellstärker auf neuere Kernel und Fehlerbehebungen angewiesen als der Bring-up bei kurzem Kontext.
---
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.
Alle Dateien
1 Dateiennemo-mbridge-perf-moe-long-context installieren
Laden Sie die Skill-Dateien herunter und entpacken Sie sie in Ihr Verzeichnis „.claude/skills/“.
ZIP herunterladenKlonen Sie das Repository und kopieren Sie die Skill-Dateien in Ihr Projekt.
git clone https://github.com/NVIDIA/skills/tree/main/skills/nemo-mbridge-perf-moe-long-context # Copy SKILL.md to your .claude/skills/ directory
Kopieren





Heim
