Megatron-Core 测试指南
帮助你在 Megatron-Core 中设计、运行并复现分布式测试。
技能明确描述了测试、容器、数据挂载和下载 golden values 等数据流,也未见恶意行为、凭据窃取或破坏性默认操作;但未要求执行外部命令前确认,未说明 secrets/敏感数据处理、网络访问边界、权限最小化或回滚方案,因此扣分。
文档对目录、命令、运行器、占位符、标记和常见故障给出较一致的说明,并提供失败排查线索;但依赖 GPU、8 进程、特定容器路径、uv、nemo-run、外部数据和环境标签,且静态审查无法复现关键路径,故不超过静态上限并扣分。
触发条件、目标用户和主要场景较清楚,覆盖单元测试、功能测试、recipe、golden values 和 CI 失败;但非适用范围、版本兼容性和精确环境前置条件不完整,中文交互支持未声明,部分流程依赖 GitHub/HuggingFace/网络可达性,故扣分。
SKILL.md 结构清晰,包含回答优先事实、布局、运行、添加测试和陷阱;skill-card 提供 Apache-2.0、所有者、版本和参考资料,仓库也有维护与安全入口。缺少推荐的 Instructions、Examples、Purpose、metadata.tags,前置条件、变更记录、更新责任和故障 FAQ 不完整,因此扣分。
对于 Megatron-LM 测试开发者,命令、YAML 示例、marker 和常见问题具有直接操作价值,核心任务大体可完成;但 GPU/容器/数据/CI 权限等条件限制可用性,且没有该技能关键路径的可核验执行结果,按静态校准不超过 7。
存在带固定修订的源文件、静态评估报告、Apache-2.0 声明和外部参考资料;但 evals.json 为空,benchmark 明确缺少 Tier 3 细节,也没有针对该技能关键流程的已提交测试或独立复现证据,因此仅给有限分数。
- 执行文档中的命令前应确认 GPU、容器、数据路径、网络访问和 CI 权限;部分命令会下载数据或 golden values,并可能访问 GitHub/HuggingFace。
- 未提供敏感数据、凭据、网络失败、下载校验或回滚处理指南;在中国大陆网络环境中,外部服务可达性可能影响流程。
- skill-card 的版本与题定修订不一致,且 benchmark 缺少 Tier 3 结果;不要将“PASS”视为已完成运行验证。
这个 Skill 能做什么,适合哪些场景?
该技能面向 Megatron-Core 的单元测试和功能测试工作流。它说明测试目录结构、Recipe YAML 配置、pytest 标记、黄金值管理以及 CI 失败复现方法。单元测试要求通过 torch.distributed.run 在 GPU 上执行,功能测试则依赖 CI 配方和训练脚本。适合需要新增测试、定位测试失败或保持本地与 CI 行为一致的开发者。
解释 tests/unit_tests、tests/functional_tests 和 tests/test_utils 的职责;提供通过 torch.distributed.run 运行完整测试、单文件测试、单个测试和名称过滤的命令;说明 flaky、flaky_in_dev、internal 和 experimental 标记;指导创建单元测试、功能测试及 Recipe YAML;说明如何用 -broken 保留但停用功能测试配方;指导从 GitHub pipeline 下载黄金值,并解释 CI 中的 nemo-run、DockerExecutor、日志上传和最多三次瞬态故障重试机制。
- Megatron-Core 开发者需要新增一个单元测试并为其选择合适的 pytest 标记。
- 测试工程师需要创建功能测试目录、model_config.yaml 和 H100 或 GB200 配方。
- 开发者需要在本地使用 8 个 GPU 复现 CI 中的单元测试失败。
- 维护者需要暂时停用一个功能测试,同时保留其 Recipe YAML 条目以便重新启用。
- 开发者需要在代码变更后重新下载并提交功能测试黄金值。
这个 Skill 有哪些优点和局限?
- 覆盖单元测试、端到端功能测试、Recipe YAML、黄金值和 CI 复现。
- 提供可复制的测试命令和新增测试步骤。
- 明确说明如何停用测试而不删除测试资产。
- 记录多 GPU 日志、数据路径和 flaky 重试等容易忽略的运行细节。
- 单元测试要求 GPU,并且示例和测试布局均以 8 GPU 为基础。
- 在标准容器之外运行时,测试数据可能需要从 /opt/data 下载或手动提供。
- 功能测试涉及特定 CI 配方、平台和环境;GB200 作业还可能需要维护者触发。
- 该技能聚焦 Megatron-Core 测试,不提供通用项目的测试框架指导。
如何安装这个 Skill?
使用默认 skills CLI 安装指定技能:
npx skills add nvidia/skills --skill mcore-testing --yes
也可以添加 --agent codex、--agent claude-code 或 --agent cursor,将技能安装到指定客户端。README 未说明具体本地安装目录;CLI 会处理安装目标。
如何使用这个 Skill?
安装后,在相关任务中直接向代理提问,例如“如何给 Megatron-Core 添加一个单元测试?”、“如何运行 unit tests?”、“pytest 失败如何复现?”或“如何更新 golden values?”。运行测试时,技能给出的标准方式是使用 uv、Python、torch.distributed.run 和 pytest;单元测试需要 GPU,完整示例使用 --nproc-per-node 8。