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 儲存下載資料。