单机多卡训练时内存占用过高
zodiacg opened this issue · comments
Leo Liu commented
使用8*3090+约400G内存精调CogVLM时候(MP_SIZE=4),发现使用8张显卡精调内存会在加载参数阶段爆掉,使用4张就能够正常加载进行精调。
稍微调试了一下发现BaseModel.from_pretrained
方法在修改了model_parallel_size时,似乎每个进程都会在cpu加载完整模型然后再分割参数。请问这个是必要的吗?有没有办法使用其它方式减少这部分的主内存占用?
Qingsong Lv commented
并不会在每个进程都加载cpu,只有0号卡会加载cpu,所以4卡和8卡应该是一样的内存。
Leo Liu commented
找到问题了,NUM_GPUS_PER_WORKER
一直写的1……导致rank计算有问题