推理管道问题排查 - Amazon SageMaker
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

推理管道问题排查

要排查推理管道问题,请使用 CloudWatch 日志和错误消息。如果您在包含 Amazon SageMaker 内置算法的管道中使用自定义 Docker 映像,则可能还会遇到权限问题。要授予所需的权限,请创建 Amazon Elastic Container Registry (Amazon ECR) 策略。

推理管道的 Amazon ECR 权限问题排查

当您在包含 SageMaker 内置算法的管道中使用自定义 Docker 映像时,您需要 Amazon ECR 策略。该策略允许您的 Amazon ECR 存储库向 SageMaker 授予拉取映像的权限。该策略必须添加以下权限:

{ "Version": "2008-10-17", "Statement": [ { "Sid": "allowSageMakerToPull", "Effect": "Allow", "Principal": { "Service": "sagemaker.amazonaws.com" }, "Action": [ "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", "ecr:BatchCheckLayerAvailability" ] } ] }

使用 CloudWatch 日志对SageMaker推理管道进行问题排查

针对将推理管道部署到每个容器的以下路径的 SageMaker 的终端节点,Amazon CloudWatch 为这些终端节点发布容器日志。

/aws/sagemaker/Endpoints/{EndpointName}/{Variant}/{InstanceId}/{ContainerHostname}

例如,此终端节点的日志将发布到以下日志组和流:

EndpointName: MyInferencePipelinesEndpoint Variant: MyInferencePipelinesVariant InstanceId: i-0179208609ff7e488 ContainerHostname: MyContainerName1 and MyContainerName2
logGroup: /aws/sagemaker/Endpoints/MyInferencePipelinesEndpoint logStream: MyInferencePipelinesVariant/i-0179208609ff7e488/MyContainerName1 logStream: MyInferencePipelinesVariant/i-0179208609ff7e488/MyContainerName2

日志流是共享相同源的日志事件序列。每个流向 CloudWatch 的独立日志源构成一个独立的日志流。日志组 是一组具有相同保留期、监控和访问控制设置的日志流。

查看日志组和流

  1. 通过以下网址打开 CloudWatch 控制台:https://console.amazonaws.cn/cloudwatch/

  2. 在导航窗格中,选择 Logs (日志)

  3. Log Groups (日志组) 中,筛选 MyInferencePipelinesEndpoint

    
                            为推理管道终端节点筛选的 CloudWatch 日志组。
  4. 要查看日志流,请在 CloudWatch Log Groups (CloudWatch 日志组) 页面上选择 MyInferencePipelinesEndpoint,然后 Search Log Group (搜索日志组)

    
                            推导管道的 CloudWatch 日志流。

有关 SageMaker 发布的日志列表,请参阅推理管道日志和指标

使用错误消息对推理管道进行问题排查

推理管道错误消息指示哪些容器失败。

如果在 SageMaker 调用终端节点时发生错误,则该服务返回 ModelError(错误代码 424),指示哪个容器失败。如果请求负载(来自以前容器的响应)超过了 5 MB 的限制,SageMaker 将提供类似于下文的详细错误消息:

Received response from MyContainerName1 with status code 200. However, the request payload from MyContainerName1 to MyContainerName2 is 6000000 bytes, which has exceeded the maximum limit of 5 MB. See https://us-west-2.console.aws.amazon.com/cloudwatch/home?region=us-west-2#logEventViewer:group=/aws/sagemaker/Endpoints/MyInferencePipelinesEndpoint in account 123456789012 for more information.

如果某个容器在 SageMaker 创建终端节点时未能通过 ping 运行状况检查,它将返回 ClientError 并指示在上次运行状况检查中未能通过 ping 检查的所有容器。