

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 推理推荐
<a name="inference-recommender-instance-recommendation"></a>

推理推荐作业对推荐的实例类型或无服务器端点运行一组负载测试。推理推荐作业使用的性能指标基于使用模型版本注册期间提供的示例数据执行的负载测试。

**注意**  
在创建 Inference Recommender 推荐作业之前，请先确保您满足[使用 Amazon SageMaker 推理推荐器的先决条件](inference-recommender-prerequisites.md)。

以下内容演示如何使用、、Amazon SageMaker Studio Classic 以及 Amazon SageMaker Studio Classic AWS CLI以及 AI 控制台根据您的模型类型创建推理建议 适用于 Python (Boto3) 的 AWS SDK SageMaker 

**Topics**
+ [

# 创建推理推荐
](instance-recommendation-create.md)
+ [

# 获取推理推荐作业结果
](instance-recommendation-results.md)

# 创建推理推荐
<a name="instance-recommendation-create"></a>

使用 适用于 Python (Boto3) 的 AWS SDK 或以编程方式创建推理建议，或者使用 Studio Classic 或 AI 控制台以交互方式创建推理建议。 AWS CLI SageMaker **为推理建议指定任务名称、 AWS IAM 角色 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 资源名称 (ARN)，此角色可让 Inference Recommender 代表您执行任务。为 `RoleArn` 字段定义此项。
+ 模型包 ARN 或模型名称。Inference Recommender 支持将模型包 ARN 或模型名称作为输入。指定下列项之一：
  + 您在向 A SageMaker I 模型注册表注册模型时创建的版本化模型包的 ARN。在 `InputConfig` 字段中为 `ModelPackageVersionArn` 定义此项。
  + 您创建的模型的名称。在 `InputConfig` 字段中为 `ModelName` 定义此项。另外，请提供 `ContainerConfig` 字典，其中包括需要与模型名称一起提供的必填字段。在 `InputConfig` 字段中为 `ContainerConfig` 定义此项。在 `ContainerConfig` 中，您也可以选择将 `SupportedEndpointType` 字段指定为 `RealTime` 或 `Serverless`。如果您指定此字段，则 Inference Recommender 将仅返回该端点类型的推荐。如果您未指定此字段，则 Inference Recommender 将返回两种端点类型的推荐。
