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