NLP および CV PyTorch モデルの PlatoBlockchain Data Intelligence 用の Amazon EC2 G5 インスタンスを使用して、推論あたり XNUMX 分の XNUMX のコストで XNUMX 倍高い ML 推論スループットを達成します。垂直検索。あい。

NLP および CV PyTorch モデル用の Amazon EC2 G5 インスタンスを使用して、推論あたりのコストを XNUMX 分の XNUMX に抑えて XNUMX 倍の ML 推論スループットを実現

アマゾン エラスティック コンピューティング クラウド (Amazon EC2) G5インスタンス NVIDIA A10G Tensor コア GPU を備えたクラウドで最初で唯一のインスタンスであり、グラフィックスを多用するさまざまなユースケースや機械学習 (ML) のユースケースに使用できます。 G5 インスタンスを使用すると、ML のお客様は、自然言語処理 (NLP)、コンピューター ビジョン (CV)、レコメンダー エンジンのユースケース向けの大規模でより洗練されたモデルをトレーニングしてデプロイするための高性能で費用対効果の高いインフラストラクチャを手に入れることができます。

この投稿の目的は、大規模な ML 推論ワークロードに対する G5 インスタンスのパフォーマンス上の利点を紹介することです。 これは、NLP および CV モデルと G4dn インスタンスの価格性能比 (推論 4 万ドルあたりで測定) を比較することによって行います。 まず、ベンチマーク アプローチについて説明し、次にバッチ サイズとデータ型の精度にわたるスループットとレイテンシの曲線を示します。 G5dn インスタンスと比較して、GXNUMX インスタンスは、NLP および CV モデルの完全精度モードと混合精度モードの両方で、一貫して XNUMX 万件あたりの推論コストを低く抑えながら、より高いスループットとより低いレイテンシーを実現することがわかりました。

ベンチマーク手法

G5 と G4dn の間の価格性能比の調査を行うには、バッチ サイズの関数として、スループット、レイテンシ、および XNUMX 万回の推論あたりのコストを測定する必要があります。 また、完全精度と混合精度の影響も調べます。 モデル グラフと入力の両方が、推論の前に CUDA に読み込まれます。

次のアーキテクチャ図に示すように、最初に、基礎となる EC2 インスタンス (G4dn、G5) の CUDA を使用して、それぞれの基本コンテナー イメージを作成します。 ベースコンテナイメージを構築するには、まず AWS深層学習コンテナ、事前にパッケージ化された Docker イメージを使用して、深層学習環境を数分で展開します。 イメージには、必要なディープ ラーニング PyTorch ライブラリとツールが含まれています。 これらのイメージの上に独自のライブラリとツールを追加して、監視、コンプライアンス、およびデータ処理をより高度に制御できます。

次に、モデル構成、モデル トレース、およびフォワード パスを実行するための関連コードをカプセル化するモデル固有のコンテナー イメージを構築します。 すべてのコンテナ イメージがロードされます アマゾンECR さまざまなモデル構成でこれらのモデルの水平方向のスケーリングを可能にします。 を使用しております Amazon シンプル ストレージ サービス (Amazon S3) を共通のデータ ストアとして使用して、構成をダウンロードし、要約のためにベンチマーク結果をアップロードします。 このアーキテクチャを使用して、ベンチマーク結果を再作成および再現し、さまざまなモデル タイプ (Hugging Face モデル、PyTorch モデル、その他のカスタム モデルなど) のベンチマークを EC2 インスタンス タイプ (CPU、GPU、Inf1) にわたって再利用できます。

