取得您的推論建議任務結果 - Amazon SageMaker

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

取得您的推論建議任務結果

使用 AWS SDK for Python (Boto3)、 AWS CLI Studio Classic 或 SageMaker 主控台,以程式設計方式收集推論建議任務的結果。

AWS SDK for Python (Boto3)

推論建議完成後,您可以使用 DescribeInferenceRecommendationsJob 來取得任務詳細資料和建議。提供建立推論建議任務時所使用的任務名稱。

job_name='<INSERT>' response = sagemaker_client.describe_inference_recommendations_job( JobName=job_name)

列印回應物件。先前的程式碼範例會將回應儲存在名為 的變數中response

print(response['Status'])

這會傳回類似下列範例的JSON回應。請注意,此範例顯示建議的即時推論執行個體類型 (如需顯示無伺服器推論建議的範例,請參閱此範例之後的範例)。

{ 'JobName': 'job-name', 'JobDescription': 'job-description', 'JobType': 'Default', 'JobArn': 'arn:aws:sagemaker:region:account-id:inference-recommendations-job/resource-id', 'Status': 'COMPLETED', 'CreationTime': datetime.datetime(2021, 10, 26, 20, 4, 57, 627000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2021, 10, 26, 20, 25, 1, 997000, tzinfo=tzlocal()), 'InputConfig': { 'ModelPackageVersionArn': 'arn:aws:sagemaker:region:account-id:model-package/resource-id', 'JobDurationInSeconds': 0 }, 'InferenceRecommendations': [{ 'Metrics': { 'CostPerHour': 0.20399999618530273, 'CostPerInference': 5.246913588052848e-06, 'MaximumInvocations': 648, 'ModelLatency': 263596 }, 'EndpointConfiguration': { 'EndpointName': 'endpoint-name', 'VariantName': 'variant-name', 'InstanceType': 'ml.c5.xlarge', 'InitialInstanceCount': 1 }, 'ModelConfiguration': { 'Compiled': False, 'EnvironmentParameters': [] } }, { 'Metrics': { 'CostPerHour': 0.11500000208616257, 'CostPerInference': 2.92620870823157e-06, 'MaximumInvocations': 655, 'ModelLatency': 826019 }, 'EndpointConfiguration': { 'EndpointName': 'endpoint-name', 'VariantName': 'variant-name', 'InstanceType': 'ml.c5d.large', 'InitialInstanceCount': 1 }, 'ModelConfiguration': { 'Compiled': False, 'EnvironmentParameters': [] } }, { 'Metrics': { 'CostPerHour': 0.11500000208616257, 'CostPerInference': 3.3625731248321244e-06, 'MaximumInvocations': 570, 'ModelLatency': 1085446 }, 'EndpointConfiguration': { 'EndpointName': 'endpoint-name', 'VariantName': 'variant-name', 'InstanceType': 'ml.m5.large', 'InitialInstanceCount': 1 }, 'ModelConfiguration': { 'Compiled': False, 'EnvironmentParameters': [] } }], 'ResponseMetadata': { 'RequestId': 'request-id', 'HTTPStatusCode': 200, 'HTTPHeaders': { 'x-amzn-requestid': 'x-amzn-requestid', 'content-type': 'content-type', 'content-length': '1685', 'date': 'Tue, 26 Oct 2021 20:31:10 GMT' }, 'RetryAttempts': 0 } }

前幾行提供推論建議任務本身的相關資訊。這包括任務名稱、角色 ARN以及建立和刪除時間。

InferenceRecommendations 字典包含 Inference Recommender 推論建議的清單。

EndpointConfiguration 巢狀字典包含執行個體類型 (InstanceType) 建議,以及建議任務期間使用的端點和變體名稱 (部署的 AWS 機器學習模型)。您可以使用端點和變體名稱在 Amazon CloudWatch Events 中進行監控。如需更多資訊,請參閱 SageMaker 使用 Amazon 監控 Amazon 的指標 CloudWatch

Metrics 巢狀字典包含有關即時端點的預估每小時成本 (CostPerHour) 以美元為單位、即時端點的預估每次推論成本 (CostPerInference) 以美元為單位、每分鐘傳送至端點 (MaxInvocations) 的預期InvokeEndpoint請求數上限,以及模型延遲 (ModelLatency),這是模型回應 所花費的時間間隔 (以毫秒為單位) SageMaker。模型延遲包含傳送請求和從模型容器擷取回應的本機通訊時間,以及在容器中完成推論的時間。

下列範例顯示設定為傳回無伺服器推論建議之推論建議任務的 InferenceRecommendations 回應部分:

