

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

# 推論建議
<a name="inference-recommender-instance-recommendation"></a>

推論建議任務會在建議的執行個體類型或無伺服器端點上執行一組負載測試。推論建議任務會使用效能指標，這些指標是以您在模型版本註冊期間提供的範例資料為基礎的負載測試。

**注意**  
在建立 Inference Recommender 建議任務之前，請確定您已符合 [使用 Amazon SageMaker Inference Recommender 的先決條件](inference-recommender-prerequisites.md)。

以下示範如何使用 、 和 Amazon SageMaker Studio Classic 以及 SageMaker AI 主控台 適用於 Python (Boto3) 的 AWS SDK AWS CLI，使用 Amazon SageMaker Inference Recommender 根據您的模型類型建立推論建議

**Topics**
+ [建立推論建議](instance-recommendation-create.md)
+ [取得您的推論建議任務結果](instance-recommendation-results.md)

# 建立推論建議
<a name="instance-recommendation-create"></a>

使用 適用於 Python (Boto3) 的 AWS SDK 或 以程式設計方式建立推論建議 AWS CLI，或使用 Studio Classic 或 SageMaker AI 主控台以互動方式建立推論建議。指定推論建議的任務名稱、IAM AWS 角色 ARN、輸入組態，以及當您向模型登錄檔註冊模型時的模型套件 ARN，或是您在**先決條件**區段中建立模型時的模型名稱和`ContainerConfig`字典。

------
#### [ 適用於 Python (Boto3) 的 AWS SDK ]

使用 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateInferenceRecommendationsJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateInferenceRecommendationsJob.html) API 開始推論建議任務。將推論建議工作的 `JobType` 欄位設為 `'Default'`。此外，請提供下列項目：
+ IAM 角色的 Amazon Resource Name (ARN)，可讓 Inference Recommender 代表您執行任務。為 `RoleArn` 欄位定義此項目。
+ 模型套件 ARN 或模型名稱。Inference Recommender 支援一個模型套件 ARN 或模型名稱作為輸入。請指定下列其中一項：
  + 您在 SageMaker AI 模型註冊表中註冊模型時所建立的版本化模型套件之 ARN。在 `InputConfig` 欄位中為 `ModelPackageVersionArn` 定義此項目。
  + 您建立的模型名稱。在 `InputConfig` 欄位中為 `ModelName` 定義此項目。此外，請提供 `ContainerConfig` 字典，其中包含需要提供模型名稱的必要欄位。在 `InputConfig` 欄位中為 `ContainerConfig` 定義此項目。在 `ContainerConfig` 中，您也可以選擇性地將 `SupportedEndpointType` 欄位指定為 `RealTime` 或 `Serverless`。如果您指定此欄位，Inference Recommender 只會傳回該端點類型的建議。如果您未指定此欄位，Inference Recommender 會傳回兩種端點類型的建議。
+ `JobName` 欄位的 Inference Recommender 推薦任務的名稱。Inference Recommender 任務名稱在 AWS 區域和您的帳戶 AWS 內必須是唯一的。

匯入 適用於 Python (Boto3) 的 AWS SDK 套件，並使用用戶端類別建立 SageMaker AI 用戶端物件。如果您遵循**先決條件**區段中的步驟，請僅指定下列其中一項：
+ 選項 1：如果您想要使用模型套件 ARN 建立推論建議任務，請將模型套件群組 ARN 儲存在名為 `model_package_arn` 的變數。
+ 選項 2：如果您想要使用模型名稱和 `ContainerConfig` 建立推論建議任務，並將模型名稱儲存在名為 `model_name` 的變數中，且將 `ContainerConfig` 字典儲存在名為 `container_config` 變數中。

