推理管道日志和指标 - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

推理管道日志和指标

监控是维护 Amazon SageMaker 资源的可靠性、可用性和性能的重要环节。要监控推理管道性能并进行故障排除,请使用 Amazon CloudWatch 日志和错误消息。有关 SageMaker 提供的监控工具的信息,请参阅在使用 Amazon SageMaker 时监控预置的 Amazon 资源

使用指标监控多容器模型

要监控推理管道中的多容器模型,请使用 Amazon CloudWatch。CloudWatch 收集和处理原始数据,并将数据处理为便于读取的近乎实时的指标。SageMaker 训练作业和端点将 CloudWatch 指标和日志写入 AWS/SageMaker 命名空间。

以下各表列出以下内容的指标和维度。

  • 端点调用

  • 训练作业、批量转换作业和端点实例

维度 是用于唯一标识指标的名称/值对。您可以为一个指标分配最多 10 个维度。有关使用 CloudWatch 进行监控的更多信息,请参阅使用 Amazon CloudWatch 监控 Amazon SageMaker

端点调用指标

AWS/SageMaker 命名空间包含通过调用 InvokeEndpoint 获得的以下请求指标。

指标每 1 分钟报告一次。

指标 描述
Invocation4XXErrors

模型为其返回 4xx HTTP 响应代码的 InvokeEndpoint 请求的数量。对于每个 4xx 响应,SageMaker 都会发送 1

单位:无

有效统计数据:AverageSum

Invocation5XXErrors

模型为其返回 5xx HTTP 响应代码的 InvokeEndpoint 请求的数量。对于每个 5xx 响应,SageMaker 都会发送 1

单位:无

有效统计数据:AverageSum

Invocations

发送到模型端点的 number of InvokeEndpoint 请求。

要获取发送到模型端点的请求总数,请使用 Sum 统计数据。

单位:无

有效统计数据:SumSample Count

InvocationsPerInstance

发送到模型的端点调用数量(按每个 ProductionVariant 中的 InstanceCount 进行标准化)。SageMaker 将 1/numberOfInstances 作为每个请求上的值发送,其中 numberOfInstances 是发出请求时端点上的 ProductionVariant 的活动实例数量。

单位:无

有效统计数据:Sum

ModelLatency 模型进行响应所需的时间。这包括以下操作所花的时间:发送请求,从模型容器中提取响应,以及完成容器中的推理。ModelLatency 是一个推理管道中所有容器所花的总时间。

单位:微秒

有效统计数据:AverageSumMinMax、Sample Count

OverheadLatency

添加到 SageMaker 响应客户端请求所开销时间的时间。OverheadLatency 表示 SageMaker 接收请求的时间到它向客户端返回响应的时间,再减去 ModelLatency。除其他因素外,开销延迟还可能由于请求和响应负载大小、请求频率以及请求的身份验证或授权而变化。

单位:微秒

有效统计数据:AverageSumMinMaxSample Count

ContainerLatency 从 SageMaker 上看到的推理管道容器响应时所花费的时间。ContainerLatency 包括以下操作所花的时间:发送请求,从模型容器中提取响应以及在容器中完成推理。

单位:微秒

有效统计数据:AverageSumMinMaxSample Count

端点调用指标的维度

维度 描述
EndpointName, VariantName, ContainerName

针对指定的端点和指定的变体的 ProductionVariant,筛选端点调用指标。

对于推理管道端点,CloudWatch 在 SageMaker 命名空间中,将您账户中的每个容器的延迟指标作为端点容器指标端点变体指标列出,如下所示。该 ContainerLatency 指标仅适用于推理管道。


                    推理管道的 CloudWatch 控制面板列出了每个容器的每个端点的延迟指标。

对于每个端点和每个容器,延迟指标显示容器、端点、变体和指标的名称。


                    端点的延迟指标。

训练作业、批量转换作业和端点实例指标

命名空间 /aws/sagemaker/TrainingJobs/aws/sagemaker/TransformJobs/aws/sagemaker/Endpoints 包括以下用于训练作业和端点实例的指标。

指标每 1 分钟报告一次。

指标 描述
CPUUtilization

实例上运行的容器所使用的 CPU 单位的百分比。值范围从 0% 到 100%,并且乘以 CPU 数目。例如,如果有四个 CPU,CPUUtilization 可以介于 0% 到 400% 之间。

对于训练作业,CPUUtilization 是实例上运行的算法容器的 CPU 利用率。

对于批量转换作业,CPUUtilization 是实例上运行的转换容器的 CPU 利用率。

对于多容器模型,CPUUtilization 是实例上运行的所有容器的 CPU 利用率总和。

对于端点变体,CPUUtilization 是实例上运行的所有容器的 CPU 利用率总和。

单位:百分比

MemoryUtilization

实例上运行的容器所使用的内存的百分比。此值范围从 0% 到 100%。

