本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 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 編譯建議,除了確保您的輸入符合上述要求之外,您不必執行任何其他組態。如果您的輸入符合需求,且您收到包含 Neo 建議的回應,Inference Recommender 會自動在模型上執行 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 任務的一般步驟如下:
-
準備您的機器學習 (ML) 模型進行編譯。如需詳細資訊,請參閱 Neo 文件中的準備編譯模型。
-
將您的模型封裝在模型封存 (
.tar.gz
檔案)。 -
建立範例承載封存。
-
在模型 SageMaker 登錄檔中註冊模型。
-
建立 Inference Recommender 任務。
-
檢視 Inference Recommender 任務的結果並選擇組態。
-
偵錯編譯失敗 (如果有的話)。如需詳細資訊,請參閱 Neo 編譯錯誤的故障診斷。
如需示範先前工作流程的範例,以及如何使用 取得新最佳化建議XGBoost,請參閱下列範例筆記本