获取推理推荐作业结果 - 亚马逊 SageMaker AI

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

获取推理推荐作业结果

使用适用于 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 中使用端点和变体名称进行监控。请参阅亚马逊中的亚马逊 A SageMaker I 指标 CloudWatch了解更多信息。

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 是一个例外,它告知您在给定 MemorySizeInMBMaxConcurrency = 1 的情况下为无服务器端点返回的指标。要增加端点上可能的吞吐量,请线性地增加 MaxConcurrency 的值。例如,如果推理推荐显示的 MaxInvocations1000,则将 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 推理推荐的列表。

EndpointConfiguration 嵌套字典包含实例类型 (InstanceType) 推荐以及已在推荐作业期间使用的端点和变体名称(已部署的 AWS 机器学习模型)。您可以在 Amazon CloudWatch Events 中使用端点和变体名称进行监控。请参阅亚马逊中的亚马逊 A SageMaker I 指标 CloudWatch了解更多信息。

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 是一个例外,它告知您在给定 MemorySizeInMBMaxConcurrency = 1 的情况下为无服务器端点返回的指标。要增加端点上可能的吞吐量,请线性地增加 MaxConcurrency 的值。例如,如果推理推荐显示的 MaxInvocations1000,则将 MaxConcurrency 增至 2 将支持 2000 MaxInvocations。请注意,仅在某个特定点才出现这种情况,并且会因您的模型和代码而异。无服务器推荐还会衡量指标 ModelSetupTime,后者衡量在无服务器端点上启动计算机资源所花费的时间(以微秒为单位)。有关设置无服务器端点的更多信息,请参阅无服务器推理文档

Amazon SageMaker Studio Classic

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

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

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

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

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

SageMaker AI console

通过执行以下操作,可以在 SageMaker AI 控制台中查看实例推荐作业:

  1. 转到位于 https://console.aws.amazon.com/sagemaker/ 的 SageMaker AI 控制台。

  2. 在左侧导航窗格中,选择推理,然后选择 Inference Recommender

  3. Inference Recommender 作业页面上,选择推理推荐作业的名称。

在作业的详细信息页面上,您可以查看推理推荐,它们是 SageMaker AI 为您的模型推荐的实例类型,如以下屏幕截图所示。

SageMaker AI 控制台中作业详细信息页面上的推理推荐列表的屏幕截图。

在此部分中,您可以按模型延迟每小时成本每次推理成本每分钟调用次数等各种因素比较实例类型。

在此页面上,您还可以查看为作业指定的配置。在监控部分中,您可以查看已为每种实例类型记录的 Amazon CloudWatch 指标。要详细了解如何解释这些指标,请参阅解释结果

有关解释推荐作业结果的更多信息,请参阅推荐结果