纠正 Inference Recommender 错误
此部分包含的信息介绍如何了解和预防常见错误,这些错误所生成的错误消息,以及如何解决这些错误的指南。
如何进行问题排查
您可以尝试执行以下步骤来纠正错误:
检查您是否已满足使用 Inference Recommender 的所有先决条件。请参阅 Inference Recommender 先决条件。
检查您是否能将模型从模型注册表部署到端点,以及它是否能处理您的负载而不出错。请参阅从注册表部署模型。
启动 Inference Recommender 作业时,您将在控制台中看到正在创建端点,并且您可以查看 CloudWatch 日志。
常见错误
查看下表,了解常见的 Inference Recommender 错误及其解决方法。
错误 | 解决方案 |
---|---|
在模型包版本 1 中指定 |
请务必提供机器学习域或 |
无法假定所提供的角色 ARN,并出现 |
确保提供的执行角色具有先决条件中指定的必要权限。 |
在模型包版本 1 中指定 |
请务必提供机器学习框架或 |
上一阶段结束时的用户为 0,而当前阶段的初始用户为 1。 |
此处的用户是指用于发送请求的虚拟用户或线程。每个阶段以 A 用户开始,以 B 用户结束,并且 B > A。在连续阶段 x_1 和 x_2 之间,我们要求 abs(x_2.A - x_1.B) <= 3 且 >= 0。 |
总流量持续时间(跨越)不应超过作业持续时间。 |
您所有阶段的总持续时间不能超过作业持续时间。 |
不允许使用可突增实例类型 ml.t2.medium。 |
Inference Recommender 不支持在 t2 实例系列上进行负载测试,因为可突增实例无法提供一致的性能。 |
调用 CreateEndpoint 操作时出现 ResourceLimitExceeded |
您已超过 SageMaker 资源限制。例如,如果账户已达到端点限额,Inference Recommender 可能无法预置端点来进行基准测试。有关 SageMaker 限制和限额的更多信息,请参阅 Amazon SageMaker 端点和限额。 |
调用 InvokeEndpoint 操作时出现 ModelError |
导致出现模型错误的原因如下:
|
调用 InvokeEndpoint 操作时出现 PayloadError |
导致出现负载错误的原因如下:
|
查看 CloudWatch
启动 Inference Recommender 作业时,您将在控制台中看到正在创建端点。选择其中一个端点并查看 CloudWatch 日志以监控任何 4xx/5xx 错误。如果您成功完成了 Inference Recommender 作业,则将能够在结果中看到端点名称。即使您的 Inference Recommender 作业失败,您仍可以执行以下步骤来查看 CloudWatch 日志中是否有已删除的端点:
通过 https://console.aws.amazon.com/cloudwatch/
打开 Amazon CloudWatch 控制台。 从右上角的区域下拉列表中选择您已在其中创建 Inference Recommender 作业的区域。
在 CloudWatch 的导航窗格中,选择日志,然后选择日志组。
搜索名为
/aws/sagemaker/Endpoints/sm-epc-*
的日志组。根据您最近的 Inference Recommender 作业选择日志组。
您还可以通过查看 Inference Recommender CloudWatch 日志来对作业进行问题排查。在 /aws/sagemaker/InferenceRecommendationsJobs
CloudWatch 日志组中发布的 Inference Recommender 日志提供了
日志流中作业进度的高级视图。您可以在 <jobName>
/execution
日志流中查找有关正在测试的每个端点配置的详细信息。<jobName>
/Endpoint/<endpointName>
Inference Recommender 日志流概述
包含总体作业信息,例如计划用于基准测试的端点配置、编译作业跳过原因和验证失败原因。<jobName>
/execution
包含资源创建进度、测试配置、负载测试停止原因和资源清理状态等信息。<jobName>
/Endpoint/<endpointName>
包含有关 Inference Recommender 创建的编译作业的信息,例如编译作业配置和编译作业状态。<jobName>
/CompilationJob/<compilationJobName>
为 Inference Recommender 错误消息创建警报
Inference Recommender 将输出错误的日志语句,从而协助进行问题排查。利用 CloudWatch 日志组和指标筛选条件,您可以在此日志数据发送到 CloudWatch 时查找其中的词和模式。然后,您可以根据日志组指标筛选条件创建 CloudWatch 警报。有关更多选项,请参阅根据日志组指标筛选条件创建 CloudWatch 警报。
查看基准测试
在启动 Inference Recommender 作业时,Inference Recommender 会创建多个基准测试来评估您的模型在不同实例类型上的性能。您可以使用 ListInferenceRecommendationsJobSteps API 来查看所有基准测试的详细信息。如果您的基准测试失败,则可以在结果中查看失败原因。
要使用 ListInferenceRecommendationsJobSteps API,请提供以下值:
对于
JobName
,请提供 Inference Recommender 作业的名称。对于
StepType
,使用BENCHMARK
返回有关作业的基准测试的详细信息。对于
Status
,使用FAILED
仅返回有关失败的基准测试的详细信息。有关其他状态类型的列表,请参阅 ListInferenceRecommendationsJobSteps API 中的Status
字段。
# Create a low-level SageMaker service client. import boto3 aws_region =
'<region>'
sagemaker_client = boto3.client('sagemaker', region_name=aws_region) # Provide the job name for the SageMaker Inference Recommender job job_name ='<job-name>'
# Filter for benchmarks step_type = 'BENCHMARK' # Filter for benchmarks that have a FAILED status status = 'FAILED' response = sagemaker_client.list_inference_recommendations_job_steps( JobName = job_name, StepType = step_type, Status = status )
您可以打印响应对象来查看结果。上一个代码示例将响应存储在名为 response
的变量中:
print(response)