Composer 주요 기능 — 확장성·커스터마이즈·워크플로우

Composer 주요 기능

Composer(모토: "Supercharge Your Model Training")는 모델 훈련을 확장·커스터마이즈하고 워크플로우를 개선하는 기능을 중심으로 설계됐어요. 각 기능이 실제로 무엇을 바꾸는지 살펴볼게요.

출처: https://github.com/mosaicml/composer

확장성 (Scalability)

  • FSDP — GPU에 맞지 않는 큰 모델을 위해 PyTorch의 FullyShardedDataParallelism을 트레이너에 통합했어요.
  • 탄력적 샤딩 체크포인트(Elastic sharded checkpointing) — 8 GPU에서 저장하고 16 GPU에서 재개할 수 있어요. 저장한 샤딩 상태가 새 하드웨어 구성과 호환되는지 걱정할 필요가 없어요.

커스터마이즈 (Customizability)

Composer의 훈련 루프는 훈련 과정의 각 단계에서 발생하는 일련의 이벤트를 가져요. 예를 들어 Learning Rate Monitor Callback은 매 BATCH_END 이벤트마다 학습률을 로그해요.

  • 콜백(Callbacks) — 훈련 루프의 어느 지점에서든 커스텀 로직을 넣을 수 있는 콜백 시스템

예를 들어 composer.callbacks.LRMonitor를 쓰면 학습률을 관찰할 수 있어요.

더 나은 워크플로우 (Better workflows)

  • 자동 재개(Auto-resumption) — 훈련이 실패해도 두려워할 필요가 없어요. 코드를 다시 실행하면 Composer가 가장 최근 저장된 체크포인트에서 자동으로 재개해요.

생태계 내 사용

MosaicML 생태계(Composer + StreamingDataset + Mosaic AI Training) 안에서 쓰는 걸 권장해요. LLM 훈련·평가 튜토리얼은 llm-foundry의 TUTORIAL을 참고해요. MPT(상업적 사용 가능한 오픈소스 LLM)도 Composer로 훈련됐어요.

더 알아보기