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 ストレージからオンザフライでデータをダウンロードできます。