Neo でコンパイルされたレコメンデーション - Amazon SageMaker

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

Neo でコンパイルされたレコメンデーション

Inference Recommender では、Neo を使用してモデルをコンパイルし、コンパイルしたモデルのエンドポイントのレコメンデーションを取得できます。SageMaker Neo は、ターゲットハードウェアプラットフォーム (特定のインスタンスタイプまたは環境) のモデルを最適化できるサービスです。Neo でモデルを最適化すると、ホストモデルのパフォーマンスが向上する場合があります。

NEO がサポートするフレームワークとコンテナの場合、Inference Recommender により NEO 最適化レコメンデーションが自動的に提案されます。Neo コンパイルを利用するには、入力が次の前提条件を満たす必要があります。

  • SageMaker 所有コンテナDLC またはXGBoostコンテナを使用しています。

  • Neo がサポートするフレームワークバージョンを使用している。Neo でサポートされているフレームワークバージョンについては、 SageMaker 「Neo ドキュメントクラウドインスタンス」の「」を参照してください。

  • Neo では、モデルに適した入力データ形状を指定する必要がある。このデータ形状は、モデルパッケージの作成時に InferenceSpecificationDataInputConfig として指定できます。各フレームワークの正しいデータ形状については、 SageMaker 「Neo ドキュメント」の「コンパイル用モデルの準備」を参照してください。

    次の例は、InferenceSpecificationDataInputConfig フィールドを指定する方法を示しています。ここで、data_input_configuration はディクショナリ形式のデータ形状を含む変数 (例: {'input':[1,1024,1024,3]}) です。

    "InferenceSpecification": { "Containers": [ { "Image": dlc_uri, "Framework": framework.upper(), "FrameworkVersion": framework_version, "NearestModelName": model_name, "ModelInput": {"DataInputConfig": data_input_configuration}, } ], "SupportedContentTypes": input_mime_types, # required, must be non-null "SupportedResponseMIMETypes": [], "SupportedRealtimeInferenceInstanceTypes": supported_realtime_inference_types, # optional }

リクエストでこれらの条件が満たされると、Inference Recommender によってモデルのコンパイル済みバージョンとコンパイルされていないバージョンの両方に対してシナリオが実行され、複数のレコメンデーションの組み合わせを選択できるようになります。同じ推論レコメンデーションのコンパイル済みバージョンとコンパイルされていないバージョンの構成を比較して、ユースケースに最適なバージョンを特定できます。レコメンデーションは、推論あたりのコストによってランク付けされています。

Neo コンパイルのレコメンデーションを取得するには、入力が上記の要件を満たしていることを確認する以外に、追加の設定を行う必要はありません。Inference Recommender は、入力が要件を満たしている場合にモデルに対して Neo コンパイルを自動的に実行し、Neo レコメンデーションを含むレスポンスを受け取ります。

Neo のコンパイル中にエラーが発生した場合は、「Neo のコンパイルエラーをトラブルシューティングする」を参照してください。

以下の表は、コンパイル済みモデルのレコメンデーションを含む Inference Recommender ジョブから返される可能性のあるレスポンスの例です。InferenceSpecificationName フィールドが None の場合、レコメンデーションはコンパイルされていないモデルです。InferenceSpecificationName フィールドの値が である最後の行はneo-00011122-2333-4445-5566-677788899900、Neo でコンパイルされたモデルの場合です。フィールドの値は、モデルのコンパイルと最適化に使用される Neo ジョブの名前です。

EndpointName InstanceType InitialInstanceCount EnvironmentParameters CostPerHour CostPerInference MaxInvocations ModelLatency InferenceSpecificationName

sm-epc-example-000111222

ml.c5.9xlarge

1

[]

1.836

9.15E-07

33456

7

なし

sm-epc-example-111222333

ml.c5.2xlarge

1

[]

0.408

2.11E-07

32211

21

なし

sm-epc-example-222333444

ml.c5.xlarge

1

[]

0.204

1.86E-07

18276

92

なし

sm-epc-example-333444555

ml.c5.xlarge

1

[]

0.204

1.60E-07

21286

42

neo-00011122-2333-4445-5566-677788899900

使用を開始する

NEO 最適化レコメンデーションを含む Inference Recommender ジョブを作成する一般的な手順は次のとおりです。

  • コンパイルに向けて機械学習モデルを準備します。詳細については、Neo ドキュメントの「コンパイルに向けてモデルを準備する」を参照してください。

  • モデルをモデルアーカイブ (.tar.gz ファイル) にパッケージ化します。

  • サンプルペイロードアーカイブを作成します。

  • Model SageMaker Registry にモデルを登録します。

  • Inference Recommender を作成します。

  • Inference Recommender ジョブの結果を表示し、構成を選択します。

  • コンパイルに失敗した場合は、デバッグします。詳細については、「Neo のコンパイルエラーをトラブルシューティングする」を参照してください。

以前のワークフローと、 を使用して Neo 最適化レコメンデーションを取得する方法を示す例についてはXGBoost、次のノートブック の例を参照してください。を使用して Neo 最適化レコメンデーションを取得する方法を示す例については TensorFlow、次のノートブック の例を参照してください。