ゼファーネットのロゴ

DeepSpeed で PyTorch を高速化し、Intel Habana Gaudi ベースの DL1 EC2 インスタンスで大規模な言語モデルをトレーニングする | アマゾン ウェブ サービス

日付:

数十億のパラメータを使用して大規模言語モデル (LLM) をトレーニングするのは困難な場合があります。 研究者は、モデル アーキテクチャの設計に加えて、混合精度サポート、勾配累積、チェックポイント設定などの分散トレーニング用の最先端のトレーニング手法をセットアップする必要があります。 大規模なモデルの場合、単一のアクセラレータ デバイスで利用可能なメモリがデータ並列処理のみを使用してトレーニングされたモデルのサイズに制限され、モデルの並列トレーニングを使用するにはトレーニング コードに追加レベルの変更が必要になるため、トレーニングのセットアップはさらに困難になります。 などの図書館 ディープスピード (PyTorch 用のオープンソースの深層学習最適化ライブラリ) は、これらの課題のいくつかに対処し、モデルの開発とトレーニングを加速するのに役立ちます。

この投稿では、Intel Habana Gaudi ベースのトレーニングをセットアップしました。 アマゾン エラスティック コンピューティング クラウド (Amazon EC2) DL1 インスタンスを分析し、DeepSpeed などのスケーリング フレームワークを使用する利点を定量化します。 エンコーダタイプの変圧器モデル (340 億 1.5 万から 1.5 億のパラメータを持つ BERT) のスケーリング結果を示します。 82.7 億パラメータ モデルの場合、以下を使用して 128 アクセラレータ (16 dl1.24xlarge インスタンス) 全体で XNUMX% のスケーリング効率を達成しました。 ディープスピード ゼロ ステージ 1 の最適化。 データ並列パラダイムを使用して大規模なモデルをトレーニングするために、オプティマイザーの状態は DeepSpeed によって分割されました。 このアプローチは、データ並列処理を使用して 5 億のパラメーター モデルをトレーニングするように拡張されました。 また、FP16 データ型を使用する場合と比較してメモリ サイズを削減し、トレーニング パフォーマンスを向上させるために、Gaudi の BF32 データ型のネイティブ サポートも使用しました。 その結果、BERT 1 億パラメータ モデルの事前トレーニング (フェーズ 16) モデルの収束を 1.5 時間以内に達成しました (目標は XNUMX 日以内に大規模なモデルをトレーニングすることでした)。 ウィキコーパスのデータセット。

トレーニングのセットアップ

16 個の dl1.24xlarge インスタンスで構成されるマネージド コンピューティング クラスターをプロビジョニングしました。 AWSバッチ。 私たちは、 AWSバッチワークショップ これは、AWS Batch を使用して分散トレーニング クラスターをセットアップする手順を示しています。 各 dl1.24xlarge インスタンスには 32 つの Habana Gaudi アクセラレータがあり、それぞれに 700 GB のメモリと、合計双方向相互接続帯域幅がそれぞれ XNUMX Gbps のカード間のフルメッシュ RoCE ネットワークがあります (「 Amazon EC2 DL1 インスタンスの詳細 詳細については)。 dl1.24xlarge クラスターも XNUMX つを使用しました AWS エラスティック ファブリック アダプター (EFA)、ノード間の合計 400 Gbps の相互接続。

分散トレーニング ワークショップでは、分散トレーニング クラスターをセットアップする手順を説明します。 このワークショップでは、AWS Batch を使用した分散トレーニングのセットアップ、特にフルマネージドクラスター上で大規模なコンテナ化されたトレーニングジョブを起動するためのマルチノード並列ジョブ機能について説明します。 より具体的には、フルマネージドの AWS Batch コンピューティング環境が DL1 インスタンスを使用して作成されます。 コンテナは次から引き出されます。 Amazon エラスティック コンテナ レジストリ (Amazon ECR)、マルチノード並列ジョブ定義に基づいてクラスター内のインスタンスに自動的に起動されます。 このワークショップは、PyTorch と DeepSpeed を使用して、BERT (340 億 1.5 万から XNUMX 億のパラメーター) モデルのマルチノード、マルチ HPU データ並列トレーニングを実行して終了します。

DeepSpeed を使用した BERT 1.5B の事前トレーニング

ハバナ SynapseAI v1.5 & v1.6 DeepSpeed ZeRO1 最適化をサポートします。 の DeepSpeed GitHub リポジトリの Habana フォーク Gaudi アクセラレータをサポートするために必要な変更が含まれています。 分散データ並列 (マルチカード、マルチインスタンス)、ZeRO1 最適化、および BF16 データ型が完全にサポートされています。

これらすべての機能は、 BERT 1.5B モデル参照リポジトリこれは、BERT 実装から派生した、48 層、1600 隠れ次元、25 ヘッドの双方向エンコーダー モデルを導入しています。 このリポジトリには、ベースラインの BERT Large モデル実装 (24 層、1024 個の隠れ、16 ヘッド、340 億 XNUMX 万パラメータのニューラル ネットワーク アーキテクチャ) も含まれています。 事前トレーニング モデリング スクリプトは、 NVIDIA ディープ ラーニング サンプル リポジトリ wikicorpus_en データをダウンロードし、生データをトークンに前処理し、分散データ並列トレーニング用にデータをより小さな h5 データセットにシャーディングします。 この一般的なアプローチを採用して、DL1 インスタンスを使用するデータセットを使用してカスタム PyTorch モデル アーキテクチャをトレーニングできます。

