NeMo MBridge 序列打包
为 Megatron-Bridge 配置并验证序列打包与长上下文训练。
技能限定为配置与诊断序列打包,不要求凭据、网络访问或破坏性操作,并披露了数据集元数据要求和模型例外;但缺少明确的用户确认、权限边界、回滚方案和固定版本来源,且仓库许可证元数据为 NOASSERTION,因此扣分。
内容在离线 SFT 与 VLM in-batch packing 的互斥规则、CP 约束和异常条件上基本一致,也列出 ValueError/assert 行为及测试命令;但未提供被审技能关键测试文件内容、依赖版本或实际失败输出,静态证据不足,按上限保守评分。
触发词、LLM/VLM 场景、CP/SP 条件及 Qwen3-Next、GLM-4.5、Qwen3.5-VL、MTP 等非适用范围较明确;但输入前提、输出契约、环境要求、中文支持和中国大陆网络可达性未充分说明,因此扣分。
SKILL.md 具备启用示例、代码锚点、陷阱和验证命令,card.yaml 还记录限制、负责人和版本线索;但缺少推荐的 Instructions/Examples 章节,作者元数据、变更记录、维护更新路径和依赖安装说明不完整,基准报告也记录了这些 schema 缺口。
技能提供了可直接复制的配置片段、CP padding/lcm 公式、CUDA graphs 元数据要求和成功标准,基准报告显示单个正向任务表现良好;但长上下文性能收益被标为 unclear,关键测试未在输入中给出,静态阅读无法确认配置在目标环境中可直接成功,故受静态上限约束并扣分。
存在代码路径、测试路径、card.yaml 证据清单和一次 NVSkills-Eval 报告,具备一定可审计性;但只有一个评估任务、无负向任务,报告结论缺少可独立复现的测试输出,且引用文件本身未全部提供,因此只能给有限静态证据分。
- 不要将离线 packed SFT 与 VLM in-batch packing 混用;两者的 micro_batch_size 规则相反。
- 启用 CP 时必须核对序列长度可被 2×CP 整除,并确认 finetuning 的 per-token loss 与 DDP 设置。
- pad_cu_seqlens=True 依赖旁置 metadata JSON 和 pad_to_max_length=True;自定义数据集应先验证。
- 技能未证明长上下文吞吐收益,且模型族支持并非通用。
这个 Skill 能做什么,适合哪些场景?
该技能面向 Megatron-Bridge,指导用户启用和排查序列打包及长上下文微调。它区分面向 LLM 的离线 packed SFT 与面向 VLM 的批内打包,并分别处理微批大小、上下文并行和填充约束。技能还覆盖 CUDA Graph、MCore THD 元数据传递、模型族限制及损失掩码验证。适合需要优化长序列训练性能或调查打包行为回归的工程团队。
提供离线 packed SFT、VLM 批内打包和长上下文训练的 Megatron-Bridge 配置示例;检查离线打包与批内打包是否互斥、微批大小是否正确,以及上下文并行下的序列长度可除性;说明 CP 微调所需的逐 token 损失和 DDP 设置;要求 CUDA Graph 路径启用相应的 cuSeqlens 和数据集填充,并提示需要旁置元数据 JSON;指导运行已提供的 pytest 单元测试,验证打包元数据、配置校验和填充行损失掩码。
- 负责 LLM SFT 的工程师需要启用 4096 长度的离线序列打包并设置 PackedSequenceSpecs。
- 训练 VLM 的工程师需要启用批内打包,并避免使用错误的微批大小。
- 使用 context parallel 进行长上下文微调的团队需要检查序列长度、填充倍数和损失计算约束。
- 维护 Megatron-Bridge 的开发者调查导致序列打包行为变化的提交或回归。
- 启用 CUDA Graph 的训练工程师需要确认 cuSeqlens 填充和 packed dataset 元数据完整。
这个 Skill 有哪些优点和局限?
- 明确区分 LLM 离线打包和 VLM 批内打包,减少配置混淆。
- 覆盖 context parallel、sequence parallel、tensor parallel 和 CUDA Graph 相关约束。
- 提供具体配置片段、代码锚点和针对性单元测试。
- 指出模型族 opt-out、MTP 不兼容和填充行损失掩码等实际陷阱。
- 仅聚焦 Megatron-Bridge 的序列打包和长上下文训练,不是通用训练性能指南。
- 支持依赖模型族和具体训练路径,Qwen3-Next、GLM-4.5 与 Qwen3.5-VL 存在明确 opt-out。
- pad_cu_seqlens=True 需要 packed dataset 旁边存在元数据 JSON。
- 来源没有提供不同硬件、版本或完整端到端训练结果的兼容性证据。
如何安装这个 Skill?
使用 NVIDIA skills CLI 安装指定技能:
npx skills add nvidia/skills --skill nemo-mbridge-perf-sequence-packing --yes
README 未说明该命令的具体安装目录;CLI 会提示选择安装目标。
如何使用这个 Skill?
安装后,在相关任务中提示代理,例如:"在 Megatron-Bridge 中启用 CP 下的离线 packed SFT,并检查序列长度、填充倍数和微批大小约束。"
离线 LLM SFT 的核心配置包括 cfg.train.micro_batch_size = 1、cfg.dataset.enable_offline_packing = True 和 PackedSequenceSpecs;VLM 批内打包则使用 cfg.dataset.enable_in_batch_packing = True 与 cfg.train.micro_batch_size = 2。需要验证实现时,运行 SKILL.md 中列出的 uv run python -m pytest 测试命令。