首页 > 解决方案 > 如何将在 SageMaker 上训练的 ML 模型部署到本地机器以运行预测?

问题描述

我一直在查看有关在本地部署 SageMaker 模型的各种帖子,但它们必须绑定到 AWS 笔记本实例才能在本地运行预测/服务(AWS SageMaker Python SDK)。这违背了完全离线运行 Sagemaker 训练模型的实际意图。还有一些其他人尝试在 S3 上解压缩 tar.gz 文件,然后包装要在本地部署的内容。然而,该过程似乎非常受限于某些类型的模型,例如 XGBoost 和 MXnet。因此,有什么方法可以离线部署 SageMaker 训练的模型而不依赖于 Sagemaker 笔记本实例?任何形式的建议将不胜感激。谢谢你。

标签: amazon-web-servicesamazon-s3amazon-sagemaker

解决方案


我已经通过Amazon SageMaker Local Mode在本地部署了 PyTorch 模型。我相信相同的过程适用于其他具有官方 SageMaker 容器的 ML 框架。您可以在本地运行 SageMaker 在 AWS 基础设施上部署模型时使用的相同 Docker 容器。

用于在本地部署 Sagemaker 端点以进行推理的文档有点分散。总结:

  1. 使用本地版本的 API 客户端:通常,您使用botocore.client.SageMakerbotocore.client.SageMakerRuntime类以使用 Python 中的 SageMaker。要在本地使用 SageMaker,请改用sagemaker.local.LocalSagemakerClient()and sagemaker.local.LocalSagemakerRuntimeClient()
  2. 如果您愿意,可以使用本地tar.gz模型文件。
  3. 部署模型时设置为instance_typelocal

我写了How to setup a local AWS SageMaker environment for PyTorch,其中详细介绍了它的工作原理。


推荐阅读