本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Neo 編譯的建議
在 Inference Recommender 中,您可以使用 Neo 編譯模型,並取得已編譯模型的端點建議。SageMaker Neo 是一項可針對目標硬體平台 (也就是特定執行個體類型或環境) 最佳化模型的服務。使用 Neo 最佳化模型可能會改善託管模型的效能。
對於 Neo 支援的架構和容器,Inference Recommender 會自動建議 Neo 最佳化的建議。若要符合 Neo 編譯的資格,您的輸入必須符合以下先決條件:
- 
                    
您正在使用 SageMaker AI 擁有的 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 Model Registry 中註冊您的模型。
 - 
                        
建立 Inference Recommender 任務。
 - 
                        
檢視 Inference Recommender 任務的結果並選擇組態。
 - 
                        
偵錯編譯失敗 (如果有的話)。如需詳細資訊,請參閱 Neo 編譯錯誤的故障診斷。
 
如需示範先前工作流程以及如何使用 XGBoost 取得 Neo 最佳化建議的範例,請參閱下列範例筆記本