composer: GPUクラスター全体でPyTorchワークフローをスケールさせるためのディープラーニング・トレーニング・ライブラリ
composer: GPUクラスター全体でPyTorchワークフローをスケールさせるためのディープラーニング・トレーニング・ライブラリ
解決する課題
Composerは、GPUクラスター上での大規模モデルのトレーニングプロセスを簡素化し、加速させるために設計されたディープラーニング・トレーニング・ライブラリです。並列化技術やメモリ最適化といった分散トレーニングの低レベルな複雑さを排除し、研究者や開発者がモデルアーキテクチャや実験に集中できるようにします。
仕組み
PyTorch上に構築されたComposerは、トレーニングループを管理する中央のTrainer抽象化を使用します。このトレーナーは、いくつかの主要なメカニズムを統合しています:
- スケーラビリティ・ツール: 単一のGPUには大きすぎるモデルを扱うためにPyTorchのFullyShardedDataParallelism (FSDP) と Distributed Data Parallelism (DDP) を組み込んでおり、異なるハードウェア構成間でトレーニングを再開できるようにするエラスティック・シャーディング・チェックポインティングをサポートしています。
- コールバックによるカスタマイズ: コールバック・システムにより、コアとなるトレーナーを修正することなく、トレーニングループ内の特定のイベント(例:バッチの終了時)にカスタムロジックを挿入できます。
- アルゴリズムの高速化: Stable Diffusion、BERT、ResNetなどの特定のモデルタイプに対して、トレーニング時間とコストを削減するための、構築済みのアルゴリズム高速化「レシピ」のコレクションを提供します。
- ワークフローの自動化: チェックポイントからの自動再開や、CUDAのout-of-memory (OOM) エラーを防ぐためのauto-microbatchingなどの機能が含まれています。
対象ユーザー
Composerは、PythonとPyTorchに精通しており、LLM、拡散モデル、埋め込みモデル、CNNなど、あらゆるサイズのニューラルネットワーク(特にクラスター規模で動作するもの)をトレーニングしているMLエンジニアや研究者を対象としています。
ハイライト
- クラスター規模のトレーニング: 1から512個のGPUまでシームレスにスケールします。
- エラスティック・チェックポインティング: 使用するGPUの数に関わらず、トレーニングを保存して再開できます。
- OOMの防止: GPUメモリに収まる最大のマイクロバッチサイズを自動的に選択します。
- クラウド統合: リモートストレージ (S3, GCP, OCI) および一般的な実験トラッキングツール (Weights and Biases, MLFlow) をファーストクラスでサポートしています。
- データ・ストリーミング: オンザフライでのクラウド・ブロブ・ストレージ・ダウンロードのために
StreamingDatasetと統合されています。
Sources
- undefinedmosaicml/composer