mosaicml/composer
Supercharge Your Model Training
What it solves
Composer는 GPU 클러스터에서 대규모 모델을 학습하는 과정을 단순화하고 가속화하도록 설계된 딥러닝 학습 라이브러리입니다. 분산 학습의 저수준 복잡성(병렬화 기법 및 메모리 최적화)을 제거하여 연구자와 개발자가 모델 아키텍처와 실험에 집중할 수 있게 합니다.
How it works
PyTorch 위에 구축된 Composer는 학습 루프를 관리하는 중앙 Trainer 추상화를 사용합니다. 이 트레이너는 여러 핵심 메커니즘을 통합합니다:
- Scalability Tools: PyTorch FullyShardedDataParallelism (FSDP)와 Distributed Data Parallelism (DDP)를 결합해 단일 GPU에 맞지 않는 모델을 처리하고, 탄력적인 샤딩 체크포인트를 지원해 다양한 하드웨어 구성에서 학습을 재개할 수 있습니다.
- Customization via Callbacks: 콜백 시스템을 통해 사용자는 학습 루프의 특정 이벤트(예: 배치 종료 시)에 커스텀 로직을 삽입할 수 있어 핵심 트레이너를 수정할 필요가 없습니다.
- Algorithmic Speedups: Stable Diffusion, BERT, ResNet 등 특정 모델 유형에 대해 학습 시간과 비용을 줄이는 사전 구축된 "레시피"(recipes)를 제공합니다.
- Workflow Automation: 체크포인트 자동 재개와 자동 마이크로배치(auto‑microbatching) 기능을 포함해 CUDA 메모리 부족(OOM) 오류를 방지합니다.
Who it’s for
Composer는 Python과 PyTorch에 익숙한 ML 엔지니어와 연구자를 대상으로 하며, LLM, 확산 모델, 임베딩 모델, CNN 등 규모에 관계없이 모든 신경망을 학습하는 데 적합합니다. 특히 클러스터 규모에서 운영되는 경우에 유용합니다.
Highlights
- Cluster-Scale Training: 1대부터 512대 GPU까지 원활하게 확장됩니다.
- Elastic Checkpointing: GPU 수에 관계없이 학습을 저장하고 재개할 수 있습니다.
- OOM Prevention: GPU 메모리에 맞는 최대 마이크로배치 크기를 자동으로 선택합니다.
- Cloud Integration: 원격 스토리지(S3, GCP, OCI)와 주요 실험 추적 도구(Weights and Biases, MLFlow)를 일류 수준으로 지원합니다.
- Data Streaming:
StreamingDataset과 통합되어 클라우드 Blob 스토리지에서 데이터를 실시간으로 다운로드합니다.