Amazon SageMaker Elastic Inference (EI) を使う - アマゾン SageMaker

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon SageMaker Elastic Inference (EI) を使う

Amazon Elastic Inference (EI) を使うことで、Amazon SageMaker がホストするモデルとしてデプロイされている深層学習モデルからのリアルタイム推論取得のスループットを高速化でき、レイテンシーを短縮できます。しかも、エンドポイントに使う GPU インスタンスのわずかなコストで実現できます。EI を使用すると、フル GPU インスタンスを使用するコストよりはるかに低いコストで、ホストされるエンドポイントでの推論を高速化できます。CPU インスタンスタイプに加えて、デプロイ可能なモデルに使用可能なサイズの EI アクセラレーターを追加してから、そのモデルをホストされるエンドポイントのデプロイに使用するエンドポイント設定に本番稼働用バリアントとして追加します。また、EI アクセラレーターを SageMaker ノートブックインスタンスに追加でき、モデルを構築する際にこれによって推論のパフォーマンスをテストおよび評価できます。

Elastic Inference は、EI 対応バージョンの TensorFlow、 Apache MXNet、PyTorch でサポートされています。他の深層学習フレームワークを使用するには、ONNX を使用してモデルをエクスポートしてから、モデルを MXNet にインポートします。これにより、モデルを EI とともに、MXI モデルとして使用できるようになります。MXNet への ONNX モデルのインポートの詳細については、「ONNX モデルを MXNet にインポートする」を参照してください。

EI の仕組み

Amazon Elastic Inference アクセラレーターは、エンドポイント内の SageMaker インスタンスと連動して推論の呼び出しを高速化するネットワーク接続デバイスです。Elastic Inference は、少数の GPU をどの SageMaker インスタンスにもアタッチできるようにすることで、推論を高速化します。アプリケーションを実行するクライアントインスタンスを選択し、Elastic Inference アクセラレータをアタッチして、推論のニーズに適した量の GPU アクセラレーションを使用できます。Elastic Inference は、推論のために GPU インスタンスを十分に活用していない場合、コストを削減するのに役立ちます。さまざまな CPU インスタンスとアクセラレータサイズを使用して、モデルで Elastic Inference を試すことをお勧めします。

次の EI アクセラレータータイプを使用できます。エンドポイントまたはノートブックインスタンスを任意の EI アクセラレータータイプとともに設定できます。

次の表では、単精度浮動小数点 (F32) 演算と半精度浮動小数点 (F16) 演算の両方について、テラフロップスのスループット (TFLOPS) をリストします メモリ (GB) もリストします。

アクセラレータータイプ F32 スループット (TFLOPS) F16 スループット (TFLOPS) メモリ (GB)
ml.eia2.medium 1 8 2
ml.eia2.large 2 16 4
ml.eia2.xlarge 4 32 8
ml.eia1.medium 1 8 1
ml.eia1.large 2 16 2
ml.eia1.xlarge 4 32 4

EI アクセラレータータイプを選択する

ホストされるモデルのアクセラレータータイプを選択するときには、以下の要素を考慮してください。

  • モデル、入力テンソル、およびバッチサイズは、必要なアクセラレーターメモリの量に影響します。トレーニング済みモデルのファイルサイズと同量以上のメモリを提供するアクセラレータータイプから始めます。モデルがランタイムにファイルサイズよりも大幅に多くのメモリを使用する可能性があるという要因。

  • CPU コンピューティングリソース、メインシステムメモリ、GPU ベースのアクセラレーションおよびアクセラレーターメモリの需要は、深層学習モデルの種類によって大きく異なります。アプリケーションのレイテンシーとスループットの要件によって、必要なコンピューティングとアクセラレーションの量も決まります。アプリケーションのパフォーマンスニーズに最も適した構成を選択できるように、インスタンスタイプと EI アクセラレーターサイズのさまざまな構成を徹底的にテストしてください。

