Amazon SageMaker 분산 훈련

분산 훈련을 최대 40% 더 빠르게 완료

Amazon SageMaker는 대규모 딥 러닝 모델 및 데이터 세트를 훈련할 수 있는 가장 빠르고 가장 쉬운 방법을 제공합니다. 알고리즘을 분할하는 SageMaker 분산 훈련은 수동 작업에 비해 훨씬 빠른 시간 내에 AWS GPU 인스턴스 전반의 대규모 딥 러닝 모델과 훈련 데이터 세트를 자동으로 분할합니다. SageMaker는 두 가지 기법, 즉 데이터 병렬 처리와 모델 병렬 처리로 이 같은 효율성을 실현합니다. 모델 병렬 처리는 훈련할 다중 GPU를 분산하기 전에 지나치게 큰 모델을 단일 GPU에 맞게 소규모로 분할합니다. 반면, 데이터 병렬 처리는 훈련과 동시에 대규모 데이터 세트를 분할하여 훈련 속도를 개선합니다.

이미지 분류 및 텍스트 음성 변환과 같은 ML 사용 사례는 점점 갈수록 대규모 컴퓨팅 요건과 데이터 세트를 요구합니다. 예를 들어, 2018년 배포된 최신식 자연어 처리(NLP) 모델인 BERT는 3억4,000만 개의 파라미터를 사용합니다. 현재 T5, GPT-3, Turing-NLG 및 Megatron 같은 최신식 NLP 모델은 계속해서 새로운 정확도를 달성하고 있지만, 수조 개의 파라미터를 필요로 합니다. 단일 GPU 인스턴스에서 T5 또는 GPT-3 같은 모델을 훈련하는 데는 며칠이 소요될 수 있으며, 그 결과 최신 반복을 프로덕션으로 배포하는 기능을 저하시킬 수 있습니다. 또한 사용자의 데이터 및 모델 병렬 처리 전략을 수동으로 구현하려면 몇 주가 걸릴 수 있습니다.

추가 코드 몇 줄 만으로 PyTorch 및 TensorFlow 훈련 스크립트에서 데이터 병렬 처리 또는 모델 병렬 처리를 추가할 수 있으며, Amazon SageMaker는 귀하가 선택한 방법을 적용합니다. SageMaker는 각 GPU 계산의 균형을 맞추기 위해 그래프 분할 알고리즘을 사용하여 모델을 분할하는 최상의 접근 방법을 결정하는 동시에 GPU 인스턴스 간의 통신을 최소화합니다. 또한, SageMaker는 선형에 가까운 확장 효율성을 달성하기 위해 AWS 컴퓨팅과 네트워크 인프라를 충분히 활용할 수 있도록 설계된 알고리즘을 통해 분산 훈련 작업을 최적화하여 수동 작업보다 더욱 빠르게 훈련을 완료할 수 있습니다.

이점

Amazon SageMaker 데이터 병렬 처리

훈련 시간 단축

Amazon SageMaker는 훈련 데이터를 GPU 간에 쉽게 분할할 수 있도록 하여 훈련 시간을 단축합니다. 예를 들어, p3dn.24xlarge 인스턴스에서 Mask R-CNN을 훈련하면 Horovod 등의 오픈 소스 데이터 병렬 처리 솔루션에 비해 SageMaker에서 25% 더 빠르게 실행됩니다. 최적의 동기화를 달성하기 위해 SageMaker가 병렬로 실행되는 GPU를 관리하기 때문에 훈련 시간을 줄일 수 있습니다.

AWS에 최적화

SageMaker 데이터 병렬 처리는 AWS 네트워크 및 인프라를 완전히 활용하여 선형에 가까운 확장 효율성을 달성할 수 있도록 설계된 통신 알고리즘을 제공합니다. 예를 들어, p3dn.24xlarge 인스턴스의 BERT는 SageMaker를 사용하여 90%의 확장 효율성을 달성합니다. 이는 동일한 모델이 Horovod를 사용할 때보다 26% 높은 수치입니다.

기존 프레임워크 API 사용

SageMaker는 분산 훈련에 이미 공통적으로 사용되는 동일한 API를 통해 데이터 병렬 처리 최적화를 제공하므로, 사용자는 새 라이브러리를 학습할 필요가 없습니다. 데이터 병렬 처리를 활성화하려면 PyTorch의 경우 DistributedDataParallel(DDP) API를 사용하고 TensorFlow의 경우 Horovod API를 사용하면 됩니다.

Amazon SageMaker 모델 병렬 처리

자동적이고 효율적인 모델 분할

대규모 모델을 수동으로 분할하려면 가장 경험이 많은 데이터 사이언스 팀도 몇 주가 걸릴 수 있습니다. Amazon SageMaker는 SageMaker Debugger를 사용해 프로파일링하고 GPU 간에 분할하는 가장 효율적인 방법을 찾기 때문에 몇 초 만에 모델을 분할할 수 있습니다.

최소한의 코드 변경

Amazon SageMaker에서는 모델을 여러 GPU로 분할하기 위해 TensorFlow 또는 PyTorch 훈련 스크립트에서 10줄 미만의 코드를 변경해야 합니다. TensorFlow 및 PyTorch의 기존 API를 다시 사용하여 빠르게 실행할 수 있습니다.

