高速なトレーニングと推論 Habana Gaudi®2 vs Nvidia A100 80GB
'高速なトレーニングと推論:Habana Gaudi®2 vs Nvidia A100 80GB'
この記事では、Habana® Gaudi®2を使用してモデルのトレーニングと推論を高速化し、🤗 Optimum Habanaを使用してより大きなモデルをトレーニングする方法について説明します。さらに、BERTの事前トレーニング、Stable Diffusion推論、およびT5-3Bファインチューニングなど、第一世代のGaudi、Gaudi2、およびNvidia A100 80GBのパフォーマンスの違いを評価するためのいくつかのベンチマークを紹介します。ネタバレ注意 – Gaudi2はトレーニングと推論の両方でNvidia A100 80GBよりも約2倍高速です!
Gaudi2は、Habana Labsが設計した第2世代のAIハードウェアアクセラレータです。単一のサーバには、各々96GBのメモリを持つ8つのアクセラレータデバイスが搭載されています(第一世代のGaudiでは32GB、A100 80GBでは80GB)。Habana SDKであるSynapseAIは、第一世代のGaudiとGaudi2の両方に共通しています。つまり、🤗 Optimus Habanaは、🤗 Transformersと🤗 DiffusersライブラリとSynapseAIの間の非常に使いやすいインターフェースを提供し、第一世代のGaudiと同じようにGaudi2でも動作します!ですので、既に第一世代のGaudi用の使用準備が整ったトレーニングや推論のワークフローがある場合は、何も変更することなくGaudi2で試してみることをお勧めします。
Gaudi2へのアクセス方法
IntelとHabanaがGaudi2を利用可能にするための簡単で費用効果の高い方法の1つは、Intel Developer Cloudで利用できるようになっています。そこでGaudi2を使用するためには、以下の手順に従う必要があります:
-
Intel Developer Cloudのランディングページに移動し、アカウントにサインインするか、アカウントを登録します。
-
Intel Developer Cloudの管理コンソールに移動します。
-
「Habana Gaudi2 Deep Learning Server」を選択し、最新のIntel® Xeon®プロセッサを搭載した8つのGaudi2 HL-225Hメザニンカードを搭載していることを確認し、以下の画像の右下隅の「Launch Instance」をクリックします。
-
インスタンスをリクエストします:
-
リクエストが承認されると、再度ステップ3を行い、「Add OpenSSH Publickey」をクリックして支払い方法(クレジットカードまたはプロモーションコード)およびSSH公開鍵を追加します。SSH公開鍵は
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa
コマンドで生成することができます。支払い方法やSSH公開鍵を追加するたびにステップ3にリダイレクトされる場合があります。 -
ステップ3を再度行い、「Launch Instance」をクリックします。実際にインスタンスを起動するために提案された一般条件を承諾する必要があります。
-
Intel Developer Cloudの管理コンソールに移動し、「View Instances」というタブをクリックします。
-
Gaudi2インスタンスにリモートでアクセスするためのSSHコマンドをコピーすることができます!
インスタンスを終了させ、Gaudi2を再度使用する場合は、全プロセスを再実行する必要があります。
このプロセスの詳細については、こちらの情報をご覧ください。
ベンチマーク
第一世代のGaudi、Gaudi2、およびA100 80GBのトレーニングと推論の能力を評価するために、さまざまなサイズのモデルに対していくつかのベンチマークが行われました。
BERTの事前トレーニング
数ヶ月前、Hugging FaceのテクニカルリードであるPhilipp Schmid氏が、🤗 Optimum Habanaを使用してGaudiでBERTの事前トレーニングを行う方法を発表しました。デバイスあたりのバッチサイズが32サンプル(合計で8*32=256)で65,000ステップのトレーニングが行われ、合計トレーニング時間は8時間53分でした(この実行のTensorBoardログはこちらでご覧いただけます)。
同じハイパーパラメータで同じスクリプトをGaudi2で再実行し、合計トレーニング時間は2時間55分でした(ログはこちらでご覧ください)。これにより、何も変更せずにGaudi2でx3.04の高速化が実現されました。
Gaudi2は、第一世代のGaudiと比較してデバイスあたりのメモリがおおよそ3倍多いため、より大きなバッチを使用することが可能です。これにより、HPUsにより多くの作業を割り当てることができ、また第一世代のGaudiでは到達できなかったハイパーパラメータの範囲を試すこともできます。デバイスあたりのバッチサイズが64サンプル(合計512)の場合、20,000ステップで前回の実行の65,000ステップと同様の損失収束を得ました。合計トレーニング時間は1時間33分でした(ログはこちらでご覧ください)。この設定ではスループットがx1.16高くなり、新しいバッチサイズは収束を大幅に加速します。全体として、Gaudi2では合計トレーニング時間が5.75倍短縮され、スループットが第一世代のGaudiと比較してx3.53高くなります。
Gaudi2はA100よりも高速化も提供しています:バッチサイズ32の場合のサンプル速度は1580.2サンプル/秒で、バッチサイズ64の場合は1835.8サンプル/秒です。これは、バッチサイズ64でのBERT事前学習のフェーズ1においてHabanaが発表した1.8倍の高速化と一致しています。
以下の表は、第1世代のGaudi、Gaudi2、Nvidia A100 80GB GPUのスループットを表示しています。
BSはデバイスごとのバッチサイズです。Gaudiの実行は混合精度(bf16/fp32)で行われ、A100の実行はfp16で行われました。すべての実行は8つのデバイスで分散実行されました。
テキストから画像を生成する安定的な拡散
🤗 Optimum Habanaリリース1.3の主な新機能の1つは、安定的な拡散のサポートです。Gaudi上でテキストから画像を生成することは非常に簡単になりました。GPUの🤗 Diffusersとは異なり、画像はバッチごとに生成されます。モデルのコンパイル時間により、最初の2つのバッチは後続の反復よりも遅くなります。このベンチマークでは、最初の2つの反復は破棄され、第1世代のGaudiとGaudi2のスループットが計算されました。
このスクリプトは、バッチサイズ8のサンプルで実行されました。使用されたのはHabana/stable-diffusion
Gaudiの構成です。
以下に表示される結果は、Habanaがここで公開した数値と一致しています。Gaudi2は第1世代のGaudi(3.25秒対0.925秒)よりも3.51倍、Nvidia A100(2.63秒対0.925秒)よりも2.84倍高速です。また、より大きなバッチサイズにも対応できます。
更新:SynapseAI 1.10とOptimum Habana 1.6により、第1世代のGaudiとGaudi2の追加の高速化が実現されました。
BSはバッチサイズです。Gaudiの実行はbfloat16精度で行われ、A100の実行はfp16精度で行われました(詳細はこちら)。すべての実行は単一デバイスで行われました。
T5-3Bの微調整
デバイスごとに96 GBのメモリを持つGaudi2は、より大きなモデルの実行を可能にします。例えば、私たちはgradient checkpointingが唯一の適用されたメモリ最適化でT5-3B(30億のパラメータを含む)を微調整することに成功しました。第1世代のGaudiではこれは不可能です。ここでは、このスクリプトを使用してCNN DailyMailデータセット上でテキスト要約のためにモデルを微調整した実行のログを示します。
以下に達成した結果が示されています。 Gaudi2はA100 80GBよりも2.44倍高速です。ここではバッチサイズ1より大きなバッチサイズを使用することはできないことがわかります。これは、実行の最初の反復中に操作が蓄積されるグラフによるメモリスペースの使用に起因します。Habanaは、SynapseAIの将来のリリースでメモリフットプリントを最適化する取り組みを行っています。同じ傾向が続くかどうかを確認するために、HabanaのSDKの新しいバージョンやDeepSpeedを使用してこのベンチマークを拡張することを期待しています。
BSはデバイスごとのバッチサイズです。Gaudi2とA100の実行は、gradient checkpointingを有効にしたfp32で行われました。すべての実行は8つのデバイスで分散実行されました。
結論
この記事では、Gaudi2の最初の体験について説明しました。第1世代のGaudiからGaudi2への移行は、SynapseAI、HabanaのSDKが両方とも完全に互換性があるため、完全にシームレスです。これは、将来のリリースで提案される新しい最適化が両方に利益をもたらすことを意味します。
Habana Gaudi2は、第1世代のGaudiに比べて性能が大幅に向上し、トレーニングおよび推論の両方においてNvidia A100 80GBに比べておおよそ2倍のスループットを提供することがわかりました。
また、Intel Developer Zoneを介してGaudi2インスタンスをセットアップする方法もわかりました。🤗 Optimum Habanaで簡単に実行できる例をチェックしてみてください。
最新のAIハードウェアアクセラレータとソフトウェアライブラリを使用して、Machine Learningのトレーニングと推論ワークフローを高速化することに興味がある場合は、Expert Acceleration Programをご覧ください。Habanaのソリューションについて詳しくは、こちらのパートナーシップについての記事を読んで、彼らにお問い合わせください。AIハードウェアアクセラレータを使いやすくするためのHugging Faceの取り組みについて詳しくは、Hardware Partner Programをご覧ください。
関連トピック
- ハバナ ガウディでの Transformers の始め方
- Hugging Face と Habana Labs での Transformer モデルトレーニングの加速
読んでいただきありがとうございます!もし質問がありましたら、GitHub かフォーラムを通じてお気軽にご連絡ください。LinkedIn でもおつながりいただけます。
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles