获取推理推荐作业结果 - Amazon SageMaker

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

获取推理推荐作业结果

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

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 Ev CloudWatch ents 中进行监控。请参阅 SageMaker 通过亚马逊监控亚马逊的指标 CloudWatch了解更多信息。

Metrics嵌套字典包含有关实时终端节点每小时的估计成本 (CostPerHour)、实时终端节点的每次推理的估计成本 (CostPerInference)(以美元计)、发送到终端节点的每分钟预期最大InvokeEndpoint请求数 (MaxInvocations) 以及模型延迟 (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 是一个例外,它告知您在给定 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 Ev CloudWatch ents 中进行监控。请参阅 SageMaker 通过亚马逊监控亚马逊的指标 CloudWatch了解更多信息。

Metrics嵌套字典包含有关实时终端节点每小时的估计成本 (CostPerHour)、实时终端节点的每次推理的估计成本 (CostPerInference)(以美元计)、发送到终端节点的每分钟预期最大InvokeEndpoint请求数 (MaxInvocations) 以及模型延迟 (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 是一个例外,它告知您在给定 MemorySizeInMBMaxConcurrency = 1 的情况下为无服务器端点返回的指标。要增加端点上可能的吞吐量,请线性地增加 MaxConcurrency 的值。例如,如果推理推荐显示的 MaxInvocations1000,则将 MaxConcurrency 增至 2 将支持 2000 MaxInvocations。请注意,仅在某个特定点才出现这种情况,并且会因您的模型和代码而异。无服务器推荐还会衡量指标 ModelSetupTime,后者衡量在无服务器端点上启动计算机资源所花费的时间(以微秒为单位)。有关设置无服务器端点的更多信息,请参阅无服务器推理文档

Amazon SageMaker Studio Classic

推理建议填充在 Studio Class ic 的新推理建议选项卡中。显示结果最多可能需要 45 分钟。此选项卡包含结果详情列标题。

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

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

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

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

SageMaker console

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

  1. 转到 SageMaker 控制台,网址为https://console.aws.amazon.com/sagemaker/

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

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

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

SageMaker 控制台作业详情页面上推理建议列表的屏幕截图。

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

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

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