mcpField
N
nemo-mbridge-perf-moe-vlm-training

nemo-mbridge-perf-moe-vlm-training

github.com/nvidia开发3.8k1.8k 次安装今天更新
代码仓库

关于 nemo-mbridge-perf-moe-vlm-training

nemo-mbridge-perf-moe-vlm-training 是用于多模态 MoE 模型训练调优的技能,帮助团队选择 FSDP 或 3D 并行,并强调使用真实图像输入评估吞吐量。

主要功能

  1. 01比较 FSDP 与 3D 并行
  2. 02调优微批次大小和重计算
  3. 03指导冻结视觉栈
  4. 04设置 CUDA Graph 范围
  5. 05考虑真实多模态输入

适用场景

  1. 01启动新的多模态 VLM 训练
  2. 02稳定 FSDP 运行后调优吞吐量
  3. 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.md
card.yaml
skill-card.md
skill.oms.sig
evals/
evals.json

详细介绍

MoE 视觉语言模型训练

稳定版文档:@docs/training/moe-optimization.md 卡片:@skills/nemo-mbridge-perf-moe-vlm-training/card.yaml

FSDP 与 3D 并行

方案优势最适用场景
FSDP以最简单的方式跑通多模态训练首次启动、优先调整内存、流水线并行(PP)边界不理想
3D 并行调优后可达到更高上限模型稳定、PP 布局清晰,且有时间进行更深入的测试

对于 MoE 视觉语言模型,实际工作流通常如下:

  1. 先用 FSDP 获得首次可靠运行
  2. 稳定真实数据输入、重计算和内存行为
  3. 只有在吞吐量提升空间值得付出额外工作时,才转向 3D 并行

近期视觉语言模型运行的概括性发现

Qwen3-VL 类模型

跟踪记录中呈现的主要规律一致:

  • 在 GB200 级系统上,FSDP 使用相对简单的配置即可达到可观的十几百分点利用率
  • B200 上的 FSDP 运行可行,但对重计算选项和冻结视觉模块的设置更敏感
  • 3D 并行也能达到相近或更好的运行水平,但需要一起调优 MBS、重计算和实际视觉路径
真实数据与模拟数据

使用模拟数据进行的视觉语言模型运行不能作为可靠的性能参考。在实验中,与真实多模态输入相比,不含图像的模拟运行看起来更接近“速度大约快一倍”,而不是“略微乐观”。

在得出任何有关视觉语言模型吞吐量的结论之前,请使用真实或逼真的图像载荷。

较小规模的多模态 MoE 运行

较小规模的 Qwen3.5 风格多模态实验再次印证了相同的经验:

  • HybridEP 是 GB200 上的可靠默认选项
  • 训练循环稳定后,TE 范围内的 CUDA 图会有所帮助
  • 增大 MBS 可能带来收益,但前提是视觉编码器不会成为新的瓶颈

决策指南

选择 FSDP 的情况
  • 首次启动新的视觉语言模型
  • 模型在嵌入层、视觉模块和解码器之间的阶段边界不理想
  • 内存适配比绝对吞吐量更重要
  • 在以解码器为重点的调优期间,可能会冻结视觉模块
选择 3D 并行的情况
  • 模型已经在 FSDP 下稳定运行
  • PP 布局清晰且可重复
  • 可以同时测试 MBS、重计算和 CUDA 图范围
  • 目标是获得最佳稳态吞吐量,而不是简化首次启动

关键调优项

  1. 酌情冻结视觉模块:如果工作重点是解码器,冻结视觉模块通常能带来小幅但实际的吞吐量提升,并降低内存压力。

  2. 积极测试 MBS:与纯文本 MoE 运行相比,视觉语言模型对 MBS 更敏感,因为视觉路径会改变计算与开销之间的平衡。

  3. 模型适配后优先采用选择性重计算:完全重计算是有用的启动工具,但在稳态运行中,选择性重计算通常更合适。

  4. 让 CUDA 图范围与工作负载匹配:attn moe_router moe_preprocess 是更稳妥的 MoE 默认选项,而更窄的范围仍可用于受控实验。

  5. 仅在 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

兼容性

功能FSDP3D 并行
GB200 上的 HybridEP强力推荐的默认选项拓扑稳定后是强力推荐的默认选项
CUDA 图首次启动后很有用有用,但对范围更敏感
冻结视觉模块自然适用可行,但较少作为主要性能路径使用
选择性重计算推荐推荐

注意事项

  1. 模拟的多模态数据容易产生误导:它会让解码器看起来比真实的端到端 VLM 路径健康得多。

  2. 视觉编码器的耗时可能出乎意料地占主导:在将所有问题归因于调度器之前,请分别分析编码器、投影器和解码器的性能。

  3. 不要比较有效工作量不同的 FSDP 和 3D 并行运行:应按有效 token 数和工作负载形状进行归一化,而不只是比较步耗时。

  4. ETP 并非没有代价:将其用作模型适配或拓扑工具,而非默认选项。

  5. 重计算和 CUDA 图的选择相互关联:让模型能够适配的设置,往往并非稳态速度最佳的设置。

评论

支持 Markdown