DeepSpeed: 極大規模なディープラーニングのトレーニングとメモリ効率のためのシステム最適化ライブラリ
DeepSpeed: 極大規模なディープラーニングのトレーニングとメモリ効率のためのシステム最適化ライブラリ
何を解決するか
DeepSpeedは、ディープラーニングのトレーニングの規模と速度を制限する一般的なメモリおよび計算の制約を克服するように設計されています。プロセスをより効率的にし、複数のGPUやハードウェアアクセラレータ間でスケーラブルにすることで、数百億のパラメータを持つ大規模なモデルのトレーニングを可能にします。
仕組み
DeepSpeedは、メモリ使用量とスループットを最適化するために、システムレベルの革新的な一連の技術を採用しています。主な技術は以下の通りです:
- ZeRO (Zero Redundancy Optimizer): 利用可能なGPU間でモデルの状態を分割することで、メモリのオーバーヘッドを削減します。
- 3D-Parallelism: さまざまな種類の並列化を組み合わせてトレーニングをスケールさせます。
- Offloading: GPUの容量を超えるモデルを扱うために、GPUメモリとCPU/NVMe間でデータを移動させます(例:ZeRO-Infinity, ZenFlow, SuperOffload)。
- Sequence Parallelism: 長いコンテキストのシーケンスのトレーニングを特に最適化します(例:Ulysses Sequence Parallelism)。
- Specialized Optimizers: 1-bit Adamのような通信効率の高いツールを含みます。
対象ユーザー
非常に大規模なモデル(LLMなど)をトレーニングしており、NVIDIA, AMD, Intel, およびその他の特化型AIアクセラレータにわたるハードウェア利用率を最大化する必要があるAI研究者やエンジニア向けです。
ハイライト
- 極大規模: MT-530BやBLOOMのような世界をリードするモデルのトレーニングに使用されています。
- 幅広いハードウェアサポート: NVIDIA GPU, AMD GPU, Intel Gaudi/XPU, および Huawei Ascend NPUと互換性があります。
- Hugging Face Integration: TransformersおよびAccelerateライブラリと深く統合されています。
- 柔軟なメモリ管理: 「GPUメモリの壁」を打破するために、CPUおよびNVMeへの高度なオフローディング機能を提供します。
Sources
- undefineddeepspeedai/DeepSpeed