

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

# 获取推理推荐作业结果
<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)。