この実験をセットアップして、私たちの目標は、スループットの関数としてレイテンシを調べることです。 この曲線は、アプリケーション設計がターゲット アプリケーションのコスト最適化インフラストラクチャに到達するために重要です。 これを実現するために、複数のスレッドからクエリをキューに入れ、完了した各リクエストの往復時間を測定することで、さまざまな負荷をシミュレートします。 スループットは、単位クロック時間あたりに完了したリクエストの数に基づいて測定されます。 さらに、バッチ サイズや、シーケンスの長さ、完全精度と半精度などのその他の変数を変更して、デザイン スペースを包括的にスイープし、指標となるパフォーマンス メトリクスに到達することができます。 私たちの調査では、マルチスレッド クライアントからのバッチ サイズとクエリのパラメトリック スイープを通じて、スループットとレイテンシの曲線が決定されました。 すべてのリクエストをバッチ処理して、アクセラレータを最大限に活用できるようにすることができます。特に、コンピューティング ノードを十分に活用できない小さなリクエストの場合に有効です。 この設定を採用して、最適なパフォーマンスを得るためのクライアント側のバッチ サイズを特定することもできます。

要約すると、この問題を次のように数学的に表すことができます: (スループット、レイテンシ) = (バッチ サイズ、スレッド数、精度) の関数。

これは、網羅的なスペースを考えると、実験の数が多くなる可能性があることを意味します。 幸いなことに、各実験は個別に実行できます。 使用をお勧めします AWSバッチ テストへの線形アプローチと比較して、ベンチマークのコストを増加させることなく、この水平方向にスケーリングされたベンチマークを圧縮された時間で実行します。 結果を複製するためのコードは、 GitHubリポジトリ AWS Re:Invent 2021 に向けて準備されています。リポジトリは、さまざまなアクセラレーターでベンチマークを実行するための包括的なものです。 コードの GPU の側面を参照して、コンテナーをビルドできます (Dockerfile-gpu) そして、内部のコードを参照してください Container-Root BERT と ResNet50 の具体的な例については、

前のアプローチを使用して、Bert-base-uncased (110 億 50 万パラメーター、NLP) と ResNet25.6 (XNUMX 万パラメーター、CV) の XNUMX つのモデル タイプにわたるパフォーマンス研究を開発しました。 次の表は、モデルの詳細をまとめたものです。

モデルタイプ モデル 詳細
NLP twmkn9/bert-base-uncased-squad2 110 億 128 万のパラメータ シーケンス長 = XNUMX
CV レスネット50 25.6百万のパラメーター

さらに、データ型 (全精度、半精度) をベンチマークするために、次を使用します。 torch.cuda.ampを使用する操作で混合精度を処理するための便利なメソッドを提供します。 torch.float32 (float) データ型およびその他の操作の使用 torch.float16 (半分)。 たとえば、線形レイヤーや畳み込みなどの演算子は、float16 を使用するとはるかに高速になりますが、リダクションなどの他の演算子では、多くの場合、float32 のダイナミック レンジが必要になります。 自動混合精度は、ネットワークの実行時間とメモリ フットプリントを最適化するために、各演算子を適切なデータ型に一致させようとします。

ベンチマーク結果

公平な比較のために、私たちは選択しました G4dn.4xlarge & G5.4xラージ 次の表に示すように、同様の属性を持つインスタンス。

インスタンス GPU GPU メモリ (GiB) vCPU メモリ(GiB) インスタンス ストレージ (GB) ネットワーク性能 (Gbps) EBS 帯域幅 (Gbps) Linux オンデマンド料金 (us-east-1)
G5.4xラージ 1 24 16 64 1x 600 NVMe SSD 25まで 8 $ 1.204 /時間
G4dn.4xlarge 1 16 16 64 1x 225 NVMe SSD 25まで 4.75 $ 1.624 /時間

以下のセクションでは、特定のバッチ サイズ (50、32、16、8、4) とデータ型の精度 (全精度と半精度) のグリッド スイープ アプローチを使用して、BERT モデルと RESNET1 モデルの ML 推論パフォーマンスを比較し、スループットを求めます。対レイテンシ曲線。 さらに、全精度と半精度の両方について、スループットとバッチ サイズの影響を調査します。 最後に、XNUMX 万回の推論あたりのコストをバッチサイズの関数として測定します。 これらの実験全体の統合された結果は、この記事の後半で要約されています。

スループットとレイテンシ