```
# Create a low-level SageMaker service client.
import boto3
aws_region = '<INSERT>'
sagemaker_client = boto3.client('sagemaker', region_name=aws_region) 

# Provide only one of model package ARN or model name, not both.
# Provide your model package ARN that was created when you registered your 
# model with Model Registry 
model_package_arn = '<INSERT>'
## Uncomment if you would like to create an inference recommendations job with a
## model name instead of a model package ARN, and comment out model_package_arn above
## Provide your model name
# model_name = '<INSERT>'
## Provide your container config 
# container_config = '<INSERT>'

# Provide a unique job name for SageMaker Inference Recommender job
job_name = '<INSERT>'

# Inference Recommender job type. Set to Default to get an initial recommendation
job_type = 'Default'

# Provide an IAM Role that gives SageMaker Inference Recommender permission to 
# access AWS services
role_arn = 'arn:aws:iam::<account>:role/*'

sagemaker_client.create_inference_recommendations_job(
    JobName = job_name,
    JobType = job_type,
    RoleArn = role_arn,
    # Provide only one of model package ARN or model name, not both. 
    # If you would like to create an inference recommendations job with a model name,
    # uncomment ModelName and ContainerConfig, and comment out ModelPackageVersionArn.
    InputConfig = {
        'ModelPackageVersionArn': model_package_arn
        # 'ModelName': model_name,
        # 'ContainerConfig': container_config
    }
)
```

請參閱 [Amazon SageMaker API 參考指南](https://docs.aws.amazon.com/sagemaker/latest/APIReference/Welcome.html)，以取得可傳遞給 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateInferenceRecommendationsJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateInferenceRecommendationsJob.html) 的選用和必要引數之完整清單。

------
#### [ AWS CLI ]

使用 `create-inference-recommendations-job` API 開始推論建議任務。將推論建議工作的 `job-type` 欄位設為 `'Default'`。此外，請提供下列項目：
+ IAM 角色的 Amazon Resource Name (ARN)，可讓 Amazon SageMaker Inference Recommender 代表您執行任務。為 `role-arn` 欄位定義此項目。
+ 模型套件 ARN 或模型名稱。Inference Recommender 支援一個模型套件 ARN 或模型名稱作為輸入。請指定下列其中一項：
  + 您在模型註冊表中註冊模型時所建立的版本化模型套件之 ARN。在 `input-config` 欄位中為 `ModelPackageVersionArn` 定義此項目。
  + 您建立的模型名稱。在 `input-config` 欄位中為 `ModelName` 定義此項目。此外，請提供 `ContainerConfig` 字典，其中包含需要提供模型名稱的必要欄位。在 `input-config` 欄位中為 `ContainerConfig` 定義此項目。在 `ContainerConfig` 中，您也可以選擇性地將 `SupportedEndpointType` 欄位指定為 `RealTime` 或 `Serverless`。如果您指定此欄位，Inference Recommender 只會傳回該端點類型的建議。如果您未指定此欄位，Inference Recommender 會傳回兩種端點類型的建議。
+ `job-name` 欄位的 Inference Recommender 推薦任務的名稱。Inference Recommender 任務名稱在 AWS 區域和您的帳戶 AWS 內必須是唯一的。

若要使用模型套件 ARN 建立推論建議任務，請使用下列範例：

```
aws sagemaker create-inference-recommendations-job 
    --region <region>\
    --job-name <job_name>\
    --job-type Default\
    --role-arn arn:aws:iam::<account:role/*>\
    --input-config "{
        \"ModelPackageVersionArn\": \"arn:aws:sagemaker:<region:account:role/*>\",
        }"
```

若要使用模型名稱和 `ContainerConfig` 建立推論建議任務，請使用下列範例。此範例使用 `SupportedEndpointType` 欄位來指定我們只想傳回即時推論建議：

```
aws sagemaker create-inference-recommendations-job 
    --region <region>\
    --job-name <job_name>\
    --job-type Default\
    --role-arn arn:aws:iam::<account:role/*>\
    --input-config "{
        \"ModelName\": \"model-name\",
        \"ContainerConfig\" : {
                \"Domain\": \"COMPUTER_VISION\",
                \"Framework\": \"PYTORCH\",
                \"FrameworkVersion\": \"1.7.1\",
                \"NearestModelName\": \"resnet18\",
                \"PayloadConfig\": 
                    {
                        \"SamplePayloadUrl\": \"s3://{bucket}/{payload_s3_key}\", 
                        \"SupportedContentTypes\": [\"image/jpeg\"]
                    },
                \"SupportedEndpointType\": \"RealTime\",
                \"DataInputConfig\": \"[[1,3,256,256]]\",
                \"Task\": \"IMAGE_CLASSIFICATION\",
            },
        }"
```

------
#### [ Amazon SageMaker Studio Classic ]

在 Studio Classic 中建立推論建議任務。

1. 在您的 Studio Classic 應用程式中，選擇首頁圖示 (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/studio/icons/house.png))。