EI アクセラレータ選択の詳細については、次を参照してください。

SageMaker ノートブックインスタンスで EI を使う

通常、機械学習モデルは、本番稼働用にデプロイする前に、SageMaker ノートブックで構築してテストします。ノートブックインスタンスを作成するときに、ノートブックインスタンスに EI をアタッチすることができます。推論パフォーマンスをテストするために、Amazon SageMaker Python SDK で、TensorFlow、MXNet、PyTorch の推定器およびモデルがサポートしているローカルモードを使うことで、ノートブックインスタンスにローカルでホストされるエンドポイントを設定できます。Elastic Inference 対応 PyTorch は、現在、ノートブックインスタンスではサポートされていません。ノートブックインスタンスに EI をアタッチし、推論のためにローカルエンドポイントを設定する方法については、EI をノートブックインスタンスにアタッチするを参照してください。また、Elastic Inference 対応バージョンの TensorFlow および Apache MXNet のための、Elastic Inference 対応の SageMaker ノートブックの Jupyter カーネルもあります。SageMaker ノートブックインスタンスの使用については、「Amazon SageMaker ノートブックインスタンスを使用する」を参照してください。

ホストされるエンドポイントで EI を使用する

モデルを本番稼働用にデプロイして推論を提供する準備ができたら、SageMaker でホストされるエンドポイントを作成します。エンドポイントがホストされているインスタンスに EI をアタッチすると、推論を提供する際のパフォーマンスを向上させることができます。ホストされるエンドポイントインスタンスに EI をアタッチする方法については、Amazon SageMaker でホストされるエンドポイントで EI を使うを参照してください。

EI をサポートするフレームワーク

Amazon Elastic Inference は、AWS拡張バージョンの TensorFlow、Apache MXNet、または PyTorch の機械学習フレームワークと共に使うように設計されています。これらの拡張バージョンのフレームワークは、Amazon SageMaker Python SDK を使用すると、自動的にコンテナに組み込まれます。また、フレームワークをバイナリファイルとしてダウンロードして、独自の Docker コンテナにインポートすることもできます。

パブリック amazonei-tensorflow Amazon S3 バケットから TensorFlow サービスコンテナに、EI 対応 TensorFlow バイナリファイルをダウンロードできます。EI 対応バージョンの TensorFlow を使用するコンテナの構築の詳細については、「Amazon Elastic Inference with TensorFlow in SageMaker」を参照してください。

パブリック amazonei-apachemxnet Amazon S3 バケットから MXNet サービスコンテナに、EI 対応 MXNet バイナリファイルをダウンロードできます。EI 対応バージョンの MXNet を使用するコンテナの構築の詳細については、「Amazon Elastic Inference with MXNet in SageMaker」を参照してください。

パブリック amazonei-pytorch Amazon S3 バケットから PyTorch サービスコンテナに、EI 対応 PyTorch バイナリファイルをダウンロードできます。EI 対応バージョンの PyTorch を使用するコンテナの構築の詳細については、「Amazon Elastic Inference with PyTorch in SageMaker」を参照してください。

ホストされたエンドポイントで Elastic Inference を使うために、必要に応じて次のフレームワークのいずれかを選択できます。

複雑であり、SageMaker の事前構築済みコンテナではサポートされないフレームワークへの拡張が必要なモデルをデプロイするためのカスタムコンテナの作成が必要な場合は、Python (Boto 3) 用の低レベルの AWS SDK を使用してください。

SageMaker 組み込みアルゴリズムで EI を使用する

組み込みアルゴリズムであるイメージ分類アルゴリズムオブジェクト検出アルゴリズムは現在、EI をサポートしています。EI でイメージ分類アルゴリズムを使用する例については、「エンドツーエンドの複数クラスイメージ分類のサンプル」を参照してください。

EI サンプルノートブック

次のサンプルノートブックは、SageMaker で EI を使う例を示しています。