OpenAI는 그 거대한 뉴럴 네트워크 모델을 어떻게 합리적인 시간 안에 학습시킬 수 있었을까요?
해답은 다양한 딥러닝 병렬 처리 기법들의 조합입니다.
- 데이터 병렬 처리 - 서로 다른 GPU에서 배치의 서로 다른 하위 집합을 실행합니다.
- 파이프라인 병렬 처리 - 서로 다른 GPU에서 모델의 서로 다른 레이어를 실행합니다.
- 텐서 병렬 처리 - 여러 개의 GPU에 분할되는 행렬 곱셈처럼 단일 작업에 대한 수리적 연산을 나눕니다.
- 전문가 혼합(MoE) - 각 레이어의 일부만 사용하여 각 샘플을 처리합니다.
초거대 모델에 대한 업계 관심에 높아지고 있고 산업 한가운데에 있는 저 또한 그러한 열기를 느끼고 있는데요. 때마침 지난 6월 9일 OpenAI는 병렬 처리 기법들에 대해 간결하지만, 종합적으로 다룬 글을 자사 블로그에 게재했습니다.
개론으로 삼을만한 아주 좋은 글이기에 직접 번역해봤습니다.