Megatron-LM: 모델 병렬성 사용을 통한 수십억 개 매개변수 언어 모델 훈련

최근의 언어 모델링 연구는 대형 트랜스포머 모델을 훈련시키면 자연어 처리(Natural Language Processing, NLP) 응용 프로그램에서 최신 기술(state of the art)을 발전시킨다는 것을 입증하고 있습니다. 그러나 매우 큰 모델은 메모리 제약으로 인해 훈련하기가 어려울 수 있습니다. 본 연구에서는 매우 큰 트랜스포머 모델을 훈련시키기 위한 우리의 기술을 소개하며, 수십억 개의 매개변수를 가진 트랜스포머 모델을 훈련시키는 간단하고 효율적인 층 내(intra-layer) 모델 병렬 접근법을 구현합니다. 우리의 접근법은 새로운 컴파일러나 라이브러리 변경이 필요하지 않으며, 파이프라인 모델 병렬주의와 독립적이면서 보완적입니다. 또한, 몇 가지 통신 연산만 네이티브 PyTorch에 삽입하여 완전히 구현할 수 있습니다. 우리는 이 접근법을 512개의 GPU를 사용하여 최대 83억 개의 매개변수를 가진 트랜스포머 기반 모델까지 수렴시키는 과정으로 설명합니다. 단일 GPU 베이스라인(39 테라플롭스, 이는 피크 플롭스의 30%에 해당)과 비교할 때 76%의 확장 효율성을 유지하면서 전체 애플리케이션에서 15.1 페타플롭스를 지속적으로 유지하였습니다.대형 언어 모델이 최신 기술(SOTA)을 더욱 발전시킬 수 있다는 것을 증명하기 위해, 우리는 GPT-2와 유사한 83억 개 매개변수 트랜스포머 언어 모델과 BERT와 유사한 39억 개 매개변수 모델을 훈련시켰습니다. 우리는 BERT와 같은 모델에서 층 정규화(layer normalization) 배치 위치에 주의를 기울이는 것이 모델 크기가 커짐에 따라 성능 향상에 결정적임을 보여주었습니다. GPT-2 모델을 사용하여 WikiText103 데이터셋에서 SOTA 결과(10.8 vs SOTA 난도(perplexity) 15.8)와 LAMBADA 데이터셋에서 SOTA 정확도(66.5% vs SOTA 정확도 63.2%)를 달성하였습니다. 또한, 우리의 BERT 모델은 RACE 데이터셋에서 SOTA 결과(90.9% vs SOTA 정확도 89.4%)를 달성하였습니다.