deepspeedai/DeepSpeed

DeepSpeed is a deep learning optimization library that makes distributed training and inference easy, efficient, and effective.

DeepSpeed – スケーラブルなディープラーニングトレーニングフレームワーク

概要 DeepSpeed は、PyTorch 上に構築されたオープンソースライブラリで、さまざまなハードウェア(NVIDIA、AMD、Intel Gaudi、Xeon CPU など)上で超大規模なディープラーニングモデル(数億から数千億パラメータ)を効率的にトレーニングできます。システムレベルの最適化、メモリ節約技術、並列処理プリミティブを提供し、研究者やエンジニアは低レベルの CUDA/HIP コードを書かずにモデルサイズと速度を拡張できます。

主な機能

  • ZeRO ファミリー – メモリ最適化オプティマイザー(ZeRO、ZeRO-Infinity)。GPU 間でモデル状態をシャーディングし、1 兆パラメータのトレーニングを可能にします。
  • 3D 並列処理 – データ、テンソル、パイプライン並列処理を組み合わせ、ハードウェア利用率を最大化します。
  • オフロードエンジン – SuperOffload、ZeRO-Offload、ZenFlow、Ulysses-Offload は、データを CPU、GPU メモリ、または他のアクセラレータに移動して GPU メモリの圧迫を軽減します。
  • 専用カーネル – カスタム C++/CUDA/HIP オペレーション(AMD 用 System DMA、DeepNVMe I/O スケーリングなど)で、通信と計算をオーバーラップします。
  • 統合レイヤー – Hugging Face Transformers、Accelerate、PyTorch-Lightning、MosaicML Composer、Determined AI、MMEngine などに対応したすぐ使えるアダプター。
  • 多数のハードウェアバックエンドをサポート – NVIDIA、AMD、Intel Gaudi、Intel Xeon/XPU、Huawei Ascend NPU、コミュニティ貢献のアクセラレータ。

典型的なワークフロー

  1. deepspeed pip パッケージをインストールします(カスタム操作の場合はソースからビルド)。
  2. 標準の PyTorch トレーニングスクリプトを作成します。
  3. 並列処理とメモリオフロード戦略を指定する小さな JSON 設定を追加します。
  4. deepspeed train.py --deepspeed_config cfg.json で起動します。
  5. ds_report を使用して、コンパイルされた操作とアクティブなハードウェア機能を確認します。

重要性 DeepSpeed は、世界最大級の言語モデル(Microsoft の 5300 億パラメータ MT-NLG、BLOOM(1760 億)、Jurassic-1(1780 億)など)のトレーニングに使用されており、AI 研究の最前線にスケールできることを証明しています。オープンソースであるため、誰でもこれらの結果を再現したり、新しい並列処理のアイデアを試したりできます。

はじめにとリソース

  • インストール – pip install deepspeed(PyTorch ≥ 2.0 と CUDA/ROCm コンパイラが必要)。Windows は一部機能に制限があります。
  • ドキュメント – https://www.deepspeed.ai/(入門ガイド、JSON 設定リファレンス、API ドキュメント)。
  • コミュニティ – Zoom での定期的な公開オフィスアワー、Slack ワークスペース、活発な GitHub ディスカッション。
  • 例 – リポジトリには、ZeRO-Offload、SDMA all-gather、長シーケンストレーニング(Arctic Long Sequence Training)などのサンプルスクリプトが含まれています。

誰が使うべきか

  • 超大規模な Transformer モデルを構築または微調整する研究者。
  • マルチ GPU または異種クラスタから最大のパフォーマンスを引き出す必要があるエンジニア。
  • 既存の PyTorch コードベースにドロップインの高速化レイヤーを追加したいチーム。

上記の情報はすべてプロジェクトの README から直接取得しています。

関連

  • Dispatch
  • プロジェクト
  • Dispatch
  • プロジェクト
  • プロジェクト