composer: 一個用於在 GPU 集群中擴展 PyTorch 工作流程的深度學習訓練函式庫
composer: 一個用於在 GPU 集群中擴展 PyTorch 工作流程的深度學習訓練函式庫
它解決了什麼問題
Composer 是一個旨在簡化並加速在 GPU 集群上訓練大規模模型的深度學習訓練函式庫。它消除了分散式訓練中的低階複雜性,例如並行技術和記憶體優化,讓研究人員和開發人員能夠專注於模型架構和實驗。
運作方式
Composer 基於 PyTorch 構建,使用一個中央 Trainer 抽象層來管理訓練迴圈。此訓練器整合了幾個關鍵機制:
- 可擴展性工具: 它整合了 PyTorch FullyShardedDataParallelism (FSDP) 和 Distributed Data Parallelism (DDP) 來處理單個 GPU 無法容納的大型模型,並支持彈性分片檢查點 (elastic sharded checkpointing) 以允許在不同的硬體配置之間恢復訓練。
- 透過 Callback 進行自定義: Callback 系統允許使用者在訓練迴圈的特定事件(例如在 batch 的末尾)插入自定義邏輯,而無需修改核心訓練器。
- 演算法加速: 它提供了一系列預建的演算法加速「食譜」(recipes),以減少特定模型類型(如 Stable Diffusion、BERT 和 ResNet)的訓練時間和成本。
- 工作流程自動化: 它包含從檢查點自動恢復訓練以及自動微批次處理 (auto-microbatching) 等功能,以防止 CUDA out-of-memory (OOM) 錯誤。
對象是誰
Composer 旨在提供給熟悉 Python 和 PyTorch 並正在訓練各種規模神經網路(包括 LLMs、diffusion models、embedding models 和 CNNs)的機器學習工程師和研究人員,特別是那些在集群規模上運行的模型。
重點亮點
- 集群規模訓練: 從 1 到 512 個 GPU 進行無縫擴展。
- 彈性檢查點: 無論使用多少個 GPU,都可以儲存並恢復訓練。
- 防止 OOM: 自動選擇適合 GPU 記憶體的最大微批次大小。
- 雲端整合: 對遠端儲存 (S3, GCP, OCI) 和熱門的實驗追蹤工具 (Weights and Biases, MLFlow) 提供一流的支持。
- 數據流式傳輸: 與
StreamingDataset整合,實現雲端 blob 儲存的即時下載。
Sources
- undefinedmosaicml/composer