トレーニング前(フェーズ 1)のスケーリング結果

大規模なモデルを事前トレーニングする場合、私たちはソリューションの 1.5 つの側面に主に焦点を当てました。トレーニング時間によって測定されるトレーニング パフォーマンスと、完全に統合されたソリューションに到達する費用対効果です。 次に、BERT XNUMXB の事前トレーニングを例として、これら XNUMX つのメトリックについて詳しく説明します。

パフォーマンスとトレーニング時間のスケーリング

スケーラビリティのベースラインとして、BERT Large 実装のパフォーマンスを測定することから始めます。 次の表は、1 ~ 8 個の dl1.24xlarge インスタンス (インスタンスごとに XNUMX つのアクセラレータ デバイスを使用) からの XNUMX 秒あたりのシーケンスの測定スループットを示しています。 単一インスタンスのスループットをベースラインとして使用して、複数のインスタンスにわたるスケーリングの効率を測定しました。これは、価格パフォーマンスのトレーニング指標を理解するための重要な手段です。

インスタンス数 アクセラレータの数 XNUMX 秒あたりのシーケンス数 アクセラレータごとの XNUMX 秒あたりのシーケンス数 スケーリング効率
1 8 1,379.76 172.47 視聴者の38%が
2 16 2,705.57 169.10 視聴者の38%が
4 32 5,291.58 165.36 視聴者の38%が
8 64 9,977.54 155.90 視聴者の38%が

次の図は、スケーリング効率を示しています。

BERT 1.5B では、収束を保証するために参照リポジトリ内のモデルのハイパーパラメータを変更しました。 アクセラレータあたりの有効バッチ サイズは 384 (メモリ使用量を最大化するため) に設定され、ステップあたり 16 のマイクロバッチと 24 ステップの勾配累積が行われました。 0.0015 ノードと 0.003 ノードにはそれぞれ 8 と 16 の学習率が使用されました。 これらの構成により、1 つの dl1.5xlarge インスタンス (8 アクセラレータ) では約 1.24 時間、64 の dl25xlarge インスタンス (15 アクセラレータ) では 16 時間で BERT 1.24B のフェーズ 128 事前トレーニングの収束を達成しました。 次の図は、アクセラレータの数をスケールアップしたときの平均損失をトレーニング エポック数の関数として示しています。

前述の構成では、単一インスタンス内の 85 アクセラレータのベースラインから、64 アクセラレータで 83%、128 アクセラレータで 8% という強力なスケーリング効率が得られました。 次の表にパラメータをまとめます。

インスタンス数 アクセラレータの数 XNUMX 秒あたりのシーケンス数 アクセラレータごとの XNUMX 秒あたりのシーケンス数 スケーリング効率
1 8 276.66 34.58 視聴者の38%が
8 64 1,883.63 29.43 視聴者の38%が
16 128 3,659.15 28.59 視聴者の38%が

次の図は、スケーリング効率を示しています。

まとめ

この投稿では、Habana SynapseAI v1.5/v1.6 による DeepSpeed のサポートと、それが Habana Gaudi アクセラレータでの LLM トレーニングのスケールアップにどのように役立つかを評価しました。 1.5 億パラメータの BERT モデルの事前トレーニングでは、16% の強力なスケーリングで 128 個の Gaudi アクセラレータのクラスターに収束するまでに 85 時間かかりました。 で示されているアーキテクチャを参照することをお勧めします。 AWSワークショップ そして、DL1 インスタンスを使用してカスタム PyTorch モデル アーキテクチャをトレーニングするためにこれを採用することを検討してください。


著者について

マハデヴァンバラスブラマニアム オートノマス コンピューティングのプリンシパル ソリューション アーキテクトであり、物理学を取り入れたディープ ラーニングの分野で 20 年近くの経験を持ち、大規模な産業システム向けのデジタル ツインの構築と展開を行っています。 Mahadevan は、マサチューセッツ工科大学で機械工学の博士号を取得し、25 を超える特許と出版物を所有しています。

RJ は、トレーニングと推論のための大規模な深層学習システムを構築するための取り組みを主導するSearchM5チームのエンジニアです。 仕事以外では、彼はさまざまな料理を探求し、ラケットスポーツをしています。

サンダー・ランガナサン Amazon EC2 チームのビジネス開発、ML フレームワークの責任者です。 彼は、Amazon EKS、Amazon ECS、Elastic Fabric Adapter、AWS Batch、Amazon SageMaker などの AWS サービス全体にわたる大規模な ML ワークロードに焦点を当てています。 彼の経験には、NetApp、Micron Technology、Qualcomm、および Mentor Graphics での製品管理および製品開発における指導的役割が含まれます。

アビナンダン・パトニ Amazon Search のシニア ソフトウェア エンジニアです。 彼は、スケーラブルな分散型深層学習トレーニングとリアルタイム推論のためのシステムとツールの構築に焦点を当てています。

ピエール・イヴ・アクイランティ アマゾン ウェブ サービスのフレームワーク ML ソリューションの責任者であり、業界最高のクラウド ベースの ML フレームワーク ソリューションの開発を支援しています。 彼の経歴はハイパフォーマンス コンピューティングであり、AWS に入社する前は石油およびガス業界で働いていました。 ピエール・イヴはフランス出身で、博士号を取得しています。 リール大学でコンピューターサイエンスの博士号を取得。

スポット画像

最新のインテリジェンス

スポット画像