【问题标题】:How do I deploy a ML model trained on SageMaker, to a local machine to run predict?如何将在 SageMaker 上训练的 ML 模型部署到本地机器以运行预测?
【发布时间】:2020-02-19 23:46:09
【问题描述】:

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

【问题讨论】:

  • 您是在询问有关 SaegMaker 内置算法的问题吗?还是在 SageMaker 中使用您自己的框架(TF、Pytorch...)?
  • 嗨,吉利纳哈姆。我指的是 SageMaker 内置算法和 Sagemaker 中自己的框架。我们能否完全离线部署/服务在 Sagemaker 上训练的模型,训练后不依赖 AWS?如果不是,有什么限制?
  • @Zach 你找到任何相关的解决方案/博客了吗?
  • @Srini 不是 atm,仍在寻找答案
  • 有没有人找到一个好的答案?如果有帮助,我有一个关于安装 TensorFlow 和本地服务的 colab 笔记本。 colab.research.google.com/github/tensorflow/tfx/blob/master/…

标签: amazon-web-services amazon-s3 amazon-sagemaker


【解决方案1】:

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

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

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

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

【讨论】:

  • 您的 pytorch 模型是否在 SageMaker 上进行过训练?我指的是完全离线部署 SageMaker 训练模型,而无需调用 Sagemaker 平台/与 SageMaker 实例有任何类型的连接。原因是托管实例需要花钱,而且是一种不必要的依赖,可以在训练后摆脱。
【解决方案2】:

使用 Amazon SageMaker 训练模型后,您将拥有一个模型条目。该模型将指向 S3 中的模型工件。此 tag.gz 文件具有模型权重。文件的格式取决于您用来训练模型的框架(tensorflow/pytorch/mxnet/...)。如果您使用过 SageMaker 内置算法,其中大部分是使用 MXNet 或 XGBoost 实现的,因此您可以使用相关的模型服务软件来运行模型。
如果您需要服务软件,您可以在本地推理服务器上以推理模式运行 SageMaker 深度学习容器。或者使用 TFServing 等开源服务软件,或者将模型加载到内存中。

【讨论】:

  • 嗨,吉利纳哈姆。是的,我知道模型权重作为 tar.gz 文件存储在 S3 分支中。但是我的问题是,您如何在不使用任何 SageMaker 进行部署的情况下,在您自己的服务器上离线服务或运行经过训练的 SageMaker 模型。为了运行深度学习模型,您需要模型工件(权重)和图像,以便在本地复制和部署模型,对吗?那么有没有一种方法可以在不依赖 AWS 的情况下离线部署模型。一个例子也很好。谢谢。
猜你喜欢
  • 2021-02-04
  • 2022-07-30
  • 2019-11-12
  • 1970-01-01
  • 2020-02-08
  • 2019-09-20
  • 1970-01-01
  • 2019-07-19
  • 2019-03-27
相关资源
最近更新 更多