더북(TheBook)

7.1.2 데이터 병렬화

데이터 병렬화(data parallelism)는 몇 년간 다중 GPU 훈련의 기본 설정이었습니다. 이 방법에서는 미니배치(minibatch)를 더 작은 마이크로배치(microbatch)로 나눕니다. 각각의 GPU가 마이크로배치를 처리하여 개별적으로 손실과 모델 가중치에 대한 손실의 그레이디언트를 계산합니다. 개별 장치가 마이크로배치를 처리하고 난 후 그레이디언트를 모아 다음 라운드를 위한 가중치 업데이트를 계산합니다.

모델 병렬화 대비 데이터 병렬화의 장점은 GPU를 병렬로 실행할 수 있다는 것입니다. 각각의 GPU는 훈련 미니배치의 일부분, 즉 마이크로배치를 처리합니다. 하지만 각 GPU가 전체 모델 복사본을 가져야 한다는 점이 단점입니다. GPU의 VRAM보다 큰 대규모 모델의 경우 이 방법을 사용할 수 없습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.