"InferenceRecommendations": [ { "EndpointConfiguration": { "EndpointName": "value", "InitialInstanceCount": value, "InstanceType": "value", "VariantName": "value", "ServerlessConfig": { "MaxConcurrency": value, "MemorySizeInMb": value } }, "InvocationEndTime": value, "InvocationStartTime": value, "Metrics": { "CostPerHour": value, "CostPerInference": value, "CpuUtilization": value, "MaxInvocations": value, "MemoryUtilization": value, "ModelLatency": value, "ModelSetupTime": value }, "ModelConfiguration": { "Compiled": "False", "EnvironmentParameters": [], "InferenceSpecificationName": "value" }, "RecommendationId": "value" } ]

您可以解讀無伺服器推論的建議,類似於即時推論的結果,但不包括 ServerlessConfig,它會告訴您具有指定 MemorySizeInMB 和於 MaxConcurrency = 1 的無伺服器端點傳回之指標。若要增加端點上可能的輸送量,請線性地增加 MaxConcurrency 的值。例如,如果推論建議將 MaxInvocations 顯示為 1000,則將 MaxConcurrency 增加到 2 會支援 2000 MaxInvocations。請注意,這僅在某個特定時間點才是準確的,這可能會根據您的模型和程式碼而有所差異。無伺服器建議也會測量指標 ModelSetupTime,以測量在無伺服器端點上啟動電腦資源所需的時間 (以微秒為單位)。如需有關設定無伺服器端點的詳細資訊,請參閱無伺服器推論文件

AWS CLI

推論建議完成後,您可以使用 describe-inference-recommendations-job 來取得任務詳細資料和建議的執行個體類型。提供建立推論建議任務時所使用的任務名稱。

aws sagemaker describe-inference-recommendations-job\ --job-name <job-name>\ --region <aws-region>

類似 的JSON回應應類似於下列範例。請注意,此範例顯示建議的即時推論執行個體類型 (如需顯示無伺服器推論建議的範例,請參閱此範例之後的範例)。

{ 'JobName': 'job-name', 'JobDescription': 'job-description', 'JobType': 'Default', 'JobArn': 'arn:aws:sagemaker:region:account-id:inference-recommendations-job/resource-id', 'Status': 'COMPLETED', 'CreationTime': datetime.datetime(2021, 10, 26, 20, 4, 57, 627000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2021, 10, 26, 20, 25, 1, 997000, tzinfo=tzlocal()), 'InputConfig': { 'ModelPackageVersionArn': 'arn:aws:sagemaker:region:account-id:model-package/resource-id', 'JobDurationInSeconds': 0 }, 'InferenceRecommendations': [{ 'Metrics': { 'CostPerHour': 0.20399999618530273, 'CostPerInference': 5.246913588052848e-06, 'MaximumInvocations': 648, 'ModelLatency': 263596 }, 'EndpointConfiguration': { 'EndpointName': 'endpoint-name', 'VariantName': 'variant-name', 'InstanceType': 'ml.c5.xlarge', 'InitialInstanceCount': 1 }, 'ModelConfiguration': { 'Compiled': False, 'EnvironmentParameters': [] } }, { 'Metrics': { 'CostPerHour': 0.11500000208616257, 'CostPerInference': 2.92620870823157e-06, 'MaximumInvocations': 655, 'ModelLatency': 826019 }, 'EndpointConfiguration': { 'EndpointName': 'endpoint-name', 'VariantName': 'variant-name', 'InstanceType': 'ml.c5d.large', 'InitialInstanceCount': 1 }, 'ModelConfiguration': { 'Compiled': False, 'EnvironmentParameters': [] } }, { 'Metrics': { 'CostPerHour': 0.11500000208616257, 'CostPerInference': 3.3625731248321244e-06, 'MaximumInvocations': 570, 'ModelLatency': 1085446 }, 'EndpointConfiguration': { 'EndpointName': 'endpoint-name', 'VariantName': 'variant-name', 'InstanceType': 'ml.m5.large', 'InitialInstanceCount': 1 }, 'ModelConfiguration': { 'Compiled': False, 'EnvironmentParameters': [] } }], 'ResponseMetadata': { 'RequestId': 'request-id', 'HTTPStatusCode': 200, 'HTTPHeaders': { 'x-amzn-requestid': 'x-amzn-requestid', 'content-type': 'content-type', 'content-length': '1685', 'date': 'Tue, 26 Oct 2021 20:31:10 GMT' }, 'RetryAttempts': 0 } }

前幾行提供推論建議任務本身的相關資訊。這包括任務名稱、角色 ARN、建立和刪除時間。

InferenceRecommendations 字典包含 Inference Recommender 推論建議的清單。

