本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
纠正 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 实例系列上进行负载测试,因为可突增实例无法提供一致的性能。 |
ResourceLimitExceeded 调用 CreateEndpoint操作时 |
您已超过 A SageMaker I 资源限制。例如,如果账户已达到端点限额,Inference Recommender 可能无法预置端点来进行基准测试。有关 SageMaker AI 限制和配额的更多信息,请参阅 Amazon A SageMaker I 终端节点和配额。 |
ModelError 调用 InvokeEndpoint 操作时 |
导致出现模型错误的原因如下:
|
PayloadError 调用 InvokeEndpoint 操作时 |
导致出现负载错误的原因如下:
|
查看 CloudWatch
启动 Inference Recommender 作业时,您将在控制台中看到正在创建端点。选择其中一个端点并查看 CloudWatch 日志以监控任何 4xx/5xx 错误。如果您成功完成了 Inference Recommender 作业,则将能够在结果中看到端点名称。即使您的推理推荐器任务不成功,您仍然可以按照以下步骤检查已删除终端节点的 CloudWatch 日志:
-
打开亚马逊 CloudWatch 控制台,网址为https://console.aws.amazon.com/cloudwatch/
。 -
从右上角的区域下拉列表中选择您已在其中创建 Inference Recommender 作业的区域。
-
在的导航窗格中 CloudWatch,选择日志,然后选择日志组。
-
搜索名为
/aws/sagemaker/Endpoints/sm-epc-*
的日志组。根据您最近的 Inference Recommender 作业选择日志组。
您也可以通过查看推理推荐器 CloudWatch 日志来排除任务故障。在日志组中发布的 Inference Recommerder /aws/sagemaker/InferenceRecommendationsJobs
CloudWatch 日志提供了
日志流中任务进度的高级视图。您可以在 <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 会创建多个基准测试来评估您的模型在不同实例类型上的性能。您可以使用 ListInferenceRecommendationsJobStepsAPI 查看所有基准测试的详细信息。如果您的基准测试失败,则可以在结果中查看失败原因。
要使用 ListInferenceRecommendationsJobStepsAPI,请提供以下值:
-
对于
JobName
,请提供 Inference Recommender 作业的名称。 -
对于
StepType
,使用BENCHMARK
返回有关作业的基准测试的详细信息。 -
对于
Status
,使用FAILED
仅返回有关失败的基准测试的详细信息。有关其他状态类型的列表,请参阅 ListInferenceRecommendationsJobStepsAPI 中的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)