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 存储下载数据。