巢狀字典包含執行個體類型 EndpointConfigurationInstanceType) 建議,以及建議任務期間使用的端點和變體名稱 (部署的 AWS 機器學習模型)。您可以使用端點和變體名稱在 Amazon CloudWatch Events 中進行監控。如需更多資訊,請參閱 SageMaker 使用 Amazon 監控 Amazon 的指標 CloudWatch

Metrics 巢狀字典包含有關即時端點的預估每小時成本 (CostPerHour)、即時端點的預估每次推論成本 (CostPerInference)、每分鐘傳送至端點 (MaxInvocations) 的預期InvokeEndpoint請求數上限,以及模型延遲 (ModelLatency),這是模型回應 所花費的時間間隔 (以毫秒為單位) SageMaker。模型延遲包含傳送請求和從模型容器擷取回應的本機通訊時間,以及在容器中完成推論的時間。

下列範例顯示設定為傳回無伺服器推論建議之推論建議任務的 InferenceRecommendations 回應部分:

"InferenceRecommendations": [ { "EndpointConfiguration": { "EndpointName": "value", "InitialInstanceCount": value, "InstanceType": "value", "VariantName": "value", "ServerlessConfig": { "MaxConcurrency": value, "MemorySizeInMb": value } }, "InvocationEndTime": value, "InvocationStartTime": value, "Metrics": { "CostPerHour": value, "CostPerInference": value, "CpuUtilization": value, "MaxInvocations": value, "MemoryUtilization": value, "ModelLatency": value, "ModelSetupTime": value }, "ModelConfiguration": { "Compiled": "False", "EnvironmentParameters": [], "InferenceSpecificationName": "value" }, "RecommendationId": "value" } ]

您可以解讀無伺服器推論的建議,類似於即時推論的結果,但不包括 ServerlessConfig,它會告訴您具有指定 MemorySizeInMB 和於 MaxConcurrency = 1 的無伺服器端點傳回之指標。若要增加端點上可能的輸送量,請線性地增加 MaxConcurrency 的值。例如,如果推論建議將 MaxInvocations 顯示為 1000,則將 MaxConcurrency 增加到 2 會支援 2000 MaxInvocations。請注意,這僅在某個特定時間點才是準確的,這可能會根據您的模型和程式碼而有所差異。無伺服器建議也會測量指標 ModelSetupTime,以測量在無伺服器端點上啟動電腦資源所需的時間 (以微秒為單位)。如需有關設定無伺服器端點的詳細資訊,請參閱無伺服器推論文件

Amazon SageMaker Studio Classic

推論建議會填入 Studio Classic 中的新推論建議索引標籤中。最多可能需要 45 分鐘,結果才會顯示。此索引標籤包含結果詳細資訊欄標題。

詳細資訊欄提供推論建議任務的相關資訊,例如推論建議的名稱、建立任務的時間 (建立時間) 等等。它也提供設定資訊,例如每分鐘發生的調用次數上限,以及所使用之 Amazon Resource Name 的相關資訊。

結果欄提供部署目標SageMaker建議視窗,您可以根據部署重要性調整結果顯示的順序。您可以使用三個下拉式清單選單,為您的使用案例提供成本延遲輸送量的重要性層級。您可以針對每個目標 (成本、延遲和輸送量) 設定重要性層級:最低重要性低重要性中等重要性高重要性最高重要性

根據您對每個目標的重要性選擇,推論建議程式會在面板右側的SageMaker建議欄位中顯示其最佳建議,以及每小時的預估成本和推論請求。它也提供預期的模型延遲、調用次數上限以及執行個體數目等相關資訊。如需無伺服器建議,您可以看到並行上限和端點記憶體大小的理想值。

除了顯示的最佳建議之外,您也可以看到在所有執行段落中,Inference Recommender 測試過的所有執行個體處理所顯示的相同資訊。

SageMaker console

您可以執行下列動作,在 SageMaker 主控台中檢視執行個體建議任務:

  1. 前往 SageMaker 主控台https://console.aws.amazon.com/sagemaker/

  2. 在左側導覽窗格中,選擇推論,然後選擇推論建議程式

  3. 推論建議程式任務頁面上,選擇推論建議任務的名稱。

在任務的詳細資訊頁面上,您可以檢視推論建議 ,這是適用於模型的執行個體類型 SageMaker 建議,如下列螢幕擷取畫面所示。

SageMaker 主控台中任務詳細資訊頁面上推論建議清單的螢幕擷取畫面。

在本節中,您可以依各種因素比較執行個體類型,例如模型延遲每小時成本每個推論的成本每分鐘調用數

您也可以在此頁面檢視針對您指定的組態。在監控區段中,您可以檢視針對每個執行個體類型記錄的 Amazon CloudWatch 指標。若要深入了解如何解讀這些指標,請參閱解讀結果

如需解讀建議任務結果的詳細資訊,請參閱建議結果