+ `JobName` 字段的 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/API_CreateInferenceRecommendationsJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateInferenceRecommendationsJob.html)](https://docs.aws.amazon.com/sagemaker/latest/APIReference/Welcome.html)。

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

使用 `create-inference-recommendations-job` API 启动推理推荐作业。将推理推荐作业的 `job-type` 字段设置为 `'Default'`。此外，请提供以下各项：
+ 允许亚马逊 SageMaker 推理推荐人代表您执行任务的 IAM 角色的亚马逊资源名称 (ARN)。为 `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 推荐作业的名称。推理推荐人任务名称在 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_cn/sagemaker/latest/dg/images/studio/icons/house.png))。

1. 在 Studio Classic 的左侧边栏中，选择**模型**。

1. 从下拉列表中选择**模型注册表**可显示您已在模型注册表中注册的模型。

   左侧面板将显示模型组的列表。该列表包括您账户中已注册到模型注册表的所有模型组，包括在 Studio Classic 外部注册的模型。

1. 选择模型组的名称。选择模型组时，Studio Classic 的右窗格会显示列标题，例如**版本**和**设置**。

   如果您的模型组中有一个或多个模型包，您会在**版本**列中看到这些模型包的列表。

1. 选择 **Inference Recommender** 列。

1. 选择一个 IAM 角色来授予推理推荐者访问服务的 AWS 权限。您可以创建一个角色，并附加 `AmazonSageMakerFullAccess` IAM 托管策略来做到这一点。或者，可以让 Studio Classic 为您创建角色。

1. 选择**获得推荐**。

   推理推荐最多可能需要 45 分钟。
**警告**  
不要关闭此选项卡。如果关闭此选项卡，则取消实例推荐作业。

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

通过执行以下操作，通过 SageMaker AI 控制台创建实例推荐任务：

1. 前往 SageMaker AI 控制台，网址为[https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)。

1. 在左侧导航窗格中，选择**推理**，然后选择 **Inference Recommender**。

1. 在 **Inference Recommender 作业**页面上，选择**创建作业**。

1. 对于**步骤 1：模型配置**，执行以下操作：

   1. 对于**作业类型**，选择**默认 Recommender 作业**。

   1. 如果您使用的是在 SageMaker AI 模型注册表中注册的模型，请打开**从模型注册表中选择模型**开关并执行以下操作：

      1. 从**模型组**下拉列表中，选择您的模型所在的 SageMaker AI 模型注册表中的模型组。

      1. 从**模型版本**下拉列表中，选择所需的模型版本。

   1. 如果您使用的是在 SageMaker AI 中创建的模型，请关闭**从模型注册表中选择模型开关**并执行以下操作：

      1. 在**模型名称**字段中，输入您的 SageMaker AI 模型的名称。

   1. 从 **IAM 角色**下拉列表中，您可以选择具有创建实例推荐任务所需权限的现有 AWS IAM 角色。或者，如果您没有现有角色，则可以选择**创建新角色以打开角色**创建弹出窗口，然后 SageMaker AI 会为您创建的新角色添加必要的权限。

   1. 对于**用于对负载进行基准测试的 S3 存储桶**，输入示例负载存档的 Amazon S3 路径，其中应包含示例负载文件，Inference Recommender 使用这些文件在不同的实例类型上对模型进行基准测试。

   1. 对于**负载内容类型**，输入示例负载数据的 MIME 类型。

   1. （可选）如果您关闭了**从模型注册表中选择模型开**关并指定了 A SageMaker I 模型，那么对于**容器配置**，请执行以下操作：

      1. 对于**域**下拉列表，选择模型的机器学习域，例如计算机视觉、自然语言处理或机器学习。

      1. 在 “**框架**” 下拉列表中，选择容器的框架，例如 TensorFlow 或 XGBoost。

      1. 对于**框架版本**，输入容器映像的框架版本。

      1. 对于**最近的模型名称**下拉列表，选择与您自己的模型最匹配的预训练的模型。

      1. 对于**任务**下拉列表，选择模型完成的机器学习任务，例如图像分类或回归。

   1. （可选）对于**使用 SageMaker Neo 进行模型编译**，您可以为使用 N SageMaker eo 编译的模型配置推荐作业。对于**数据输入配置**，使用类似于 `{'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>

使用 Studio Classic 或 SageMaker AI 控制台以 适用于 Python (Boto3) 的 AWS SDK编程方式收集推理推荐作业的结果。 AWS CLI

------
#### [ 适用于 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 Ev CloudWatch ents 中进行监控。请参阅[亚马逊中的亚马逊 A SageMaker I 指标 CloudWatch](monitoring-cloudwatch.md)了解更多信息。

`Metrics`嵌套字典包含有关实时终端节点每小时的估计成本 (`CostPerHour`)、实时终端节点的每次推理的估计成本 (`CostPerInference`)（以美元计）、发送到终端节点的每分钟预期最大`InvokeEndpoint`请求数 (`MaxInvocations`) 以及模型延迟 (`ModelLatency`)（即模型响应 AI 所花费的时间间隔（以微秒为单位）的信息。 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`，后者衡量在无服务器端点上启动计算机资源所花费的时间（以微秒为单位）。有关设置无服务器端点的更多信息，请参阅[无服务器推理文档](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 Ev CloudWatch ents 中进行监控。请参阅[亚马逊中的亚马逊 A SageMaker I 指标 CloudWatch](monitoring-cloudwatch.md)了解更多信息。

`Metrics`嵌套字典包含有关实时终端节点每小时的估计成本 (`CostPerHour`)、实时终端节点的每次推理的估计成本 (`CostPerInference`)（以美元计）、发送到终端节点的每分钟预期最大`InvokeEndpoint`请求数 (`MaxInvocations`) 以及模型延迟 (`ModelLatency`)（即模型响应 AI 所花费的时间间隔（以毫秒为单位）的信息。 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`，后者衡量在无服务器端点上启动计算机资源所花费的时间（以微秒为单位）。有关设置无服务器端点的更多信息，请参阅[无服务器推理文档](https://docs.aws.amazon.com/sagemaker/latest/dg/serverless-endpoints.html)。

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

实例推荐填充在新的**实例推荐** Studio Classic 中的选项卡。显示结果最多可能需要 45 分钟。此选项卡包含**结果**和**详情**列标题。

**详情**列提供了有关推理推荐作业的信息，例如推理推荐的名称、作业创建时间（**创建时间**）等。它还提供了**设置**信息，例如每分钟发生的最大调用次数以及有关使用的 Amazon 资源名称的信息。

“**结果**” 列提供了 “**部署目标**” 和 “**SageMaker AI 建议**” 窗口，您可以在其中根据部署重要性调整结果的显示顺序。您可以使用三个下拉菜单来为使用案例提供**成本**、**延迟**和**吞吐量**的重要性级别。对于每个目标（成本、延迟和吞吐量），您可以设置重要性级别：**最低重要性**、**低重要性**、**中等重要性**、**高度重要**或**最重要**。

根据您为每个目标选择的重要性，Inference Recommerder 会在面板右侧的推荐字段中显示其最重要的**SageMaker建议**，以及每小时的估计成本和推理请求。它还提供了有关预期模型延迟、最大调用次数和实例数的信息。对于无服务器推荐，您可以查看最大并发数和端点内存大小的理想值。

除了显示的顶级推荐之外，您还可以在**所有运行**部分中查看为 Inference Recommender 测试的所有实例显示的相同信息。

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

您可以通过执行以下操作在 SageMaker AI 控制台中查看您的实例推荐任务：

1. 前往 SageMaker AI 控制台，网址为[https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)。

1. 在左侧导航窗格中，选择**推理**，然后选择 **Inference Recommender**。

1. 在 **Inference Recommender 作业**页面上，选择推理推荐作业的名称。

在任务的详细信息页面上，您可以查看**推理建议**，这是 SageMaker AI 为您的模型推荐的实例类型，如以下屏幕截图所示。

![\[SageMaker AI 控制台作业详情页面上推理建议列表的屏幕截图。\]](http://docs.aws.amazon.com/zh_cn/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)。