对于训练作业,MemoryUtilization 是实例上运行的算法容器所使用的内存。

对于批量转换作业,MemoryUtilization 是实例上运行的转换容器所使用的内存。

对于多容器模型,MemoryUtilization 是实例上运行的所有容器的所使用的内存总和。

对于端点变体,MemoryUtilization 是实例上运行的所有容器所使用的内存总和。

单位:百分比

GPUUtilization

在实例上运行的容器所使用的 GPU 单元的百分比。GPUUtilization 范围从 0% 到 100%,并乘以 GPU 的数目。例如,如果有四个 GPU,GPUUtilization 可以介于 0% 到 400% 之间。

对于训练作业,GPUUtilization 是实例上运行的算法容器所使用的 GPU。

对于批量转换作业,GPUUtilization 是实例上运行的转换容器所使用的 GPU。

对于多容器模型,GPUUtilization 是实例上运行的所有容器的所使用的 GPU 总和。

对于端点变体,GPUUtilization 是实例上运行的所有容器所使用的 GPU 总和。

单位:百分比

GPUMemoryUtilization

实例上运行的容器所使用的 GPU 内存的百分比。GPUMemoryUtilization 范围从 0% 到 100%,并乘以 CPU 的数目。例如,如果有四个 GPU,GPUMemoryUtilization 可以介于 0% 到 400% 之间。

对于训练作业,GPUMemoryUtilization 是实例上运行的算法容器所使用的 GPU 内存。

对于批量转换作业,GPUMemoryUtilization 是实例上运行的转换容器所使用的 GPU 内存。

对于多容器模型,GPUMemoryUtilization 是实例上运行的所有容器的所用的 GPU 总和。

对于端点变体,GPUMemoryUtilization 是实例上运行的所有容器所使用的 GPU 内存总和。

单位:百分比

DiskUtilization

实例上运行的容器所使用的磁盘空间的百分比。DiskUtilization 范围从 0% 到 100%。批量转换作业不支持此指标。

对于训练作业,DiskUtilization 是实例上运行的算法容器所使用的磁盘空间。

对于端点变体,DiskUtilization 是实例上运行的所有提供容器所使用的磁盘空间总和。

单位:百分比

训练作业、批量转换作业和端点实例指标的维度

维度 描述
Host

对于训练作业,Host 格式为 [training-job-name]/algo-[instance-number-in-cluster]。使用此维度可筛选指定训练作业和实例的实例指标。此维度格式仅存在于 /aws/sagemaker/TrainingJobs 命名空间中。

对于批量转换作业,Host 格式为 [transform-job-name]/[instance-id]。使用此维度可筛选指定批量转换作业和实例的实例指标。此维度格式仅存在于 /aws/sagemaker/TransformJobs 命名空间中。

对于端点,Host 格式为 [endpoint-name]/[ production-variant-name ]/[instance-id]。使用此维度可筛选指定端点、变体和实例的实例指标。此维度格式仅存在于 /aws/sagemaker/Endpoints 命名空间中。

为帮助您调试训练作业、端点和笔记本实例生命周期配置,SageMaker 还会发送算法容器、模型容器或笔记本实例生命周期配置等任意内容到 stdout,或将 stderr 发送到 Amazon CloudWatch Logs。您可以使用此信息用于调试并分析进度。

使用日志监控推理管道

下表列出了 SageMaker 发送到 Amazon CloudWatch 的日志组和日志流

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

日志

日志组名称 日志流名称
/aws/sagemaker/TrainingJobs

[training-job-name]/algo-[instance-number-in-cluster]-[epoch_timestamp]

/aws/sagemaker/Endpoints/[EndpointName]

[production-variant-name]/[instance-id]

[production-variant-name]/[instance-id]

[production-variant-name]/[instance-id]/[container-name provided in the SageMaker model] (For Inference Pipelines) 对于推理管道日志,如果您未提供容器名称,则 CloudWatch 使用 **container-1, container-2**,以此类推,采用在模型中提供容器的顺序。

/aws/sagemaker/NotebookInstances

[notebook-instance-name]/[LifecycleConfigHook]

/aws/sagemaker/TransformJobs

[transform-job-name]/[instance-id]-[epoch_timestamp]

[transform-job-name]/[instance-id]-[epoch_timestamp]/data-log

[transform-job-name]/[instance-id]-[epoch_timestamp]/[container-name provided in the SageMaker model] (For Inference Pipelines) 对于推理管道日志,如果您未提供容器名称,则 CloudWatch 使用 **container-1, container-2**,以此类推,采用在模型中提供容器的顺序。

注意

在您使用生命周期配置创建笔记本实例时,SageMaker 将创建 /aws/sagemaker/NotebookInstances 日志组。有关更多信息,请参阅 使用生命周期配置脚本自定义笔记本实例

有关 SageMaker 日志记录的更多信息,请参阅使用 Amazon CloudWatch 记录 Amazon SageMaker 事件