리소스 최적화

Amazon SageMaker는 훈련 배치를 더 작은 마이크로 배치로 분할하여 GPU 인스턴스를 최대한 활용할 수 있게 해줍니다. 더 작은 마이크로 배치는 모든 GPU 장치를 동시에 활성 상태로 유지하기 위해 효율적인 파이프라인에서 GPU에 공급됩니다.

사용 사례

객체 주변의 경계 상자, 객체 탐지를 보여줌

객체 탐지

객체 탐지의 경우, 모델 훈련 시간에 흔히 병목 현상이 발생하여 결과를 받는 데 며칠 또는 몇 주를 기다려야 하기 때문에 데이터 사이언스 팀의 작업 속도가 떨어집니다. 예를 들어, 자율 주행 차량 객체 탐지 모델은 차량 인식을 개선하기 위해 최대 수천 기가바이트의 데이터를 훈련시켜야 합니다. SageMaker 데이터 병렬 처리는 데이터 사이언스 팀이 훈련 데이터를 효율적으로 분할하고 수백 또는 수천의 GPU로 빠르게 확장하여 훈련 시간을 며칠에서 몇 분으로 단축하도록 도와줍니다.  

언어 번역이 들어 있는 말풍선, 자연어 처리를 보여줌

자연어 처리

자연어 이해에서, 데이터 사이언티스트는 흔히 레이어 수와 신경망의 크기를 늘려 모델 정확도를 개선함으로써, GPT-2, GPT-3, T5, Megatron 등 수십억 개의 파라미터가 있는 모델을 만듭니다. GPU 전반에서 모델 레이어 및 작업을 분할하는 데는 몇 주가 걸릴 수 있지만, SageMaker 모델 병렬 처리는 모델을 자동으로 분석하고 분할하여 데이터 사이언스 팀이 몇 분 안에 대규모 모델 훈련을 시작할 수 있게 해줍니다.

데이터 스트림이 있는 눈 모양 아이콘, 컴퓨터 비전을 설명함

컴퓨터 비전

컴퓨터 비전에서, 하드웨어 제약으로 인해 데이터 사이언티스트는 원하는 것보다 작은 배치 크기 또는 입력 크기를 선택해야 하는 경우가 많습니다. 예를 들어, 입력이 클수록 모델 정확도가 향상될 수 있지만 배치 크기가 작아 메모리 부족 오류와 성능 저하가 발생할 수 있습니다. 마찬가지로, 배치 크기가 클수록 GPU 사용률과 성능이 향상되지만 모델 정확도가 떨어질 수 있습니다. SageMaker 분산 훈련은 더 작은 배치 크기로 모델을 쉽고 효율적으로 훈련하거나 더 큰 입력으로 훈련할 수 있는 유연성을 제공합니다.

고객

“Latent Space에서는 누구나 생각의 속도로 만들 수 있는 신경 렌더링 게임 엔진을 구축하고 있습니다. 언어 모델링의 발전 덕분에, 우리는 무엇을 생성할지 결정하는 데 텍스트와 이미지 둘 다에 대한 의미론적 이해를 통합하고 있습니다. 지금 우리가 중점을 두는 것은 정교한 ML 파이프라인이 있는 대규모 모델 훈련을 강화하기 위해 정보 검색을 활용하는 것입니다. 이 설정은 분산 훈련에 대한 문제를 가져옵니다. 동시에 훈련되는 여러 데이터 원본과 모델이 있기 때문입니다. 그래서 우리는 Amazon SageMaker의 새로운 분산 훈련 기능을 활용하여 대규모 생성 모델에 대한 훈련을 효율적으로 확장하고 있습니다.”

Sarah Jane Hong, Latent Space의 공동 창립자 겸 최고 사이언스 책임자

turbine_logo
“Turbine은 환자에게 표적 암 치료법을 제공하는 시뮬레이션 기반의 신약 개발 회사입니다. 우리는 기계 학습을 사용하여 독점 네트워크 아키텍처를 기반으로 Simulated Cell이라고 하는 인실리코 인간 세포 모델을 훈련합니다. Simulated Cell은 분자 수준에서 다양한 개입을 정확하게 예측함으로써 새로운 항암제를 발견하고 기존 치료법을 위한 결합 파트너를 찾도록 도와줍니다. 시뮬레이션 훈련은 우리가 계속 반복하는 작업이지만, 단일 기계에서 각 훈련을 하는 데는 며칠이 걸리므로 새로운 아이디어를 빠르게 반복하기가 어렵습니다. 우리는 Amazon SageMaker의 분산 훈련에 흥분을 감추지 못하고 있습니다. 이를 사용하면 훈련 시간을 90% 단축할 수 있을 것으로 예상되며, 따라서 우리 주요 작업에, 즉 세포 모델 훈련을 위한 동급 최고의 코드베이스 작성에 집중할 수 있을 것입니다. SageMaker는 궁극적으로 우리가 환자를 위한 새로운 항암제의 발견과 개발이라는 주요 임무에서 더욱 큰 효과를 누릴 수 있도록 해줍니다.”

Kristóf Szalay, Turbine의 CTO

Amazon SageMaker 분산 훈련 시작하기