ERROR:torch.distributed.elastic.multiprocessing.api:failed (exitcode: 1) local_rank: 1

yoonene·2023년 1월 19일
0

ML/DL

목록 보기
15/17

multi GPU로 data parallel하여 학습하려고 했는데

OOM 에러와
ERROR:torch.distributed.elastic.multiprocessing.api:failed (exitcode: 1) local_rank: 1 (pid: 2762685)

이런 오류가 났다.

이런저런 시도를 하다 모델 사이즈를 작은 걸로 바꿨더니 해결됐다.
그래서 모델은 기존 걸로 하고 배치를 512에서 128까지 줄여서 돌리면 될 줄 알았는데 또 OOM이 났다.

그래서 data parallel말고 model parallel로 해봤다. 이건 돌아갔다.
GPU 환경에 비해 모델이 많이 커서 오류가 나는 것 같다.

설정해두신 default인 polyglot-ko-3.8b 모델과 512 배치로 돌리려면 더 많은 GPU가 필요하거나 deepspeed 등으로 메모리 효율을 높여야 할 것 같다.


진실

  • 멘토님께 여쭤봤더니 원래 multi-GPU라 모든 에러 밑에 저 에러메시지가 뜬다고 말씀해주셨다.
  • 배치 사이즈는 관계없다. accumulate로 accumulate_step = batch_size//max_batch_size_per_gpu*gpu 개수 로 update step을 설정하고, 사실상 한 step마다 배치 1로 돌아가고 있었다. 그러다 accumulate_step에 도달하면 clip했던 gradient를 update 해주기 때문에 배치 사이즈는 관계없었다.
  • 원래 polyglot-ko-3.8b를 DeepSpeed 안하고 돌리면 OOM이 떴다고 한다.
    따라서 deepspeed_config로 accelerate launch 해야 한다.
profile
NLP Researcher / Information Retrieval / Search

0개의 댓글