次の図は、NLP および CV ワークロードの G4dn インスタンスと G5 インスタンスを完全精度と半精度の両方で比較しています。 G4dn インスタンスと比較して、G5 インスタンスは、BERT ベース モデルで約 2.5 倍 (完全精度)、約 2 倍 (半精度)、ResNet2.5 モデルで約 50 ~ 5 倍のスループットを実現します。 全体として、パフォーマンスの観点から、完全精度と混合精度の両方で両方のモデルのバッチ サイズが大きくなるため、GXNUMX が推奨される選択肢です。

次のグラフは、BERT のフル精度とハーフ精度でのスループットと P95 レイテンシを比較しています。

NLP および CV PyTorch モデルの PlatoBlockchain Data Intelligence 用の Amazon EC2 G5 インスタンスを使用して、推論あたり XNUMX 分の XNUMX のコストで XNUMX 倍高い ML 推論スループットを達成します。垂直検索。あい。 NLP および CV PyTorch モデルの PlatoBlockchain Data Intelligence 用の Amazon EC2 G5 インスタンスを使用して、推論あたり XNUMX 分の XNUMX のコストで XNUMX 倍高い ML 推論スループットを達成します。垂直検索。あい。

次のグラフは、ResNet95 のスループットと P50 レイテンシを全精度と半精度で比較しています。

NLP および CV PyTorch モデルの PlatoBlockchain Data Intelligence 用の Amazon EC2 G5 インスタンスを使用して、推論あたり XNUMX 分の XNUMX のコストで XNUMX 倍高い ML 推論スループットを達成します。垂直検索。あい。 NLP および CV PyTorch モデルの PlatoBlockchain Data Intelligence 用の Amazon EC2 G5 インスタンスを使用して、推論あたり XNUMX 分の XNUMX のコストで XNUMX 倍高い ML 推論スループットを達成します。垂直検索。あい。

スループットとレイテンシー対バッチサイズ

次のグラフは、スループットをバッチ サイズの関数として示しています。 バッチ サイズが小さいと、アクセラレータは最大限の能力を発揮できず、バッチ サイズが大きくなるにつれてスループットが向上しますが、レイテンシが犠牲になります。 スループット曲線は、アクセラレータのパフォーマンスの関数である最大値に漸近します。 曲線には、上昇セクションと平坦な漸近セクションの 5 つの特徴があります。 特定のモデルの場合、パフォーマンス アクセラレータ (G4) は、上昇セクションを G95dn よりも高いバッチ サイズに拡張し、より高いスループットで漸近線を描くことができます。 また、待ち時間とバッチサイズの間には線形のトレードオフがあります。 したがって、アプリケーションのレイテンシーが制限されている場合は、PXNUMX レイテンシーとバッチ サイズを使用して、最適なバッチ サイズを決定できます。 ただし、目的が最小のレイテンシでスループットを最大化することである場合は、上昇セクションと漸近セクションの間の「膝」に対応するバッチ サイズを選択することをお勧めします。遅延が悪化します。 最小の待機時間でより高いスループットを目標として、最高のコスト パフォーマンス比を達成するには、バッチ サイズを増やすだけでなく、複数の推論サーバーを使用してこの最適値を水平方向にスケーリングすることをお勧めします。

NLP および CV PyTorch モデルの PlatoBlockchain Data Intelligence 用の Amazon EC2 G5 インスタンスを使用して、推論あたり XNUMX 分の XNUMX のコストで XNUMX 倍高い ML 推論スループットを達成します。垂直検索。あい。

コストとバッチサイズ

このセクションでは、推論コスト (5 万回の推論あたりのドル) とバッチ サイズの比較結果を示します。 次の図から、G4 と GXNUMXdn の両方 (完全精度と半精度) で、コスト (XNUMX 万回の推論あたりのドルとして測定) が一貫して低いことが明確にわかります。

