关于 nemo-mbridge-perf-moe-vlm-training
nemo-mbridge-perf-moe-vlm-training 是用于多模态 MoE 模型训练调优的技能,帮助团队选择 FSDP 或 3D 并行,并强调使用真实图像输入评估吞吐量。
主要功能
- 01比较 FSDP 与 3D 并行
- 02调优微批次大小和重计算
- 03指导冻结视觉栈
- 04设置 CUDA Graph 范围
- 05考虑真实多模态输入
适用场景
- 01启动新的多模态 VLM 训练
- 02稳定 FSDP 运行后调优吞吐量
- 03使用真实图像载荷评估 MoE 性能
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ nvidia/ skills --skill nemo-mbridge-perf-moe-vlm-training安装后在 Claude Code 中输入/nemo-mbridge-perf-moe-vlm-training确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
BENCHMARK.mdcard.yamlskill-card.mdskill.oms.sigevals/evals.json详细介绍
MoE 视觉语言模型训练
稳定版文档:@docs/training/moe-optimization.md 卡片:@skills/nemo-mbridge-perf-moe-vlm-training/card.yaml
FSDP 与 3D 并行
| 方案 | 优势 | 最适用场景 |
|---|---|---|
| FSDP | 以最简单的方式跑通多模态训练 | 首次启动、优先调整内存、流水线并行(PP)边界不理想 |
| 3D 并行 | 调优后可达到更高上限 | 模型稳定、PP 布局清晰,且有时间进行更深入的测试 |
对于 MoE 视觉语言模型,实际工作流通常如下:
- 先用 FSDP 获得首次可靠运行
- 稳定真实数据输入、重计算和内存行为
- 只有在吞吐量提升空间值得付出额外工作时,才转向 3D 并行
近期视觉语言模型运行的概括性发现
Qwen3-VL 类模型
跟踪记录中呈现的主要规律一致:
- 在 GB200 级系统上,FSDP 使用相对简单的配置即可达到可观的十几百分点利用率
- B200 上的 FSDP 运行可行,但对重计算选项和冻结视觉模块的设置更敏感
- 3D 并行也能达到相近或更好的运行水平,但需要一起调优 MBS、重计算和实际视觉路径
真实数据与模拟数据
使用模拟数据进行的视觉语言模型运行不能作为可靠的性能参考。在实验中,与真实多模态输入相比,不含图像的模拟运行看起来更接近“速度大约快一倍”,而不是“略微乐观”。
在得出任何有关视觉语言模型吞吐量的结论之前,请使用真实或逼真的图像载荷。
较小规模的多模态 MoE 运行
较小规模的 Qwen3.5 风格多模态实验再次印证了相同的经验:
- HybridEP 是 GB200 上的可靠默认选项
- 训练循环稳定后,TE 范围内的 CUDA 图会有所帮助
- 增大 MBS 可能带来收益,但前提是视觉编码器不会成为新的瓶颈
决策指南
选择 FSDP 的情况
- 首次启动新的视觉语言模型
- 模型在嵌入层、视觉模块和解码器之间的阶段边界不理想
- 内存适配比绝对吞吐量更重要
- 在以解码器为重点的调优期间,可能会冻结视觉模块
选择 3D 并行的情况
- 模型已经在 FSDP 下稳定运行
- PP 布局清晰且可重复
- 可以同时测试 MBS、重计算和 CUDA 图范围
- 目标是获得最佳稳态吞吐量,而不是简化首次启动
关键调优项
-
酌情冻结视觉模块:如果工作重点是解码器,冻结视觉模块通常能带来小幅但实际的吞吐量提升,并降低内存压力。
-
积极测试 MBS:与纯文本 MoE 运行相比,视觉语言模型对 MBS 更敏感,因为视觉路径会改变计算与开销之间的平衡。
-
模型适配后优先采用选择性重计算:完全重计算是有用的启动工具,但在稳态运行中,选择性重计算通常更合适。
-
让 CUDA 图范围与工作负载匹配:
attn moe_router moe_preprocess是更稳妥的 MoE 默认选项,而更窄的范围仍可用于受控实验。 -
仅在 EP 不足时使用 ETP:它可以解锁某些布局,但也会带来更多通信开销和更多调优维度。
代表性配置系列
以 FSDP 为先的 GB200 路径
TP=1 CP=1 PP=1
EP sized to the expert topology, often large
Dispatcher: HybridEP on GB200-class systems
Recompute: start with full, then relax toward selective recompute
3D 并行的 GB200 路径
TP=1 CP=1 PP=1 or modest PP
EP and ETP sized to the expert topology
Dispatcher: HybridEP
CUDA Graph: start narrow, then widen only after the real-data path is stable
兼容性
| 功能 | FSDP | 3D 并行 |
|---|---|---|
| GB200 上的 HybridEP | 强力推荐的默认选项 | 拓扑稳定后是强力推荐的默认选项 |
| CUDA 图 | 首次启动后很有用 | 有用,但对范围更敏感 |
| 冻结视觉模块 | 自然适用 | 可行,但较少作为主要性能路径使用 |
| 选择性重计算 | 推荐 | 推荐 |
注意事项
-
模拟的多模态数据容易产生误导:它会让解码器看起来比真实的端到端 VLM 路径健康得多。
-
视觉编码器的耗时可能出乎意料地占主导:在将所有问题归因于调度器之前,请分别分析编码器、投影器和解码器的性能。
-
不要比较有效工作量不同的 FSDP 和 3D 并行运行:应按有效 token 数和工作负载形状进行归一化,而不只是比较步耗时。
-
ETP 并非没有代价:将其用作模型适配或拓扑工具,而非默认选项。
-
重计算和 CUDA 图的选择相互关联:让模型能够适配的设置,往往并非稳态速度最佳的设置。