1. 在 Studio Classic 的左側邊欄中，選擇**模型**。

1. 從下拉式清單中選擇**模型註冊表**，以顯示您已在模型註冊表中註冊的模型。

   左側面板顯示模型群組的清單。此清單包含在您帳戶中註冊至模型註冊表的所有模型群組，包括在 Studio Classic 外部註冊的模型。

1. 選取您模型群組的名稱。當您選擇模型群組時，Studio Classic 的右側窗格顯示列標題，例如**版本**和**設定**。

   如果您的模型群組中有一或多個模型套件，您會在**版本**一欄中看到這些模型套件的清單。

1. 選擇**推論建議程式**一欄。

1. 選擇授予 Inference Recommender 存取 AWS 服務的許可的 IAM 角色。您可以建立角色並連接 `AmazonSageMakerFullAccess` IAM 受管政策來完成此作業。或者，也可以讓 Studio Classic 為您建立角色。

1. 選擇 **Get recommendations (取得建議)**。

   推論建議最多需要 45 分鐘的時間。
**警告**  
請勿關閉此索引標籤。如果您關閉此索引標籤，就會取消執行個體建議任務。

------
#### [ SageMaker AI console ]

透過執行下列動作，透過 SageMaker AI 主控台建立執行個體建議任務：

1. 前往位在 [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/) 的 SageMaker AI 主控台。

1. 在左側導覽窗格中，選擇**推論**，然後選擇**推論建議程式**。

1. 在**推論建議程式任務**頁面上，選擇**建立任務**。

1. 針對**步驟 1：模型組態**，執行下列動作：

   1. 對於**任務類型**，選擇**預設建議程式任務**。

   1. 如果您使用的是在 SageMaker AI 模型註冊表中註冊的模型，請開啟**從模型註冊表中選擇模型**切換鈕並執行下列動作：

      1. 從**模型群組**下拉式清單中，在 SageMaker AI 模型註冊表中選擇模型所在的模型群組。

      1. 從**模型版本**下拉式清單中，選擇所需的模型版本。

   1. 如果您使用的是在 SageMaker AI 中建立的模型，請關閉**從模型註冊表中選擇模型切換鈕**，然後執行下列動作：

      1. 在**模型名稱**欄位中，輸入 SageMaker AI 模型的名稱。

   1. 從 **IAM 角色**下拉式清單中，您可以選取具有建立執行個體建議任務所需許可的現有 IAM 角色。 AWS 或者，如果您沒有現有角色，可以選擇**建立新角色**以開啟角色建立快顯視窗，SageMaker AI 會將必要的權限新增至您建立的新角色。

   1. 針對**用於基準測試承載的 S3 儲存貯體**，請輸入您範例承載存檔的 Amazon S3 路徑，其中應包含 Inference Recommender 用於在不同執行個體類型上對模型進行基準測試的範例承載檔案。

   1. 針對**承載內容類型**，輸入範例承載資料的 MIME 類型。

   1. (選用) 如果您關閉了**從模型註冊表中選擇模型切換鈕**並指定 SageMaker AI 模型，則針對**容器組態**，請執行下列操作：

      1. 在**網域**下拉式清單中，選取模型的機器學習領域，例如電腦視覺、自然語言處理或機器學習。

      1. 在**架構**下拉式清單中，選取容器的架構，例如 TensorFlow 或 XGBoost。

      1. 針對**架構版本**，請輸入容器映像的架構版本。

      1. 在**最近的模型名稱**下拉式清單中，選取大部分與您自己的模型相符的預先訓練模型。

      1. 針對**任務**下拉式清單，選取模型完成的機器學習任務，例如影像分類或迴歸。

   1. (選用) 對於**使用 SageMaker Neo 進行模型編譯**，您可以為已使用 SageMaker Neo 編譯的模型設定建議任務。針對**資料輸入組態**，請以類似 `{'input':[1,1024,1024,3]}` 的格式輸入模型的正確輸入資料形式。

   1. 選擇**下一步**。

