| 名称 | nemo-mbridge-perf-moe-vlm-training |
| 描述 | 在Megatron Bridge中训练MoE视觉语言模型的实用指南。比较FSDP和3D并行方法,使用Qwen3-VL、Qwen3-Next和其他多模态实验的经验教训。 |
| 开源协议 | Apache-2.0 when_to_use: 训练MoE VLM,或调查导致MoE VLM训练失败或OOM的提交;‘MoE VLM’、‘多模态MoE’、‘Qwen3-VL训练’、‘FSDP与3D并行在VLM中的对比’、‘MoE视觉语言模型’。 |
MoE视觉语言模型训练
稳定文档:@docs/training/moe-optimization.md 卡片:@skills/nemo-mbridge-perf-moe-vlm-training/card.yaml
FSDP与3D并行对比
| 方法 | 优势 | 最佳适用场景 |
|---|---|---|
| FSDP | 实现可运行多模态运行的最简路径 | 首次启动、以内存优先调优、不合适的PP边界 |
| 3D并行 | 调优后上限更高 | 具有清晰PP布局的稳定模型,并有时间进行更深入的搜索 |
对于MoE VLM,实际工作流程通常为:
- 使用FSDP获得首个可靠运行
- 稳定真实数据输入、重计算和内存行为
- 仅在吞吐量提升空间值得额外工作的情况下过渡到3D并行
最近VLM运行的round经验
Qwen3-VL类模型
跨tracker的主要模式一致:
- 在GB200级系统上,FSDP已经可以通过相对简单的设置达到健康的高teen级的利用率
- B200上的FSDP运行可行,但对重计算选择和冻结视觉设置更为敏感
- 3D并行可以恢复到类似或更好的运行点,但必须同时调整MBS、重计算和真实视觉路径
真实数据与模拟数据对比
模拟数据的VLM运行不能作为可信的性能代理。在实验中,无图像模拟运行与真实多模态输入相比,看起来更接近“大约快两倍”而非“略偏乐观”。
在得出任何关于VLM吞吐量的结论之前,请使用真实或逼真的图像负载。
较小的多模态MoE运行
较小的Qwen3.5风格多模态实验强化了相同的经验:
- 在GB200上,HybridEP是可靠的默认选择
- 一旦训练循环稳定,TE作用域的CUDA图会有所帮助
- 较大的MBS可以带来收益,但前提是视觉编码器不会成为下一个瓶颈
决策指南
选择FSDP的情况
- 首次启动新的VLM
- 模型在embedding、视觉和decoder之间存在尴尬的阶段边界
- 内存适配比绝对吞吐量更重要
- 在decoder为中心的调优中可能需要冻结视觉栈
选择3D并行的情况
- 模型在FSDP下已经稳定
- PP布局清晰且可重复
- 可以同时调整MBS、重计算和CUDA图作用域
- 目标是最高稳态吞吐量,而不是最轻松的启动方式
关键调优旋钮
-
适当时冻结视觉栈:如果工作重点是decoder,冻结视觉侧通常会带来少量但真实的吞吐量提升,并减少内存压力。
-
积极调整MBS:VLM比纯文本MoE运行对MBS更敏感,因为视觉路径改变了计算与开销的平衡。
-
模型适配后优先选择选择性重计算:完全重计算在启动时很有用,但选择性重计算通常是更好的稳态。
-
匹配CUDA图作用域与工作负载:
attn moe_router moe_preprocess是更安全的MoE默认设置,而较窄的作用域对受控实验仍然有用。 -
仅在EP单独不足时使用ETP:它可以解锁布局,但也会引入更多通信和调优面。
代表性配置系列
FSDP优先GB200路径
TP=1 CP=1 PP=1
EP根据专家拓扑确定,通常较大
Dispatcher:在GB200级系统上使用HybridEP
Recompute:从完全开始,然后放宽到选择性重计算
3D并行GB200路径
TP=1 CP=1 PP=1或适度PP
EP和ETP根据专家拓扑确定
Dispatcher:HybridEP
CUDA图:从窄开始,稳定真实数据路径后再拓宽
兼容性
| 特性 | FSDP | 3D并行 |
|---|---|---|
| GB200上的HybridEP | 强默认 | 拓扑稳定后强默认 |
| CUDA图 | 启动后有用 | 有用,但对作用域更敏感 |
| 冻结视觉 | 自然适配 | 可行,但较少作为头条性能路径使用 |
| 选择性重计算 | 推荐 | 推荐 |
陷阱
-
模拟多模态数据具有误导性:它可能使decoder看起来比真实端到端VLM路径健康得多。
-
视觉编码器可能意外占据主导地位:在对dispatcher归因之前,分别分析编码器、投影器和decoder。
-
不要比较具有不同有效工作的FSDP和3D并行运行:不仅要按步骤时间,还要按有效token和工作负载形状进行归一化。
-
ETP不是免费的:将其作为适配或拓扑工具使用,而不是默认设置。
-
重计算和CUDA图选择是耦合的:能够使模型适配的设置通常不是提供最佳稳态速度的设置。