-
4. Parallel & Hyperparameter Tuning & TroubleshootingAI/3주차 2021. 8. 20. 17:48
Model Parallel & Data Parallel
- 모델 나누기 / 데이터 나누기
- 모델 병렬화는 병목, 파이프라인의 어려움으로 인해 어렵다
- 데이터 병렬화는 데이터를 나눠 GPU에 할당하고, 결과를 평균낸다.
- mimibatch 수식과 유사하지만, 여러 GPU에서 병렬적으로 실행
- DataParallel - 데이터를 분배한 후 평균을 취함.
- GPU 사용 불균형 문제 발생(한곳에서 평균을 내주기 때문에), Batch 사이즈 감소
- DistributedDataParallel
- 각 CPU마다 프로세스를 생성하여 개별 GPU에 할당(개별적으로 평균 계산)
PIN memory: DRAM에 데이터를 바로 올림
Hyperparameter Tuning
- 모델이 학습하지 않는 값을 사람이 지정 (lr, 모델의 크기, optimizer 등)
- Grid와 Random 방식이 대표적
- 최근에는 Bayesian 기법들 이용
Ray 모듈
- multi-node multi processing 지원 모듈
- ML/DL의 병렬 처리를 위해 개발된 모듈
- 하이퍼파라미터를 찾기위한 다양한 모듈 제공
TroubleShooting
- GPUtil 사용
import GPUtil GPUtil.showUtilization()
'AI > 3주차' 카테고리의 다른 글
3. 시각화에서 텍스트 / Loading & Monitoring with Pytorch (0) 2021.08.19 2. Dataset & Dataloader (0) 2021.08.19 1. Pytorch (0) 2021.08.17