用途:把单节点 uv run python -m torch.distributed.run 命令转换为多节点 Slurm sbatch 脚本(支持 Enroot 容器),并调试常见多节点失败。
主要能力:提供 srun 原生(首选,--ntasks-per-node=8,Slurm 直接派生进程)与 uv run torch.distributed(旧式,--ntasks-per-node=1,torchrun 派生 8 进程)两种方案;Bridge 在 initialize.py 初始化时通过 common_utils.py 从 SLURM 变量自动推导 RANK、WORLD_SIZE、LOCAL_RANK、MASTER_ADDR、MASTER_PORT,无需手动设置。
使用方式:仓库、数据、日志、HF_HOME、UV_CACHE_DIR、NEMO_HOME 需放在共享文件系统;多节点 SFT/PEFT 必须设置 NEMO_HOME 为共享路径,否则打包序列数据不可见。采用两阶段 srun:先单进程 uv sync 预热共享缓存,再启动完整多节点作业。凭据通过调度器环境或受限密钥文件提供,不要硬编码。交互式测试用 salloc + srun 三步流程。
适用场景:Bridge 脚本转换、推理、MLM 预训练、MoE 模型多节点训练与转换调试。
限制与注意:NCCL 超时先做首日志检查(过滤噪声、查看 Failures、grep ncclUniqueId/timeout);MoE 显存中 TP 不减少专家内存,只有 EP 拆分专家;FP8 权重往返比对因精度差异会报不匹配,属预期;srun 下需同时检查 SLURM_NTASKS。完整模板见 references/templates.md。