用途:调试分布式训练作业失败,输入为 worker 日志目录(SLURM/torchrun 的 stderr,必需)和可选的 AIStore 守护进程日志(proxy/target 压缩包或解压目录)。目标是追溯级联故障的根因,而非停留在表象。
主要能力:分阶段排查。Phase 0 获取日志,提示用 scp 或 cp 收集全部按节点 error-JOBID-*.out 文件。Phase 1 对 worker 日志做分诊:识别框架(NeMo、Megatron、PyTorch Lightning、DeepSpeed)、规模、是否从检查点恢复;按优先级搜索致命错误(NCCL 超时、SIGTERM/SIGKILL、CUDA OOM、RuntimeError、连接重置、重试耗尽等);对 NCCL 超时必须检查所有 rank,用 sort -u 找离群 rank,区分“自身看门狗触发”与“收到其他 rank 的 flight recorder 信号”,并用 last enqueued/completed work 判断卡在 CPU 侧还是 GPU 侧;构建因果时间线;检查 NeMo 的每步集合通信点(PreemptionCallback、NeMoModelCheckpoint、DDP all-reduce、broadcast_buffers)。Phase 2 在提供 AIStore 日志时,解压 tarball、按文件名时间范围定位故障窗口文件、核对时区、检查 target/proxy 的 err.get.n、err.getbatch.n、err.http.write.n 等计数器与错误级消息,关联 x-get-batch 失败链。Phase 3 输出报告:作业详情、时间线表、根因链、关键文件、建议,并归类失败类型(存储 I/O、网络、GPU/CUDA、数据、软件、基础设施、数据加载停滞)。
使用方式:按技能提示提供日志目录参数;若涉及存储 I/O 且未提供 AIS 日志,会建议用 ais CLI 下载(需设置 AIS_ENDPOINT、AIS_AUTHN_TOKEN,处理 TLS,执行 ais log get cluster <目录>)。
限制:需要用户提供全部 per-node 日志,否则无法定位具体 rank;AIS 日志为可选,缺失时只能给出推测;日志时间戳可能不含时区,需交叉核对;具体收费、平台支持等信息暂未提供。