如何解决 Amazon SageMaker 端点的高延迟问题?

1 分钟阅读
0

我想解决 Amazon SageMaker 端点的高延迟问题。

简短描述

您的 SageMaker 端点可能会遇到以下类型的延迟:

  • 模型延迟 - 这是模型响应推理请求所需的时间。模型延迟包括发送请求然后获取响应的本地通信时间。此外,模型延迟包括模型容器内的推理完成时间。
  • 开销延迟 - 这是 SageMaker 响应调用请求所需的时间,不包括模型延迟。
  • 网络延迟 - 这是请求在客户端和 SageMaker 端点之间来回传输所需的时间。网络延迟发生在 AWS 基础设施之外。

如果您的 SageMaker 端点提供单一模型,则以下 Amazon CloudWatch 指标可用:

  • 模型延迟
  • 开销延迟

如果您的 SageMaker 端点提供多模型终端节点,则以下 CloudWatch 指标可用:

  • 模型加载等待时间 - 此指标显示在执行推理之前,调用请求下载或加载目标模型所需的等待时间。
  • 模型下载时间 - 此指标显示从 Amazon Simple Storage Service (Amazon S3) 下载模型所需的时间。
  • 模型加载时间 - 此指标显示模型加载到容器所需的时间。
  • 模型缓存命中 - 此指标显示发送到模型加载到的端点的 InvokeEndpoint 请求的数量。

**注意:**多模型终端节点会在模型的整个生命周期内加载和卸载模型。要查看端点的已加载模型数量,请使用 LoadedModelCount CloudWatch 指标。

解决方法

根据以下类型的延迟对高延迟问题进行故障排除:

模型延迟

要减少高模型延迟,请完成以下操作:

  • 要测试模型性能,请在 SageMaker 端点之外对模型进行基准测试。
  • 如果 SageMaker Neo 支持您的模型,请对该模型进行编译。SageMaker Neo 会对模型进行优化,使其运行速度提高一倍,同时减少内存占用,并且不会损失精度。
  • 如果 AWS Inferentia 支持您的模型,请为 Inferentia 编译模型。这样可以更低的每次推理成本提高吞吐量。
  • 如果您使用的是 CPU 实例,并且该模型支持 GPU 加速,请使用 GPU 实例为实例添加 GPU 加速。
    **注意:**推理代码可能会影响模型延迟,具体取决于代码处理推理的方式。代码中的任何延迟都会增加延迟。
  • 要动态增加和减少可用于端点的实例数量,请向端点添加自动扩缩。如果端点被过度使用,可能会导致更高的模型延迟。

开销延迟

导致高开销延迟的因素如下:

  • 请求和响应的有效载荷大小
  • 请求频繁或不频繁
  • 请求的身份验证或授权

另外,由于冷启动,端点的首次调用可能会增加延迟。为避免冷启动时延迟过高,请向端点发送测试请求以对其进行预热。

网络延迟

要减少高网络延迟,请完成以下操作:

  • 将客户端应用程序部署到更靠近托管 SageMaker 端点的 AWS 区域。
  • 优化客户端网络配置和互联网连接。
  • 要使推理请求更接近客户端,请使用内容分发网络 (CDN) 或边缘计算解决方案。

**注意:**SageMaker 无法直接影响网络延迟。确保根据您的用例优化使用 SageMaker 端点的应用程序的整体推理延迟。

AWS 官方
AWS 官方已更新 5 个月前