翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Neo でコンパイルされたレコメンデーション
Inference Recommender では、Neo を使用してモデルをコンパイルし、コンパイルしたモデルのエンドポイントのレコメンデーションを取得できます。SageMaker Neo は、ターゲットハードウェアプラットフォーム (特定のインスタンスタイプまたは環境) のモデルを最適化できるサービスです。Neo でモデルを最適化すると、ホストモデルのパフォーマンスが向上する場合があります。
NEO がサポートするフレームワークとコンテナの場合、Inference Recommender により NEO 最適化レコメンデーションが自動的に提案されます。Neo コンパイルを利用するには、入力が次の前提条件を満たす必要があります。
-
SageMaker 所有コンテナDLC またはXGBoostコンテナを使用しています。
-
Neo がサポートするフレームワークバージョンを使用している。Neo でサポートされているフレームワークバージョンについては、 SageMaker 「Neo ドキュメントクラウドインスタンス」の「」を参照してください。
-
Neo では、モデルに適した入力データ形状を指定する必要がある。このデータ形状は、モデルパッケージの作成時に
InferenceSpecification
でDataInputConfig
として指定できます。各フレームワークの正しいデータ形状については、 SageMaker 「Neo ドキュメント」の「コンパイル用モデルの準備」を参照してください。次の例は、
InferenceSpecification
でDataInputConfig
フィールドを指定する方法を示しています。ここで、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、次のノートブック の例