composer: GPU 클러스터 전반에 걸쳐 PyTorch 워크플로를 확장하기 위한 딥러닝 학습 라이브러리

composer: GPU 클러스터 전반에 걸쳐 PyTorch 워크플로를 확장하기 위한 딥러닝 학습 라이브러리

해결하는 문제

Composer는 GPU 클러스터에서 대규모 모델을 학습하는 과정을 단순화하고 가속화하도록 설계된 딥러닝 학습 라이브러리입니다. 병렬 처리 기법 및 메모리 최적화와 같은 분산 학습의 저수준 복잡성을 제거하여 연구자와 개발자가 모델 아키텍처와 실험에 집중할 수 있게 합니다.

작동 방식

PyTorch 위에 구축된 Composer는 학습 루프를 관리하는 중앙 Trainer 추상화를 사용합니다. 이 트레이너는 여러 핵심 메커니즘을 통합합니다:

  • 확장성 도구: 단일 GPU에 맞지 않는 모델을 처리하기 위해 PyTorch FullyShardedDataParallelism (FSDP) 및 Distributed Data Parallelism (DDP)을 포함하고, 다양한 하드웨어 구성에서 학습을 재개할 수 있도록 탄력적인 샤드 체크포인트를 지원합니다.
  • 콜백을 통한 커스터마이징: 콜백 시스템을 통해 사용자는 핵심 트레이너를 수정하지 않고도 학습 루프의 특정 이벤트(예: 배치 종료 시)에서 사용자 정의 로직을 삽입할 수 있습니다.
  • 알고리즘 가속: Stable Diffusion, BERT, ResNet과 같은 특정 모델 유형에 대한 학습 시간과 비용을 줄이는 사전 구축된 "레시피" 컬렉션을 제공합니다.
  • 워크플로 자동화: 체크포인트에서 자동 재개 및 자동 마이크로배칭과 같은 기능을 포함하여 CUDA 메모리 부족(OOM) 오류를 방지합니다.

대상 사용자

Composer는 Python과 PyTorch에 익숙하고, LLM, diffusion 모델, 임베딩 모델, CNN 등 어떤 규모의 신경망이라도 학습하는 ML 엔지니어와 연구자를 위해 설계되었습니다. 특히 클러스터 규모에서 작업하는 경우에 적합합니다.

주요 특징

  • 클러스터 규모 학습: 1개부터 512개 GPU까지 원활하게 확장됩니다.
  • 탄력적 체크포인트: 사용된 GPU 수와 관계없이 학습을 저장하고 재개할 수 있습니다.
  • OOM 방지: GPU 메모리에 맞는 가장 큰 마이크로배치 크기를 자동으로 선택합니다.
  • 클라우드 통합: 원격 스토리지(S3, GCP, OCI)와 인기 실험 추적 도구(Weights and Biases, MLFlow)에 대한 일류 지원을 제공합니다.
  • 데이터 스트리밍: StreamingDataset과 통합되어 클라우드 블롭 스토리지에서 실시간으로 데이터를 다운로드합니다.

Sources