SuperAPI AI 工具集

nemo-mbridge-multi-node-slurm

部署与运维

查看项目

更新于 10-16 03:49

技能介绍

用途:把单节点 uv run python -m torch.distributed.run 命令转换为带 Enroot 容器支持的多节点 Slurm sbatch 脚本,并排查多节点作业的常见故障。

主要能力:推荐 srun 原生启动(--ntasks-per-node=8,直接 srun 拉起),避免 torch.distributed.run 与 TRAIN_CMD 转义问题;说明 Bridge 在 initialize.py 分布式初始化时从 SLURM 变量(SLURM_PROCID、SLURM_NTASKS、SLURM_LOCALID、SLURM_NODELIST)自动推导 RANK、WORLD_SIZE、LOCAL_RANK、MASTER_ADDR、MASTER_PORT。旧式 uv run torch.distributed 方式用 --ntasks-per-node=1,由 torchrun 按节点派发进程,否则会端口冲突。提供 salloc + srun 交互式 GPU 调试三步法。

使用方式:仓库、数据、日志、HF_HOME、UV_CACHE_DIR、NEMO_HOME 需放在共享文件系统;采用两阶段 srun,先单进程 uv sync 预热缓存再跑全量;凭证通过调度器环境或受限密钥文件提供,不写入脚本。

限制与注意事项:NEMO_HOME 不能用容器本地默认路径,否则多节点 SFT 会因打包数据不可见失败;MoE 模型需按 experts_per_gpu = num_experts / EP 估算显存,TP 不减少专家内存;FP8 权重往返比对可能因 BF16/FP8 精度差报权重不匹配;日志排查需过滤警告噪声并先看首个失败 rank。可复制的 sbatch 模板见 references/templates.md。