NLP および CV PyTorch モデルの PlatoBlockchain Data Intelligence 用の Amazon EC2 G5 インスタンスを使用して、推論あたり XNUMX 分の XNUMX のコストで XNUMX 倍高い ML 推論スループットを達成します。垂直検索。あい。 NLP および CV PyTorch モデルの PlatoBlockchain Data Intelligence 用の Amazon EC2 G5 インスタンスを使用して、推論あたり XNUMX 分の XNUMX のコストで XNUMX 倍高い ML 推論スループットを達成します。垂直検索。あい。

次の表は、特定のバッチ サイズの両方の精度モードでの BERT モデルと RESNET50 モデルのスループット、待機時間、およびコスト (推論 5 万あたりのドル) の比較をまとめたものです。 インスタンスあたりのコストが高いにもかかわらず、G4 は、すべてのバッチ サイズで、推論のレイテンシ、スループット、コスト (32 万ドルの推論) のすべての面で一貫して G5dn よりも優れています。 さまざまなメトリックをコスト (3.7 万ドルあたりの推論) に組み合わせると、G4 の BERT モデル (50 バッチ サイズ、完全精度) は G32dn よりも 1.6 倍有利であり、ResNet4 モデル (XNUMX バッチ サイズ、完全精度) では XNUMX 倍です。 GXNUMXdnよりも数倍有利です。

モデル バッチサイズ 精度

スループット

(バッチサイズ X リクエスト/秒)

待ち時間(ミリ秒)

百万ドル

推論 (オンデマンド)

費用対効果

(G5dn を超える G4)

. . . G5 G4dn G5 G4dn G5 G4dn
バートベースケースなし 32 フル 723 154 44 208 $0.6 $2.2 3.7X
ミックス 870 410 37 79 $0.5 $0.8 1.6X
16 フル 651 158 25 102 $0.7 $2.1 3.0X
ミックス 762 376 21 43 $0.6 $0.9 1.5X
8 フル 642 142 13 57 $0.7 $2.3 3.3X
ミックス 681 350 12 23 $0.7 $1.0 1.4X
. 1 フル 160 116 6 9 $2.8 $2.9 1.0X
ミックス 137 102 7 10 $3.3 $3.3 1.0X
レスネット50 32 フル 941 397 34 82 $0.5 $0.8 1.6X
ミックス 1533 851 21 38 $0.3 $0.4 1.3X
16 フル 888 384 18 42 $0.5 $0.9 1.8X
ミックス 1474 819 11 20 $0.3 $0.4 1.3X
8 フル 805 340 10 24 $0.6 $1.0 1.7X
ミックス 1419 772 6 10 $0.3 $0.4 1.3X
. 1 フル 202 164 5 6 $2.2 $2 0.9X
ミックス 196 180 5 6 $2.3 $1.9 0.8X

追加の推論ベンチマーク

前のセクションの BERT ベースと ResNet50 の結果に加えて、PyTorch で一般的に使用される他の大規模な NLP と CV モデルの追加のベンチマーク結果を提示します。 G5dn に対する G4 のパフォーマンス上の利点は、さまざまな精度の BERT Large モデルと、さまざまなサイズの Yolo-v5 モデルで示されています。 ベンチマークを再現するためのコードについては、以下を参照してください。 Tensor コアの NVIDIA 深層学習の例. これらの結果は、さまざまなモデル タイプにまたがる幅広い推論タスクに対して、G5dn よりも G4 を使用する利点を示しています。

モデル 精度 バッチサイズ シーケンスの長さ スループット (送信/秒) スループット: G4dn G4dn を超えるスピードアップ
BERT-大 FP16 1 128 93.5 40.31 2.3
BERT-大 FP16 4 128 264.2 87.4 3.0
BERT-大 FP16 8 128 392.1 107.5 3.6
BERT-大 FP32 1 128 68.4 22.67 3.0
BERT-大 4 128 118.5 32.21 3.7
BERT-大 8 128 132.4 34.67 3.8
モデル GFLOPS パラメータ数 前処理 (ミリ秒) 推論 (ミリ秒) 推論 (非最大抑制) (NMS/画像)
YOLOv5s 16.5 7.2M 0.2 3.6 4.5
YOLOV5m 49.1 21M 0.2 6.5 4.5
YOLOv5l 109.3 46M 0.2 9.1 3.5
YOLOv5x 205.9 86M 0.2 14.4 1.3

