Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- postech인공지능
- fine_tuning
- RuntimeError
- Torch
- 파인튜닝
- torch.distributed
- trainer
- torch_size
- 러닝레이트
- llm파인튜닝
- github
- 파이썬
- 사전학습
- 포항공대인공지능
- 포스텍인공지능
- 포스텍 ai
- 대학원합격
- Axotl
- 에러노트
- learning_rate
- timeout
- 포항공대인공지능대학원
- loss
- 대학원준비
- 에러
- postech 인공지능대학원
- 포스텍 인공지능 대학원
- llm
- DeepSpeed
- postech
Archives
- Today
- Total
DopeorNope 개발일지
Multi-GPU 훈련시 Timeout 문제 해결법 본문
torch는 분산학습 가지고 훈련하는데 매우 최적화가 잘되어 있다.
특히 보통 이제 torch.distributed를 활용하여 분산학습을 시작하게 되는데, 가끔 훈련시 이러한 문제점을 발생하는 경우가 있다.
Watchdog caught collective operation timeout: WorkNCCL(OpType=BROADCAST, Timeout(ms)=1800000) ran for 1808499 milliseconds before timing out.
이 에러는 정말 단순하지만 보면 볼 수록 이해가 안가는 에러메세지이다.
왜 에러메세지가 생기는가?
그것은 바로, 기본적으로 분산학습을 활용하는 프레임워크로 accelerate를 활용하는데 여기에서 기본적으로 세팅되어 있는 시간이 30분이다.
즉 한작업을 수행하는데 최대 30분까지 기다려주는것이고 그 이상일때는 바로 에러메세지를 밷어낸다.
그러면 이런 것을 어떻게 해결할 수 있는가?
코드 한줄이면 된다.
import datetime
dist.init_process_group(backend="nccl", timeout=datetime.timedelta(days=2))
여기서 dist는 torch.distributed를 dist라는 이름으로 import 한것이다.
즉 좀더 정확하게 작성해주면 아래와 같다.
import torch.distributed as dist
import datetime
dist.init_process_group(backend="nccl", timeout=datetime.timedelta(days=2))
즉 타임아웃 시간을 2일로 늘려주는데, 보통 긴 작업이 한 최대 1시간에서 2시간정도 걸리긴 하는데, 이건 상황에 맞추어 . 잘 활용하도록 하면 될것 같다.
'에러 노트' 카테고리의 다른 글
llama.cpp로 양자화 하기 GGUF (1) | 2024.04.03 |
---|---|
[Deepspeed]assert len(set(t.dtype for t in tensors)) == 1에러 해결 (1) | 2024.01.15 |
[LLM,deepspeed, axotl]LLM 파인튜닝시, loss값이 올라가는 현상 (1) | 2024.01.13 |
Axotl & deepspeed zero3: 모델 레이어 불러올때 torch.Size([0]) 해결법 (1) | 2024.01.13 |
RuntimeError: expected scalar type Half but found Float 에러 해결방법 (0) | 2024.01.02 |