用途:运行 Megatron-LM(MLM)与 Megatron Bridge 训练,覆盖相关性测试、可用 recipe 与多 GPU 示例,适用于对比两条训练路径的损失是否一致。
关键入口:Bridge recipe 为 vanilla_gpt_pretrain_config,Bridge 入口为 scripts/training/run_recipe.py,MLM 入口为 3rdparty/Megatron-LM/pretrain_gpt.py,两者启动包装器均为 uv run python -m torch.distributed.run。MLM 需要 PYTHONPATH=3rdparty/Megatron-LM:$PYTHONPATH,且不应修改 3rdparty/Megatron-LM/ 下文件。
相关性测试:使用 vanilla_gpt_pretrain_config,其采用裸 GPTModelProvider 默认值(LayerNorm、GeLU、学习式绝对位置嵌入、vocab_size 来自 tokenizer),与无参数 MLM pretrain_gpt.py 默认一致。给出 1 GPU 下 2L/256H 的 MLM 与 Bridge 运行命令示例(含 --mock-data、--bf16、--use-mcore-models、NullTokenizer 等参数)。Bridge 运行前需 rm -rf nemo_experiments。匹配参数后每次迭代 lm loss 应在 BF16 舍入误差内一致。
多 GPU:提供 MLM 2-GPU TP=2 与 Bridge 2-GPU TP=2 示例,含 tensor_model_parallel_size、sequence_parallel 等覆盖参数。
可用 recipe:vanilla_gpt_pretrain_config、llama32_1b_pretrain_config、llama3_8b_pretrain_config、qwen3_8b_pretrain_config、deepseek_v2_lite_pretrain_config,SFT/PEFT 变体用 _sft_config / _peft_config 后缀。
Megatron-Core 子模块:用 ./scripts/switch_mcore.sh status 查看版本,dev 切换后需 uv sync(不带 --locked),切回 main 同理;拉取最新 main 后执行 git submodule update --init 3rdparty/Megatron-LM 重新同步。
注意事项:相关性运行前必须 rm -rf nemo_experiments,否则 Bridge 会静默自动恢复旧检查点;始终使用 uv run;MLM 必须设置 PYTHONPATH;覆盖小 train_iters 时需同时设 scheduler.lr_warmup_iters 与 scheduler.lr_decay_iters,否则断言报错;预训练与微调数据集覆盖均用 dataset.seq_length;大 MoE 需完全激活重计算且通常多节点 EP,TP 不减少单 GPU 专家内存;dev 分支下 uv sync --locked 会失败。其他收费、平台要求等资料暂未提供。