本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
纠正 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)