ITADN

多进程推理评测的时候有bug似乎需要修复

#1540OpenTttizi 创建于 2026-05-09
T
Tttizicommented
Bug 说明 现象 用 torchrun --nproc-per-node=8 跑 VLMEvalKit 时,推理完成后报错找不到 pkl 文件,例如: [Errno 2] No such file or directory: 'outputs/.../18_MME.pkl' 根因 eval_id 是输出目录名(如 T20260509-174208),由这个函数生成: def build_eval_id(): return 'T' + datetime.datetime.now().strftime('%Y%m%d-%H%M%S') torchrun 启动 8 个进程时存在微小时间差。在 run.py 中,eval_id 在第 524 行生成,而进程组初始化(dist.init_process_group)在第 558 行才发生。这意味着: rank 0 启动较快,在 17:42:08 生成了 eval_id = T20260509-174208 rank 1~6 启动晚了 2 秒,在 17:42:10 生成了 eval_id = T20260509-174210 结果: rank 0 和 rank 7 把 pkl 写入了 T20260509-174208/ rank 1~6 把 pkl 写入了 T20260509-174210/ 最后 rank 0 在自己的目录里合并所有分片时,找不到 rank 1~6 的文件。 修复 在 dist.init_process_group 之后,由 rank 0 将自己的 eval_id 广播给所有 rank,确保所有进程使用同一个输出目录。 用CC debug出来的结果,修改以后确实没有bug了
0 条评论