まとめ

この投稿では、大規模な NLP および CV PyTorch モデルを使用した推論では、EC2 G5 インスタンスが G4dn インスタンスよりも優れた選択肢であることを示しました。 G5 インスタンスのオンデマンドの 4 時間あたりのコストは G2dn インスタンスよりも高くなりますが、その高いパフォーマンスにより、NLP および CV モデルの任意の精度で 5 ~ 1.5 倍のスループットを達成できます。これにより、3.5 万回の推論あたりのコストは、 G4dn インスタンス。 レイテンシに制約のあるアプリケーションであっても、G5 は NLP および CV モデルの G2.5dn よりも 5 ~ 4 倍優れています。

要約すると、AWS G5 インスタンスは、パフォーマンスと推論あたりのコストの両方の観点から、推論のニーズに最適な選択肢です。 CUDA フレームワークの普遍性と、AWS の G5 インスタンス プールのスケールと深さにより、大規模な推論を実行する独自の機能が提供されます。


著者について

NLP および CV PyTorch モデルの PlatoBlockchain Data Intelligence 用の Amazon EC2 G5 インスタンスを使用して、推論あたり XNUMX 分の XNUMX のコストで XNUMX 倍高い ML 推論スループットを達成します。垂直検索。あい。アンクル・スリバスタヴァ ML フレームワーク チームのシニア ソリューション アーキテクトです。 彼は、AWS での大規模な自己管理型の分散トレーニングと推論で顧客を支援することに重点を置いています。 彼の経験には、産業用予知保全、デジタル ツイン、確率論的設計の最適化が含まれ、ライス大学で機械工学の博士号を取得し、マサチューセッツ工科大学でポスドク研究を完了しています。

NLP および CV PyTorch モデルの PlatoBlockchain Data Intelligence 用の Amazon EC2 G5 インスタンスを使用して、推論あたり XNUMX 分の XNUMX のコストで XNUMX 倍高い ML 推論スループットを達成します。垂直検索。あい。サンダー・ランガナサン Amazon EC2 チームのビジネス開発、ML フレームワークの責任者です。 彼は、Amazon EKS、Amazon ECS、Elastic Fabric Adapter、AWS Batch、Amazon SageMaker などの AWS サービス全体にわたる大規模な ML ワークロードに焦点を当てています。 彼の経験には、NetApp、Micron Technology、Qualcomm、および Mentor Graphics での製品管理および製品開発における指導的役割が含まれます。

NLP および CV PyTorch モデルの PlatoBlockchain Data Intelligence 用の Amazon EC2 G5 インスタンスを使用して、推論あたり XNUMX 分の XNUMX のコストで XNUMX 倍高い ML 推論スループットを達成します。垂直検索。あい。マハデヴァンバラスブラマニアム オートノマス コンピューティングのプリンシパル ソリューション アーキテクトであり、物理学を取り入れたディープ ラーニングの分野で 20 年近くの経験を持ち、大規模な産業システム向けのデジタル ツインの構築と展開を行っています。 Mahadevan は、マサチューセッツ工科大学で機械工学の博士号を取得し、25 を超える特許と出版物を所有しています。

NLP および CV PyTorch モデルの PlatoBlockchain Data Intelligence 用の Amazon EC2 G5 インスタンスを使用して、推論あたり XNUMX 分の XNUMX のコストで XNUMX 倍高い ML 推論スループットを達成します。垂直検索。あい。 アムル・ラガブ は、AW​​S 向け EC2 アクセラレーテッド プラットフォームのプリンシパル ソリューション アーキテクトであり、お客様がコンピューティング ワークロードを大規模に実行できるよう支援することに専念しています。 余暇には、旅行をしたり、テクノロジーを日常生活に統合する新しい方法を見つけたりするのが好きです。

タイムスタンプ:

より多くの AWS機械学習