mosaicml/composer
Supercharge Your Model Training
What it solves
Composer 是一個深度學習訓練函式庫,旨在簡化與加速在 GPU 叢集上訓練大規模模型的流程。它移除分散式訓練的底層複雜性,如平行化技術與記憶體最佳化,讓研究人員與開發者能專注於模型架構與實驗。
How it works
基於 PyTorch 建置,Composer 使用一個中心化的 Trainer 抽象來管理訓練迴圈。此 trainer 整合了多項關鍵機制:
- Scalability Tools: 它結合了 PyTorch FullyShardedDataParallelism (FSDP) 與 Distributed Data Parallelism (DDP) 以處理單一 GPU 無法容納的模型,並支援彈性分片檢查點,允許在不同硬體配置間恢復訓練。
- Customization via Callbacks: 回呼系統允許使用者在訓練迴圈的特定事件(例如 batch 結束時)插入自訂邏輯,而不必修改核心 trainer。
- Algorithmic Speedups: 提供一系列預建的「配方」(recipes),透過演算法加速來減少特定模型類型(如 Stable Diffusion、BERT、ResNet)的訓練時間與成本。
- Workflow Automation: 包含自動從檢查點恢復與自動微批次 (auto‑microbatching) 功能,以防止 CUDA 記憶體不足 (OOM) 錯誤。
Who it’s for
Composer 針對熟悉 Python 與 PyTorch 的機器學習工程師與研究者設計,適用於訓練任何規模的神經網路,包括大型語言模型、擴散模型、嵌入模型與 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 儲存下載資料。