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、コミュニティ貢献のアクセラレータ。
典型的なワークフロー
deepspeedpip パッケージをインストールします(カスタム操作の場合はソースからビルド)。- 標準の PyTorch トレーニングスクリプトを作成します。
- 並列処理とメモリオフロード戦略を指定する小さな JSON 設定を追加します。
deepspeed train.py --deepspeed_config cfg.jsonで起動します。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
- プロジェクト
- プロジェクト