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

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

推理管道问题排查

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

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

当您在包括内容的管道中使用自定义 Docker 镜像时SageMaker 内置算法,您需要一个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.aws.amazon.com/cloudwatch/.

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

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

    
                            这些区域有: CloudWatch 针对推理管道终端节点筛选的日志组。
  4. 要查看日志流,请在 CloudWatch 日志组页面,选择MyInferencePipelinesEndpoint,然后搜索日志组.

    
                            这些区域有: 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.

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