1. 針對**步驟 2：執行個體和環境參數**，請執行下列操作：

   1. (選用) 針對**選取執行個體進行基準測試**，您最多可以選取 8 個要進行基準測試的執行個體類型。如未選取任何執行個體，Inference Recommender 會考量所有執行個體類型。

   1. 選擇**下一步**。

1. 針對**步驟 3：任務參數**，請執行下列動作：

   1. (選用) 針對**工作名稱**欄位，輸入執行個體建議任務的名稱。當您建立任務時，SageMaker AI 會在此名稱的結尾附加一個時間戳記。

   1. (選用) 針對**工作描述**，輸入該任務的描述。

   1. （選用） 針對**加密金鑰**下拉式清單，依名稱選擇 AWS KMS 金鑰，或輸入其 ARN 來加密您的資料。

   1. (選用) 針對**最長測試持續時間**，請輸入您希望每個測試執行的秒數上限。

   1. (選用) 針對**每分鐘調用數上限**，請輸入端點在停止建議任務之前每分鐘可達到的請求數量上限。達到此限制後，SageMaker AI 會結束任務。

   1. (選用) 針對 **P99 模型延遲閾值 (ms)**，輸入模型延遲百分位數 (以毫秒為單位)。

   1. 選擇**下一步**。

1. 針對**步驟 4：檢閱任務**，檢閱您的組態，然後選擇**提交**。

------

# 取得您的推論建議任務結果
<a name="instance-recommendation-results"></a>

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

------
#### [ 適用於 Python (Boto3) 的 AWS SDK ]

推論建議完成後，您可以使用 `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 中進行監控。如需詳細資訊，請參閱[Amazon CloudWatch 中的 Amazon SageMaker AI 指標](monitoring-cloudwatch.md)。

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

下列範例顯示設定為傳回無伺服器推論建議之推論建議任務的 `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`，以測量在無伺服器端點上啟動電腦資源所需的時間 (以微秒為單位)。如需有關設定無伺服器端點的詳細資訊，請參閱[無伺服器推論文件](https://docs.aws.amazon.com/sagemaker/latest/dg/serverless-endpoints.html)。

------
#### [ 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 推論建議的清單。

`EndpointConfiguration` 巢狀字典包含執行個體類型 (`InstanceType`) 建議，以及建議任務期間使用的端點和變體名稱 （已部署的 AWS 機器學習模型）。您可以使用端點和變體名稱在 Amazon CloudWatch Events 中進行監控。如需詳細資訊，請參閱[Amazon CloudWatch 中的 Amazon SageMaker AI 指標](monitoring-cloudwatch.md)。

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

下列範例顯示設定為傳回無伺服器推論建議之推論建議任務的 `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`，以測量在無伺服器端點上啟動電腦資源所需的時間 (以微秒為單位)。如需有關設定無伺服器端點的詳細資訊，請參閱[無伺服器推論文件](https://docs.aws.amazon.com/sagemaker/latest/dg/serverless-endpoints.html)。

------
#### [ Amazon SageMaker Studio Classic ]

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

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

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

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

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

------
#### [ SageMaker AI console ]

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

1. 前往位在 [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/) 的 SageMaker AI 主控台。

1. 在左側導覽窗格中，選擇**推論**，然後選擇**推論建議程式**。

1. 在**推論建議程式任務**頁面上，選擇推論建議任務的名稱。

在任務的詳細資料頁面上，您可以檢視**推論建議**，這是 SageMaker AI 針對您的模型建議的執行個體類型，如下列螢幕擷取畫面所示。

![\[SageMaker AI 主控台中任務詳細資料頁面上推論建議清單的螢幕擷取畫面。\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/inf-rec-instant-recs.png)


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

您也可以在此頁面檢視針對您指定的組態。在**監控**區段中，您可以檢視針對每個執行個體類型記錄的 Amazon CloudWatch 指標。若要深入了解如何解讀這些指標，請參閱[解讀結果](https://docs.aws.amazon.com/sagemaker/latest/dg/inference-recommender-interpret-results.html)。

------

如需解讀建議任務結果的詳細資訊，請參閱[建議結果](inference-recommender-interpret-results.md)。